Meach will / libmDot-mbed5

Dependents:   ncu_project

Committer:
Jenkins@KEILDM1.dc.multitech.prv
Date:
Thu Aug 29 12:21:51 2019 -0500
Revision:
69:e22889c7eaa9
Parent:
68:5f787643e7d7
Child:
70:0c5b5b02d17b
mdot-library revision 3.2.1 and mbed-os revision mbed-os-5.13.4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 1 #ifndef _FRAGMENTATION_MATH_H
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 2 #define _FRAGMENTATION_MATH_H
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 3 #ifdef FOTA
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 4
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 5 #include "mbed.h"
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 6 #include "mDot.h"
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 7 #include "WriteFile.h"
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 8
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 9 #define FRAG_SESSION_ONGOING 0xffffffff
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 10 #ifndef MAX_PARITY
Jenkins@KEILDM1.dc.multitech.prv 67:a9d4d7cdeca1 11 #define MAX_PARITY 300
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 12 #endif
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 13 class FragmentationMath
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 14 {
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 15 public:
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 16 FragmentationMath(mDot* dot, uint16_t frame_count, uint8_t frame_size, WriteFile* fh);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 17 ~FragmentationMath();
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 18 bool Init();
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 19 int getLostFrameCount();
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 20 void reset(uint16_t fcount);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 21 void setFrameFound(uint16_t frameCounter);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 22 bool processParityFrag(uint16_t frameCounter, uint8_t *pFrag);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 23
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 24 int FragmentationPrbs23(int x);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 25 bool IsPowerOfTwo(unsigned int x);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 26 int32_t FindMissingFrameIndex(uint16_t x);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 27 int32_t FindTrueFrameIndex(uint16_t x);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 28 void GetRowInFlash(int l, uint8_t *rowData);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 29 int FindFirstOne(uint8_t *boolData, int size);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 30 void StoreRowInFlash(uint8_t *rowData, int index);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 31 void XorLineData(uint8_t *dataL1, uint8_t *dataL2, int size);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 32 void XorLineBit(uint8_t *dataL1, uint8_t *dataL2, int size);
Jenkins@KEILDM1.dc.multitech.prv 67:a9d4d7cdeca1 33 void XorRowWithMatrix(uint8_t* row, int matrix_row_num);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 34 void FragmentationGetParityMatrixRow(int N, int M, uint8_t *matrixRow);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 35 void CondenseRow(uint8_t *row, int row_number, int start);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 36 void ExpandAndXorRow(uint8_t *row, int row_number);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 37 bool CheckIfMissing(int row_number, int index);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 38 void CompleteRow(int row_num);
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 39 void printMatrix();
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 40
Jenkins@KEILDM1.dc.multitech.prv 67:a9d4d7cdeca1 41 uint8_t _frame_size;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 42 uint16_t _frame_count;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 43 uint16_t _max_parity;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 44 uint16_t numFramesMissing;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 45 uint16_t lastReceiveFrameCnt;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 46
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 47 uint8_t *matrix;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 48 uint8_t *matrixRow;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 49 uint8_t *parity_frag;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 50 uint8_t *missingFrameIndex;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 51 uint8_t *frag_in_flash;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 52
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 53 bool empty;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 54 int index_of_first;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 55 int matrix_row_num;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 56 int index;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 57
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 58 mDot* _dot;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 59 WriteFile* _fh;
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 60 };
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 61 #endif
Jenkins@KEILDM1.dc.multitech.prv 66:baa0f3116f1d 62 #endif // _FRAGMENTATION_MATH_H