kopia lustrzana https://github.com/jgromes/RadioLib
[LoRaWAN] Cppcheck fixes
rodzic
aab3e05386
commit
ff24e2b2ae
|
@ -24,16 +24,16 @@ int16_t LoRaWANNode::sendReceive(const String& strUp, uint8_t fPort, String& str
|
||||||
// build a temporary buffer
|
// build a temporary buffer
|
||||||
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
||||||
size_t lenDown = 0;
|
size_t lenDown = 0;
|
||||||
uint8_t dataDown[251];
|
uint8_t dataDown[RADIOLIB_LORAWAN_MAX_DOWNLINK_SIZE + 1];
|
||||||
|
|
||||||
state = this->sendReceive((const uint8_t*)dataUp, strlen(dataUp), fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown);
|
state = this->sendReceive(reinterpret_cast<const uint8_t*>(dataUp), strlen(dataUp), fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown);
|
||||||
|
|
||||||
if(state == RADIOLIB_ERR_NONE) {
|
if(state == RADIOLIB_ERR_NONE) {
|
||||||
// add null terminator
|
// add null terminator
|
||||||
dataDown[lenDown] = '\0';
|
dataDown[lenDown] = '\0';
|
||||||
|
|
||||||
// initialize Arduino String class
|
// initialize Arduino String class
|
||||||
strDown = String((char*)dataDown);
|
strDown = String(reinterpret_cast<char*>(dataDown));
|
||||||
}
|
}
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
|
@ -44,20 +44,20 @@ int16_t LoRaWANNode::sendReceive(const char* strUp, uint8_t fPort, bool isConfir
|
||||||
// build a temporary buffer
|
// build a temporary buffer
|
||||||
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
||||||
size_t lenDown = 0;
|
size_t lenDown = 0;
|
||||||
uint8_t dataDown[251];
|
uint8_t dataDown[RADIOLIB_LORAWAN_MAX_DOWNLINK_SIZE + 1];
|
||||||
|
|
||||||
return(this->sendReceive((uint8_t*)strUp, strlen(strUp), fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown));
|
return(this->sendReceive(reinterpret_cast<uint8_t*>(const_cast<char*>(strUp)), strlen(strUp), fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown));
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t LoRaWANNode::sendReceive(const char* strUp, uint8_t fPort, uint8_t* dataDown, size_t* lenDown, bool isConfirmed, LoRaWANEvent_t* eventUp, LoRaWANEvent_t* eventDown) {
|
int16_t LoRaWANNode::sendReceive(const char* strUp, uint8_t fPort, uint8_t* dataDown, size_t* lenDown, bool isConfirmed, LoRaWANEvent_t* eventUp, LoRaWANEvent_t* eventDown) {
|
||||||
return(this->sendReceive((uint8_t*)strUp, strlen(strUp), fPort, dataDown, lenDown, isConfirmed, eventUp, eventDown));
|
return(this->sendReceive(reinterpret_cast<uint8_t*>(const_cast<char*>(strUp)), strlen(strUp), fPort, dataDown, lenDown, isConfirmed, eventUp, eventDown));
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t LoRaWANNode::sendReceive(const uint8_t* dataUp, size_t lenUp, uint8_t fPort, bool isConfirmed, LoRaWANEvent_t* eventUp, LoRaWANEvent_t* eventDown) {
|
int16_t LoRaWANNode::sendReceive(const uint8_t* dataUp, size_t lenUp, uint8_t fPort, bool isConfirmed, LoRaWANEvent_t* eventUp, LoRaWANEvent_t* eventDown) {
|
||||||
// build a temporary buffer
|
// build a temporary buffer
|
||||||
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
// LoRaWAN downlinks can have 250 bytes at most with 1 extra byte for NULL
|
||||||
size_t lenDown = 0;
|
size_t lenDown = 0;
|
||||||
uint8_t dataDown[251];
|
uint8_t dataDown[RADIOLIB_LORAWAN_MAX_DOWNLINK_SIZE + 1];
|
||||||
|
|
||||||
return(this->sendReceive(dataUp, lenUp, fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown));
|
return(this->sendReceive(dataUp, lenUp, fPort, dataDown, &lenDown, isConfirmed, eventUp, eventDown));
|
||||||
}
|
}
|
||||||
|
@ -518,10 +518,10 @@ int16_t LoRaWANNode::setBufferSession(const uint8_t* persistentBuffer) {
|
||||||
// for dynamic bands, the additional channels must be restored per-channel
|
// for dynamic bands, the additional channels must be restored per-channel
|
||||||
if(this->band->bandType == RADIOLIB_LORAWAN_BAND_DYNAMIC) {
|
if(this->band->bandType == RADIOLIB_LORAWAN_BAND_DYNAMIC) {
|
||||||
// all-zero buffer used for checking if MAC commands are set
|
// all-zero buffer used for checking if MAC commands are set
|
||||||
uint8_t bufferZeroes[RADIOLIB_LORAWAN_MAX_MAC_COMMAND_LEN_DOWN] = { 0 };
|
const uint8_t bufferZeroes[RADIOLIB_LORAWAN_MAX_MAC_COMMAND_LEN_DOWN] = { 0 };
|
||||||
|
|
||||||
// restore the session channels
|
// restore the session channels
|
||||||
uint8_t *startChannelsUp = &this->bufferSession[RADIOLIB_LORAWAN_SESSION_UL_CHANNELS];
|
const uint8_t *startChannelsUp = &this->bufferSession[RADIOLIB_LORAWAN_SESSION_UL_CHANNELS];
|
||||||
|
|
||||||
cid = RADIOLIB_LORAWAN_MAC_NEW_CHANNEL;
|
cid = RADIOLIB_LORAWAN_MAC_NEW_CHANNEL;
|
||||||
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
||||||
|
@ -532,7 +532,7 @@ int16_t LoRaWANNode::setBufferSession(const uint8_t* persistentBuffer) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t *startChannelsDown = &this->bufferSession[RADIOLIB_LORAWAN_SESSION_DL_CHANNELS];
|
const uint8_t *startChannelsDown = &this->bufferSession[RADIOLIB_LORAWAN_SESSION_DL_CHANNELS];
|
||||||
|
|
||||||
cid = RADIOLIB_LORAWAN_MAC_DL_CHANNEL;
|
cid = RADIOLIB_LORAWAN_MAC_DL_CHANNEL;
|
||||||
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
||||||
|
@ -550,12 +550,13 @@ int16_t LoRaWANNode::setBufferSession(const uint8_t* persistentBuffer) {
|
||||||
memcpy(cOcts, &this->bufferSession[RADIOLIB_LORAWAN_SESSION_LINK_ADR], cLen);
|
memcpy(cOcts, &this->bufferSession[RADIOLIB_LORAWAN_SESSION_LINK_ADR], cLen);
|
||||||
(void)execMacCommand(cid, cOcts, cLen);
|
(void)execMacCommand(cid, cOcts, cLen);
|
||||||
|
|
||||||
uint8_t cids[6] = {
|
const uint8_t cids[6] = {
|
||||||
RADIOLIB_LORAWAN_MAC_DUTY_CYCLE, RADIOLIB_LORAWAN_MAC_RX_PARAM_SETUP,
|
RADIOLIB_LORAWAN_MAC_DUTY_CYCLE, RADIOLIB_LORAWAN_MAC_RX_PARAM_SETUP,
|
||||||
RADIOLIB_LORAWAN_MAC_RX_TIMING_SETUP, RADIOLIB_LORAWAN_MAC_TX_PARAM_SETUP,
|
RADIOLIB_LORAWAN_MAC_RX_TIMING_SETUP, RADIOLIB_LORAWAN_MAC_TX_PARAM_SETUP,
|
||||||
RADIOLIB_LORAWAN_MAC_ADR_PARAM_SETUP, RADIOLIB_LORAWAN_MAC_REJOIN_PARAM_SETUP
|
RADIOLIB_LORAWAN_MAC_ADR_PARAM_SETUP, RADIOLIB_LORAWAN_MAC_REJOIN_PARAM_SETUP
|
||||||
};
|
};
|
||||||
uint16_t locs[6] = {
|
|
||||||
|
const uint16_t locs[6] = {
|
||||||
RADIOLIB_LORAWAN_SESSION_DUTY_CYCLE, RADIOLIB_LORAWAN_SESSION_RX_PARAM_SETUP,
|
RADIOLIB_LORAWAN_SESSION_DUTY_CYCLE, RADIOLIB_LORAWAN_SESSION_RX_PARAM_SETUP,
|
||||||
RADIOLIB_LORAWAN_SESSION_RX_TIMING_SETUP, RADIOLIB_LORAWAN_SESSION_TX_PARAM_SETUP,
|
RADIOLIB_LORAWAN_SESSION_RX_TIMING_SETUP, RADIOLIB_LORAWAN_SESSION_TX_PARAM_SETUP,
|
||||||
RADIOLIB_LORAWAN_SESSION_ADR_PARAM_SETUP, RADIOLIB_LORAWAN_SESSION_REJOIN_PARAM_SETUP
|
RADIOLIB_LORAWAN_SESSION_ADR_PARAM_SETUP, RADIOLIB_LORAWAN_SESSION_REJOIN_PARAM_SETUP
|
||||||
|
@ -995,7 +996,7 @@ int16_t LoRaWANNode::activateABP(uint8_t initialDr) {
|
||||||
return(RADIOLIB_LORAWAN_NEW_SESSION);
|
return(RADIOLIB_LORAWAN_NEW_SESSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoRaWANNode::processCFList(uint8_t* cfList) {
|
void LoRaWANNode::processCFList(const uint8_t* cfList) {
|
||||||
RADIOLIB_DEBUG_PROTOCOL_PRINTLN("Processing CFList");
|
RADIOLIB_DEBUG_PROTOCOL_PRINTLN("Processing CFList");
|
||||||
|
|
||||||
uint8_t cOcts[14] = { 0 }; // TODO explain
|
uint8_t cOcts[14] = { 0 }; // TODO explain
|
||||||
|
@ -1015,7 +1016,7 @@ void LoRaWANNode::processCFList(uint8_t* cfList) {
|
||||||
cid = RADIOLIB_LORAWAN_MAC_NEW_CHANNEL;
|
cid = RADIOLIB_LORAWAN_MAC_NEW_CHANNEL;
|
||||||
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
(void)this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_DOWNLINK);
|
||||||
|
|
||||||
uint8_t freqZero[3] = { 0 };
|
const uint8_t freqZero[3] = { 0 };
|
||||||
|
|
||||||
// datarate range for all new channels is equal to the default channels
|
// datarate range for all new channels is equal to the default channels
|
||||||
cOcts[4] = (this->band->txFreqs[0].drMax << 4) | this->band->txFreqs[0].drMin;
|
cOcts[4] = (this->band->txFreqs[0].drMax << 4) | this->band->txFreqs[0].drMin;
|
||||||
|
@ -1264,7 +1265,7 @@ void LoRaWANNode::micUplink(uint8_t* inOut, uint8_t lenInOut) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t LoRaWANNode::transmitUplink(LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len, bool retrans) {
|
int16_t LoRaWANNode::transmitUplink(const LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len, bool retrans) {
|
||||||
int16_t state = RADIOLIB_ERR_UNKNOWN;
|
int16_t state = RADIOLIB_ERR_UNKNOWN;
|
||||||
Module* mod = this->phyLayer->getMod();
|
Module* mod = this->phyLayer->getMod();
|
||||||
|
|
||||||
|
@ -1707,12 +1708,7 @@ int16_t LoRaWANNode::parseDownlink(uint8_t* data, size_t* len, LoRaWANEvent_t* e
|
||||||
uint8_t fLen = 1;
|
uint8_t fLen = 1;
|
||||||
uint8_t* mPtr = fOpts;
|
uint8_t* mPtr = fOpts;
|
||||||
uint8_t procLen = 0;
|
uint8_t procLen = 0;
|
||||||
|
uint8_t fOptsRe[RADIOLIB_LORAWAN_MAX_DOWNLINK_SIZE] = { 0 };
|
||||||
#if !RADIOLIB_STATIC_ONLY
|
|
||||||
uint8_t* fOptsRe = new uint8_t[250];
|
|
||||||
#else
|
|
||||||
uint8_t fOptsRe[RADIOLIB_STATIC_ARRAY_SIZE];
|
|
||||||
#endif
|
|
||||||
uint8_t fOptsReLen = 0;
|
uint8_t fOptsReLen = 0;
|
||||||
|
|
||||||
// indication whether LinkAdr MAC command has been processed
|
// indication whether LinkAdr MAC command has been processed
|
||||||
|
@ -1836,7 +1832,6 @@ int16_t LoRaWANNode::parseDownlink(uint8_t* data, size_t* len, LoRaWANEvent_t* e
|
||||||
|
|
||||||
#if !RADIOLIB_STATIC_ONLY
|
#if !RADIOLIB_STATIC_ONLY
|
||||||
delete[] fOpts;
|
delete[] fOpts;
|
||||||
delete[] fOptsRe;
|
|
||||||
delete[] downlinkMsg;
|
delete[] downlinkMsg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2213,7 +2208,7 @@ bool LoRaWANNode::execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uin
|
||||||
if(delay == 0) {
|
if(delay == 0) {
|
||||||
delay = 1;
|
delay = 1;
|
||||||
}
|
}
|
||||||
this->rxDelays[1] = delay * 1000; // Rx1 delay
|
this->rxDelays[1] = (RadioLibTime_t)delay * (RadioLibTime_t)1000; // Rx1 delay
|
||||||
this->rxDelays[2] = this->rxDelays[1] + 1000; // Rx2 delay
|
this->rxDelays[2] = this->rxDelays[1] + 1000; // Rx2 delay
|
||||||
|
|
||||||
memcpy(&this->bufferSession[RADIOLIB_LORAWAN_SESSION_RX_TIMING_SETUP], optIn, lenIn);
|
memcpy(&this->bufferSession[RADIOLIB_LORAWAN_SESSION_RX_TIMING_SETUP], optIn, lenIn);
|
||||||
|
@ -2258,7 +2253,7 @@ bool LoRaWANNode::execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uin
|
||||||
// if not a valid server version, retransmit RekeyInd
|
// if not a valid server version, retransmit RekeyInd
|
||||||
uint8_t cLen = 0;
|
uint8_t cLen = 0;
|
||||||
this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_UPLINK);
|
this->getMacLen(cid, &cLen, RADIOLIB_LORAWAN_UPLINK);
|
||||||
uint8_t cOcts[1] = { this->rev };
|
const uint8_t cOcts[1] = { this->rev };
|
||||||
(void)LoRaWANNode::pushMacCommand(cid, cOcts, this->fOptsUp, &this->fOptsUpLen, RADIOLIB_LORAWAN_UPLINK);
|
(void)LoRaWANNode::pushMacCommand(cid, cOcts, this->fOptsUp, &this->fOptsUpLen, RADIOLIB_LORAWAN_UPLINK);
|
||||||
|
|
||||||
// discard RekeyConf, therefore return false so it doesn't send a reply
|
// discard RekeyConf, therefore return false so it doesn't send a reply
|
||||||
|
@ -2422,7 +2417,7 @@ void LoRaWANNode::postprocessMacLinkAdr(uint8_t* ack, uint8_t cLen) {
|
||||||
int16_t LoRaWANNode::getMacCommand(uint8_t cid, LoRaWANMacCommand_t* cmd) {
|
int16_t LoRaWANNode::getMacCommand(uint8_t cid, LoRaWANMacCommand_t* cmd) {
|
||||||
for(size_t i = 0; i < RADIOLIB_LORAWAN_NUM_MAC_COMMANDS; i++) {
|
for(size_t i = 0; i < RADIOLIB_LORAWAN_NUM_MAC_COMMANDS; i++) {
|
||||||
if(MacTable[i].cid == cid) {
|
if(MacTable[i].cid == cid) {
|
||||||
memcpy((void*)cmd, (void*)&MacTable[i], sizeof(LoRaWANMacCommand_t));
|
memcpy(reinterpret_cast<void*>(cmd), (void*)&MacTable[i], sizeof(LoRaWANMacCommand_t));
|
||||||
return(RADIOLIB_ERR_NONE);
|
return(RADIOLIB_ERR_NONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2521,7 +2516,7 @@ bool LoRaWANNode::isPersistentMacCommand(uint8_t cid, uint8_t dir) {
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t LoRaWANNode::pushMacCommand(uint8_t cid, uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir) {
|
int16_t LoRaWANNode::pushMacCommand(uint8_t cid, const uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir) {
|
||||||
uint8_t fLen = 0;
|
uint8_t fLen = 0;
|
||||||
int16_t state = this->getMacLen(cid, &fLen, dir, true);
|
int16_t state = this->getMacLen(cid, &fLen, dir, true);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
@ -2538,7 +2533,7 @@ int16_t LoRaWANNode::pushMacCommand(uint8_t cid, uint8_t* cOcts, uint8_t* out, u
|
||||||
return(RADIOLIB_ERR_NONE);
|
return(RADIOLIB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t LoRaWANNode::getMacPayload(uint8_t cid, uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir) {
|
int16_t LoRaWANNode::getMacPayload(uint8_t cid, const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir) {
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
while(i < lenIn) {
|
while(i < lenIn) {
|
||||||
|
@ -2625,7 +2620,7 @@ int16_t LoRaWANNode::setDatarate(uint8_t drUp) {
|
||||||
// scan through all enabled channels and check if the requested datarate is available
|
// scan through all enabled channels and check if the requested datarate is available
|
||||||
bool isValidDR = false;
|
bool isValidDR = false;
|
||||||
for(size_t i = 0; i < RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS; i++) {
|
for(size_t i = 0; i < RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS; i++) {
|
||||||
LoRaWANChannel_t *chnl = &(this->channelPlan[RADIOLIB_LORAWAN_UPLINK][i]);
|
const LoRaWANChannel_t *chnl = &(this->channelPlan[RADIOLIB_LORAWAN_UPLINK][i]);
|
||||||
if(chnl->enabled) {
|
if(chnl->enabled) {
|
||||||
if(drUp >= chnl->drMin && drUp <= chnl->drMax) {
|
if(drUp >= chnl->drMin && drUp <= chnl->drMax) {
|
||||||
isValidDR = true;
|
isValidDR = true;
|
||||||
|
@ -3220,7 +3215,7 @@ void LoRaWANNode::printChannels() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint32_t LoRaWANNode::generateMIC(uint8_t* msg, size_t len, uint8_t* key) {
|
uint32_t LoRaWANNode::generateMIC(const uint8_t* msg, size_t len, uint8_t* key) {
|
||||||
if((msg == NULL) || (len == 0)) {
|
if((msg == NULL) || (len == 0)) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,6 +208,8 @@
|
||||||
#define RADIOLIB_LORAWAN_MAX_MAC_COMMAND_LEN_UP (2)
|
#define RADIOLIB_LORAWAN_MAX_MAC_COMMAND_LEN_UP (2)
|
||||||
#define RADIOLIB_LORAWAN_MAX_NUM_ADR_COMMANDS (8)
|
#define RADIOLIB_LORAWAN_MAX_NUM_ADR_COMMANDS (8)
|
||||||
|
|
||||||
|
#define RADIOLIB_LORAWAN_MAX_DOWNLINK_SIZE (250)
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\struct LoRaWANMacCommand_t
|
\struct LoRaWANMacCommand_t
|
||||||
\brief MAC command specification structure.
|
\brief MAC command specification structure.
|
||||||
|
@ -984,7 +986,7 @@ class LoRaWANNode {
|
||||||
int16_t processJoinAccept(LoRaWANJoinEvent_t *joinEvent);
|
int16_t processJoinAccept(LoRaWANJoinEvent_t *joinEvent);
|
||||||
|
|
||||||
// a join-accept can piggy-back a set of channels or channel masks
|
// a join-accept can piggy-back a set of channels or channel masks
|
||||||
void processCFList(uint8_t* cfList);
|
void processCFList(const uint8_t* cfList);
|
||||||
|
|
||||||
// check whether payload length and fport are allowed
|
// check whether payload length and fport are allowed
|
||||||
int16_t isValidUplink(uint8_t* len, uint8_t fPort);
|
int16_t isValidUplink(uint8_t* len, uint8_t fPort);
|
||||||
|
@ -999,7 +1001,7 @@ class LoRaWANNode {
|
||||||
void micUplink(uint8_t* inOut, uint8_t lenInOut);
|
void micUplink(uint8_t* inOut, uint8_t lenInOut);
|
||||||
|
|
||||||
// transmit uplink buffer on a specified channel
|
// transmit uplink buffer on a specified channel
|
||||||
int16_t transmitUplink(LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len, bool retrans);
|
int16_t transmitUplink(const LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len, bool retrans);
|
||||||
|
|
||||||
// wait for, open and listen during receive windows; only performs listening
|
// wait for, open and listen during receive windows; only performs listening
|
||||||
int16_t receiveCommon(uint8_t dir, const LoRaWANChannel_t* dlChannels, const RadioLibTime_t* dlDelays, uint8_t numWindows, RadioLibTime_t tReference);
|
int16_t receiveCommon(uint8_t dir, const LoRaWANChannel_t* dlChannels, const RadioLibTime_t* dlDelays, uint8_t numWindows, RadioLibTime_t tReference);
|
||||||
|
@ -1036,10 +1038,10 @@ class LoRaWANNode {
|
||||||
bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
|
bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
|
||||||
|
|
||||||
// push MAC command to queue, done by copy
|
// push MAC command to queue, done by copy
|
||||||
int16_t pushMacCommand(uint8_t cid, uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
|
int16_t pushMacCommand(uint8_t cid, const uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
|
||||||
|
|
||||||
// retrieve the payload of a certain MAC command, if present in the buffer
|
// retrieve the payload of a certain MAC command, if present in the buffer
|
||||||
int16_t getMacPayload(uint8_t cid, uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
|
int16_t getMacPayload(uint8_t cid, const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
|
||||||
|
|
||||||
// delete a specific MAC command from queue, indicated by the command ID
|
// delete a specific MAC command from queue, indicated by the command ID
|
||||||
int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
|
int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
|
||||||
|
@ -1087,7 +1089,7 @@ class LoRaWANNode {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// method to generate message integrity code
|
// method to generate message integrity code
|
||||||
uint32_t generateMIC(uint8_t* msg, size_t len, uint8_t* key);
|
uint32_t generateMIC(const uint8_t* msg, size_t len, uint8_t* key);
|
||||||
|
|
||||||
// method to verify message integrity code
|
// method to verify message integrity code
|
||||||
// it assumes that the MIC is the last 4 bytes of the message
|
// it assumes that the MIC is the last 4 bytes of the message
|
||||||
|
|
Ładowanie…
Reference in New Issue