fota lib for mdot
mdot/LoRaConfig.h@3:63d10f2375ea, 2018-09-14 (annotated)
- Committer:
- Jenkins@KEILDM1.dc.multitech.prv
- Date:
- Fri Sep 14 15:39:09 2018 -0500
- Revision:
- 3:63d10f2375ea
fota lib updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 1 | #include "mbed.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 2 | #if defined (TARGET_MTS_MDOT_F411RE) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 3 | #include "spiffs.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 4 | #include "SpiFlash25.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 5 | #else |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 6 | #include "xdot_eeprom.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 7 | #endif /* TARGET_MTS_MDOT_F411RE */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 8 | #include "mDot.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 9 | #include "ChannelPlan.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 10 | #include <stdint.h> |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 11 | #include <string> |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 12 | #include <vector> |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 13 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 14 | #ifndef __LORA_CONFIG_H__ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 15 | #define __LORA_CONFIG_H__ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 16 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 17 | #if defined (TARGET_MTS_MDOT_F411RE) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 18 | // this value represents the number of files you can have open at the same time |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 19 | // adjust it according to your requirements |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 20 | #define MAX_CONCURRENT_FDS 5 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 21 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 22 | #define PAGE_SIZE 256 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 23 | #define SECTOR_SIZE 64*1024 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 24 | #define MEM_SIZE 2*1024*1024 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 25 | #else |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 26 | #define SETTINGS_ADDR 0x0000 // configuration is 1024 bytes (0x000-0x3FF) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 27 | #define PROTECTED_ADDR 0x0400 // protected configuration is 256 bytes (0x400-0x4FF) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 28 | #define SESSION_ADDR 0x0500 // session is 256 bytes (0x500-0x5FF) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 29 | #define USER_ADDR 0x0800 // user space is 6*1024 bytes (0x800 - 0x1FFF) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 30 | #endif /* TARGET_MTS_MDOT_F411RE */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 31 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 32 | #define MULTICAST_SESSIONS 3 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 33 | #define EUI_LENGTH 8 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 34 | #define KEY_LENGTH 16 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 35 | #define PASSPHRASE_LENGTH 128 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 36 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 37 | // DON'T CHANGE THIS UNLESS YOU REALLY WANT TO |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 38 | #define PROTECTED_RFU_SIZE 223 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 39 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 40 | // PROTECTED SETTINGS SHOULD ALWAYS HAVE SIZE OF 256 BYTES |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 41 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 42 | uint8_t FrequencyBand; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 43 | uint8_t DeviceEUI[EUI_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 44 | uint8_t AppEUI[EUI_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 45 | uint8_t AppKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 46 | uint8_t RFU[PROTECTED_RFU_SIZE]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 47 | } ProtectedSettings_t; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 48 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 49 | // DON'T CHANGE THIS UNLESS YOU REALLY WANT TO |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 50 | #define CONFIG_RFU_SIZE 361 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 51 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 52 | // SETTINGS SHOULD ALWAYS HAVE SIZE OF 1024 BYTES |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 53 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 54 | uint8_t ConfigVersion; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 55 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 56 | uint32_t SerialBaudRate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 57 | uint32_t DebugBaudRate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 58 | uint8_t StartUpMode; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 59 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 60 | /* Network Settings */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 61 | uint8_t NetworkEUI[EUI_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 62 | uint8_t NetworkEUIPassphrase[PASSPHRASE_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 63 | uint8_t NetworkKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 64 | uint8_t NetworkKeyPassphrase[PASSPHRASE_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 65 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 66 | uint32_t NetworkAddress; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 67 | uint8_t NetworkSessionKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 68 | uint8_t DataSessionKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 69 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 70 | uint8_t JoinMode; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 71 | uint8_t JoinRetries; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 72 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 73 | /* Radio Settings */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 74 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 75 | uint8_t ForwardErrorCorrection; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 76 | uint8_t ACKAttempts; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 77 | bool EnableEncryption; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 78 | bool EnableCRC; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 79 | bool EnableADR; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 80 | bool EnableEcho; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 81 | bool EnableVerbose; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 82 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 83 | uint32_t TxFrequency; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 84 | uint8_t TxDataRate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 85 | bool TxInverted; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 86 | uint8_t TxPower; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 87 | bool TxWait; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 88 | uint8_t FrequencySubBand; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 89 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 90 | uint32_t RxFrequency; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 91 | uint8_t RxDataRate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 92 | bool RxInverted; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 93 | uint8_t RxOutput; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 94 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 95 | /* Serial Settings */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 96 | uint32_t WakeInterval; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 97 | uint16_t WakeTimeout; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 98 | uint32_t WakeDelay; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 99 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 100 | uint8_t PublicNetwork; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 101 | uint8_t LinkCheckCount; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 102 | uint8_t LinkCheckThreshold; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 103 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 104 | uint8_t LogLevel; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 105 | uint8_t JoinByteOrder; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 106 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 107 | uint8_t WakePin; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 108 | uint8_t WakeMode; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 109 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 110 | uint8_t PreserveSessionOverReset; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 111 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 112 | uint8_t JoinDelay; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 113 | uint8_t RxDelay; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 114 | uint8_t Port; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 115 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 116 | uint8_t Class; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 117 | int8_t AntennaGain; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 118 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 119 | bool FlowControl; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 120 | uint8_t Repeat; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 121 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 122 | bool SerialClearOnError; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 123 | uint8_t Rx2Datarate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 124 | uint8_t JoinRx1DatarateOffset; //!< Offset for datarate for first window |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 125 | uint8_t JoinRx2DatarateIndex; //!< Datarate for second window |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 126 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 127 | uint32_t Channels[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 128 | uint8_t ChannelRanges[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 129 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 130 | uint32_t JoinRx2Frequency; //!< Frequency used in second window |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 131 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 132 | uint8_t MaxEIRP; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 133 | uint8_t UlDwellTime; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 134 | uint8_t DlDwellTime; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 135 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 136 | uint8_t padding; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 137 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 138 | uint32_t DlChannels[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 139 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 140 | uint8_t LastPlan; //!< Channel plan from last saved configuration |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 141 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 142 | int8_t lbtThreshold; //!< Listen before talk threshold |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 143 | uint16_t lbtTimeUs; //!< Listen before talk time |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 144 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 145 | // Multicast session address and keys |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 146 | uint32_t MulticastAddress[MULTICAST_SESSIONS]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 147 | uint8_t MulticastNetSessionKey[MULTICAST_SESSIONS][KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 148 | uint8_t MulticastAppSessionKey[MULTICAST_SESSIONS][KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 149 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 150 | uint8_t AutoSleep; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 151 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 152 | uint8_t RFU[CONFIG_RFU_SIZE]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 153 | } LoRaSettings_t; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 154 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 155 | // DON'T CHANGE THIS UNLESS YOU REALLY WANT TO |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 156 | #define SESSION_RFU_SIZE 2 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 157 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 158 | // SESSION SETTINGS SHOULD ALWAYS HAVE SIZE OF 256 BYTES |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 159 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 160 | bool Joined; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 161 | uint8_t Rx1DatarateOffset; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 162 | uint8_t Rx2Datarate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 163 | uint8_t ChannelMask500k; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 164 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 165 | uint32_t NetworkAddress; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 166 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 167 | uint8_t NetworkKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 168 | uint8_t DataKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 169 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 170 | uint64_t ChannelMask; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 171 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 172 | uint32_t Channels[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 173 | uint8_t ChannelRanges[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 174 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 175 | uint32_t UplinkCounter; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 176 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 177 | uint8_t Rx1Delay; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 178 | uint8_t Datarate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 179 | uint8_t TxPower; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 180 | uint8_t Repeat; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 181 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 182 | uint32_t Rx2Frequency; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 183 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 184 | uint32_t DownlinkCounter; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 185 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 186 | uint8_t MaxDutyCycle; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 187 | uint8_t AdrAckCounter; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 188 | uint8_t LinkFailCount; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 189 | uint8_t FrequencySubBand; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 190 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 191 | uint32_t NetworkId; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 192 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 193 | bool ServerAckRequested; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 194 | uint8_t DeviceClass; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 195 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 196 | uint8_t CommandBufferIndex; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 197 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 198 | uint8_t CommandBuffer[15]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 199 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 200 | uint8_t UlDwellTime; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 201 | uint8_t DlDwellTime; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 202 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 203 | uint32_t DlChannels[16]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 204 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 205 | uint8_t MaxEIRP; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 206 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 207 | // Multicast session counter values |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 208 | uint32_t MulticastCounters[MULTICAST_SESSIONS]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 209 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 210 | uint8_t RFU[SESSION_RFU_SIZE]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 211 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 212 | uint8_t LastPlan; //!< Channel plan from last saved session |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 213 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 214 | } NetworkSession_t; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 215 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 216 | class LoRaConfig { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 217 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 218 | public: |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 219 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 220 | static const uint8_t EuiLength = EUI_LENGTH; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 221 | static const uint8_t KeyLength = KEY_LENGTH; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 222 | static const uint8_t PassPhraseLength = PASSPHRASE_LENGTH; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 223 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 224 | enum JoinMode { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 225 | MANUAL, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 226 | OTA, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 227 | AUTO_OTA, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 228 | PEER_TO_PEER |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 229 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 230 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 231 | enum Mode { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 232 | COMMAND_MODE, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 233 | SERIAL_MODE |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 234 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 235 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 236 | enum RX_Output { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 237 | HEXADECIMAL, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 238 | BINARY |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 239 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 240 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 241 | enum DataRates { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 242 | DR0, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 243 | DR1, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 244 | DR2, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 245 | DR3, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 246 | DR4, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 247 | DR5, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 248 | DR6, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 249 | DR7, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 250 | DR8, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 251 | DR9, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 252 | DR10, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 253 | DR11, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 254 | DR12, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 255 | DR13, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 256 | DR14, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 257 | DR15 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 258 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 259 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 260 | enum FrequencySubBands { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 261 | FSB_ALL, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 262 | FSB_1, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 263 | FSB_2, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 264 | FSB_3, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 265 | FSB_4, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 266 | FSB_5, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 267 | FSB_6, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 268 | FSB_7, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 269 | FSB_8 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 270 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 271 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 272 | enum JoinByteOrder { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 273 | LSB, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 274 | MSB |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 275 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 276 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 277 | static const uint32_t BaudRates[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 278 | static const std::string DRS[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 279 | static const uint32_t DefaultBaudRate; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 280 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 281 | uint32_t ValidateBaudRate(uint32_t rate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 282 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 283 | LoRaConfig(lora::ChannelPlan *plan); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 284 | ~LoRaConfig(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 285 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 286 | bool Save(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 287 | bool SaveSession(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 288 | bool SaveProtected(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 289 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 290 | #if defined (TARGET_MTS_MDOT_F411RE) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 291 | void EnablePVD(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 292 | bool PVDO(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 293 | #endif /* TARGET_MTS_MDOT_F411RE */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 294 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 295 | void Mount(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 296 | void Load(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 297 | void Default(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 298 | void DefaultSession(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 299 | void DefaultProtected(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 300 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 301 | uint8_t PublicNetwork(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 302 | void PublicNetwork(uint8_t val); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 303 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 304 | uint8_t* DeviceEUI(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 305 | void DeviceEUI(uint8_t* devEUI); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 306 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 307 | const uint8_t* AppEUI(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 308 | void AppEUI(const uint8_t* appEUI); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 309 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 310 | const uint8_t* AppKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 311 | void AppKey(const uint8_t* appKey); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 312 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 313 | uint8_t* NetworkEUI(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 314 | void NetworkEUI(const uint8_t* networkEUI); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 315 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 316 | uint8_t* NetworkEUIPassphrase(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 317 | void NetworkEUIPassphrase(uint8_t* networkEUIPassphrase, uint8_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 318 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 319 | uint8_t* NetworkKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 320 | void NetworkKey(const uint8_t* networkKey); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 321 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 322 | uint8_t* NetworkKeyPassphrase(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 323 | void NetworkKeyPassphrase(uint8_t* networkKeyPassphrase, uint8_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 324 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 325 | uint32_t NetworkAddress(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 326 | void NetworkAddress(uint32_t addr); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 327 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 328 | uint8_t* NetworkSessionKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 329 | void NetworkSessionKey(uint8_t* networkSessionKey); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 330 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 331 | uint8_t* DataSessionKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 332 | void DataSessionKey(uint8_t* dataSessionKey); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 333 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 334 | uint8_t JoinMode(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 335 | void JoinMode(uint8_t mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 336 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 337 | uint8_t JoinRetries(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 338 | void JoinRetries(uint8_t retries); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 339 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 340 | uint8_t LinkCheckCount(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 341 | void LinkCheckCount(uint8_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 342 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 343 | uint8_t LinkCheckThreshold(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 344 | void LinkCheckThreshold(uint8_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 345 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 346 | uint8_t ForwardErrorCorrection(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 347 | void ForwardErrorCorrection(uint8_t bytes); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 348 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 349 | uint8_t ACKAttempts(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 350 | void ACKAttempts(uint8_t attempts); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 351 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 352 | bool EnableEncryption(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 353 | void EnableEncryption(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 354 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 355 | bool EnableCRC(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 356 | void EnableCRC(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 357 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 358 | bool EnableADR(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 359 | void EnableADR(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 360 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 361 | bool EnableEcho(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 362 | void EnableEcho(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 363 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 364 | bool EnableVerbose(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 365 | void EnableVerbose(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 366 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 367 | uint8_t TxDataRate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 368 | void TxDataRate(uint8_t rate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 369 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 370 | uint8_t TxPower(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 371 | void TxPower(uint8_t power); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 372 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 373 | uint8_t FrequencyBand(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 374 | void FrequencyBand(uint8_t band); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 375 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 376 | uint8_t FrequencySubBand(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 377 | void FrequencySubBand(uint8_t band); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 378 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 379 | uint32_t TxFrequency(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 380 | void TxFrequency(uint32_t freq); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 381 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 382 | bool TxInverted(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 383 | void TxInverted(bool enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 384 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 385 | bool TxWait(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 386 | void TxWait(bool timeout); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 387 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 388 | uint32_t RxFrequency(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 389 | void RxFrequency(uint32_t freq); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 390 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 391 | bool RxInverted(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 392 | void RxInverted(bool enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 393 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 394 | uint8_t RxOutput(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 395 | void RxOutput(uint8_t type); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 396 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 397 | uint8_t RxDataRate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 398 | void RxDataRate(uint8_t rate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 399 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 400 | uint8_t Rx2DataRate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 401 | void Rx2DataRate(uint8_t rate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 402 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 403 | uint8_t StartUpMode(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 404 | void StartUpMode(uint8_t mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 405 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 406 | /* Serial Settings */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 407 | uint32_t SerialBaudRate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 408 | void SerialBaudRate(uint32_t rate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 409 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 410 | uint32_t WakeInterval(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 411 | void WakeInterval(uint32_t interval); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 412 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 413 | uint32_t WakeDelay(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 414 | void WakeDelay(uint32_t delay); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 415 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 416 | uint16_t WakeTimeout(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 417 | void WakeTimeout(uint16_t timeout); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 418 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 419 | uint8_t WakePin(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 420 | void WakePin(uint8_t pin); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 421 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 422 | uint8_t WakeMode(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 423 | void WakeMode(uint8_t mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 424 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 425 | uint32_t DebugBaudRate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 426 | void DebugBaudRate(uint32_t baud); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 427 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 428 | bool Joined(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 429 | void Joined(bool val); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 430 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 431 | uint32_t* Channels(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 432 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 433 | uint32_t* DownlinkChannels(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 434 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 435 | uint8_t* ChannelRanges(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 436 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 437 | uint8_t* SessionDataKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 438 | void SessionDataKey(uint8_t* key); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 439 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 440 | uint8_t* SessionNetworkKey(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 441 | void SessionNetworkKey(uint8_t* key); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 442 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 443 | uint32_t SessionNetworkAddress(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 444 | void SessionNetworkAddress(uint32_t addr); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 445 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 446 | uint8_t SessionDatarate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 447 | void SessionDatarate(uint8_t datarate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 448 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 449 | uint8_t SessionTxPower(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 450 | void SessionTxPower(uint8_t power); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 451 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 452 | uint8_t SessionRepeat(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 453 | void SessionRepeat(uint8_t repeat); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 454 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 455 | uint8_t SessionRxDelay(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 456 | void SessionRxDelay(uint8_t delay); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 457 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 458 | uint8_t SessionRx1DatarateOffset(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 459 | void SessionRx1DatarateOffset(uint8_t offset); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 460 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 461 | uint8_t SessionRx2Datarate(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 462 | void SessionRx2Datarate(uint8_t datarate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 463 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 464 | uint32_t SessionRx2Frequency(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 465 | void SessionRx2Frequency(uint32_t frequency); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 466 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 467 | uint64_t SessionChannelMask(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 468 | void SessionChannelMask(uint64_t mask); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 469 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 470 | uint8_t Session500kMask(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 471 | void Session500kMask(uint8_t mask); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 472 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 473 | uint32_t* SessionChannels(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 474 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 475 | uint32_t* SessionDownlinkChannels(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 476 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 477 | uint8_t* SessionChannelRanges(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 478 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 479 | uint32_t SessionUplinkCounter(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 480 | void SessionUplinkCounter(uint32_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 481 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 482 | uint32_t SessionDownlinkCounter(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 483 | void SessionDownlinkCounter(uint32_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 484 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 485 | uint8_t SessionAdrAckCounter(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 486 | void SessionAdrAckCounter(uint8_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 487 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 488 | uint8_t SessionLinkFailCount(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 489 | void SessionLinkFailCount(uint8_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 490 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 491 | uint8_t SessionFrequencySubBand(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 492 | void SessionFrequencySubBand(uint8_t band); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 493 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 494 | bool SessionServerAckRequested(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 495 | void SessionServerAckRequested(bool val); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 496 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 497 | uint32_t SessionNetworkId(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 498 | void SessionNetworkId(uint32_t id); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 499 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 500 | uint8_t SessionDeviceClass(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 501 | void SessionDeviceClass(uint8_t cls); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 502 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 503 | uint8_t* SessionCommandBuffer(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 504 | void SessionCommandBuffer(uint8_t* buffer); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 505 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 506 | uint8_t SessionCommandBufferIndex(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 507 | void SessionCommandBufferIndex(uint8_t index); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 508 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 509 | uint8_t SessionMaxDutyCycle(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 510 | void SessionMaxDutyCycle(uint8_t duty); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 511 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 512 | uint8_t SessionUplinkDwelltime(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 513 | void SessionUplinkDwelltime(uint8_t dwell); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 514 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 515 | uint8_t SessionDownlinkDwelltime(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 516 | void SessionDownlinkDwelltime(uint8_t dwell); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 517 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 518 | uint8_t SessionMaxEIRP(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 519 | void SessionMaxEIRP(uint8_t pow); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 520 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 521 | uint8_t LogLevel(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 522 | void LogLevel(uint8_t level); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 523 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 524 | uint8_t JoinByteOrder(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 525 | void JoinByteOrder(uint8_t order); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 526 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 527 | uint8_t PreserveSessionOverReset(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 528 | void PreserveSessionOverReset(uint8_t); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 529 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 530 | uint8_t JoinDelay(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 531 | void JoinDelay(uint8_t delay); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 532 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 533 | uint8_t JoinRx1DatarateOffset(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 534 | void JoinRx1DatarateOffset(uint8_t offset); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 535 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 536 | uint8_t JoinRx2DatarateIndex(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 537 | void JoinRx2DatarateIndex(uint8_t datarate); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 538 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 539 | uint32_t JoinRx2Frequency(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 540 | void JoinRx2Frequency(uint32_t freq); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 541 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 542 | uint8_t RxDelay(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 543 | void RxDelay(uint8_t delay); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 544 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 545 | uint8_t Port(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 546 | void Port(uint8_t port); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 547 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 548 | uint8_t Class(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 549 | void Class(uint8_t cls); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 550 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 551 | int8_t AntennaGain(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 552 | void AntennaGain(int8_t gain); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 553 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 554 | bool FlowControl(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 555 | void FlowControl(bool enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 556 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 557 | uint8_t Repeat(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 558 | void Repeat(uint8_t repeat); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 559 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 560 | bool SerialClearOnError(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 561 | void SerialClearOnError(bool val); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 562 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 563 | uint8_t LastPlan(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 564 | uint8_t SessionLastPlan(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 565 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 566 | void LbtTimeUs(uint16_t us); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 567 | uint16_t LbtTimeUs(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 568 | void LbtThreshold(int8_t rssi); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 569 | int8_t LbtThreshold(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 570 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 571 | uint32_t GetMulticastAddress(int i); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 572 | uint8_t* GetMulticastNetSessionKey(int i); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 573 | uint8_t* GetMulticastAppSessionKey(int i); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 574 | uint32_t GetMulticastCounter(int i); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 575 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 576 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 577 | void SetMulticastAddress(int i, uint32_t addr); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 578 | void SetMulticastNetSessionKey(int i, const uint8_t* key); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 579 | void SetMulticastAppSessionKey(int i, const uint8_t* key); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 580 | void SetMulticastCounter(int i, uint32_t count); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 581 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 582 | void AutoSleep(uint8_t enable); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 583 | uint8_t AutoSleep(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 584 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 585 | /*! |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 586 | * AES encryption/decryption cipher network app ieee eui |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 587 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 588 | static const uint8_t defaultNetworkEUI[EUI_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 589 | /*! |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 590 | * AES encryption/decryption cipher application key |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 591 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 592 | static const uint8_t defaultNetworkKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 593 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 594 | /*! |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 595 | * AES encryption/decryption cipher network session key |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 596 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 597 | static const uint8_t defaultNetworkSessionKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 598 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 599 | /*! |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 600 | * AES encryption/decryption cipher application session key |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 601 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 602 | static const uint8_t defaultDataSessionKey[KEY_LENGTH]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 603 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 604 | void Sleep(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 605 | void Wakeup(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 606 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 607 | void SetChannelPlan(lora::ChannelPlan *plan); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 608 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 609 | #if defined (TARGET_MTS_MDOT_F411RE) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 610 | mDot::mdot_file OpenUserFile(const char* file, int mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 611 | bool SeekUserFile(mDot::mdot_file& file, size_t offset, int whence); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 612 | int ReadUserFile(mDot::mdot_file& file, void* data, size_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 613 | int WriteUserFile(mDot::mdot_file& file, void* data, size_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 614 | bool CloseUserFile(mDot::mdot_file& file); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 615 | bool MoveUserFile(mDot::mdot_file& file, const char* new_name); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 616 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 617 | bool MoveUserFile(const char* file, const char* new_name); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 618 | bool SaveUserFile(const char* file, void* data, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 619 | bool AppendUserFile(const char* file, void* data, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 620 | bool ReadUserFile(const char* file, void* data, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 621 | bool DeleteUserFile(const char* file); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 622 | bool DeleteFile(const char* file); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 623 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 624 | bool MoveUserFileToFirwareUpgrade(const char* file); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 625 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 626 | std::vector<mDot::mdot_file> ListUserFiles(); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 627 | #endif /* TARGET_MTS_MDOT_F411RE */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 628 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 629 | private: |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 630 | LoRaSettings_t _settings; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 631 | ProtectedSettings_t _protected; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 632 | NetworkSession_t _session; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 633 | bool _dirty_settings; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 634 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 635 | uint32_t _frequencyMin; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 636 | uint32_t _frequencyMax; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 637 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 638 | lora::ChannelPlan *_plan; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 639 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 640 | #if defined (TARGET_MTS_MDOT_F411RE) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 641 | // SpiFlash25 flash(MOSI, MISO, SCK, CS, W, HOLD); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 642 | static SpiFlash25 _flash; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 643 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 644 | mDot::mdot_file OpenFile(spiffs *fs, const char* file, int mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 645 | bool SeekFile(spiffs *fs, mDot::mdot_file& file, size_t offset, int whence); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 646 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 647 | int ReadFile(spiffs *fs, mDot::mdot_file& file, void* data, size_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 648 | int WriteFile(spiffs *fs, mDot::mdot_file& file, void* data, size_t length); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 649 | int MoveFile(spiffs* fs, mDot::mdot_file& file, const char* new_name); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 650 | bool CloseFile(spiffs *fs, mDot::mdot_file& file); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 651 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 652 | bool AppendFile(spiffs *fs, const char* file, void* data, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 653 | bool SaveFile(spiffs *fs, const char* file, void* data, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 654 | bool ReadFile(spiffs *fs, const char* file, void* dest, uint32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 655 | bool MoveFile(spiffs *fs, const char* file, const char* new_name); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 656 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 657 | // glue code between SPI driver and filesystem |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 658 | static int spi_read(unsigned int addr, unsigned int size, unsigned char* data); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 659 | static int spi_write(unsigned int addr, unsigned int size, unsigned char* data); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 660 | static int spi_erase(unsigned int addr, unsigned int size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 661 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 662 | static u8_t spiffs_work_buf[PAGE_SIZE * 2]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 663 | static u8_t spiffs_fds[32 * MAX_CONCURRENT_FDS]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 664 | static u8_t spiffs_cache_buf[(PAGE_SIZE + 32) * 4]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 665 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 666 | u8_t _openFds; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 667 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 668 | static spiffs _fs; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 669 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 670 | static char file[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 671 | static char protected_file[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 672 | static char session_file[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 673 | static char user_dir[]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 674 | #endif /* TARGET_MTS_MDOT_F411RE */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 675 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 676 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 677 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 678 | #endif // __LORA_CONFIG_H__ |