|
|
@@ -1973,6 +1973,73 @@ static void mavlink_test_qingxie_bms(uint8_t system_id, uint8_t component_id, ma
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+static void mavlink_test_shangfei_bms(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
|
|
|
+{
|
|
|
+#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
|
|
|
+ mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
|
|
|
+ if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SHANGFEI_BMS >= 256) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ mavlink_message_t msg;
|
|
|
+ uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
|
|
|
+ uint16_t i;
|
|
|
+ mavlink_shangfei_bms_t packet_in = {
|
|
|
+ 963497464,17443,17547,17651,163,230,41,108,175
|
|
|
+ };
|
|
|
+ mavlink_shangfei_bms_t packet1, packet2;
|
|
|
+ memset(&packet1, 0, sizeof(packet1));
|
|
|
+ packet1.time_boot_ms = packet_in.time_boot_ms;
|
|
|
+ packet1.bat_voltage = packet_in.bat_voltage;
|
|
|
+ packet1.bat_current = packet_in.bat_current;
|
|
|
+ packet1.hvb_voltage = packet_in.hvb_voltage;
|
|
|
+ packet1.bat_maxtemp = packet_in.bat_maxtemp;
|
|
|
+ packet1.cap_percent = packet_in.cap_percent;
|
|
|
+ packet1.bat_id = packet_in.bat_id;
|
|
|
+ packet1.err_code = packet_in.err_code;
|
|
|
+ packet1.hvb_temp = packet_in.hvb_temp;
|
|
|
+
|
|
|
+
|
|
|
+#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
|
|
|
+ if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
|
|
|
+ // cope with extensions
|
|
|
+ memset(MAVLINK_MSG_ID_SHANGFEI_BMS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SHANGFEI_BMS_MIN_LEN);
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ memset(&packet2, 0, sizeof(packet2));
|
|
|
+ mavlink_msg_shangfei_bms_encode(system_id, component_id, &msg, &packet1);
|
|
|
+ mavlink_msg_shangfei_bms_decode(&msg, &packet2);
|
|
|
+ MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
|
|
|
+
|
|
|
+ memset(&packet2, 0, sizeof(packet2));
|
|
|
+ mavlink_msg_shangfei_bms_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.bat_voltage , packet1.bat_current , packet1.bat_maxtemp , packet1.cap_percent , packet1.bat_id , packet1.err_code , packet1.hvb_voltage , packet1.hvb_temp );
|
|
|
+ mavlink_msg_shangfei_bms_decode(&msg, &packet2);
|
|
|
+ MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
|
|
|
+
|
|
|
+ memset(&packet2, 0, sizeof(packet2));
|
|
|
+ mavlink_msg_shangfei_bms_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.bat_voltage , packet1.bat_current , packet1.bat_maxtemp , packet1.cap_percent , packet1.bat_id , packet1.err_code , packet1.hvb_voltage , packet1.hvb_temp );
|
|
|
+ mavlink_msg_shangfei_bms_decode(&msg, &packet2);
|
|
|
+ MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
|
|
|
+
|
|
|
+ memset(&packet2, 0, sizeof(packet2));
|
|
|
+ mavlink_msg_to_send_buffer(buffer, &msg);
|
|
|
+ for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
|
|
|
+ comm_send_ch(MAVLINK_COMM_0, buffer[i]);
|
|
|
+ }
|
|
|
+ mavlink_msg_shangfei_bms_decode(last_msg, &packet2);
|
|
|
+ MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
|
|
|
+
|
|
|
+ memset(&packet2, 0, sizeof(packet2));
|
|
|
+ mavlink_msg_shangfei_bms_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.bat_voltage , packet1.bat_current , packet1.bat_maxtemp , packet1.cap_percent , packet1.bat_id , packet1.err_code , packet1.hvb_voltage , packet1.hvb_temp );
|
|
|
+ mavlink_msg_shangfei_bms_decode(last_msg, &packet2);
|
|
|
+ MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
|
|
|
+
|
|
|
+#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
|
|
|
+ MAVLINK_ASSERT(mavlink_get_message_info_by_name("SHANGFEI_BMS") != NULL);
|
|
|
+ MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SHANGFEI_BMS) != NULL);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
static void mavlink_test_VKFly(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
|
|
|
{
|
|
|
mavlink_test_vkins_status(system_id, component_id, last_msg);
|
|
|
@@ -2004,6 +2071,7 @@ static void mavlink_test_VKFly(uint8_t system_id, uint8_t component_id, mavlink_
|
|
|
mavlink_test_vk_cacc_manager_verify(system_id, component_id, last_msg);
|
|
|
mavlink_test_fmub_status(system_id, component_id, last_msg);
|
|
|
mavlink_test_qingxie_bms(system_id, component_id, last_msg);
|
|
|
+ mavlink_test_shangfei_bms(system_id, component_id, last_msg);
|
|
|
}
|
|
|
|
|
|
#ifdef __cplusplus
|