Browse Source

AP_GPS: Fix max/min bug on SBP buffering. Log messages whether SBP driver recognizes the msg_type or not.

mission-4.1.18
dzollo 10 years ago committed by Andrew Tridgell
parent
commit
5d5d9dc137
  1. 7
      libraries/AP_GPS/AP_GPS_SBP.cpp

7
libraries/AP_GPS/AP_GPS_SBP.cpp

@ -229,8 +229,9 @@ AP_GPS_SBP::_sbp_process_message() {
} }
default: default:
// Break out of any logging if it's an unsupported message // log anyway if it's an unsupported message.
return; // The log mask will be used to adjust or suppress logging
break;
} }
logging_log_raw_sbp(parser_state.msg_type, parser_state.sender_id, parser_state.msg_len, parser_state.msg_buff); logging_log_raw_sbp(parser_state.msg_type, parser_state.sender_id, parser_state.msg_len, parser_state.msg_buff);
@ -501,7 +502,7 @@ AP_GPS_SBP::logging_log_raw_sbp(uint16_t msg_type,
sender_id : sender_id, sender_id : sender_id,
msg_len : msg_len, msg_len : msg_len,
}; };
memcpy(pkt.data1, msg_buff, max(msg_len,64)); memcpy(pkt.data1, msg_buff, min(msg_len,64));
gps._DataFlash->WriteBlock(&pkt, sizeof(pkt)); gps._DataFlash->WriteBlock(&pkt, sizeof(pkt));
if (msg_len > 64) { if (msg_len > 64) {

Loading…
Cancel
Save