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

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?

UserRevisionLine numberNew 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