|
|
|
@ -154,14 +154,14 @@ bool AC_ZR_Serial_API::check_uart(AP_HAL::UARTDriver *_port)
@@ -154,14 +154,14 @@ bool AC_ZR_Serial_API::check_uart(AP_HAL::UARTDriver *_port)
|
|
|
|
|
uint8_t newlen = pktoffset - (p - pktbuf); |
|
|
|
|
memmove(&pktbuf[0], p, newlen); |
|
|
|
|
pktoffset = newlen; |
|
|
|
|
Debug("move msg:%d",newlen); |
|
|
|
|
// Debug("move msg:%d",newlen);
|
|
|
|
|
} else { |
|
|
|
|
// pktoffset = 0;
|
|
|
|
|
goto reset; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (pktbuf[0] != 0xFE) { |
|
|
|
|
Debug("no head:%d",pktoffset); |
|
|
|
|
// Debug("no head:%d",pktoffset);
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -170,7 +170,7 @@ bool AC_ZR_Serial_API::check_uart(AP_HAL::UARTDriver *_port)
@@ -170,7 +170,7 @@ bool AC_ZR_Serial_API::check_uart(AP_HAL::UARTDriver *_port)
|
|
|
|
|
// got pkt1
|
|
|
|
|
memcpy(flight_control_parser.data,pktbuf,CONTROL_DATA_LEN); // 收到一帧数据
|
|
|
|
|
control_data_last_time = AP_HAL::millis(); |
|
|
|
|
Debug(" %ld-get msg,ofs:%d ",control_data_last_time,pktoffset); |
|
|
|
|
// Debug(" %ld-get msg,ofs:%d ",control_data_last_time,pktoffset);
|
|
|
|
|
// process_packet(pktbuf);
|
|
|
|
|
memmove(&pktbuf[0], &pktbuf[CONTROL_DATA_LEN], pktoffset-CONTROL_DATA_LEN); |
|
|
|
|
pktoffset -= CONTROL_DATA_LEN; |
|
|
|
@ -266,6 +266,7 @@ void AC_ZR_Serial_API::get_vehicle_euler_angles(Vector3f euler)
@@ -266,6 +266,7 @@ void AC_ZR_Serial_API::get_vehicle_euler_angles(Vector3f euler)
|
|
|
|
|
|
|
|
|
|
void AC_ZR_Serial_API::get_vehicle_status(uint8_t mode,uint8_t in_air,uint32_t home_distance,uint16_t volt_mv,uint8_t bat_remaining) |
|
|
|
|
{ |
|
|
|
|
return; // for test ,don't send
|
|
|
|
|
flight_mode = mode; |
|
|
|
|
|
|
|
|
|
static uint8_t delay_cnt; |
|
|
|
@ -370,7 +371,7 @@ bool AC_ZR_Serial_API::get_control_data(uint8_t mode, ZR_Msg_Type &type,Vector3l
@@ -370,7 +371,7 @@ bool AC_ZR_Serial_API::get_control_data(uint8_t mode, ZR_Msg_Type &type,Vector3l
|
|
|
|
|
return false; // 校验失败
|
|
|
|
|
} |
|
|
|
|
type = flight_control_parser.msg.type; |
|
|
|
|
if(type < ZR_Msg_Type::MSG_CONTROL_TKOFF || type > ZR_Msg_Type::MSG_CONTROL_VEL ){ |
|
|
|
|
if(type < ZR_Msg_Type::MSG_CONTROL_TKOFF || type > ZR_Msg_Type::MSG_CONTROL_VEL_P ){ |
|
|
|
|
set_control_ask(flight_control_parser.msg.msg_id,flight_control_parser.msg.type,ZR_Msg_ASK::MSG_ASK_ERRTYPE); // 应答控制类型错误
|
|
|
|
|
return false; // 控制类型错误
|
|
|
|
|
} |
|
|
|
|