I messed up the merge, so pushing it over to another repo so I don't lose it. Will tidy up and remove later
Dependencies: BufferedSerial FatFileSystemCpp mbed
FreeD.h@20:ce1d8fbff68f, 2021-07-01 (annotated)
- Committer:
- JamieB
- Date:
- Thu Jul 01 10:35:20 2021 +0000
- Revision:
- 20:ce1d8fbff68f
- Child:
- 25:7002be632308
FreeD Protocol on Serial implemented, configuration file for output also added (contains fiz configuration but this does not yet set fiz config up)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JamieB | 20:ce1d8fbff68f | 1 | #ifndef __FreeD_h__ |
JamieB | 20:ce1d8fbff68f | 2 | #define __FreeD_h__ |
JamieB | 20:ce1d8fbff68f | 3 | |
JamieB | 20:ce1d8fbff68f | 4 | #include "mbed.h" |
JamieB | 20:ce1d8fbff68f | 5 | #include <cstdint> |
JamieB | 20:ce1d8fbff68f | 6 | |
JamieB | 20:ce1d8fbff68f | 7 | struct D1MsgFormat_s { |
JamieB | 20:ce1d8fbff68f | 8 | uint8_t header; //0xD1, annoying it cant be set as default value here! |
JamieB | 20:ce1d8fbff68f | 9 | uint8_t id; //camera ID, use 255 minus Rover ID |
JamieB | 20:ce1d8fbff68f | 10 | uint32_t yaw : 24; |
JamieB | 20:ce1d8fbff68f | 11 | uint32_t pitch : 24; |
JamieB | 20:ce1d8fbff68f | 12 | uint32_t roll : 24; |
JamieB | 20:ce1d8fbff68f | 13 | uint32_t x : 24; |
JamieB | 20:ce1d8fbff68f | 14 | uint32_t y : 24; |
JamieB | 20:ce1d8fbff68f | 15 | uint32_t z : 24; |
JamieB | 20:ce1d8fbff68f | 16 | uint32_t zoom : 24; |
JamieB | 20:ce1d8fbff68f | 17 | uint32_t focus : 24; |
JamieB | 20:ce1d8fbff68f | 18 | uint16_t spare; |
JamieB | 20:ce1d8fbff68f | 19 | uint8_t checksum; |
JamieB | 20:ce1d8fbff68f | 20 | } __attribute__((packed)) ; |
JamieB | 20:ce1d8fbff68f | 21 | |
JamieB | 20:ce1d8fbff68f | 22 | inline int GetFdCRC(void *data) { |
JamieB | 20:ce1d8fbff68f | 23 | uint8_t *dataPtr = (uint8_t *)data; |
JamieB | 20:ce1d8fbff68f | 24 | //uint8_t *crcPtr = (uint8_t *)checksum; |
JamieB | 20:ce1d8fbff68f | 25 | int len = sizeof(D1MsgFormat_s) -1; |
JamieB | 20:ce1d8fbff68f | 26 | uint8_t sum =0; |
JamieB | 20:ce1d8fbff68f | 27 | int byteCount = 0; |
JamieB | 20:ce1d8fbff68f | 28 | |
JamieB | 20:ce1d8fbff68f | 29 | while ((len--) > 0) {sum += dataPtr[byteCount++];} |
JamieB | 20:ce1d8fbff68f | 30 | |
JamieB | 20:ce1d8fbff68f | 31 | //crcPtr[0] = 0x40 - sum; |
JamieB | 20:ce1d8fbff68f | 32 | return 0x40 - sum; |
JamieB | 20:ce1d8fbff68f | 33 | } |
JamieB | 20:ce1d8fbff68f | 34 | |
JamieB | 20:ce1d8fbff68f | 35 | |
JamieB | 20:ce1d8fbff68f | 36 | #endif |