⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppmain.cxx.bak

📁 Pelco_p协议c++实现
💻 BAK
字号:
#include "Pelco_p.hxx"

//RATE:38400, 19200, 9600, 4800, 2400, 1200, 300
//DATABITS:7/8
//STOPBITS:1/2
//PARITY:N,E,O,S


#define  RATE      4800
#define  DATABITS   8
#define  STOPBITS   1
#define  PARITY     'S'
#define  ADDRESS    1
#define  LEN        8
int main(void)
{
    CPelco_p pelco; 
    PELCO_P_S *proto;
    PELCO_P_S stroto;
    proto = &stroto;
    if(NULL == proto)
    {
      return 0;
    }
    pelco.Init();
    pelco.OpenCOM();
    pelco.set_speed(RATE);
    if(!pelco.set_Parity(DATABITS,STOPBITS,PARITY))
    {
        printf("error set parity!\n");
    }

    //水平向左PPANLEFT
    pelco.CameraPan(proto,ADDRESS,PPANLEFT,PPANSPEEDMAX);
    int iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
        printf("camerapan send data false!\n");
    }
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
     
    pelco.CameraPan(proto,ADDRESS,PPANLEFT,PPANSPEEDMIN);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
        printf("camerapan send data false!\n");
    }
       printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    /*
    //水平向右PPANRIGHT 
    pelco.CameraPan(proto,ADDRESS,PPANRIGHT,PPANSPEEDMAX);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
        printf("camerapan send data false!\n");
    }
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraPan(proto,ADDRESS,PPANRIGHT,PPANSPEEDMIN);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
        printf("camerapan send data false!\n");
    }
    //垂直向上PTILTUP
    pelco.CameraTilt(proto,ADDRESS,PTILTUP,PTILTSPEEDMAX);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
         printf("camerapan send data false!\n");
    }
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraTilt(proto,ADDRESS,PTILTUP,PTILTSPEEDMIN);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
         printf("camerapan send data false!\n");
    }
    //垂直向下PTILTDOWN 
    pelco.CameraTilt(proto,ADDRESS,PTILTDOWN,PTILTSPEEDMAX);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
         printf("camerapan send data false!\n");
    }
    pelco.CameraTilt(proto,ADDRESS,PTILTDOWN,PTILTSPEEDMIN);
    iRet = pelco.SendData(proto,LEN);
    if(-1 == iRet)
    {
         printf("camerapan send data false!\n");
    }
    //向左上
    pelco.CameraPanTilt(proto,ADDRESS,PPANLEFT,PPANSPEEDMAX,PTILTUP,PTILTSPEEDMAX);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraPanTilt(proto,ADDRESS,PPANLEFT,PPANSPEEDMIN,PTILTUP,PTILTSPEEDMIN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    //向右上
    pelco.CameraPanTilt(proto,ADDRESS,PPANRIGHT,PPANSPEEDMAX,PTILTUP,PTILTSPEEDMAX);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraPanTilt(proto,ADDRESS,PPANRIGHT,PPANSPEEDMIN,PTILTUP,PTILTSPEEDMIN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    //向左下
    pelco.CameraPanTilt(proto,ADDRESS,PPANLEFT,PPANSPEEDMAX,PTILTDOWN,PTILTSPEEDMAX);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraPanTilt(proto,ADDRESS,PPANLEFT,PPANSPEEDMIN,PTILTDOWN,PTILTSPEEDMIN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
     //向右下
    pelco.CameraPanTilt(proto,ADDRESS,PPANRIGHT,PPANSPEEDMAX,PTILTDOWN,PTILTSPEEDMAX);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    pelco.CameraPanTilt(proto,ADDRESS,PPANRIGHT,PPANSPEEDMIN,PTILTDOWN,PTILTSPEEDMIN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    //摄像机打开 On
    pelco.CameraSwitch(proto,ADDRESS,ON);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //摄像机关闭 OFF
    pelco.CameraSwitch(proto,ADDRESS,OFF);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //焦距拉远pFocusFar
    pelco.CameraFocus(proto,ADDRESS,PFOCUSFAR);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //焦距拉远pFocusNear
    pelco.CameraFocus(proto,ADDRESS,PFOCUSNEAR);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //视野变宽  pZoomWide
    pelco.CameraZoom(proto,ADDRESS,PZOOMWIDE);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //视野变窄 pZoomTele
    pelco.CameraZoom(proto,ADDRESS,PZOOMTELE);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //光圈变大  pIrisOpen
    pelco.CameraIrisSwitch(proto,ADDRESS,PIRISOPEN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //光圈变小 pIrisClose
    pelco.CameraIrisSwitch(proto,ADDRESS,PIRISCLOSE);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //自动手动扫描 ScanAuto
    pelco.CameraScan(proto,ADDRESS,AUTOSCAN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //自动手动扫描 ScanManual
    pelco.CameraScan(proto,ADDRESS,MANUALSCAN);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //设置预置位PreSet
    //preset:01-20
    byte preset = 0x01;
    pelco.Preset(proto,ADDRESS,preset,PRESET);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //清除预值位PreClear 
    //preset:01-20
    pelco.Preset(proto,ADDRESS,preset,PRECLEAR);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
    //转到预置位PreGoto
    //preset:01-20
    pelco.Preset(proto,ADDRESS,preset,PREGOTO);
    pelco.SendData(proto,sizeof(Pelco_p_Stru));
    printf("%x,%x,%x,%x,%x,%x,%x,%x\n",proto->STX,proto->Address,
       proto->Data1,proto->Data2,proto->Data3,
       proto->Data4,proto->ETX,proto->CheckSum);
       */
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -