Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fota/Fragmentation/FragmentationMath.h@70:0c5b5b02d17b, 2019-11-08 (annotated)
- Committer:
- Jenkins@KEILDM1.dc.multitech.prv
- Date:
- Fri Nov 08 09:29:29 2019 -0600
- Revision:
- 70:0c5b5b02d17b
- Parent:
- 69:e22889c7eaa9
mdot-library revision 3.2.5 and mbed-os revision mbed-os-5.13.4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 1 | /********************************************************************** |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 2 | * COPYRIGHT 2018 MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 3 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 4 | * ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 5 | * MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 6 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 7 | * MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 8 | * INFORMATION AND/OR TRADE SECRET. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 9 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 10 | * NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION, |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 11 | * DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 12 | * INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 13 | * USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 14 | * WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 15 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 16 | ***********************************************************************/ |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 17 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 18 | #ifndef _FRAGMENTATION_MATH_H |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 19 | #define _FRAGMENTATION_MATH_H |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 20 | #ifdef FOTA |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 21 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 22 | #include "mbed.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 23 | #include "mDot.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 24 | #include "WriteFile.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 25 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 26 | #define FRAG_SESSION_ONGOING 0xffffffff |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 27 | #ifndef MAX_PARITY |
Jenkins@KEILDM1.dc.multitech.prv | 67:a9d4d7cdeca1 | 28 | #define MAX_PARITY 300 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 29 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 30 | class FragmentationMath |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 31 | { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 32 | public: |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 33 | FragmentationMath(mDot* dot, uint16_t frame_count, uint8_t frame_size, WriteFile* fh); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 34 | ~FragmentationMath(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 35 | bool Init(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 36 | int getLostFrameCount(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 37 | void reset(uint16_t fcount); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 38 | void setFrameFound(uint16_t frameCounter); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 39 | bool processParityFrag(uint16_t frameCounter, uint8_t *pFrag); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 40 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 41 | int FragmentationPrbs23(int x); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 42 | bool IsPowerOfTwo(unsigned int x); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 43 | int32_t FindMissingFrameIndex(uint16_t x); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 44 | int32_t FindTrueFrameIndex(uint16_t x); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 45 | void GetRowInFlash(int l, uint8_t *rowData); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 46 | int FindFirstOne(uint8_t *boolData, int size); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 47 | void StoreRowInFlash(uint8_t *rowData, int index); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 48 | void XorLineData(uint8_t *dataL1, uint8_t *dataL2, int size); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 49 | void XorLineBit(uint8_t *dataL1, uint8_t *dataL2, int size); |
Jenkins@KEILDM1.dc.multitech.prv | 67:a9d4d7cdeca1 | 50 | void XorRowWithMatrix(uint8_t* row, int matrix_row_num); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 51 | void FragmentationGetParityMatrixRow(int N, int M, uint8_t *matrixRow); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 52 | void CondenseRow(uint8_t *row, int row_number, int start); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 53 | void ExpandAndXorRow(uint8_t *row, int row_number); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 54 | bool CheckIfMissing(int row_number, int index); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 55 | void CompleteRow(int row_num); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 56 | void printMatrix(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 57 | |
Jenkins@KEILDM1.dc.multitech.prv | 67:a9d4d7cdeca1 | 58 | uint8_t _frame_size; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 59 | uint16_t _frame_count; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 60 | uint16_t _max_parity; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 61 | uint16_t numFramesMissing; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 62 | uint16_t lastReceiveFrameCnt; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 63 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 64 | uint8_t *matrix; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 65 | uint8_t *matrixRow; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 66 | uint8_t *parity_frag; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 67 | uint8_t *missingFrameIndex; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 68 | uint8_t *frag_in_flash; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 69 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 70 | bool empty; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 71 | int index_of_first; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 72 | int matrix_row_num; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 73 | int index; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 74 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 75 | mDot* _dot; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 76 | WriteFile* _fh; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 77 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 78 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 79 | #endif // _FRAGMENTATION_MATH_H |