欧美日韩欧美,女人和拘做受大片免费看,麻花豆传媒剧国产mv免费版特色,欧美成人精品高清在线观看,麻豆产精国品一二三产区区

【E2450】Pelco-D協(xié)議解析器

2021-11-24 10:48:29      索煒達電子      1292     

項目編號:E2450

文件大?。?.2M

源碼說明:帶中文注釋

開發(fā)環(huán)境:C編譯器

簡要概述:

【E2450】Pelco-D協(xié)議解析器

概述

Pelco-D協(xié)議解析器庫旨在幫助開發(fā)人員使用Pelco-D協(xié)議控制攝像機和云臺。該庫有一個簡單的接口,只進行消息編碼。該庫包含一個類PelcoDProtocolParser。編程類的接口如下所示:

/**

 * @brief Pelco-D protocol parser class.

 */

class PelcoDProtocolParser

{

public:

    /**

     * @brief Class constructor.

     */

    PelcoDProtocolParser();

    /**

     * @brief Class destructor.

     */

    ~PelcoDProtocolParser();

    /**

     * @brief Method to encode Pelco-D command (Always 7 bytes).

     * 

     * @param packet Pointer to packet buffer. Always 7 bytes.

     * @param address Camera address (usually 1).

     * @param command_ID ID of command.

     * @param data_1 First byte of command data (according to Pelco-D specification).

     * @param data_2 Second byte of command data (according to Pelco-D specification).

     * @return true If the command has been encoded.

     * @return false In case any errors.

     */

    bool GetCommand(

        uint8_t* packet,

        uint8_t address,

        pelco::PelcoDCommands command_ID,

        uint8_t data_1 = 0,

        uint8_t data_2 = 0);

};

命令I(lǐng)D在PelcoDProtocolParser.h文件的PelcoDCommands結(jié)構(gòu)中描述。結(jié)構(gòu)的字段名與Pelco-D協(xié)議規(guī)范相對應(yīng)。結(jié)構(gòu)聲明如下。

enum class PelcoDCommands

{

    // Main commands.

    CAMERA_ON,

    CAMERA_OFF,

    IRIS_CLOSE,

    IRIS_OPEN,

    FOCUS_NEAR,

    FOCUS_FAR,

    FOCUS_STOP,

    ZOOM_WIDE,

    ZOOM_TELE,

    ZOOM_STOP,

    DOWN,

    UP,

    LEFT,

    RIGHT,

    UP_RIGHT,

    UP_LEFT,

    DOWN_RIGHT,

    DOWN_LEFT,

    STOP,

    // Extended commands.

    SET_PRESET,

    CLEAR_PRESET,

    GO_TO_PRESET,

    FLIP_180DEG_ABOUT,

    GO_TO_ZERO_PAN,

    SET_AUXILIARY,

    CLEAR_AUXILIARY,

    REMOTE_RESET,

    SET_ZONE_START,

    SET_ZONE_END,

    WRITE_CHAR_TO_SCREEN,

    CLEAR_SCREEN,

    ALARM_ACKNOWLEDGE,

    ZONE_SCAN_ON,

    ZONE_SCAN_OFF,

    SET_PATTERN_START,

    SET_PATTERN_STOP,

    RUN_PATTERN,

    SET_ZOOM_SPEED,

    SET_FOCUS_SPEED,

    RESET_CAMERA_TO_DEFAULT,

    AUTO_FOCUS_AUTO_ON_OFF,

    AUTO_IRIS_AUTO_ON_OFF,

    AGC_AUTO_ON_OFF,

    BACKLIGHT_COMPENSATION_ON_OFF,

    AUTO_WHITE_BALANCE_ON_OFF,

    ENABLE_DEVICE_PHASE_DELAY_MODE,

    SET_SHUTTER_SPEED,

    ADJUST_LINE_LOCK_PHASE_DELAY,

    ADJUST_WHITE_BALANCE_R_B,

    ADJUST_WHITE_BALANCE_M_G,

    ADJUST_GAIN,

    ADJUST_AUTO_IRIS_LEVEL,

    ADJUST_AUTO_IRIS_PEACK_VALUE,

    QUERY

};

命令編碼示例

下面是平臺停止命令和放大命令的示例。

// Init variables.

uint8_t packet[7];

uint8_t camera_address = 1;

// STOP camera and PTU.

if (pelco_protocol_parser.GetCommand(packet, camera_address, pelco::PelcoDCommands::STOP))

{

    // Send command.

    tcp_port.SendData(packet, 7);

    serial_port.SendData(packet, 7);

}

