RUI3 (RAK Unified Interface 3) - RAK4631

Public Member Functions

bool get (uint8_t *buf, uint32_t len)
 

Detailed Description

Description
This api allows the user to access the network identifier(NetID)

Member Function Documentation

◆ get()

bool get ( uint8_t *  buf,
uint32_t  len 
)
Description
This api allows the user to get the network identifier(NetID)
Syntax
api.lorawan.netid.get(buf, len)
Note
Even though the length of network identifier(NetID) is 3 bytes, you should give 4-bytes buffer for natural alignment
Parameters
bufthe buffer to get network identifier(NetID)
lenthe length of network identifier(NetID)(must be 3 bytes)
Returns
bool
Return values
TRUEfor getting network identifier(NetID) successfully
FALSEfor getting network identifier(NetID) failure
Example
  // OTAA Device EUI MSB
  uint8_t node_device_eui[8] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
  // OTAA Application EUI MSB
  uint8_t node_app_eui[8] = {0x0E, 0x0D, 0x0D, 0x01, 0x0E, 0x01, 0x02, 0x03};
  // OTAA Application Key MSB
  uint8_t node_app_key[16] = {0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C};

  void setup()
  {
      Serial.begin(115200);

      api.lorawan.appeui.set(node_app_eui, 8);
      api.lorawan.appkey.set(node_app_key, 16);
      api.lorawan.deui.set(node_device_eui, 8);

      api.lorawan.band.set(4);
      api.lorawan.njm.set(1);
      api.lorawan.join();

      //wait for Join success
      while (api.lorawan.njs.get() == 0)
      {
        Serial.print("Waiting for Lorawan join...");
        api.lorawan.join();
        delay(10000);
      }
  }

  void loop()
  {
      uint8_t buff[4];

      if(api.lorawan.netid.get(buff, 4) == true) {
          Serial.print("LoRaWan network identfier(NetID) = 0x");
          for(int i = 0; i < 3; i++) {
              Serial.printf("%02X", buff[i]);
          }
          Serial.println("");
      } else {
          Serial.println("LoRaWan network identifer(NetID) get fail");
      }

      delay(1000);
  }