Compare commits
2 Commits
b71ec8611b
...
21b229c119
Author | SHA1 | Date |
---|---|---|
|
21b229c119 | |
|
b4f60be16a |
|
@ -2,3 +2,4 @@
|
|||
PROJECT/Debug/
|
||||
PROJECT/Release/
|
||||
PROJECT/settings/
|
||||
*.ewp
|
|
@ -124,8 +124,9 @@ void ptz_reply(char dev, unsigned char type)
|
|||
break;
|
||||
|
||||
case CMD_WRONG://指令错误
|
||||
ptz_send_data(dev, reply_wrong, sizeof(reply_wrong));
|
||||
|
||||
if (dev != PTZ_UART_485) {
|
||||
ptz_send_data(dev, reply_wrong, sizeof(reply_wrong));
|
||||
}
|
||||
break;
|
||||
|
||||
case CMD_FAIL://指令正确,但执行失败
|
||||
|
@ -2200,41 +2201,47 @@ static void ptz_uart_485_data_process_task()
|
|||
//判断有无数据
|
||||
if(ptz_uart_dev_char_present(uart_485_handle) == 0)
|
||||
{
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 1u);//等待一段时间
|
||||
uart_485_timer ++;
|
||||
if(uart_485_timer > PTZ_UART_RECV_OVERTIME)
|
||||
{//接收超时,说明一帧数据接收完成
|
||||
break;
|
||||
}
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 3u);//等待一段时间
|
||||
// uart_485_timer ++;
|
||||
// if(uart_485_timer > PTZ_UART_RECV_OVERTIME)
|
||||
// {//接收超时,说明一帧数据接收完成
|
||||
// break;
|
||||
// }
|
||||
if (ptz_uart_dev_char_present(uart_485_handle) == 0) {
|
||||
// break;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{//读取一个字节数据
|
||||
uart_485_buffer[uart_485_data_len] = ptz_uart_dev_in_char(uart_485_handle);
|
||||
uart_485_data_len++;
|
||||
uart_485_timer = 0;
|
||||
if(uart_485_data_len % 100 == 0 && uart_485_data_len > 0)
|
||||
{
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 2u);
|
||||
}
|
||||
if(uart_485_data_len >= 7)
|
||||
{
|
||||
if(ptz_data_pack_pelco_d_check(pack_pelco_d) == 1)
|
||||
{//成功读取一帧派尔高D协议或者自定义类似派尔高D协议,长度7字节
|
||||
break;
|
||||
// if(uart_485_data_len % 100 == 0 && uart_485_data_len > 0)
|
||||
// {
|
||||
// OSTimeDlyHMSM(0u, 0u, 0u, 2u);
|
||||
// }
|
||||
if(uart_485_data_len >= 7) {
|
||||
if(ptz_data_pack_pelco_d_check(pack_pelco_d) == 1) {//成功读取一帧派尔高D协议或者自定义类似派尔高D协议,长度7字节
|
||||
break;
|
||||
}
|
||||
else {
|
||||
memcpy(uart_485_buffer, uart_485_buffer + 1, uart_485_data_len);
|
||||
uart_485_data_len = uart_485_data_len - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(uart_485_data_len >= (sizeof(PTZ_DATA_PACK_A) + sizeof(unsigned int)))
|
||||
{
|
||||
ptz_reply(uart_485_handle, CMD_WRONG);
|
||||
if(ptz_data_pack_a_check(pack_a) == 1)
|
||||
{//成功读取一帧自定义超长度协议
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(uart_485_data_len >= PTZ_UART_485_BUFF_SIZE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
// if(uart_485_data_len >= (sizeof(PTZ_DATA_PACK_A) + sizeof(unsigned int)))
|
||||
// {
|
||||
// ptz_reply(uart_485_handle, CMD_WRONG);
|
||||
// if(ptz_data_pack_a_check(pack_a) == 1)
|
||||
// {//成功读取一帧自定义超长度协议
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if(uart_485_data_len >= PTZ_UART_485_BUFF_SIZE)
|
||||
// {
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
}
|
||||
uart_485_timer = 0;
|
||||
|
@ -2243,22 +2250,27 @@ static void ptz_uart_485_data_process_task()
|
|||
//处理串口数据
|
||||
if(uart_485_state == PTZ_UART_HAND_STATE)
|
||||
{
|
||||
if(uart_485_data_len > 7)
|
||||
{//不定长数据处理,该数据每一帧都超过7个字节
|
||||
ptz_data_pack_a_process(PTZ_UART_485, (PTZ_DATA_PACK_A *)uart_485_buffer);
|
||||
// ptz_reply(PTZ_UART_485, CMD_WRONG);
|
||||
}
|
||||
else
|
||||
{//7个字节的派尔高D数据以及7个字节自定义类派尔高D数据处理
|
||||
ptz_data_pack_process(PTZ_UART_485, (PTZ_DATA_PACK *)uart_485_buffer);
|
||||
}
|
||||
// if(uart_485_data_len > 7)
|
||||
// {//不定长数据处理,该数据每一帧都超过7个字节
|
||||
// ptz_data_pack_a_process(PTZ_UART_485, (PTZ_DATA_PACK_A *)uart_485_buffer);
|
||||
// // ptz_reply(PTZ_UART_485, CMD_WRONG);
|
||||
// }
|
||||
// else
|
||||
// {//7个字节的派尔高D数据以及7个字节自定义类派尔高D数据处理
|
||||
// ptz_data_pack_process(PTZ_UART_485, (PTZ_DATA_PACK *)uart_485_buffer);
|
||||
// }
|
||||
ptz_data_pack_process(PTZ_UART_485, (PTZ_DATA_PACK *)uart_485_buffer);
|
||||
memset(uart_485_buffer, 0, sizeof(uart_485_buffer));
|
||||
uart_485_data_len = 0;
|
||||
uart_485_timer = 0;
|
||||
uart_485_state = PTZ_UART_FREE_STATE;
|
||||
}
|
||||
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 5u);
|
||||
error:
|
||||
// OSTimeDlyHMSM(0u, 0u, 0u, 2u);
|
||||
if (ptz_uart_dev_char_present(uart_485_handle) == 0) {
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 2u);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -471,6 +471,7 @@ static char ptz_motor_rotate_fault_detect_task()
|
|||
time_ms = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
if(g_ptz.vert_start_stop_set == PTZ_VERT_STOP)
|
||||
|
|
|
@ -716,11 +716,11 @@
|
|||
</option>
|
||||
<option>
|
||||
<name>OCOutputOverride</name>
|
||||
<state>1</state>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCOutputFile</name>
|
||||
<state>MW22_02A-3S24_STEP_V20-SV20_23120701.bin</state>
|
||||
<state>OS2.bin</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCCommandLineProducer</name>
|
||||
|
@ -823,7 +823,7 @@
|
|||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFile</name>
|
||||
<state>D:\psx\Pan-Tilt\1.software\HY\2.0 MW22-02A\BSP\IAR\GD32F450xE.icf</state>
|
||||
<state>D:\psx\Pan-Tilt\1.software\HY\2.0 MW22-02A\BSP\IAR\GD32F450xE_APP.icf</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFileSlave</name>
|
||||
|
|
Loading…
Reference in New Issue