// Zoom tele.

if (pelco_protocol_parser.GetCommand(packet, camera_address, pelco::PelcoDCommands::ZOOM_TELE))

{

    // Send command.

    tcp_port.SendData(packet, 7);

    serial_port.SendData(packet, 7);

}

演示應(yīng)用程序

文件夾Pelco_D_ProtocolParser->PelcoDProtocolParserTests包含演示應(yīng)用程序文件(PelcoDDemoApplication)。應(yīng)用程序在啟動后讀取PelcoDemoApplication.json參數(shù)文件,該文件包含視頻源參數(shù)和攝像頭或云臺的連接參數(shù)。應(yīng)用程序可以通過串行端口或TCP連接控制攝像頭或云臺。配置文件的內(nèi)容如下所示。

{

    "Video_Source_Params":

    {

        "video_source_init_string":"0"

    },


    "Communication_Params":

    {

        "camera_IP":"127.0.0.1",

        "TCP_port":5600,

        "serial_port_name":"/dev/tty0",

        "serial_port_baudrate":115200,

        "camera_address":1,

        "max_PTU_speed":63

    }

}

應(yīng)用程序可以從視頻文件捕獲視頻(例如:video\u source\u init\u string:“test.mp4”),也可以捕獲RTP視頻流(例如:video\u source\u init\u string:)rtp://xxx.xxx.xxx.xxx:1234)或可以從網(wǎng)絡(luò)攝像機捕獲視頻(例如:視頻\源\初始\字符串:“0”)?!巴ㄐ艆?shù)”部分包含與攝像頭或云臺連接的參數(shù)。如果要通過TCP連接進行控制,必須在配置文件中設(shè)置正確的TCP端口(TCP_端口字段)和設(shè)備IP地址(攝像頭_IP字段)。如果不需要TCP連接,則將字段TCP_端口值設(shè)置為-1。要通過串行端口進行控制,需要設(shè)置串行端口名稱(串行端口名稱字段)和波特率(串行端口波特率字段)。攝像頭地址字段定義通過Pelco-D協(xié)議控制的攝像頭或平臺的名稱。max_PTU_speed(最大速度)字段定義了最大云臺速度(根據(jù)Pelco-D協(xié)議,最大速度不得超過63)。啟動演示應(yīng)用程序并初始化參數(shù)后,軟件將在單獨的窗口中顯示視頻。該應(yīng)用程序使用OpenCV庫捕獲和顯示視頻。要編譯演示應(yīng)用程序,必須在操作系統(tǒng)中指定OpenCV庫的路徑。演示應(yīng)用程序的用戶界面如下所示。

【E2450】Pelco-D協(xié)議解析器

用戶界面由一個視頻顯示窗口組成,其中包含疊加信息:從視頻中心到鼠標(biāo)指針位置的一條線,以及對程序控制按鈕的提示。用戶可以使用鼠標(biāo)控制相機旋轉(zhuǎn)。要執(zhí)行此操作,請在視頻窗口中的任意位置單擊鼠標(biāo)左鍵。根據(jù)鼠標(biāo)指針的位置,將生成具有所需速度的旋轉(zhuǎn)命令(根據(jù)配置文件中的max_PTU_speed字段,在視頻邊緣速度將為最大,在中心速度將為最?。S脩暨€可以使用鍵盤按鈕控制相機:1-相機打開2-相機關(guān)閉3-近焦4-遠焦5-變焦寬6-變焦D-右移(定速)A-左移(定速)W-上移(定速)X-下移(定速)Q-上移左移(定速)E-上移右移(定速)Z-下移左移(定速)C-右下移動(定速)

目錄│文件列表:

 └ Pelco_D_ProtocolParser

    │ CMakeLists.txt

    ├ PelcoDProtocolParser

    │  │ CMakeLists.txt

    │  └ src

    │     │ CMakeLists.txt

    │     │ PelcoDProtocolParser.cpp

    │     └ PelcoDProtocolParser.h

    ├ PelcoDProtocolParserTests

    │  │ CMakeLists.txt

    │  └ PelcoDDemoApplication

    │     │ CMakeLists.txt

    │     │ json.hpp

    │     │ main.cpp

    │     │ PelcoDDemoApplication.json

    │     │ SerialPort.cpp

    │     │ SerialPort.h

    │     │ TCPPort.cpp

    │     └ TCPPort.h

    └ _static

       │ pelco-d_logo_with_borders.png

       └ user_interface.png

TAGPelco-D
  • 4 次
  • 15 分