diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html index c3dbf516..71f4184e 100644 --- a/_lo_ra_w_a_n_8h_source.html +++ b/_lo_ra_w_a_n_8h_source.html @@ -360,254 +360,256 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
323  bool confirmed;
324 
327  bool confirming;
-
328 
-
330  float freq;
+
328 
+
330  uint8_t datarate;
331 
-
333  int16_t power;
+
333  float freq;
334 
-
336  uint32_t fcnt;
+
336  int16_t power;
337 
-
339  uint8_t port;
-
340 };
-
341 
-
346 class LoRaWANNode {
-
347  public:
-
348 
-
349  // Offset between TX and RX1 (such that RX1 has equal or lower DR)
-
350  uint8_t rx1DrOffset;
+
339  uint32_t fcnt;
+
340 
+
342  uint8_t port;
+
343 };
+
344 
+
349 class LoRaWANNode {
+
350  public:
351 
-
352  // RX2 channel properties - may be changed by MAC command
-
353  LoRaWANChannel_t rx2;
+
352  // Offset between TX and RX1 (such that RX1 has equal or lower DR)
+
353  uint8_t rx1DrOffset;
354 
-
360  LoRaWANNode(PhysicalLayer* phy, const LoRaWANBand_t* band);
-
361 
-
362 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
-
367  void wipe();
-
368 
-
373  int16_t restore();
-
374 #endif
-
375 
-
388  int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t* nwkKey, uint8_t* appKey, uint8_t joinDr = RADIOLIB_LORAWAN_DATA_RATE_UNUSED, bool force = false);
-
389 
-
401  int16_t beginABP(uint32_t addr, uint8_t* nwkSKey, uint8_t* appSKey, uint8_t* fNwkSIntKey = NULL, uint8_t* sNwkSIntKey = NULL, bool force = false);
-
402 
-
404  bool isJoined();
+
355  // RX2 channel properties - may be changed by MAC command
+
356  LoRaWANChannel_t rx2;
+
357 
+
363  LoRaWANNode(PhysicalLayer* phy, const LoRaWANBand_t* band);
+
364 
+
365 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
+
370  void wipe();
+
371 
+
376  int16_t restore();
+
377 #endif
+
378 
+
391  int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t* nwkKey, uint8_t* appKey, uint8_t joinDr = RADIOLIB_LORAWAN_DATA_RATE_UNUSED, bool force = false);
+
392 
+
404  int16_t beginABP(uint32_t addr, uint8_t* nwkSKey, uint8_t* appSKey, uint8_t* fNwkSIntKey = NULL, uint8_t* sNwkSIntKey = NULL, bool force = false);
405 
-
411  int16_t saveSession();
-
412 
-
413  #if defined(RADIOLIB_BUILD_ARDUINO)
-
423  int16_t uplink(String& str, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
-
424  #endif
-
425 
-
435  int16_t uplink(const char* str, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
-
436 
-
447  int16_t uplink(uint8_t* data, size_t len, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
-
448 
-
449  #if defined(RADIOLIB_BUILD_ARDUINO)
-
457  int16_t downlink(String& str, LoRaWANEvent_t* event = NULL);
-
458  #endif
-
459 
-
468  int16_t downlink(uint8_t* data, size_t* len, LoRaWANEvent_t* event = NULL);
-
469 
-
470  #if defined(RADIOLIB_BUILD_ARDUINO)
-
483  int16_t sendReceive(String& strUp, uint8_t port, String& strDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
-
484  #endif
-
485 
-
499  int16_t sendReceive(const char* strUp, uint8_t port, uint8_t* dataDown, size_t* lenDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
-
500 
-
515  int16_t sendReceive(uint8_t* dataUp, size_t lenUp, uint8_t port, uint8_t* dataDown, size_t* lenDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
-
516 
-
522  void setDeviceStatus(uint8_t battLevel);
-
523 
-
525  uint32_t getFcntUp();
+
407  bool isJoined();
+
408 
+
414  int16_t saveSession();
+
415 
+
416  #if defined(RADIOLIB_BUILD_ARDUINO)
+
426  int16_t uplink(String& str, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
+
427  #endif
+
428 
+
438  int16_t uplink(const char* str, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
+
439 
+
450  int16_t uplink(uint8_t* data, size_t len, uint8_t port, bool isConfirmed = false, LoRaWANEvent_t* event = NULL);
+
451 
+
452  #if defined(RADIOLIB_BUILD_ARDUINO)
+
460  int16_t downlink(String& str, LoRaWANEvent_t* event = NULL);
+
461  #endif
+
462 
+
471  int16_t downlink(uint8_t* data, size_t* len, LoRaWANEvent_t* event = NULL);
+
472 
+
473  #if defined(RADIOLIB_BUILD_ARDUINO)
+
486  int16_t sendReceive(String& strUp, uint8_t port, String& strDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
+
487  #endif
+
488 
+
502  int16_t sendReceive(const char* strUp, uint8_t port, uint8_t* dataDown, size_t* lenDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
+
503 
+
518  int16_t sendReceive(uint8_t* dataUp, size_t lenUp, uint8_t port, uint8_t* dataDown, size_t* lenDown, bool isConfirmed = false, LoRaWANEvent_t* eventUp = NULL, LoRaWANEvent_t* eventDown = NULL);
+
519 
+
525  void setDeviceStatus(uint8_t battLevel);
526 
-
532  int16_t setDatarate(uint8_t drUp);
-
533 
-
538  void setADR(bool enable = true);
-
539 
-
545  int16_t setTxPower(int8_t txPower);
-
546 
-
553  int16_t selectSubband(uint8_t idx);
-
554 
-
562  int16_t selectSubband(uint8_t startChannel, uint8_t endChannel);
-
563 
-
570  void setCSMA(uint8_t backoffMax, uint8_t difsSlots, bool enableCSMA = false);
-
571 
-
572 #if !defined(RADIOLIB_GODMODE)
-
573  private:
-
574 #endif
-
575  PhysicalLayer* phyLayer = NULL;
-
576  const LoRaWANBand_t* band = NULL;
-
577 
-
578  LoRaWANMacCommandQueue_t commandsUp = {
-
579  .numCommands = 0,
-
580  .len = 0,
-
581  .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
-
582  };
-
583  LoRaWANMacCommandQueue_t commandsDown = {
-
584  .numCommands = 0,
-
585  .len = 0,
-
586  .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
-
587  };
-
588 
-
589  // the following is either provided by the network server (OTAA)
-
590  // or directly entered by the user (ABP)
-
591  uint32_t devAddr = 0;
-
592  uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
593  uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
594  uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
595  uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
596  uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
597 
-
598  // device-specific parameters, persistent through sessions
-
599  uint16_t devNonce = 0;
-
600  uint32_t joinNonce = 0;
-
601 
-
602  // session-specific parameters
-
603  uint32_t homeNetId = 0;
-
604  uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
-
605  uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
-
606  uint8_t nbTrans = 1; // Number of allowed frame retransmissions
-
607  uint8_t txPwrCur = 0;
-
608  uint32_t fcntUp = 0;
-
609  uint32_t aFcntDown = 0;
-
610  uint32_t nFcntDown = 0;
-
611  uint32_t confFcntUp = RADIOLIB_LORAWAN_FCNT_NONE;
-
612  uint32_t confFcntDown = RADIOLIB_LORAWAN_FCNT_NONE;
-
613  uint32_t adrFcnt = 0;
-
614 
-
615  // whether the current configured channel is in FSK mode
-
616  bool FSK;
+
528  uint32_t getFcntUp();
+
529 
+
535  int16_t setDatarate(uint8_t drUp);
+
536 
+
541  void setADR(bool enable = true);
+
542 
+
548  int16_t setTxPower(int8_t txPower);
+
549 
+
556  int16_t selectSubband(uint8_t idx);
+
557 
+
565  int16_t selectSubband(uint8_t startChannel, uint8_t endChannel);
+
566 
+
573  void setCSMA(uint8_t backoffMax, uint8_t difsSlots, bool enableCSMA = false);
+
574 
+
575 #if !defined(RADIOLIB_GODMODE)
+
576  private:
+
577 #endif
+
578  PhysicalLayer* phyLayer = NULL;
+
579  const LoRaWANBand_t* band = NULL;
+
580 
+
581  LoRaWANMacCommandQueue_t commandsUp = {
+
582  .numCommands = 0,
+
583  .len = 0,
+
584  .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
+
585  };
+
586  LoRaWANMacCommandQueue_t commandsDown = {
+
587  .numCommands = 0,
+
588  .len = 0,
+
589  .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
+
590  };
+
591 
+
592  // the following is either provided by the network server (OTAA)
+
593  // or directly entered by the user (ABP)
+
594  uint32_t devAddr = 0;
+
595  uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
596  uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
597  uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
598  uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
599  uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
600 
+
601  // device-specific parameters, persistent through sessions
+
602  uint16_t devNonce = 0;
+
603  uint32_t joinNonce = 0;
+
604 
+
605  // session-specific parameters
+
606  uint32_t homeNetId = 0;
+
607  uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
+
608  uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
+
609  uint8_t nbTrans = 1; // Number of allowed frame retransmissions
+
610  uint8_t txPwrCur = 0;
+
611  uint32_t fcntUp = 0;
+
612  uint32_t aFcntDown = 0;
+
613  uint32_t nFcntDown = 0;
+
614  uint32_t confFcntUp = RADIOLIB_LORAWAN_FCNT_NONE;
+
615  uint32_t confFcntDown = RADIOLIB_LORAWAN_FCNT_NONE;
+
616  uint32_t adrFcnt = 0;
617 
-
618  // flag that shows whether the device is joined and there is an ongoing session
-
619  bool isJoinedFlag = false;
+
618  // whether the current configured channel is in FSK mode
+
619  bool FSK;
620 
-
621  // ADR is enabled by default
-
622  bool adrEnabled = true;
-
623 
-
624  // enable/disable CSMA for LoRaWAN
-
625  bool enableCSMA;
-
626 
-
627  // number of backoff slots to be decremented after DIFS phase. 0 to disable BO.
-
628  // A random BO avoids collisions in the case where two or more nodes start the CSMA
-
629  // process at the same time.
-
630  uint8_t backoffMax;
-
631 
-
632  // number of CADs to estimate a clear CH
-
633  uint8_t difsSlots;
-
634 
-
635  // available channel frequencies from list passed during OTA activation
-
636  LoRaWANChannel_t availableChannels[2][RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS];
+
621  // flag that shows whether the device is joined and there is an ongoing session
+
622  bool isJoinedFlag = false;
+
623 
+
624  // ADR is enabled by default
+
625  bool adrEnabled = true;
+
626 
+
627  // enable/disable CSMA for LoRaWAN
+
628  bool enableCSMA;
+
629 
+
630  // number of backoff slots to be decremented after DIFS phase. 0 to disable BO.
+
631  // A random BO avoids collisions in the case where two or more nodes start the CSMA
+
632  // process at the same time.
+
633  uint8_t backoffMax;
+
634 
+
635  // number of CADs to estimate a clear CH
+
636  uint8_t difsSlots;
637 
-
638  // currently configured channels for TX and RX1
-
639  LoRaWANChannel_t currentChannels[2] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE };
+
638  // available channel frequencies from list passed during OTA activation
+
639  LoRaWANChannel_t availableChannels[2][RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS];
640 
-
641  // currently configured datarates for TX and RX1
-
642  uint8_t dataRates[2] = { RADIOLIB_LORAWAN_DATA_RATE_UNUSED, RADIOLIB_LORAWAN_DATA_RATE_UNUSED };
+
641  // currently configured channels for TX and RX1
+
642  LoRaWANChannel_t currentChannels[2] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE };
643 
-
644  // LoRaWAN revision (1.0 vs 1.1)
-
645  uint8_t rev = 0;
+
644  // currently configured datarates for TX and RX1
+
645  uint8_t dataRates[2] = { RADIOLIB_LORAWAN_DATA_RATE_UNUSED, RADIOLIB_LORAWAN_DATA_RATE_UNUSED };
646 
-
647  // timestamp to measure the RX1/2 delay (from uplink end)
-
648  uint32_t rxDelayStart = 0;
+
647  // LoRaWAN revision (1.0 vs 1.1)
+
648  uint8_t rev = 0;
649 
-
650  // timestamp when the Rx1/2 windows were closed (timeout or uplink received)
-
651  uint32_t rxDelayEnd = 0;
+
650  // timestamp to measure the RX1/2 delay (from uplink end)
+
651  uint32_t rxDelayStart = 0;
652 
-
653  // delays between the uplink and RX1/2 windows
-
654  uint32_t rxDelays[2] = { RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
+
653  // timestamp when the Rx1/2 windows were closed (timeout or uplink received)
+
654  uint32_t rxDelayEnd = 0;
655 
-
656  // device status - battery level
-
657  uint8_t battLevel = 0xFF;
+
656  // delays between the uplink and RX1/2 windows
+
657  uint32_t rxDelays[2] = { RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
658 
-
659  // indicates whether an uplink has MAC commands as payload
-
660  bool isMACPayload = false;
+
659  // device status - battery level
+
660  uint8_t battLevel = 0xFF;
661 
-
662 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
-
668  int16_t saveFcntUp();
-
669 
-
675  int16_t restoreFcntUp();
-
676 #endif
-
677 
-
678  // wait for, open and listen during Rx1 and Rx2 windows; only performs listening
-
679  int16_t downlinkCommon();
+
662  // indicates whether an uplink has MAC commands as payload
+
663  bool isMACPayload = false;
+
664 
+
665 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
+
671  int16_t saveFcntUp();
+
672 
+
678  int16_t restoreFcntUp();
+
679 #endif
680 
-
681  // method to generate message integrity code
-
682  uint32_t generateMIC(uint8_t* msg, size_t len, uint8_t* key);
+
681  // wait for, open and listen during Rx1 and Rx2 windows; only performs listening
+
682  int16_t downlinkCommon();
683 
-
684  // method to verify message integrity code
-
685  // it assumes that the MIC is the last 4 bytes of the message
-
686  bool verifyMIC(uint8_t* msg, size_t len, uint8_t* key);
-
687 
-
688  // configure the common physical layer properties (preamble, sync word etc.)
-
689  // channels must be configured separately by setupChannels()!
-
690  int16_t setPhyProperties();
-
691 
-
692  // setup uplink/downlink channel data rates and frequencies
-
693  // will attempt to randomly select based on currently used band plan
-
694  int16_t setupChannels(uint8_t* cfList);
-
695 
-
696  // select a set of semi-random TX/RX channels for the join-request and -accept message
-
697  int16_t selectChannelsJR(uint16_t devNonce, uint8_t drJoinSubband);
+
684  // method to generate message integrity code
+
685  uint32_t generateMIC(uint8_t* msg, size_t len, uint8_t* key);
+
686 
+
687  // method to verify message integrity code
+
688  // it assumes that the MIC is the last 4 bytes of the message
+
689  bool verifyMIC(uint8_t* msg, size_t len, uint8_t* key);
+
690 
+
691  // configure the common physical layer properties (preamble, sync word etc.)
+
692  // channels must be configured separately by setupChannels()!
+
693  int16_t setPhyProperties();
+
694 
+
695  // setup uplink/downlink channel data rates and frequencies
+
696  // will attempt to randomly select based on currently used band plan
+
697  int16_t setupChannels(uint8_t* cfList);
698 
-
699  // select a set of random TX/RX channels for up- and downlink
-
700  int16_t selectChannels();
+
699  // select a set of semi-random TX/RX channels for the join-request and -accept message
+
700  int16_t selectChannelsJR(uint16_t devNonce, uint8_t drJoinSubband);
701 
-
702  // find the first usable data rate for the given band
-
703  int16_t findDataRate(uint8_t dr, DataRate_t* dataRate);
+
702  // select a set of random TX/RX channels for up- and downlink
+
703  int16_t selectChannels();
704 
-
705  // configure channel based on cached data rate ID and frequency
-
706  int16_t configureChannel(uint8_t dir);
+
705  // find the first usable data rate for the given band
+
706  int16_t findDataRate(uint8_t dr, DataRate_t* dataRate);
707 
-
708  // save all available channels to persistent storage
-
709  int16_t saveChannels();
+
708  // configure channel based on cached data rate ID and frequency
+
709  int16_t configureChannel(uint8_t dir);
710 
-
711  // restore all available channels from persistent storage
-
712  int16_t restoreChannels();
+
711  // save all available channels to persistent storage
+
712  int16_t saveChannels();
713 
-
714  // push MAC command to queue, done by copy
-
715  int16_t pushMacCommand(LoRaWANMacCommand_t* cmd, LoRaWANMacCommandQueue_t* queue);
+
714  // restore all available channels from persistent storage
+
715  int16_t restoreChannels();
716 
-
717  // delete a specific MAC command from queue, indicated by the command ID
-
718  int16_t deleteMacCommand(uint8_t cid, LoRaWANMacCommandQueue_t* queue);
+
717  // push MAC command to queue, done by copy
+
718  int16_t pushMacCommand(LoRaWANMacCommand_t* cmd, LoRaWANMacCommandQueue_t* queue);
719 
-
720  // execute mac command, return the number of processed bytes for sequential processing
-
721  size_t execMacCommand(LoRaWANMacCommand_t* cmd);
-
722 
-
723  // Performs CSMA as per LoRa Alliance Technical Reccomendation 13 (TR-013).
-
724  void performCSMA();
-
725 
-
726  // perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.
-
727  bool performCAD();
+
720  // delete a specific MAC command from queue, indicated by the command ID
+
721  int16_t deleteMacCommand(uint8_t cid, LoRaWANMacCommandQueue_t* queue);
+
722 
+
723  // execute mac command, return the number of processed bytes for sequential processing
+
724  size_t execMacCommand(LoRaWANMacCommand_t* cmd);
+
725 
+
726  // Performs CSMA as per LoRa Alliance Technical Reccomendation 13 (TR-013).
+
727  void performCSMA();
728 
-
729  // function to encrypt and decrypt payloads
-
730  void processAES(uint8_t* in, size_t len, uint8_t* key, uint8_t* out, uint32_t fcnt, uint8_t dir, uint8_t ctrId, bool counter);
+
729  // perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.
+
730  bool performCAD();
731 
-
732  // network-to-host conversion method - takes data from network packet and converts it to the host endians
-
733  template<typename T>
-
734  static T ntoh(uint8_t* buff, size_t size = 0);
-
735 
-
736  // host-to-network conversion method - takes data from host variable and and converts it to network packet endians
-
737  template<typename T>
-
738  static void hton(uint8_t* buff, T val, size_t size = 0);
-
739 };
-
740 
-
741 #endif
-
LoRaWANNode
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:346
+
732  // function to encrypt and decrypt payloads
+
733  void processAES(uint8_t* in, size_t len, uint8_t* key, uint8_t* out, uint32_t fcnt, uint8_t dir, uint8_t ctrId, bool counter);
+
734 
+
735  // network-to-host conversion method - takes data from network packet and converts it to the host endians
+
736  template<typename T>
+
737  static T ntoh(uint8_t* buff, size_t size = 0);
+
738 
+
739  // host-to-network conversion method - takes data from host variable and and converts it to network packet endians
+
740  template<typename T>
+
741  static void hton(uint8_t* buff, T val, size_t size = 0);
+
742 };
+
743 
+
744 #endif
+
LoRaWANNode
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:349
LoRaWANNode::uplink
int16_t uplink(const char *str, uint8_t port, bool isConfirmed=false, LoRaWANEvent_t *event=NULL)
Send a message to the server.
Definition: LoRaWAN.cpp:674
-
LoRaWANNode::setDatarate
int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition: LoRaWAN.cpp:1657
-
LoRaWANNode::sendReceive
int16_t sendReceive(const char *strUp, uint8_t port, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, LoRaWANEvent_t *eventUp=NULL, LoRaWANEvent_t *eventDown=NULL)
Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.
Definition: LoRaWAN.cpp:1308
-
LoRaWANNode::getFcntUp
uint32_t getFcntUp()
Returns the last uplink's frame counter.
Definition: LoRaWAN.cpp:1332
-
LoRaWANNode::setDeviceStatus
void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:1328
+
LoRaWANNode::setDatarate
int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition: LoRaWAN.cpp:1659
+
LoRaWANNode::sendReceive
int16_t sendReceive(const char *strUp, uint8_t port, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, LoRaWANEvent_t *eventUp=NULL, LoRaWANEvent_t *eventDown=NULL)
Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.
Definition: LoRaWAN.cpp:1310
+
LoRaWANNode::getFcntUp
uint32_t getFcntUp()
Returns the last uplink's frame counter.
Definition: LoRaWAN.cpp:1334
+
LoRaWANNode::setDeviceStatus
void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:1330
LoRaWANNode::saveSession
int16_t saveSession()
Save the current state of the session. All variables are compared to what is saved and only the diffe...
Definition: LoRaWAN.cpp:518
LoRaWANNode::wipe
void wipe()
Wipe internal persistent parameters. This will reset all counters and saved variables,...
Definition: LoRaWAN.cpp:47
LoRaWANNode::beginABP
int16_t beginABP(uint32_t addr, uint8_t *nwkSKey, uint8_t *appSKey, uint8_t *fNwkSIntKey=NULL, uint8_t *sNwkSIntKey=NULL, bool force=false)
Join network by performing activation by personalization. In this procedure, all necessary configurat...
Definition: LoRaWAN.cpp:457
-
LoRaWANNode::setTxPower
int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition: LoRaWAN.cpp:1682
-
LoRaWANNode::downlink
int16_t downlink(uint8_t *data, size_t *len, LoRaWANEvent_t *event=NULL)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:1044
-
LoRaWANNode::selectSubband
int16_t selectSubband(uint8_t idx)
Select a single subband (8 channels) for fixed bands such as US915. Only available before joining a n...
Definition: LoRaWAN.cpp:1466
+
LoRaWANNode::setTxPower
int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition: LoRaWAN.cpp:1684
+
LoRaWANNode::downlink
int16_t downlink(uint8_t *data, size_t *len, LoRaWANEvent_t *event=NULL)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:1045
+
LoRaWANNode::selectSubband
int16_t selectSubband(uint8_t idx)
Select a single subband (8 channels) for fixed bands such as US915. Only available before joining a n...
Definition: LoRaWAN.cpp:1468
LoRaWANNode::LoRaWANNode
LoRaWANNode(PhysicalLayer *phy, const LoRaWANBand_t *band)
Default constructor.
Definition: LoRaWAN.cpp:31
LoRaWANNode::setCSMA
void setCSMA(uint8_t backoffMax, uint8_t difsSlots, bool enableCSMA=false)
Configures CSMA for LoRaWAN as per TR-13, LoRa Alliance.
Definition: LoRaWAN.cpp:40
-
LoRaWANNode::setADR
void setADR(bool enable=true)
Toggle ADR to on or off.
Definition: LoRaWAN.cpp:1678
+
LoRaWANNode::setADR
void setADR(bool enable=true)
Toggle ADR to on or off.
Definition: LoRaWAN.cpp:1680
LoRaWANNode::restore
int16_t restore()
Restore session by loading information from persistent storage.
Definition: LoRaWAN.cpp:52
LoRaWANNode::beginOTAA
int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t *nwkKey, uint8_t *appKey, uint8_t joinDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED, bool force=false)
Join network by performing over-the-air activation. By this procedure, the device will perform an exc...
Definition: LoRaWAN.cpp:215
LoRaWANNode::isJoined
bool isJoined()
Whether there is an ongoing session active.
Definition: LoRaWAN.cpp:513
@@ -639,13 +641,14 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
LoRaWANChannelSpan_t::freqStep
float freqStep
Frequency step between adjacent channels.
Definition: LoRaWAN.h:222
LoRaWANChannelSpan_t::drMin
uint8_t drMin
Minimum allowed datarate for all channels in this span.
Definition: LoRaWAN.h:225
LoRaWANEvent_t
Structure to save extra information about uplink/downlink event.
Definition: LoRaWAN.h:318
-
LoRaWANEvent_t::freq
float freq
Frequency in MHz.
Definition: LoRaWAN.h:330
+
LoRaWANEvent_t::freq
float freq
Frequency in MHz.
Definition: LoRaWAN.h:333
LoRaWANEvent_t::confirmed
bool confirmed
Whether the event is confirmed or not (e.g., confirmed uplink sent by user application)
Definition: LoRaWAN.h:323
-
LoRaWANEvent_t::power
int16_t power
Transmit power in dBm for uplink, or RSSI for downlink.
Definition: LoRaWAN.h:333
+
LoRaWANEvent_t::power
int16_t power
Transmit power in dBm for uplink, or RSSI for downlink.
Definition: LoRaWAN.h:336
LoRaWANEvent_t::confirming
bool confirming
Whether the event is confirming a previous request (e.g., server downlink reply to confirmed uplink s...
Definition: LoRaWAN.h:327
+
LoRaWANEvent_t::datarate
uint8_t datarate
Datarate.
Definition: LoRaWAN.h:330
LoRaWANEvent_t::dir
uint8_t dir
Event direction, one of RADIOLIB_LORAWAN_CHANNEL_DIR_*.
Definition: LoRaWAN.h:320
-
LoRaWANEvent_t::fcnt
uint32_t fcnt
The appropriate frame counter - for different events, different frame counters will be reported!
Definition: LoRaWAN.h:336
-
LoRaWANEvent_t::port
uint8_t port
Port number.
Definition: LoRaWAN.h:339
+
LoRaWANEvent_t::fcnt
uint32_t fcnt
The appropriate frame counter - for different events, different frame counters will be reported!
Definition: LoRaWAN.h:339
+
LoRaWANEvent_t::port
uint8_t port
Port number.
Definition: LoRaWAN.h:342
LoRaWANMacCommand_t
Structure to save information about MAC command.
Definition: LoRaWAN.h:294
LoRaWANMacCommand_t::len
uint8_t len
Length of the payload.
Definition: LoRaWAN.h:302
LoRaWANMacCommand_t::cid
uint8_t cid
The command ID.
Definition: LoRaWAN.h:296
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index b85e0057..683d4c40 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -299,7 +299,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
FSK4Client
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
-
LoRaWANNode
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:346
+
LoRaWANNode
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:349
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
PagerClient
Client for Pager communication.
Definition: Pager.h:62
diff --git a/functions_d.html b/functions_d.html index 50f93ef9..0bf15c02 100644 --- a/functions_d.html +++ b/functions_d.html @@ -85,6 +85,9 @@ $(document).ready(function(){initNavTree('functions_d.html',''); initResizable()
Here is a list of all documented class members with links to the class documentation for each member:

- d -