RflySimSDK v3.05
RflySimSDK说明文档
载入中...
搜索中...
未找到
testsuite.h
浏览该文件的文档.
1
5#pragma once
6#ifndef UAVIONIX_TESTSUITE_H
7#define UAVIONIX_TESTSUITE_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#ifndef MAVLINK_TEST_ALL
14#define MAVLINK_TEST_ALL
15
16static void mavlink_test_uAvionix(uint8_t, uint8_t, mavlink_message_t *last_msg);
17
18static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
19{
20
21 mavlink_test_uAvionix(system_id, component_id, last_msg);
22}
23#endif
24
25
26
27
28static void mavlink_test_uavionix_adsb_out_cfg(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
29{
30#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
31 mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
32 if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_CFG >= 256) {
33 return;
34 }
35#endif
36 mavlink_message_t msg;
37 uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
38 uint16_t i;
39 mavlink_uavionix_adsb_out_cfg_t packet_in = {
40 963497464,17443,"GHIJKLMN",242,53,120,187,254
41 };
42 mavlink_uavionix_adsb_out_cfg_t packet1, packet2;
43 memset(&packet1, 0, sizeof(packet1));
44 packet1.ICAO = packet_in.ICAO;
45 packet1.stallSpeed = packet_in.stallSpeed;
46 packet1.emitterType = packet_in.emitterType;
47 packet1.aircraftSize = packet_in.aircraftSize;
48 packet1.gpsOffsetLat = packet_in.gpsOffsetLat;
49 packet1.gpsOffsetLon = packet_in.gpsOffsetLon;
50 packet1.rfSelect = packet_in.rfSelect;
51
52 mav_array_memcpy(packet1.callsign, packet_in.callsign, sizeof(char)*9);
53
54#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
55 if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
56 // cope with extensions
57 memset(MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_CFG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_CFG_MIN_LEN);
58 }
59#endif
60 memset(&packet2, 0, sizeof(packet2));
61 mavlink_msg_uavionix_adsb_out_cfg_encode(system_id, component_id, &msg, &packet1);
62 mavlink_msg_uavionix_adsb_out_cfg_decode(&msg, &packet2);
63 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
64
65 memset(&packet2, 0, sizeof(packet2));
66 mavlink_msg_uavionix_adsb_out_cfg_pack(system_id, component_id, &msg , packet1.ICAO , packet1.callsign , packet1.emitterType , packet1.aircraftSize , packet1.gpsOffsetLat , packet1.gpsOffsetLon , packet1.stallSpeed , packet1.rfSelect );
67 mavlink_msg_uavionix_adsb_out_cfg_decode(&msg, &packet2);
68 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
69
70 memset(&packet2, 0, sizeof(packet2));
71 mavlink_msg_uavionix_adsb_out_cfg_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ICAO , packet1.callsign , packet1.emitterType , packet1.aircraftSize , packet1.gpsOffsetLat , packet1.gpsOffsetLon , packet1.stallSpeed , packet1.rfSelect );
72 mavlink_msg_uavionix_adsb_out_cfg_decode(&msg, &packet2);
73 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
74
75 memset(&packet2, 0, sizeof(packet2));
76 mavlink_msg_to_send_buffer(buffer, &msg);
77 for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
78 comm_send_ch(MAVLINK_COMM_0, buffer[i]);
79 }
80 mavlink_msg_uavionix_adsb_out_cfg_decode(last_msg, &packet2);
81 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
82
83 memset(&packet2, 0, sizeof(packet2));
84 mavlink_msg_uavionix_adsb_out_cfg_send(MAVLINK_COMM_1 , packet1.ICAO , packet1.callsign , packet1.emitterType , packet1.aircraftSize , packet1.gpsOffsetLat , packet1.gpsOffsetLon , packet1.stallSpeed , packet1.rfSelect );
85 mavlink_msg_uavionix_adsb_out_cfg_decode(last_msg, &packet2);
86 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
87}
88
89static void mavlink_test_uavionix_adsb_out_dynamic(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
90{
91#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
92 mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
93 if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_DYNAMIC >= 256) {
94 return;
95 }
96#endif
97 mavlink_message_t msg;
98 uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
99 uint16_t i;
100 mavlink_uavionix_adsb_out_dynamic_t packet_in = {
101 963497464,963497672,963497880,963498088,963498296,963498504,18483,18587,18691,18795,18899,19003,19107,247,58,125
102 };
103 mavlink_uavionix_adsb_out_dynamic_t packet1, packet2;
104 memset(&packet1, 0, sizeof(packet1));
105 packet1.utcTime = packet_in.utcTime;
106 packet1.gpsLat = packet_in.gpsLat;
107 packet1.gpsLon = packet_in.gpsLon;
108 packet1.gpsAlt = packet_in.gpsAlt;
109 packet1.baroAltMSL = packet_in.baroAltMSL;
110 packet1.accuracyHor = packet_in.accuracyHor;
111 packet1.accuracyVert = packet_in.accuracyVert;
112 packet1.accuracyVel = packet_in.accuracyVel;
113 packet1.velVert = packet_in.velVert;
114 packet1.velNS = packet_in.velNS;
115 packet1.VelEW = packet_in.VelEW;
116 packet1.state = packet_in.state;
117 packet1.squawk = packet_in.squawk;
118 packet1.gpsFix = packet_in.gpsFix;
119 packet1.numSats = packet_in.numSats;
120 packet1.emergencyStatus = packet_in.emergencyStatus;
121
122
123#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
124 if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
125 // cope with extensions
126 memset(MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_DYNAMIC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UAVIONIX_ADSB_OUT_DYNAMIC_MIN_LEN);
127 }
128#endif
129 memset(&packet2, 0, sizeof(packet2));
130 mavlink_msg_uavionix_adsb_out_dynamic_encode(system_id, component_id, &msg, &packet1);
131 mavlink_msg_uavionix_adsb_out_dynamic_decode(&msg, &packet2);
132 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
133
134 memset(&packet2, 0, sizeof(packet2));
135 mavlink_msg_uavionix_adsb_out_dynamic_pack(system_id, component_id, &msg , packet1.utcTime , packet1.gpsLat , packet1.gpsLon , packet1.gpsAlt , packet1.gpsFix , packet1.numSats , packet1.baroAltMSL , packet1.accuracyHor , packet1.accuracyVert , packet1.accuracyVel , packet1.velVert , packet1.velNS , packet1.VelEW , packet1.emergencyStatus , packet1.state , packet1.squawk );
136 mavlink_msg_uavionix_adsb_out_dynamic_decode(&msg, &packet2);
137 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
138
139 memset(&packet2, 0, sizeof(packet2));
140 mavlink_msg_uavionix_adsb_out_dynamic_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.utcTime , packet1.gpsLat , packet1.gpsLon , packet1.gpsAlt , packet1.gpsFix , packet1.numSats , packet1.baroAltMSL , packet1.accuracyHor , packet1.accuracyVert , packet1.accuracyVel , packet1.velVert , packet1.velNS , packet1.VelEW , packet1.emergencyStatus , packet1.state , packet1.squawk );
141 mavlink_msg_uavionix_adsb_out_dynamic_decode(&msg, &packet2);
142 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
143
144 memset(&packet2, 0, sizeof(packet2));
145 mavlink_msg_to_send_buffer(buffer, &msg);
146 for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
147 comm_send_ch(MAVLINK_COMM_0, buffer[i]);
148 }
149 mavlink_msg_uavionix_adsb_out_dynamic_decode(last_msg, &packet2);
150 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
151
152 memset(&packet2, 0, sizeof(packet2));
153 mavlink_msg_uavionix_adsb_out_dynamic_send(MAVLINK_COMM_1 , packet1.utcTime , packet1.gpsLat , packet1.gpsLon , packet1.gpsAlt , packet1.gpsFix , packet1.numSats , packet1.baroAltMSL , packet1.accuracyHor , packet1.accuracyVert , packet1.accuracyVel , packet1.velVert , packet1.velNS , packet1.VelEW , packet1.emergencyStatus , packet1.state , packet1.squawk );
154 mavlink_msg_uavionix_adsb_out_dynamic_decode(last_msg, &packet2);
155 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
156}
157
158static void mavlink_test_uavionix_adsb_transceiver_health_report(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
159{
160#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
161 mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
162 if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT >= 256) {
163 return;
164 }
165#endif
166 mavlink_message_t msg;
167 uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
168 uint16_t i;
169 mavlink_uavionix_adsb_transceiver_health_report_t packet_in = {
170 5
171 };
172 mavlink_uavionix_adsb_transceiver_health_report_t packet1, packet2;
173 memset(&packet1, 0, sizeof(packet1));
174 packet1.rfHealth = packet_in.rfHealth;
175
176
177#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
178 if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
179 // cope with extensions
180 memset(MAVLINK_MSG_ID_UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_MIN_LEN);
181 }
182#endif
183 memset(&packet2, 0, sizeof(packet2));
184 mavlink_msg_uavionix_adsb_transceiver_health_report_encode(system_id, component_id, &msg, &packet1);
185 mavlink_msg_uavionix_adsb_transceiver_health_report_decode(&msg, &packet2);
186 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
187
188 memset(&packet2, 0, sizeof(packet2));
189 mavlink_msg_uavionix_adsb_transceiver_health_report_pack(system_id, component_id, &msg , packet1.rfHealth );
190 mavlink_msg_uavionix_adsb_transceiver_health_report_decode(&msg, &packet2);
191 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
192
193 memset(&packet2, 0, sizeof(packet2));
194 mavlink_msg_uavionix_adsb_transceiver_health_report_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.rfHealth );
195 mavlink_msg_uavionix_adsb_transceiver_health_report_decode(&msg, &packet2);
196 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
197
198 memset(&packet2, 0, sizeof(packet2));
199 mavlink_msg_to_send_buffer(buffer, &msg);
200 for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
201 comm_send_ch(MAVLINK_COMM_0, buffer[i]);
202 }
203 mavlink_msg_uavionix_adsb_transceiver_health_report_decode(last_msg, &packet2);
204 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
205
206 memset(&packet2, 0, sizeof(packet2));
207 mavlink_msg_uavionix_adsb_transceiver_health_report_send(MAVLINK_COMM_1 , packet1.rfHealth );
208 mavlink_msg_uavionix_adsb_transceiver_health_report_decode(last_msg, &packet2);
209 MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
210}
211
212static void mavlink_test_uAvionix(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
213{
214 mavlink_test_uavionix_adsb_out_cfg(system_id, component_id, last_msg);
215 mavlink_test_uavionix_adsb_out_dynamic(system_id, component_id, last_msg);
216 mavlink_test_uavionix_adsb_transceiver_health_report(system_id, component_id, last_msg);
217}
218
219#ifdef __cplusplus
220}
221#endif // __cplusplus
222#endif // UAVIONIX_TESTSUITE_H