[ ] #14 ~Try making the deserialization impl embedded_hal::serial::Read<Command> for CommandReader rather than impl CommandReader.~ causes ownership problems because everything passes around Hoverkite as a block rather than just the required fields. Might need a re-think later on.
[x] #20 Think about the reverse path:
[x] Define [Secondary]CurrentPosition structs + ser + deser.
[x] Define [Secondary]LogMessage structs + ser + deser (this might be a bit ugly. Would it be easier to split the different messages into some kind of enum?).
[x] Some kind of enum that represents all of the things that hovercontrol might receive on the serial port, and deserialization for this enum.
[ ] Draw a diagram of the network topology, and add it to the repo.
[ ] Switch serialization to use serde + postcard + ...
Postcard already supports COBS out of the box, and crc32 doesn't seem too difficult:
https://github.com/jamesmunns/postcard/pull/17#issuecomment-692815999
impl embedded_hal::serial::Read<Command> for CommandReader
rather thanimpl CommandReader
.~ causes ownership problems because everything passes around Hoverkite as a block rather than just the required fields. Might need a re-think later on.impl Read
and assert that the correct number of bytes have been read? (see https://github.com/hoverkite/hoverkite/pull/11/files#r625999117 )