The Modified Dot Library for SX1272
This version has been restoring as initial changes.
Verify the following dependencies:
Mbed-os 5.11 libmdot 3.2.0 for Mbed OS5.11
Fota/Fragmentation/FragmentationSession.h@66:baa0f3116f1d, 2019-04-23 (annotated)
- Committer:
- Jenkins@KEILDM1.dc.multitech.prv
- Date:
- Tue Apr 23 08:51:10 2019 -0500
- Revision:
- 66:baa0f3116f1d
- Child:
- 67:a9d4d7cdeca1
mdot-library revision 3.2.0 and mbed-os revision mbed-os-5.11.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 1 | #ifndef _FRAGMENTATION_SESSION_H |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 2 | #define _FRAGMENTATION_SESSION_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 "FragmentationMath.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 7 | #include "mDot.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 8 | #include "WriteFile.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 9 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 10 | #define MAX_PARITY 400 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 11 | #define FRAG_OFFSET 3 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 12 | #define MULTICAST_SESSIONS 3 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 13 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 14 | class FragmentationSession { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 15 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 16 | public: |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 17 | FragmentationSession(mDot* dot, std::vector<uint8_t>* ret, bool* filled, uint32_t* delay); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 18 | ~FragmentationSession(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 19 | void processCmd(uint8_t* payload, uint8_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 20 | void reset(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 21 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 22 | private: |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 23 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 24 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 25 | uint8_t Padding; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 26 | uint8_t FragmentSize; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 27 | uint16_t NumberOfFragments; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 28 | } FragmentationSessionOpts_t; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 29 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 30 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 31 | bool reset; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 32 | bool failed; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 33 | uint8_t fragMatrix; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 34 | uint8_t blockAckDelay; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 35 | uint8_t total_sessions; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 36 | uint8_t mcGroupBitMask; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 37 | uint8_t current_session; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 38 | uint16_t index; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 39 | uint16_t last_frag_num; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 40 | uint32_t total_frags; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 41 | FragmentationMath* math; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 42 | FragmentationSessionOpts_t opts; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 43 | } fragGroup; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 44 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 45 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 46 | enum FragResult { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 47 | FRAG_OK, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 48 | FRAG_SIZE_INCORRECT, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 49 | FRAG_FLASH_WRITE_ERROR, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 50 | FRAG_NO_MEMORY, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 51 | FRAG_COMPLETE |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 52 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 53 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 54 | enum FragCmd { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 55 | PACKAGE_VERSION_FRAG, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 56 | FRAG_STATUS, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 57 | FRAG_SESSION_SETUP, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 58 | FRAG_SESSION_DELETE, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 59 | DATA_FRAGMENT = 0x08, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 60 | CHECKSUM = 0x80 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 61 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 62 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 63 | void reset(uint16_t num); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 64 | void upgradeFile(uint8_t fragIndex); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 65 | bool process_frame(uint8_t fragIndex,uint16_t index, uint8_t buffer[], size_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 66 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 67 | mDot* _dot; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 68 | WriteFile* _fh; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 69 | fragGroup fg[MULTICAST_SESSIONS]; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 70 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 71 | uint8_t ans; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 72 | bool* _filled; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 73 | uint32_t* _delay; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 74 | uint8_t fragIndex; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 75 | std::vector<uint8_t>* _ret; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 76 | std::string _org_class; |
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_SESSION_H |