Handle null packages correctly.
Abort the transmission and discard the data if a null package is received at the end of the internal ring buffer.
This commit is contained in:
parent
e1f12108cb
commit
de3fb61c0a
@ -528,6 +528,14 @@ suunto_vyper_read_dive (vyper *device, unsigned char data[], unsigned int size,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A null package (length zero) indicates the DC reached the end of
|
||||||
|
// its internal ring buffer and the transmission should be aborted.
|
||||||
|
// The remaining data of the current dive is overwritten with newer
|
||||||
|
// data and thus not transmitted by the DC. Therefore, the data that
|
||||||
|
// was already received is discarded.
|
||||||
|
if (len == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
// If a package is smaller than $SUUNTO_VYPER_PACKET_SIZE bytes,
|
// If a package is smaller than $SUUNTO_VYPER_PACKET_SIZE bytes,
|
||||||
// we assume it's the last packet and the transmission can be
|
// we assume it's the last packet and the transmission can be
|
||||||
// finished early. However, this approach does not work if the
|
// finished early. However, this approach does not work if the
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user