Hello All,
i need dome help to understand why my code doesn't work, it's very easy code which use Mavlink library in order to encode message.
int main (int argc, char ** argv){
mavlink_message_t msg;
int32_t lat = 10;
int32_t longe = 11;
int32_t alt = 12;
int32_t relative_alt = 15;
int16_t vx = 16;
int16_t vy = 17;
int16_t vz = 18;
uint16_t hdg = 19;
uint16_t size = 0;
int i = 0;
uint8_t buffer[280];
for(i=0;i<280 ; i++){
buffer[i] = 0;
}
mavlink_msg_global_position_int_pack(1, 2, &msg, 100, lat, longe, alt, relative_alt, vx, vy, vz, hdg);
size = mavlink_msg_to_send_buffer(buffer, &msg);
for(i=0;i<size ; i++){
printf("%i\n",buffer[i]);
}
printf("total size : %i\n",size);
return 1;
}
the result of this code is
253 => ok 0xFD
27 => ok lenght
0 => inc flags
0 => ok cmp flags
0 => ok SEQ
1 => ok sys ID
2 => ok COM ID
33 => ok message 33 (fisrt byte)
0 => ok (second byte)
0 => ok (third byte)
100 => ok value of time boot ms (fisrt byte)
0 => ok value of time boot ms (second byte)
0 => ok value of time boot ms (third byte)
0 => ok value of time boot ms (fourth byte)
10 => ok value of lat parameter (fisrt byte)
0 => ok value of lat parameter (second byte)
0 => ok value of lat parameter (third byte)
0 => ok value of lat parameter (fourth byte)
11 => ok value of longe parameter (fisrt byte)
0 => ok value of longe parameter (second byte)
0 => ok value of longe parameter (third byte)
0 => ok value of longe parameter (fourth byte)
12 => ok value of alt parameter (fisrt byte)
0 => ok value of alt parameter (second byte)
0 => ok value of alt parameter (third byte)
0 => ok value of alt parameter (fourth byte)
15 => ok value of relative alt parameter (fisrt byte)
0 => ok value of relative alt parameter (second byte)
0 => ok value of relative alt parameter (third byte)
0 => ok value of relative alt parameter (fourth byte)
16 => ok value of vx parameter (fisrt byte)
0 => ok value of vx parameter(second byte)
17 => ok value of vy parameter (fisrt byte)
0 => ok value of vy parameter(second byte)
18 => ok value of vz parameter (fisrt byte)
0 => ok value of vz parameter(second byte)
19 => ok value of hdg parameter (fisrt byte) but no second byte, value is coded with 2 bytes (uint16_t hdg = 19;) and i don't have the second one with value 0.
198 => checksum (fisrt byte)
254 => checksum(second byte)
total size : 39
Do you have an idea?
Thanks a lot