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@80:0b7f1b85b626, 2022-08-30 (annotated)
- Committer:
- JamieB
- Date:
- Tue Aug 30 09:33:44 2022 +0000
- Revision:
- 80:0b7f1b85b626
- Parent:
- 25:7002be632308
Added Lens map configuration options
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 | 25:7002be632308 | 10 | uint8_t yaw[3]; |
JamieB | 25:7002be632308 | 11 | uint8_t pitch[3]; |
JamieB | 25:7002be632308 | 12 | uint8_t roll[3]; |
JamieB | 25:7002be632308 | 13 | uint8_t x[3]; |
JamieB | 25:7002be632308 | 14 | uint8_t y[3]; |
JamieB | 25:7002be632308 | 15 | uint8_t z[3]; |
JamieB | 25:7002be632308 | 16 | uint8_t zoom[3]; |
JamieB | 25:7002be632308 | 17 | uint8_t focus[3]; |
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 | 25:7002be632308 | 22 | |
JamieB | 25:7002be632308 | 23 | inline void set24bitValue(uint8_t *target, int32_t value) |
JamieB | 25:7002be632308 | 24 | { |
JamieB | 25:7002be632308 | 25 | *target = (uint8_t) ((value>>16) & 0xff); |
JamieB | 25:7002be632308 | 26 | *(target+1) = (uint8_t) ((value>>8) & 0xff); |
JamieB | 25:7002be632308 | 27 | *(target+2) = (uint8_t) (value & 0xff); |
JamieB | 25:7002be632308 | 28 | } |
JamieB | 25:7002be632308 | 29 | |
JamieB | 20:ce1d8fbff68f | 30 | inline int GetFdCRC(void *data) { |
JamieB | 20:ce1d8fbff68f | 31 | uint8_t *dataPtr = (uint8_t *)data; |
JamieB | 20:ce1d8fbff68f | 32 | //uint8_t *crcPtr = (uint8_t *)checksum; |
JamieB | 20:ce1d8fbff68f | 33 | int len = sizeof(D1MsgFormat_s) -1; |
JamieB | 20:ce1d8fbff68f | 34 | uint8_t sum =0; |
JamieB | 20:ce1d8fbff68f | 35 | int byteCount = 0; |
JamieB | 20:ce1d8fbff68f | 36 | |
JamieB | 20:ce1d8fbff68f | 37 | while ((len--) > 0) {sum += dataPtr[byteCount++];} |
JamieB | 20:ce1d8fbff68f | 38 | |
JamieB | 20:ce1d8fbff68f | 39 | //crcPtr[0] = 0x40 - sum; |
JamieB | 20:ce1d8fbff68f | 40 | return 0x40 - sum; |
JamieB | 20:ce1d8fbff68f | 41 | } |
JamieB | 20:ce1d8fbff68f | 42 | |
JamieB | 20:ce1d8fbff68f | 43 | |
JamieB | 80:0b7f1b85b626 | 44 | #endif |