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 Dec 15 06:05:30 2022 +0000
Revision:
85:0cc5931bb9ef
Parent:
80:0b7f1b85b626
Push to somewhere else due to merge issue

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