AP_GPS: write config blob out as chunk rather than iterating

This commit is contained in:
Peter Barker 2019-09-11 08:25:54 +10:00 committed by Andrew Tridgell
parent 563528dfc0
commit c463036706

View File

@ -560,19 +560,16 @@ void AP_GPS::send_blob_update(uint8_t instance)
return; return;
} }
// see if we can write some more of the initialisation blob if (initblob_state[instance].remaining == 0) {
if (initblob_state[instance].remaining > 0) { return;
int16_t space = _port[instance]->txspace();
if (space > (int16_t)initblob_state[instance].remaining) {
space = initblob_state[instance].remaining;
}
while (space > 0) {
_port[instance]->write(*initblob_state[instance].blob);
initblob_state[instance].blob++;
space--;
initblob_state[instance].remaining--;
}
} }
// see if we can write some more of the initialisation blob
const uint16_t n = MIN(_port[instance]->txspace(),
initblob_state[instance].remaining);
const size_t written = _port[instance]->write((const uint8_t*)initblob_state[instance].blob, n);
initblob_state[instance].blob += written;
initblob_state[instance].remaining -= written;
} }
/* /*