|
|
|
@ -1130,7 +1130,7 @@ void testComm()
|
|
|
|
|
CameraPhotoCmd(time(NULL), 1, 0, 6, 1, "/dev/ttyS1",38400, 1);
|
|
|
|
|
sleep(5);
|
|
|
|
|
|
|
|
|
|
CameraPhotoCmd(time(NULL), 1, 10017, 0, 2, "/dev/ttyS1",38400, 1);
|
|
|
|
|
CameraPhotoCmd(time(NULL), 1, MOVE_PRESETNO, 0, 2, "/dev/ttyS1",38400, 1);
|
|
|
|
|
sleep(5);
|
|
|
|
|
|
|
|
|
|
CameraPhotoCmd(0, 1, MOVE_LEFT, 0, 0, "/dev/ttyS1",38400, 1);
|
|
|
|
@ -1141,7 +1141,7 @@ void testComm()
|
|
|
|
|
sleep(5);
|
|
|
|
|
CameraPhotoCmd(0, 1, MOVE_UP, 0, 0, "/dev/ttyS1",38400, 1);
|
|
|
|
|
sleep(5);
|
|
|
|
|
CameraPhotoCmd(0, 1, 10017, 0, 1, "/dev/ttyS1",38400, 1);
|
|
|
|
|
CameraPhotoCmd(0, 1, MOVE_PRESETNO, 0, 1, "/dev/ttyS1",38400, 1);
|
|
|
|
|
sleep(5);
|
|
|
|
|
sleep(5);
|
|
|
|
|
//CameraPhotoCmd(0, 1, ZOOM_WIDE, 0, 0);
|
|
|
|
@ -1306,16 +1306,16 @@ void GM_StartSerialComm()
|
|
|
|
|
for (i = 0; i < MAX_SERIAL_DEV_NUM; i++)
|
|
|
|
|
{
|
|
|
|
|
memset(srdt.ms_dev[i].aiValue, 0, sizeof(AI_DEF)*MAX_DEV_VALUE_NUM);
|
|
|
|
|
memset(weatherpntmsg, 0, sizeof(AI_DEF)*WEATHER_DATA_NUM);
|
|
|
|
|
if (0 == devparam[i].IsNoInsta)
|
|
|
|
|
{
|
|
|
|
|
srdt.ms_dev[i].IsNeedSerial = 0;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
memset(szbuf, 0, sizeof(szbuf));
|
|
|
|
|
switch (devparam[i].ProtocolIdx)
|
|
|
|
|
{
|
|
|
|
|
case WEATHER_PROTOCOL: // 气象
|
|
|
|
|
memset(weatherpntmsg, 0, sizeof(AI_DEF)*WEATHER_DATA_NUM);
|
|
|
|
|
memset(szbuf, 0, sizeof(szbuf));
|
|
|
|
|
sprintf(szbuf, "%s", "气象");
|
|
|
|
|
srdt.ms_dev[i].IsNeedSerial = 1;
|
|
|
|
|
srdt.ms_dev[i].FirstCmdTimeCnt = get_msec();
|
|
|
|
@ -1324,6 +1324,8 @@ void GM_StartSerialComm()
|
|
|
|
|
{
|
|
|
|
|
srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE;
|
|
|
|
|
weatherpntmsg[j].AiState = SER_STARTSAMPLE;
|
|
|
|
|
sprintf(logbuf, "init weather_state%d=%d", j, weatherpntmsg[j].AiState);
|
|
|
|
|
DebugLog(8, logbuf, 'I');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case RALLY_PROTOCOL: /* 拉力*/
|
|
|
|
@ -1335,6 +1337,8 @@ void GM_StartSerialComm()
|
|
|
|
|
srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE;
|
|
|
|
|
break;
|
|
|
|
|
case WIND_PROTOCOL: /* 风速风向*/
|
|
|
|
|
memset(weatherpntmsg, 0, sizeof(AI_DEF)*WEATHER_DATA_NUM);
|
|
|
|
|
memset(szbuf, 0, sizeof(szbuf));
|
|
|
|
|
sprintf(szbuf, "%s", "风速风向");
|
|
|
|
|
srdt.ms_dev[i].IsNeedSerial = 1;
|
|
|
|
|
srdt.ms_dev[i].FirstCmdTimeCnt = get_msec();
|
|
|
|
@ -1342,6 +1346,8 @@ void GM_StartSerialComm()
|
|
|
|
|
{
|
|
|
|
|
srdt.ms_dev[i].aiValue[j].AiState = SER_STARTSAMPLE;
|
|
|
|
|
weatherpntmsg[j].AiState = SER_STARTSAMPLE;
|
|
|
|
|
sprintf(logbuf, "init weather_state%d=%d", j, weatherpntmsg[j].AiState);
|
|
|
|
|
DebugLog(8, logbuf, 'I');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case SLANT_PROTOCOL: /* 倾角*/
|
|
|
|
@ -1535,12 +1541,17 @@ void GM_IsCloseSensors()
|
|
|
|
|
else if (SER_SAMPLE == srdt.ms_dev[i].aiValue[j].AiState)
|
|
|
|
|
srdt.ms_dev[i].aiValue[j].AiState = SAMPLINGSUCCESS;
|
|
|
|
|
}
|
|
|
|
|
if((devparam[i].ProtocolIdx == WIND_PROTOCOL) || (WEATHER_PROTOCOL == devparam[i].ProtocolIdx))
|
|
|
|
|
{
|
|
|
|
|
for (j = 0; j < WEATHER_DATA_NUM; j++)
|
|
|
|
|
{
|
|
|
|
|
if (SER_STARTSAMPLE == weatherpntmsg[j].AiState)
|
|
|
|
|
weatherpntmsg[j].AiState = SER_SAMPLEFAIL;
|
|
|
|
|
else if (SER_SAMPLE == weatherpntmsg[j].AiState)
|
|
|
|
|
weatherpntmsg[j].AiState = SAMPLINGSUCCESS;
|
|
|
|
|
sprintf(buf, "over weather_state%d=%d", j, weatherpntmsg[j].AiState);
|
|
|
|
|
DebugLog(8, buf, 'I');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -2254,7 +2265,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
}
|
|
|
|
|
switch (cmdno)
|
|
|
|
|
{
|
|
|
|
|
case 0:/* 下发拍照指令*/
|
|
|
|
|
case Take_Photo:/* 下发拍照指令*/
|
|
|
|
|
if (lcurtime - pPortParam->FirstCmdTimeCnt < 3800)
|
|
|
|
|
return -1;
|
|
|
|
|
if ((lcurtime - pPortParam->FirstCmdTimeCnt > 3 * 35 * 1000) || (lcurtime - pPortParam->FirstCmdTimeCnt < 0))
|
|
|
|
@ -2281,7 +2292,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
imagesize = srdt.bImageSize;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 10000: /* 下发设置串口波特率命令*/
|
|
|
|
|
case SET_BAUD: /* 下发设置串口波特率命令*/
|
|
|
|
|
#if 0
|
|
|
|
|
switch (devparam[devidx].baudrate)
|
|
|
|
|
{
|
|
|
|
@ -2329,7 +2340,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
packetsize = (uint16_t)MAX_PHOTO_FRAME_LEN;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 10005: /* 关闭功能*/
|
|
|
|
|
case STOP_CMD: /* 关闭功能*/
|
|
|
|
|
//Gm_CtrlPtzCmd(1, P_MOVE_LEFT);
|
|
|
|
|
//sleep(2);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2338,25 +2349,25 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
//sleep(20);
|
|
|
|
|
return 1;
|
|
|
|
|
case 10006: /* 自动扫描功能控制(1/0 打开/关闭该功能)*/
|
|
|
|
|
case AUTO_SCAN: /* 自动扫描功能控制(1/0 打开/关闭该功能)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_Auto_Scan);
|
|
|
|
|
usleep(100000);
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10007: /* 光圈缩小(1 有效)*/
|
|
|
|
|
case IRIS_CLOSE: /* 光圈缩小(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_IRIS_CLOSE);
|
|
|
|
|
usleep(100000);
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10008: /* 光圈放大(1 有效)*/
|
|
|
|
|
case IRIS_OPEN: /* 光圈放大(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_IRIS_OPEN);
|
|
|
|
|
usleep(100000);
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10009: /* 近距离聚焦(1 有效)*/
|
|
|
|
|
case FOCUS_NEAR: /* 近距离聚焦(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_FOCUS_NEAR);
|
|
|
|
|
usleep(500000);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2364,7 +2375,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10010: /* 远距离聚焦(1 有效)*/
|
|
|
|
|
case FOCUS_FAR: /* 远距离聚焦(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_FOCUS_FAR);
|
|
|
|
|
usleep(500000);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2372,7 +2383,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10011: /* 远离物体(1 有效)*/
|
|
|
|
|
case ZOOM_WIDE: /* 远离物体(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_ZOOM_WIDE);
|
|
|
|
|
usleep(500000);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2380,7 +2391,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10012: /* 接近物体(1 有效)*/
|
|
|
|
|
case ZOOM_TELE: /* 接近物体(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_ZOOM_TELE);
|
|
|
|
|
usleep(500000);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2388,7 +2399,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10013: /* 向下移动镜头(1 有效)*/
|
|
|
|
|
case MOVE_DOWN: /* 向下移动镜头(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_MOVE_DOWN);
|
|
|
|
|
sleep(1);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2396,7 +2407,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10014: /* 向上移动镜头(1 有效)*/
|
|
|
|
|
case MOVE_UP: /* 向上移动镜头(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_MOVE_UP);
|
|
|
|
|
sleep(1);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2404,7 +2415,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10015: /* 向左移动镜头(1 有效)*/
|
|
|
|
|
case MOVE_LEFT: /* 向左移动镜头(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_MOVE_LEFT);
|
|
|
|
|
sleep(1);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2412,7 +2423,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10016: /* 向右移动镜头(1 有效)*/
|
|
|
|
|
case MOVE_RIGHT: /* 向右移动镜头(1 有效)*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, P_MOVE_RIGHT);
|
|
|
|
|
sleep(1);
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, Cmd_Cancel);
|
|
|
|
@ -2420,13 +2431,13 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10017: /* 调用预置点*/
|
|
|
|
|
case MOVE_PRESETNO: /* 调用预置点*/
|
|
|
|
|
//srdt.presetno = 2;
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, MOVE_TO_PRESETNO + srdt.presetno);
|
|
|
|
|
sleep(2);
|
|
|
|
|
if (0 == srdt.IsSleep)
|
|
|
|
|
{
|
|
|
|
|
pPortParam->SerialCmdidx = 10017;
|
|
|
|
|
pPortParam->SerialCmdidx = MOVE_PRESETNO;
|
|
|
|
|
srdt.IsSleep++;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
@ -2434,7 +2445,7 @@ int FindNextCameraPhotoCommand(SIO_PARAM_SERIAL_DEF *pPortParam)
|
|
|
|
|
srdt.iLastGetPhotoNo = -1;
|
|
|
|
|
srdt.IsSleep = 0;
|
|
|
|
|
return 1;
|
|
|
|
|
case 10018: /* 设置预置点*/
|
|
|
|
|
case SAVE_PRESETNO: /* 设置预置点*/
|
|
|
|
|
Gm_CtrlPtzCmd(pPortParam, SET_PRESETNO + srdt.presetno);
|
|
|
|
|
usleep(100000);
|
|
|
|
|
pPortParam->SerialCmdidx = srdt.iLastGetPhotoNo;
|
|
|
|
@ -2769,7 +2780,7 @@ uint8_t Gm_Pelco_DCheck(uint8_t *msg, int len)
|
|
|
|
|
**********************************************************************************/
|
|
|
|
|
int FindNextShxyProtocolCommand(int devidx)
|
|
|
|
|
{
|
|
|
|
|
int cmdno = 1;
|
|
|
|
|
int cmdno = 0;
|
|
|
|
|
|
|
|
|
|
//如果命令缓冲区仍有命令,则退出本函数
|
|
|
|
|
if ((devparam[devidx].commid + 1 < 1) || (devparam[devidx].commid + 1 > MAX_SERIAL_PORT_NUM))
|
|
|
|
@ -3098,8 +3109,8 @@ void ShxyProtocolDataProcess(int devno)
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pPortParam->aiValue[AirTempNo].EuValue = fvalue;/*pPortParam->aiValue[0].AiParam.fFactor + pPortParam->aiValue[0].AiParam.EuValueDelta;*/
|
|
|
|
|
weatherpntmsg[AirTempNo].EuValue = fvalue;/*weatherpntmsg[AirTempNo].AiParam.fFactor + weatherpntmsg[AirTempNo].AiParam.EuValueDelta;*/
|
|
|
|
|
pPortParam->aiValue[AirTempNo].EuValue = fvalue;
|
|
|
|
|
weatherpntmsg[AirTempNo].EuValue = fvalue;
|
|
|
|
|
}
|
|
|
|
|
pPortParam->aiValue[AirTempNo].AiState = SER_SAMPLE;
|
|
|
|
|
weatherpntmsg[AirTempNo].AiState = SER_SAMPLE;
|
|
|
|
@ -3119,8 +3130,8 @@ void ShxyProtocolDataProcess(int devno)
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pPortParam->aiValue[AtmosNo].EuValue = fvalue;/*pPortParam->aiValue[5].AiParam.fFactor + pPortParam->aiValue[5].AiParam.EuValueDelta;*/
|
|
|
|
|
weatherpntmsg[AtmosNo].EuValue = fvalue;/*weatherpntmsg[AtmosNo].AiParam.fFactor + weatherpntmsg[AtmosNo].AiParam.EuValueDelta;*/
|
|
|
|
|
pPortParam->aiValue[AtmosNo].EuValue = fvalue;
|
|
|
|
|
weatherpntmsg[AtmosNo].EuValue = fvalue;
|
|
|
|
|
}
|
|
|
|
|
pPortParam->aiValue[AtmosNo].AiState = SER_SAMPLE;
|
|
|
|
|
weatherpntmsg[AtmosNo].AiState = SER_SAMPLE;
|
|
|
|
@ -3817,7 +3828,7 @@ int GetWeatherData(Data_DEF *data, int datano)
|
|
|
|
|
sprintf(szbuf, "大气压");
|
|
|
|
|
break;
|
|
|
|
|
case OpticalRadiationNo:
|
|
|
|
|
sprintf(szbuf, "大气压");
|
|
|
|
|
sprintf(szbuf, "日照");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
sprintf(szbuf, "未知");
|
|
|
|
|