README

LoRaWAN (Go)

CircleCI GoDoc

Package lorawan provides structures and tools to read and write LoRaWAN 1.0 and 1.1 frames from and to a slice of bytes.

The following structures are implemented (+ fields):

PHYPayload    (MHDR | MACPayload | MIC)
MACPayload    (FHDR | FPort | FRMPayload)
FHDR          (DevAddr | FCtrl | FCnt | FOpts)

The Following message types (MType) are implemented:

  • JoinRequest
  • RejoinRequest
  • JoinAccept
  • UnconfirmedDataUp
  • UnconfirmedDataDown
  • ConfirmedDataUp
  • ConfirmedDataDown
  • Proprietary

The following MAC commands (and their optional payloads) are implemented:

  • ResetInd
  • ResetConf
  • LinkCheckReq
  • LinkCheckAns
  • LinkADRReq
  • LinkADRAns
  • DutyCycleReq
  • DutyCycleAns
  • RXParamSetupReq
  • RXParamSetupAns
  • DevStatusReq
  • DevStatusAns
  • NewChannelReq
  • NewChannelAns
  • RXTimingSetupReq
  • RXTimingSetupAns
  • TXParamSetupReq
  • TXParamSetupAns
  • DLChannelReq
  • DLChannelAns
  • RekeyInd
  • RekeyConf
  • ADRParamSetupReq
  • ADRParamSetupAns
  • DeviceTimeReq
  • DeviceTimeAns
  • ForceRejoinReq
  • RejoinParamSetupReq
  • RejoinParamSetupAns
  • PingSlotInfoReq
  • PingSlotInfoAns
  • PingSlotChannelReq
  • PingSlotChannelAns
  • BeaconFreqReq
  • BeaconFreqAns
  • DeviceModeInd
  • DeviceModeConf
  • Proprietary commands (0x80 - 0xFF) can be registered with RegisterProprietaryMACCommand

Sub-packages

  • airtime functions for calculating TX time-on-air
  • band ISM band configuration from the LoRaWAN Regional Parameters specification
  • backend Structs matching the LoRaWAN Backend Interface specification object
  • backend/joinserver LoRaWAN Backend Interface join-server interface implementation (http.Handler)
  • applayer/clocksync Application Layer Clock Synchronization over LoRaWAN
  • applayer/multicastsetup Application Layer Remote Multicast Setup over LoRaWAN
  • applayer/fragmentation Fragmented Data Block Transport over LoRaWAN
  • gps functions to handle Time <> GPS Epoch time conversion

Documentation

See https://godoc.org/github.com/brocaar/lorawan. There is also an examples section with usage examples. When using this package, knowledge about the LoRaWAN specification is needed. You can download the LoRaWAN specification here: https://lora-alliance.org/lorawan-for-developers

Support

For questions, feedback or support, please refer to the ChirpStack Community Forum: https://forum.chirpstack.io.

License

This package is distributed under the MIT license which can be found in LICENSE. LoRaWAN is a trademark of the LoRa Alliance Inc. (https://www.lora-alliance.org/).

Documentation

Overview

    Package lorawan provides structures and tools to read and write LoRaWAN 1.0 and 1.1 frames from and to a slice of bytes.

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func EncryptFOpts

    func EncryptFOpts(nwkSEncKey AES128Key, aFCntDown, uplink bool, devAddr DevAddr, fCnt uint32, data []byte) ([]byte, error)

      EncryptFOpts encrypts the FOpts mac-commands. For uplink:

      Set the aFCntDown to false and use the FCntUp
      

      For downlink if FPort is not set or equals to 0:

      Set the aFCntDown to false and use the NFCntDown
      

      For downlink if FPort > 0:

      Set the aFCntDown to true and use the AFCntDown
      

      func EncryptFRMPayload

      func EncryptFRMPayload(key AES128Key, uplink bool, devAddr DevAddr, fCnt uint32, data []byte) ([]byte, error)

        EncryptFRMPayload encrypts the FRMPayload (slice of bytes). Note that EncryptFRMPayload is used for both encryption and decryption.

        func GetTXParamSetupEIRP

        func GetTXParamSetupEIRP(index uint8) (float32, error)

          GetTXParamsetupEIRP returns the EIRP (dBm) for the coded value.

          func GetTXParamSetupEIRPIndex

          func GetTXParamSetupEIRPIndex(eirp float32) uint8

            GetTXParamSetupEIRPIndex returns the coded value for the given EIRP (dBm). Note that it returns the coded value that is closest to the given EIRP, without exceeding it.

            func RegisterProprietaryMACCommand

            func RegisterProprietaryMACCommand(uplink bool, cid CID, payloadSize int) error

              RegisterProprietaryMACCommand registers a proprietary MAC command. Note that there is no need to call this when the size of the payload is > 0 bytes.

              Types

              type ADRParam

              type ADRParam struct {
              	LimitExp uint8 `json:"limitExp"`
              	DelayExp uint8 `json:"delayExp"`
              }

                ADRParam defines the ADRParam field.

                func (ADRParam) MarshalBinary

                func (p ADRParam) MarshalBinary() ([]byte, error)

                  MarshalBinary encodes the object into bytes.

                  func (*ADRParam) UnmarshalBinary

                  func (p *ADRParam) UnmarshalBinary(data []byte) error

                    UnmarshalBinary decodes the object from bytes.

                    type ADRParamSetupReqPayload

                    type ADRParamSetupReqPayload struct {
                    	ADRParam ADRParam `json:"adrParam"`
                    }

                      ADRParamSetupReqPayload represents the ADRParamReq payload.

                      func (ADRParamSetupReqPayload) MarshalBinary

                      func (p ADRParamSetupReqPayload) MarshalBinary() ([]byte, error)

                        MarshalBinary encodes the object into bytes.

                        func (*ADRParamSetupReqPayload) UnmarshalBinary

                        func (p *ADRParamSetupReqPayload) UnmarshalBinary(data []byte) error

                          UnmarshalBinary decodes the object from bytes.

                          type AES128Key

                          type AES128Key [16]byte

                            AES128Key represents a 128 bit AES key.

                            func (AES128Key) MarshalBinary

                            func (k AES128Key) MarshalBinary() ([]byte, error)

                              MarshalBinary encodes the key to a slice of bytes.

                              func (AES128Key) MarshalText

                              func (k AES128Key) MarshalText() ([]byte, error)

                                MarshalText implements encoding.TextMarshaler.

                                func (*AES128Key) Scan

                                func (k *AES128Key) Scan(src interface{}) error

                                  Scan implements sql.Scanner.

                                  func (AES128Key) String

                                  func (k AES128Key) String() string

                                    String implements fmt.Stringer.

                                    func (*AES128Key) UnmarshalBinary

                                    func (k *AES128Key) UnmarshalBinary(data []byte) error

                                      UnmarshalBinary decodes the key from a slice of bytes.

                                      func (*AES128Key) UnmarshalText

                                      func (k *AES128Key) UnmarshalText(text []byte) error

                                        UnmarshalText implements encoding.TextUnmarshaler.

                                        func (AES128Key) Value

                                        func (k AES128Key) Value() (driver.Value, error)

                                          Value implements driver.Valuer.

                                          type BeaconFreqAnsPayload

                                          type BeaconFreqAnsPayload struct {
                                          	BeaconFrequencyOK bool `json:"beaconFrequencyOK"`
                                          }

                                            BeaconFreqAnsPayload represents the BeaconFreqAns payload.

                                            func (BeaconFreqAnsPayload) MarshalBinary

                                            func (p BeaconFreqAnsPayload) MarshalBinary() ([]byte, error)

                                              MarshalBinary encodes the object into bytes.

                                              func (*BeaconFreqAnsPayload) UnmarshalBinary

                                              func (p *BeaconFreqAnsPayload) UnmarshalBinary(data []byte) error

                                                UnmarshalBinary decodes the object from bytes.

                                                type BeaconFreqReqPayload

                                                type BeaconFreqReqPayload struct {
                                                	Frequency uint32 `json:"frequency"`
                                                }

                                                  BeaconFreqReqPayload represents the BeaconFreqReq payload.

                                                  func (BeaconFreqReqPayload) MarshalBinary

                                                  func (p BeaconFreqReqPayload) MarshalBinary() ([]byte, error)

                                                    MarshalBinary encodes the object into bytes.

                                                    func (*BeaconFreqReqPayload) UnmarshalBinary

                                                    func (p *BeaconFreqReqPayload) UnmarshalBinary(data []byte) error

                                                      UnmarshalBinary decodes the object from bytes.

                                                      type CFList

                                                      type CFList struct {
                                                      	Payload    Payload    `json:"payload"`
                                                      	CFListType CFListType `json:"cFListType"`
                                                      }

                                                        CFList represents a list of channel frequencies or channel-masks.

                                                        func (CFList) MarshalBinary

                                                        func (l CFList) MarshalBinary() ([]byte, error)

                                                          MarshalBinary marshals the object in binary form.

                                                          func (*CFList) UnmarshalBinary

                                                          func (l *CFList) UnmarshalBinary(data []byte) error

                                                            UnmarshalBinary decodes the object from binary form.

                                                            type CFListChannelMaskPayload

                                                            type CFListChannelMaskPayload struct {
                                                            	ChannelMasks []ChMask
                                                            }

                                                              CFListChannelMaskPayload holds a list of channel-masks.

                                                              func (CFListChannelMaskPayload) MarshalBinary

                                                              func (p CFListChannelMaskPayload) MarshalBinary() ([]byte, error)

                                                                MarshalBinary marshals the object in binary form.

                                                                func (*CFListChannelMaskPayload) UnmarshalBinary

                                                                func (p *CFListChannelMaskPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                  UnmarshalBinary decodes the object from binary form.

                                                                  type CFListChannelPayload

                                                                  type CFListChannelPayload struct {
                                                                  	Channels [5]uint32
                                                                  }

                                                                    CFListChannelPayload holds a list of (up to 5) channel frequencies. Each frequency is in Hz and must be a multiple of 100.

                                                                    func (CFListChannelPayload) MarshalBinary

                                                                    func (p CFListChannelPayload) MarshalBinary() ([]byte, error)

                                                                      MarshalBinary marshals the object in binary form.

                                                                      func (*CFListChannelPayload) UnmarshalBinary

                                                                      func (p *CFListChannelPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                        UnmarshalBinary decodes the object from binary form.

                                                                        type CFListType

                                                                        type CFListType uint8

                                                                          CFListType defines the CFList payload type.

                                                                          const (
                                                                          	CFListChannel     CFListType = 0
                                                                          	CFListChannelMask CFListType = 1
                                                                          )

                                                                            Possible CFList types.

                                                                            type CID

                                                                            type CID byte

                                                                              CID defines the MAC command identifier.

                                                                              const (
                                                                              	// Class-A
                                                                              	ResetInd            CID = 0x01
                                                                              	ResetConf           CID = 0x01
                                                                              	LinkCheckReq        CID = 0x02
                                                                              	LinkCheckAns        CID = 0x02
                                                                              	LinkADRReq          CID = 0x03
                                                                              	LinkADRAns          CID = 0x03
                                                                              	DutyCycleReq        CID = 0x04
                                                                              	DutyCycleAns        CID = 0x04
                                                                              	RXParamSetupReq     CID = 0x05
                                                                              	RXParamSetupAns     CID = 0x05
                                                                              	DevStatusReq        CID = 0x06
                                                                              	DevStatusAns        CID = 0x06
                                                                              	NewChannelReq       CID = 0x07
                                                                              	NewChannelAns       CID = 0x07
                                                                              	RXTimingSetupReq    CID = 0x08
                                                                              	RXTimingSetupAns    CID = 0x08
                                                                              	TXParamSetupReq     CID = 0x09
                                                                              	TXParamSetupAns     CID = 0x09
                                                                              	DLChannelReq        CID = 0x0A
                                                                              	DLChannelAns        CID = 0x0A
                                                                              	RekeyInd            CID = 0x0B
                                                                              	RekeyConf           CID = 0x0B
                                                                              	ADRParamSetupReq    CID = 0x0C
                                                                              	ADRParamSetupAns    CID = 0x0C
                                                                              	DeviceTimeReq       CID = 0x0D
                                                                              	DeviceTimeAns       CID = 0x0D
                                                                              	ForceRejoinReq      CID = 0x0E
                                                                              	RejoinParamSetupReq CID = 0x0F
                                                                              	RejoinParamSetupAns CID = 0x0F
                                                                              
                                                                              	// Class-B
                                                                              	PingSlotInfoReq    CID = 0x10
                                                                              	PingSlotInfoAns    CID = 0x10
                                                                              	PingSlotChannelReq CID = 0x11
                                                                              	PingSlotChannelAns CID = 0x11
                                                                              	// 0x12 has been deprecated in 1.1
                                                                              	BeaconFreqReq CID = 0x13
                                                                              	BeaconFreqAns CID = 0x13
                                                                              
                                                                              	// Class-C
                                                                              	DeviceModeInd  CID = 0x20
                                                                              	DeviceModeConf CID = 0x20
                                                                              )

                                                                                MAC commands as specified by the LoRaWAN R1.0 specs. Note that each *Req / *Ans has the same value. Based on the fact if a message is uplink or downlink you should use on or the other.

                                                                                func (CID) MarshalText

                                                                                func (c CID) MarshalText() ([]byte, error)

                                                                                  MarshalText implements encoding.TextMarshaler.

                                                                                  func (CID) String

                                                                                  func (i CID) String() string

                                                                                  type ChMask

                                                                                  type ChMask [16]bool

                                                                                    ChMask encodes the channels usable for uplink access. 0 = channel 1, 15 = channel 16.

                                                                                    func (ChMask) MarshalBinary

                                                                                    func (m ChMask) MarshalBinary() ([]byte, error)

                                                                                      MarshalBinary marshals the object in binary form.

                                                                                      func (*ChMask) UnmarshalBinary

                                                                                      func (m *ChMask) UnmarshalBinary(data []byte) error

                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                        type DLChannelAnsPayload

                                                                                        type DLChannelAnsPayload struct {
                                                                                        	UplinkFrequencyExists bool `json:"uplinkFrequencyExists"`
                                                                                        	ChannelFrequencyOK    bool `json:"channelFrequencyOK"`
                                                                                        }

                                                                                          DLChannelAnsPayload represents the DLChannelAns payload.

                                                                                          func (DLChannelAnsPayload) MarshalBinary

                                                                                          func (p DLChannelAnsPayload) MarshalBinary() ([]byte, error)

                                                                                            MarshalBinary encodes the object into bytes.

                                                                                            func (*DLChannelAnsPayload) UnmarshalBinary

                                                                                            func (p *DLChannelAnsPayload) UnmarshalBinary(data []byte) error

                                                                                              UnmarshalBinary decodes the object from bytes.

                                                                                              type DLChannelReqPayload

                                                                                              type DLChannelReqPayload struct {
                                                                                              	ChIndex uint8  `json:"chIndex"`
                                                                                              	Freq    uint32 `json:"freq"`
                                                                                              }

                                                                                                DLChannelReqPayload represents the DLChannelReq payload.

                                                                                                func (DLChannelReqPayload) MarshalBinary

                                                                                                func (p DLChannelReqPayload) MarshalBinary() ([]byte, error)

                                                                                                  MarshalBinary encodes the object into bytes.

                                                                                                  func (*DLChannelReqPayload) UnmarshalBinary

                                                                                                  func (p *DLChannelReqPayload) UnmarshalBinary(data []byte) error

                                                                                                    UnmarshalBinary decodes the object from bytes.

                                                                                                    type DLSettings

                                                                                                    type DLSettings struct {
                                                                                                    	OptNeg      bool  `json:"optNeg"`
                                                                                                    	RX2DataRate uint8 `json:"rx2DataRate"`
                                                                                                    	RX1DROffset uint8 `json:"rx1DROffset"`
                                                                                                    }

                                                                                                      DLSettings represents the DLSettings fields (downlink settings).

                                                                                                      func (DLSettings) MarshalBinary

                                                                                                      func (s DLSettings) MarshalBinary() ([]byte, error)

                                                                                                        MarshalBinary marshals the object in binary form.

                                                                                                        func (DLSettings) MarshalText

                                                                                                        func (s DLSettings) MarshalText() ([]byte, error)

                                                                                                          MarshalText implements encoding.TextMarshaler.

                                                                                                          func (*DLSettings) UnmarshalBinary

                                                                                                          func (s *DLSettings) UnmarshalBinary(data []byte) error

                                                                                                            UnmarshalBinary decodes the object from binary form.

                                                                                                            func (*DLSettings) UnmarshalText

                                                                                                            func (s *DLSettings) UnmarshalText(text []byte) error

                                                                                                              UnmarshalText implements encoding.TextUnmarshaler.

                                                                                                              type DataPayload

                                                                                                              type DataPayload struct {
                                                                                                              	Bytes []byte `json:"bytes"`
                                                                                                              }

                                                                                                                DataPayload represents a slice of bytes.

                                                                                                                func (DataPayload) MarshalBinary

                                                                                                                func (p DataPayload) MarshalBinary() ([]byte, error)

                                                                                                                  MarshalBinary marshals the object in binary form.

                                                                                                                  func (*DataPayload) UnmarshalBinary

                                                                                                                  func (p *DataPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                    UnmarshalBinary decodes the object from binary form.

                                                                                                                    type DevAddr

                                                                                                                    type DevAddr [4]byte

                                                                                                                      DevAddr represents the device address.

                                                                                                                      func (DevAddr) IsNetID

                                                                                                                      func (a DevAddr) IsNetID(netID NetID) bool

                                                                                                                        IsNetID returns a bool indicating if the NwkID matches the given NetID.

                                                                                                                        func (DevAddr) MarshalBinary

                                                                                                                        func (a DevAddr) MarshalBinary() ([]byte, error)

                                                                                                                          MarshalBinary marshals the object in binary form.

                                                                                                                          func (DevAddr) MarshalText

                                                                                                                          func (a DevAddr) MarshalText() ([]byte, error)

                                                                                                                            MarshalText implements encoding.TextMarshaler.

                                                                                                                            func (DevAddr) NetIDType

                                                                                                                            func (a DevAddr) NetIDType() int

                                                                                                                              NetIDType returns the NetID type of the DevAddr.

                                                                                                                              func (DevAddr) NwkID

                                                                                                                              func (a DevAddr) NwkID() []byte

                                                                                                                                NwkID returns the NwkID bits of the DevAddr.

                                                                                                                                func (*DevAddr) Scan

                                                                                                                                func (a *DevAddr) Scan(src interface{}) error

                                                                                                                                  Scan implements sql.Scanner.

                                                                                                                                  func (*DevAddr) SetAddrPrefix

                                                                                                                                  func (a *DevAddr) SetAddrPrefix(netID NetID)

                                                                                                                                    SetAddrPrefix sets the NetID based AddrPrefix.

                                                                                                                                    func (DevAddr) String

                                                                                                                                    func (a DevAddr) String() string

                                                                                                                                      String implements fmt.Stringer.

                                                                                                                                      func (*DevAddr) UnmarshalBinary

                                                                                                                                      func (a *DevAddr) UnmarshalBinary(data []byte) error

                                                                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                                                                        func (*DevAddr) UnmarshalText

                                                                                                                                        func (a *DevAddr) UnmarshalText(text []byte) error

                                                                                                                                          UnmarshalText implements encoding.TextUnmarshaler.

                                                                                                                                          func (DevAddr) Value

                                                                                                                                          func (a DevAddr) Value() (driver.Value, error)

                                                                                                                                            Value implements driver.Valuer.

                                                                                                                                            type DevNonce

                                                                                                                                            type DevNonce uint16

                                                                                                                                              DevNonce represents the dev-nonce.

                                                                                                                                              func (DevNonce) MarshalBinary

                                                                                                                                              func (n DevNonce) MarshalBinary() ([]byte, error)

                                                                                                                                                MarshalBinary implements encoding.BinaryMarshaler.

                                                                                                                                                func (*DevNonce) UnmarshalBinary

                                                                                                                                                func (n *DevNonce) UnmarshalBinary(data []byte) error

                                                                                                                                                  UnmarshalBinary implements encoding.BinaryUnmarshaler.

                                                                                                                                                  type DevStatusAnsPayload

                                                                                                                                                  type DevStatusAnsPayload struct {
                                                                                                                                                  	Battery uint8 `json:"battery"`
                                                                                                                                                  	Margin  int8  `json:"margin"`
                                                                                                                                                  }

                                                                                                                                                    DevStatusAnsPayload represents the DevStatusAns payload.

                                                                                                                                                    func (DevStatusAnsPayload) MarshalBinary

                                                                                                                                                    func (p DevStatusAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                      MarshalBinary marshals the object in binary form.

                                                                                                                                                      func (*DevStatusAnsPayload) UnmarshalBinary

                                                                                                                                                      func (p *DevStatusAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                                                                                        type DeviceModeClass

                                                                                                                                                        type DeviceModeClass byte

                                                                                                                                                          DeviceModeIndClass defines the DeviceModeInd class.

                                                                                                                                                          const (
                                                                                                                                                          	DeviceModeClassA DeviceModeClass = 0x00
                                                                                                                                                          	DeviceModeRFU    DeviceModeClass = 0x01
                                                                                                                                                          	DeviceModeClassC DeviceModeClass = 0x02
                                                                                                                                                          )

                                                                                                                                                            DeviceModeInd class options.

                                                                                                                                                            func (DeviceModeClass) String

                                                                                                                                                            func (i DeviceModeClass) String() string

                                                                                                                                                            type DeviceModeConfPayload

                                                                                                                                                            type DeviceModeConfPayload struct {
                                                                                                                                                            	Class DeviceModeClass
                                                                                                                                                            }

                                                                                                                                                              DeviceModeConfPayload represents the DeviceModeConf payload.

                                                                                                                                                              func (DeviceModeConfPayload) MarshalBinary

                                                                                                                                                              func (p DeviceModeConfPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                MarshalBinary encodes the object into bytes.

                                                                                                                                                                func (*DeviceModeConfPayload) UnmarshalBinary

                                                                                                                                                                func (p *DeviceModeConfPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                  UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                  type DeviceModeIndPayload

                                                                                                                                                                  type DeviceModeIndPayload struct {
                                                                                                                                                                  	Class DeviceModeClass
                                                                                                                                                                  }

                                                                                                                                                                    DeviceModeIndPayload represents the DeviceModeInd payload.

                                                                                                                                                                    func (DeviceModeIndPayload) MarshalBinary

                                                                                                                                                                    func (p DeviceModeIndPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                      MarshalBinary encodes the object into bytes.

                                                                                                                                                                      func (*DeviceModeIndPayload) UnmarshalBinary

                                                                                                                                                                      func (p *DeviceModeIndPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                        UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                        type DeviceTimeAnsPayload

                                                                                                                                                                        type DeviceTimeAnsPayload struct {
                                                                                                                                                                        	TimeSinceGPSEpoch time.Duration `json:"timeSinceGPSEpoch"`
                                                                                                                                                                        }

                                                                                                                                                                          DeviceTimeAnsPayload represents the DeviceTimeAns payload.

                                                                                                                                                                          func (DeviceTimeAnsPayload) MarshalBinary

                                                                                                                                                                          func (p DeviceTimeAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                            MarshalBinary encodes the object into bytes.

                                                                                                                                                                            func (*DeviceTimeAnsPayload) UnmarshalBinary

                                                                                                                                                                            func (p *DeviceTimeAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                              UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                              type DutyCycleReqPayload

                                                                                                                                                                              type DutyCycleReqPayload struct {
                                                                                                                                                                              	MaxDCycle uint8 `json:"maxDCycle"`
                                                                                                                                                                              }

                                                                                                                                                                                DutyCycleReqPayload represents the DutyCycleReq payload.

                                                                                                                                                                                func (DutyCycleReqPayload) MarshalBinary

                                                                                                                                                                                func (p DutyCycleReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                  MarshalBinary marshals the object in binary form.

                                                                                                                                                                                  func (*DutyCycleReqPayload) UnmarshalBinary

                                                                                                                                                                                  func (p *DutyCycleReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                    UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                    type DwellTime

                                                                                                                                                                                    type DwellTime int

                                                                                                                                                                                      DwellTime defines the dwell time type.

                                                                                                                                                                                      const (
                                                                                                                                                                                      	DwellTimeNoLimit DwellTime = iota
                                                                                                                                                                                      	DwellTime400ms
                                                                                                                                                                                      )

                                                                                                                                                                                        Possible dwell time options.

                                                                                                                                                                                        type EUI64

                                                                                                                                                                                        type EUI64 [8]byte

                                                                                                                                                                                          EUI64 data type

                                                                                                                                                                                          func (EUI64) MarshalBinary

                                                                                                                                                                                          func (e EUI64) MarshalBinary() ([]byte, error)

                                                                                                                                                                                            MarshalBinary implements encoding.BinaryMarshaler.

                                                                                                                                                                                            func (EUI64) MarshalText

                                                                                                                                                                                            func (e EUI64) MarshalText() ([]byte, error)

                                                                                                                                                                                              MarshalText implements encoding.TextMarshaler.

                                                                                                                                                                                              func (*EUI64) Scan

                                                                                                                                                                                              func (e *EUI64) Scan(src interface{}) error

                                                                                                                                                                                                Scan implements sql.Scanner.

                                                                                                                                                                                                func (EUI64) String

                                                                                                                                                                                                func (e EUI64) String() string

                                                                                                                                                                                                  String implement fmt.Stringer.

                                                                                                                                                                                                  func (*EUI64) UnmarshalBinary

                                                                                                                                                                                                  func (e *EUI64) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                    UnmarshalBinary implements encoding.BinaryUnmarshaler.

                                                                                                                                                                                                    func (*EUI64) UnmarshalText

                                                                                                                                                                                                    func (e *EUI64) UnmarshalText(text []byte) error

                                                                                                                                                                                                      UnmarshalText implements encoding.TextUnmarshaler.

                                                                                                                                                                                                      func (EUI64) Value

                                                                                                                                                                                                      func (e EUI64) Value() (driver.Value, error)

                                                                                                                                                                                                        Value implements driver.Valuer.

                                                                                                                                                                                                        type FCtrl

                                                                                                                                                                                                        type FCtrl struct {
                                                                                                                                                                                                        	ADR       bool `json:"adr"`
                                                                                                                                                                                                        	ADRACKReq bool `json:"adrAckReq"`
                                                                                                                                                                                                        	ACK       bool `json:"ack"`
                                                                                                                                                                                                        	FPending  bool `json:"fPending"` // only used for downlink messages
                                                                                                                                                                                                        	ClassB    bool `json:"classB"`   // only used for uplink messages
                                                                                                                                                                                                        	// contains filtered or unexported fields
                                                                                                                                                                                                        }

                                                                                                                                                                                                          FCtrl represents the FCtrl (frame control) field. Please note that the FPending and ClassB are mapped to the same bit. This means that when unmarshaling from a byte-slice, both fields will contain the same value (either true or false).

                                                                                                                                                                                                          func (FCtrl) MarshalBinary

                                                                                                                                                                                                          func (c FCtrl) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                            MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                            func (*FCtrl) UnmarshalBinary

                                                                                                                                                                                                            func (c *FCtrl) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                              UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                              type FHDR

                                                                                                                                                                                                              type FHDR struct {
                                                                                                                                                                                                              	DevAddr DevAddr   `json:"devAddr"`
                                                                                                                                                                                                              	FCtrl   FCtrl     `json:"fCtrl"`
                                                                                                                                                                                                              	FCnt    uint32    `json:"fCnt"`  // only the least-significant 16 bits will be marshalled
                                                                                                                                                                                                              	FOpts   []Payload `json:"fOpts"` // max. number of allowed bytes is 15
                                                                                                                                                                                                              }

                                                                                                                                                                                                                FHDR represents the frame header.

                                                                                                                                                                                                                func (FHDR) MarshalBinary

                                                                                                                                                                                                                func (h FHDR) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                  MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                  func (*FHDR) UnmarshalBinary

                                                                                                                                                                                                                  func (h *FHDR) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                    UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                    type ForceRejoinReqPayload

                                                                                                                                                                                                                    type ForceRejoinReqPayload struct {
                                                                                                                                                                                                                    	Period     uint8 `json:"period"`
                                                                                                                                                                                                                    	MaxRetries uint8 `json:"maxRetries"`
                                                                                                                                                                                                                    	RejoinType uint8 `json:"rejoinType"`
                                                                                                                                                                                                                    	DR         uint8 `json:"dr"`
                                                                                                                                                                                                                    }

                                                                                                                                                                                                                      ForceRejoinReqPayload represents the ForceRejoinReq payload.

                                                                                                                                                                                                                      func (ForceRejoinReqPayload) MarshalBinary

                                                                                                                                                                                                                      func (p ForceRejoinReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                        MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                        func (*ForceRejoinReqPayload) UnmarshalBinary

                                                                                                                                                                                                                        func (p *ForceRejoinReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                          UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                          type JoinAcceptPayload

                                                                                                                                                                                                                          type JoinAcceptPayload struct {
                                                                                                                                                                                                                          	JoinNonce  JoinNonce  `json:"joinNonce"`
                                                                                                                                                                                                                          	HomeNetID  NetID      `json:"homeNetID"`
                                                                                                                                                                                                                          	DevAddr    DevAddr    `json:"devAddr"`
                                                                                                                                                                                                                          	DLSettings DLSettings `json:"dlSettings"`
                                                                                                                                                                                                                          	RXDelay    uint8      `json:"rxDelay"` // 0=1s, 1=1s, 2=2s, ... 15=15s
                                                                                                                                                                                                                          	CFList     *CFList    `json:"cFlist"`
                                                                                                                                                                                                                          }

                                                                                                                                                                                                                            JoinAcceptPayload represents the join-accept message payload.

                                                                                                                                                                                                                            func (JoinAcceptPayload) MarshalBinary

                                                                                                                                                                                                                            func (p JoinAcceptPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                              MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                              func (*JoinAcceptPayload) UnmarshalBinary

                                                                                                                                                                                                                              func (p *JoinAcceptPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                type JoinNonce

                                                                                                                                                                                                                                type JoinNonce uint32

                                                                                                                                                                                                                                  JoinNonce represents the join-nonce. Note that the max value is 2^24 - 1 = 16777215.

                                                                                                                                                                                                                                  func (JoinNonce) MarshalBinary

                                                                                                                                                                                                                                  func (n JoinNonce) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                    MarshalBinary implements encoding.BinaryMarshaler.

                                                                                                                                                                                                                                    func (*JoinNonce) UnmarshalBinary

                                                                                                                                                                                                                                    func (n *JoinNonce) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                      UnmarshalBinary implements encoding.BinaryUnmarshaler.

                                                                                                                                                                                                                                      type JoinRequestPayload

                                                                                                                                                                                                                                      type JoinRequestPayload struct {
                                                                                                                                                                                                                                      	JoinEUI  EUI64    `json:"joinEUI"`
                                                                                                                                                                                                                                      	DevEUI   EUI64    `json:"devEUI"`
                                                                                                                                                                                                                                      	DevNonce DevNonce `json:"devNonce"`
                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                        JoinRequestPayload represents the join-request message payload.

                                                                                                                                                                                                                                        func (JoinRequestPayload) MarshalBinary

                                                                                                                                                                                                                                        func (p JoinRequestPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                          MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                          func (*JoinRequestPayload) UnmarshalBinary

                                                                                                                                                                                                                                          func (p *JoinRequestPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                            UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                            type JoinType

                                                                                                                                                                                                                                            type JoinType uint8

                                                                                                                                                                                                                                              JoinType defines the join-request type.

                                                                                                                                                                                                                                              const (
                                                                                                                                                                                                                                              	JoinRequestType    JoinType = 0xff
                                                                                                                                                                                                                                              	RejoinRequestType0 JoinType = 0x00
                                                                                                                                                                                                                                              	RejoinRequestType1 JoinType = 0x01
                                                                                                                                                                                                                                              	RejoinRequestType2 JoinType = 0x02
                                                                                                                                                                                                                                              )

                                                                                                                                                                                                                                                Join-request types.

                                                                                                                                                                                                                                                func (JoinType) String

                                                                                                                                                                                                                                                func (i JoinType) String() string

                                                                                                                                                                                                                                                type LinkADRAnsPayload

                                                                                                                                                                                                                                                type LinkADRAnsPayload struct {
                                                                                                                                                                                                                                                	ChannelMaskACK bool `json:"channelMaskAck"`
                                                                                                                                                                                                                                                	DataRateACK    bool `json:"dataRateAck"`
                                                                                                                                                                                                                                                	PowerACK       bool `json:"powerAck"`
                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                  LinkADRAnsPayload represents the LinkADRAns payload.

                                                                                                                                                                                                                                                  func (LinkADRAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                  func (p LinkADRAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                    MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                    func (*LinkADRAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                    func (p *LinkADRAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                      UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                      type LinkADRReqPayload

                                                                                                                                                                                                                                                      type LinkADRReqPayload struct {
                                                                                                                                                                                                                                                      	DataRate   uint8      `json:"dataRate"`
                                                                                                                                                                                                                                                      	TXPower    uint8      `json:"txPower"`
                                                                                                                                                                                                                                                      	ChMask     ChMask     `json:"chMask"`
                                                                                                                                                                                                                                                      	Redundancy Redundancy `json:"redundancy"`
                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                        LinkADRReqPayload represents the LinkADRReq payload.

                                                                                                                                                                                                                                                        func (LinkADRReqPayload) MarshalBinary

                                                                                                                                                                                                                                                        func (p LinkADRReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                          MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                          func (*LinkADRReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                          func (p *LinkADRReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                            UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                            type LinkCheckAnsPayload

                                                                                                                                                                                                                                                            type LinkCheckAnsPayload struct {
                                                                                                                                                                                                                                                            	Margin uint8 `json:"margin"`
                                                                                                                                                                                                                                                            	GwCnt  uint8 `json:"gwCnt"`
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                              LinkCheckAnsPayload represents the LinkCheckAns payload.

                                                                                                                                                                                                                                                              func (LinkCheckAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                              func (p LinkCheckAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                func (*LinkCheckAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                func (p *LinkCheckAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                  UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                  type MACCommand

                                                                                                                                                                                                                                                                  type MACCommand struct {
                                                                                                                                                                                                                                                                  	CID     CID               `json:"cid"`
                                                                                                                                                                                                                                                                  	Payload MACCommandPayload `json:"payload"`
                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                    MACCommand represents a MAC command with optional payload.

                                                                                                                                                                                                                                                                    func (MACCommand) MarshalBinary

                                                                                                                                                                                                                                                                    func (m MACCommand) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                      MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                      func (*MACCommand) UnmarshalBinary

                                                                                                                                                                                                                                                                      func (m *MACCommand) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                        type MACCommandPayload

                                                                                                                                                                                                                                                                        type MACCommandPayload interface {
                                                                                                                                                                                                                                                                        	MarshalBinary() (data []byte, err error)
                                                                                                                                                                                                                                                                        	UnmarshalBinary(data []byte) error
                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                          MACCommandPayload is the interface that every MACCommand payload must implement.

                                                                                                                                                                                                                                                                          func GetMACPayloadAndSize

                                                                                                                                                                                                                                                                          func GetMACPayloadAndSize(uplink bool, c CID) (MACCommandPayload, int, error)

                                                                                                                                                                                                                                                                            GetMACPayloadAndSize returns a new MACCommandPayload instance and it's size.

                                                                                                                                                                                                                                                                            type MACPayload

                                                                                                                                                                                                                                                                            type MACPayload struct {
                                                                                                                                                                                                                                                                            	FHDR       FHDR      `json:"fhdr"`
                                                                                                                                                                                                                                                                            	FPort      *uint8    `json:"fPort"` // optional, but must be set when FRMPayload is set
                                                                                                                                                                                                                                                                            	FRMPayload []Payload `json:"frmPayload"`
                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                              MACPayload represents the MAC payload. Use NewMACPayload for creating a new MACPayload.

                                                                                                                                                                                                                                                                              func (MACPayload) MarshalBinary

                                                                                                                                                                                                                                                                              func (p MACPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                func (*MACPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                func (p *MACPayload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                                                                  UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                  type MACVersion

                                                                                                                                                                                                                                                                                  type MACVersion byte

                                                                                                                                                                                                                                                                                    MACVersion defines the LoRaWAN MAC version.

                                                                                                                                                                                                                                                                                    const (
                                                                                                                                                                                                                                                                                    	LoRaWAN1_0 MACVersion = iota
                                                                                                                                                                                                                                                                                    	LoRaWAN1_1
                                                                                                                                                                                                                                                                                    )

                                                                                                                                                                                                                                                                                      Supported LoRaWAN MAC versions.

                                                                                                                                                                                                                                                                                      type MHDR

                                                                                                                                                                                                                                                                                      type MHDR struct {
                                                                                                                                                                                                                                                                                      	MType MType `json:"mType"`
                                                                                                                                                                                                                                                                                      	Major Major `json:"major"`
                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                        MHDR represents the MAC header.

                                                                                                                                                                                                                                                                                        func (MHDR) MarshalBinary

                                                                                                                                                                                                                                                                                        func (h MHDR) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                          MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                          func (*MHDR) UnmarshalBinary

                                                                                                                                                                                                                                                                                          func (h *MHDR) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                            UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                            type MIC

                                                                                                                                                                                                                                                                                            type MIC [4]byte

                                                                                                                                                                                                                                                                                              MIC represents the message integrity code.

                                                                                                                                                                                                                                                                                              func (MIC) MarshalText

                                                                                                                                                                                                                                                                                              func (m MIC) MarshalText() ([]byte, error)

                                                                                                                                                                                                                                                                                                MarshalText implements encoding.TextMarshaler.

                                                                                                                                                                                                                                                                                                func (MIC) String

                                                                                                                                                                                                                                                                                                func (m MIC) String() string

                                                                                                                                                                                                                                                                                                  String implements fmt.Stringer.

                                                                                                                                                                                                                                                                                                  type MType

                                                                                                                                                                                                                                                                                                  type MType byte

                                                                                                                                                                                                                                                                                                    MType represents the message type.

                                                                                                                                                                                                                                                                                                    const (
                                                                                                                                                                                                                                                                                                    	JoinRequest MType = iota
                                                                                                                                                                                                                                                                                                    	JoinAccept
                                                                                                                                                                                                                                                                                                    	UnconfirmedDataUp
                                                                                                                                                                                                                                                                                                    	UnconfirmedDataDown
                                                                                                                                                                                                                                                                                                    	ConfirmedDataUp
                                                                                                                                                                                                                                                                                                    	ConfirmedDataDown
                                                                                                                                                                                                                                                                                                    	RejoinRequest
                                                                                                                                                                                                                                                                                                    	Proprietary
                                                                                                                                                                                                                                                                                                    )

                                                                                                                                                                                                                                                                                                      Supported message types (MType)

                                                                                                                                                                                                                                                                                                      func (MType) MarshalText

                                                                                                                                                                                                                                                                                                      func (m MType) MarshalText() ([]byte, error)

                                                                                                                                                                                                                                                                                                        MarshalText implements encoding.TextMarshaler.

                                                                                                                                                                                                                                                                                                        func (MType) String

                                                                                                                                                                                                                                                                                                        func (i MType) String() string

                                                                                                                                                                                                                                                                                                        type Major

                                                                                                                                                                                                                                                                                                        type Major byte

                                                                                                                                                                                                                                                                                                          Major defines the major version of data message.

                                                                                                                                                                                                                                                                                                          const (
                                                                                                                                                                                                                                                                                                          	LoRaWANR1 Major = 0
                                                                                                                                                                                                                                                                                                          )

                                                                                                                                                                                                                                                                                                            Supported major versions

                                                                                                                                                                                                                                                                                                            func (Major) MarshalText

                                                                                                                                                                                                                                                                                                            func (m Major) MarshalText() ([]byte, error)

                                                                                                                                                                                                                                                                                                              MarshalText implements encoding.TextMarshaler.

                                                                                                                                                                                                                                                                                                              func (Major) String

                                                                                                                                                                                                                                                                                                              func (i Major) String() string

                                                                                                                                                                                                                                                                                                              type NetID

                                                                                                                                                                                                                                                                                                              type NetID [3]byte

                                                                                                                                                                                                                                                                                                                NetID represents the NetID.

                                                                                                                                                                                                                                                                                                                func (NetID) ID

                                                                                                                                                                                                                                                                                                                func (n NetID) ID() []byte

                                                                                                                                                                                                                                                                                                                  ID returns the NetID ID part.

                                                                                                                                                                                                                                                                                                                  func (NetID) MarshalBinary

                                                                                                                                                                                                                                                                                                                  func (n NetID) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                    MarshalBinary implements encoding.BinaryMarshaler.

                                                                                                                                                                                                                                                                                                                    func (NetID) MarshalText

                                                                                                                                                                                                                                                                                                                    func (n NetID) MarshalText() ([]byte, error)

                                                                                                                                                                                                                                                                                                                      MarshalText implements encoding.TextMarshaler.

                                                                                                                                                                                                                                                                                                                      func (*NetID) Scan

                                                                                                                                                                                                                                                                                                                      func (n *NetID) Scan(src interface{}) error

                                                                                                                                                                                                                                                                                                                        Scan implements sql.Scanner.

                                                                                                                                                                                                                                                                                                                        func (NetID) String

                                                                                                                                                                                                                                                                                                                        func (n NetID) String() string

                                                                                                                                                                                                                                                                                                                          String implements fmt.Stringer.

                                                                                                                                                                                                                                                                                                                          func (NetID) Type

                                                                                                                                                                                                                                                                                                                          func (n NetID) Type() int

                                                                                                                                                                                                                                                                                                                            Type returns the NetID type.

                                                                                                                                                                                                                                                                                                                            func (*NetID) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                            func (n *NetID) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                              UnmarshalBinary implements encoding.BinaryUnmarshaler.

                                                                                                                                                                                                                                                                                                                              func (*NetID) UnmarshalText

                                                                                                                                                                                                                                                                                                                              func (n *NetID) UnmarshalText(text []byte) error

                                                                                                                                                                                                                                                                                                                                UnmarshalText implements encoding.TextUnmarshaler.

                                                                                                                                                                                                                                                                                                                                func (NetID) Value

                                                                                                                                                                                                                                                                                                                                func (n NetID) Value() (driver.Value, error)

                                                                                                                                                                                                                                                                                                                                  Value implements driver.Valuer.

                                                                                                                                                                                                                                                                                                                                  type NewChannelAnsPayload

                                                                                                                                                                                                                                                                                                                                  type NewChannelAnsPayload struct {
                                                                                                                                                                                                                                                                                                                                  	ChannelFrequencyOK bool `json:"channelFrequencyOK"`
                                                                                                                                                                                                                                                                                                                                  	DataRateRangeOK    bool `json:"dataRateRangeOK"`
                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                    NewChannelAnsPayload represents the NewChannelAns payload.

                                                                                                                                                                                                                                                                                                                                    func (NewChannelAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                    func (p NewChannelAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                      MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                      func (*NewChannelAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                      func (p *NewChannelAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                        type NewChannelReqPayload

                                                                                                                                                                                                                                                                                                                                        type NewChannelReqPayload struct {
                                                                                                                                                                                                                                                                                                                                        	ChIndex uint8  `json:"chIndex"`
                                                                                                                                                                                                                                                                                                                                        	Freq    uint32 `json:"freq"`
                                                                                                                                                                                                                                                                                                                                        	MaxDR   uint8  `json:"maxDR"`
                                                                                                                                                                                                                                                                                                                                        	MinDR   uint8  `json:"minDR"`
                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                          NewChannelReqPayload represents the NewChannelReq payload.

                                                                                                                                                                                                                                                                                                                                          func (NewChannelReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                          func (p NewChannelReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                            MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                            func (*NewChannelReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                            func (p *NewChannelReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                              UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                              type PHYPayload

                                                                                                                                                                                                                                                                                                                                              type PHYPayload struct {
                                                                                                                                                                                                                                                                                                                                              	MHDR       MHDR    `json:"mhdr"`
                                                                                                                                                                                                                                                                                                                                              	MACPayload Payload `json:"macPayload"`
                                                                                                                                                                                                                                                                                                                                              	MIC        MIC     `json:"mic"`
                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                PHYPayload represents the physical payload.

                                                                                                                                                                                                                                                                                                                                                Example (JoinAcceptSend)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                ICPPM1SJquMYPAvguqje5fM=
                                                                                                                                                                                                                                                                                                                                                [32 35 207 51 84 137 170 227 24 60 11 224 186 168 222 229 243]
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (JoinRequest)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                AAEBAQEBAQEBAgICAgICAgIDAwm5ezI=
                                                                                                                                                                                                                                                                                                                                                [0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 9 185 123 50]
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (Lorawan10Decode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"ConfirmedDataUp","major":"LoRaWANR1"},"macPayload":{"fhdr":{"devAddr":"01020304","fCtrl":{"adr":false,"adrAckReq":false,"ack":false,"fPending":false,"classB":false},"fCnt":0,"fOpts":[{"cid":"DevStatusReq","payload":{"battery":115,"margin":7}}]},"fPort":10,"frmPayload":[{"bytes":"4mTU9w=="}]},"mic":"e117d2c0"}
                                                                                                                                                                                                                                                                                                                                                [1 2 3 4]
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (Lorawan10Encode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                gAQDAgEDAAAGcwcK4mTU9+EX0sA=
                                                                                                                                                                                                                                                                                                                                                [128 4 3 2 1 3 0 0 6 115 7 10 226 100 212 247 225 23 210 192]
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"ConfirmedDataUp","major":"LoRaWANR1"},"macPayload":{"fhdr":{"devAddr":"01020304","fCtrl":{"adr":false,"adrAckReq":false,"ack":false,"fPending":false,"classB":false},"fCnt":0,"fOpts":[{"cid":"DevStatusReq","payload":{"battery":115,"margin":7}}]},"fPort":10,"frmPayload":[{"bytes":"4mTU9w=="}]},"mic":"e117d2c0"}
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (Lorawan11EncryptedFoptsDecode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"UnconfirmedDataDown","major":"LoRaWANR1"},"macPayload":{"fhdr":{"devAddr":"01020304","fCtrl":{"adr":false,"adrAckReq":false,"ack":false,"fPending":false,"classB":false},"fCnt":0,"fOpts":[{"cid":"LinkCheckReq","payload":{"margin":7,"gwCnt":1}}]},"fPort":1,"frmPayload":[{"bytes":"AQIDBA=="}]},"mic":"aa5ed13a"}
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (Lorawan11EncryptedFoptsEncode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                YAQDAgEDAAAirAoB8LRo3ape0To=
                                                                                                                                                                                                                                                                                                                                                [96 4 3 2 1 3 0 0 34 172 10 1 240 180 104 221 170 94 209 58]
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"UnconfirmedDataDown","major":"LoRaWANR1"},"macPayload":{"fhdr":{"devAddr":"01020304","fCtrl":{"adr":false,"adrAckReq":false,"ack":false,"fPending":false,"classB":false},"fCnt":0,"fOpts":[{"bytes":"IqwK"}]},"fPort":1,"frmPayload":[{"bytes":"8LRo3Q=="}]},"mic":"aa5ed13a"}
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (Lorawan11JoinAcceptSend)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                IHq+6gawKSDxHALQNI/PGBU=
                                                                                                                                                                                                                                                                                                                                                [32 122 190 234 6 176 41 32 241 28 2 208 52 143 207 24 21]
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (ProprietaryDecode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                01020304
                                                                                                                                                                                                                                                                                                                                                [5 6 7 8 9 10]
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"Proprietary","major":"LoRaWANR1"},"macPayload":{"bytes":"BQYHCAkK"},"mic":"01020304"}
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (ProprietaryEncode)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                4AUGBwgJCgECAwQ=
                                                                                                                                                                                                                                                                                                                                                [224 5 6 7 8 9 10 1 2 3 4]
                                                                                                                                                                                                                                                                                                                                                {"mhdr":{"mType":"Proprietary","major":"LoRaWANR1"},"macPayload":{"bytes":"BQYHCAkK"},"mic":"01020304"}
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                Example (ReadJoinRequest)
                                                                                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                JoinRequest
                                                                                                                                                                                                                                                                                                                                                0102030401020304
                                                                                                                                                                                                                                                                                                                                                0203040502030405
                                                                                                                                                                                                                                                                                                                                                4141
                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                func (*PHYPayload) DecodeFOptsToMACCommands

                                                                                                                                                                                                                                                                                                                                                func (p *PHYPayload) DecodeFOptsToMACCommands() error

                                                                                                                                                                                                                                                                                                                                                  DecodeFOptsToMACCommands decodes the (decrypted) FOpts bytes into MAC commands.

                                                                                                                                                                                                                                                                                                                                                  func (*PHYPayload) DecodeFRMPayloadToMACCommands

                                                                                                                                                                                                                                                                                                                                                  func (p *PHYPayload) DecodeFRMPayloadToMACCommands() error

                                                                                                                                                                                                                                                                                                                                                    DecodeFRMPayloadToMACCommands decodes the (decrypted) FRMPayload bytes into MAC commands. Note that after calling DecryptFRMPayload, this method is called automatically when FPort=0.

                                                                                                                                                                                                                                                                                                                                                    func (*PHYPayload) DecryptFOpts

                                                                                                                                                                                                                                                                                                                                                    func (p *PHYPayload) DecryptFOpts(nwkSEncKey AES128Key) error

                                                                                                                                                                                                                                                                                                                                                      DecryptFOpts decrypts the FOpts payload and decodes it into mac-command structures.

                                                                                                                                                                                                                                                                                                                                                      func (*PHYPayload) DecryptFRMPayload

                                                                                                                                                                                                                                                                                                                                                      func (p *PHYPayload) DecryptFRMPayload(key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                        DecryptFRMPayload decrypts the FRMPayload with the given key.

                                                                                                                                                                                                                                                                                                                                                        func (*PHYPayload) DecryptJoinAcceptPayload

                                                                                                                                                                                                                                                                                                                                                        func (p *PHYPayload) DecryptJoinAcceptPayload(key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                          DecryptJoinAcceptPayload decrypts the join-accept payload with the given key. Note that you need to decrypte before you can validate the MIC.

                                                                                                                                                                                                                                                                                                                                                          Note: for encrypting a join-request response, use NwkKey

                                                                                                                                                                                                                                                                                                                                                          for rejoin-request 0, 1, 2 response, use JSEncKey
                                                                                                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                          func (*PHYPayload) EncryptFOpts

                                                                                                                                                                                                                                                                                                                                                          func (p *PHYPayload) EncryptFOpts(nwkSEncKey AES128Key) error

                                                                                                                                                                                                                                                                                                                                                            EncryptFOpts encrypts the FOpts with the given key.

                                                                                                                                                                                                                                                                                                                                                            func (*PHYPayload) EncryptFRMPayload

                                                                                                                                                                                                                                                                                                                                                            func (p *PHYPayload) EncryptFRMPayload(key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                              EncryptFRMPayload encrypts the FRMPayload with the given key.

                                                                                                                                                                                                                                                                                                                                                              func (*PHYPayload) EncryptJoinAcceptPayload

                                                                                                                                                                                                                                                                                                                                                              func (p *PHYPayload) EncryptJoinAcceptPayload(key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                                EncryptJoinAcceptPayload encrypts the join-accept payload with the given key. Note that encrypted must be performed after calling SetMIC (since the MIC is part of the encrypted payload).

                                                                                                                                                                                                                                                                                                                                                                Note: for encrypting a join-request response, use NwkKey

                                                                                                                                                                                                                                                                                                                                                                for rejoin-request 0, 1, 2 response, use JSEncKey
                                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                                func (PHYPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                func (p PHYPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                  MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                  func (PHYPayload) MarshalJSON

                                                                                                                                                                                                                                                                                                                                                                  func (p PHYPayload) MarshalJSON() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                    MarshalJSON encodes the PHYPayload into JSON.

                                                                                                                                                                                                                                                                                                                                                                    func (PHYPayload) MarshalText

                                                                                                                                                                                                                                                                                                                                                                    func (p PHYPayload) MarshalText() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                      MarshalText encodes the PHYPayload into base64.

                                                                                                                                                                                                                                                                                                                                                                      func (*PHYPayload) SetDownlinkDataMIC

                                                                                                                                                                                                                                                                                                                                                                      func (p *PHYPayload) SetDownlinkDataMIC(macVersion MACVersion, confFCnt uint32, sNwkSIntKey AES128Key) error

                                                                                                                                                                                                                                                                                                                                                                        SetDownlinkDataMIC calculates and sets the MIC field for downlink data frames. The confirmed frame-counter and is only required for LoRaWAN 1.1 and can be left blank otherwise.

                                                                                                                                                                                                                                                                                                                                                                        func (*PHYPayload) SetDownlinkJoinMIC

                                                                                                                                                                                                                                                                                                                                                                        func (p *PHYPayload) SetDownlinkJoinMIC(joinReqType JoinType, joinEUI EUI64, devNonce DevNonce, key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                                          SetDownlinkJoinMIC calculates and sets the MIC field for downlink join requests.

                                                                                                                                                                                                                                                                                                                                                                          func (*PHYPayload) SetUplinkDataMIC

                                                                                                                                                                                                                                                                                                                                                                          func (p *PHYPayload) SetUplinkDataMIC(macVersion MACVersion, confFCnt uint32, txDR, txCh uint8, fNwkSIntKey, sNwkSIntKey AES128Key) error

                                                                                                                                                                                                                                                                                                                                                                            SetUplinkDataMIC calculates and sets the MIC field for uplink data frames. The confirmed frame-counter, TX data-rate TX channel index and SNwkSIntKey are only required for LoRaWAN 1.1 and can be left blank otherwise.

                                                                                                                                                                                                                                                                                                                                                                            func (*PHYPayload) SetUplinkJoinMIC

                                                                                                                                                                                                                                                                                                                                                                            func (p *PHYPayload) SetUplinkJoinMIC(key AES128Key) error

                                                                                                                                                                                                                                                                                                                                                                              SetUplinkJoinMIC calculates and sets the MIC field for uplink join requests.

                                                                                                                                                                                                                                                                                                                                                                              func (*PHYPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                              func (p *PHYPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                func (*PHYPayload) UnmarshalText

                                                                                                                                                                                                                                                                                                                                                                                func (p *PHYPayload) UnmarshalText(text []byte) error

                                                                                                                                                                                                                                                                                                                                                                                  UnmarshalText decodes the PHYPayload from base64.

                                                                                                                                                                                                                                                                                                                                                                                  func (PHYPayload) ValidateDownlinkDataMIC

                                                                                                                                                                                                                                                                                                                                                                                  func (p PHYPayload) ValidateDownlinkDataMIC(macVersion MACVersion, confFCnt uint32, sNwkSIntKey AES128Key) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                    ValidateDownlinkDataMIC validates the MIC of a downlink data frame. In order to validate the MIC, the FCnt value must first be set to the full 32 bit frame-counter value, as only the 16 least-significant bits are transmitted. The confirmed frame-counter and is only required for LoRaWAN 1.1 and can be left blank otherwise.

                                                                                                                                                                                                                                                                                                                                                                                    func (PHYPayload) ValidateDownlinkJoinMIC

                                                                                                                                                                                                                                                                                                                                                                                    func (p PHYPayload) ValidateDownlinkJoinMIC(joinReqType JoinType, joinEUI EUI64, devNonce DevNonce, key AES128Key) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                      ValidateDownlinkJoinMIC validates the MIC of a downlink join request.

                                                                                                                                                                                                                                                                                                                                                                                      func (PHYPayload) ValidateUplinkDataMIC

                                                                                                                                                                                                                                                                                                                                                                                      func (p PHYPayload) ValidateUplinkDataMIC(macVersion MACVersion, confFCnt uint32, txDR, txCh uint8, fNwkSIntKey, sNwkSIntKey AES128Key) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                        ValidateUplinkDataMIC validates the MIC of an uplink data frame. In order to validate the MIC, the FCnt value must first be set to the full 32 bit frame-counter value, as only the 16 least-significant bits are transmitted. The confirmed frame-counter, TX data-rate TX channel index and SNwkSIntKey are only required for LoRaWAN 1.1 and can be left blank otherwise.

                                                                                                                                                                                                                                                                                                                                                                                        func (PHYPayload) ValidateUplinkDataMICF

                                                                                                                                                                                                                                                                                                                                                                                        func (p PHYPayload) ValidateUplinkDataMICF(fNwkSIntKey AES128Key) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                          ValidateUplinkDataMICF validates the cmacF part of the uplink data MIC (LoRaWAN 1.1 only). In order to validate the MIC, the FCnt value must first be set to the full 32 bit frame-counter value, as only the 16 least-significant bits are transmitted.

                                                                                                                                                                                                                                                                                                                                                                                          func (PHYPayload) ValidateUplinkJoinMIC

                                                                                                                                                                                                                                                                                                                                                                                          func (p PHYPayload) ValidateUplinkJoinMIC(key AES128Key) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                            ValidateUplinkJoinMIC validates the MIC of an uplink join request.

                                                                                                                                                                                                                                                                                                                                                                                            type Payload

                                                                                                                                                                                                                                                                                                                                                                                            type Payload interface {
                                                                                                                                                                                                                                                                                                                                                                                            	MarshalBinary() (data []byte, err error)
                                                                                                                                                                                                                                                                                                                                                                                            	UnmarshalBinary(uplink bool, data []byte) error
                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                              Payload is the interface that every payload needs to implement. Since it might be a MACPayload, an indication must be given if the direction is uplink or downlink (it has different payloads for the same CID, based on direction).

                                                                                                                                                                                                                                                                                                                                                                                              type PingSlotChannelAnsPayload

                                                                                                                                                                                                                                                                                                                                                                                              type PingSlotChannelAnsPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                              	DataRateOK         bool `json:"dataRateOK"`
                                                                                                                                                                                                                                                                                                                                                                                              	ChannelFrequencyOK bool `json:"channelFrequencyOK"`
                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                PingSlotChannelAnsPayload represents the PingSlotChannelAns payload.

                                                                                                                                                                                                                                                                                                                                                                                                func (PingSlotChannelAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                func (p PingSlotChannelAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                  MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                  func (*PingSlotChannelAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                  func (p *PingSlotChannelAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                    UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                    type PingSlotChannelReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                    type PingSlotChannelReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                    	Frequency uint32 `json:"frequency"`
                                                                                                                                                                                                                                                                                                                                                                                                    	DR        uint8  `json:"dr"`
                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                      PingSlotChannelReqPayload represents the PingSlotChannelReq payload.

                                                                                                                                                                                                                                                                                                                                                                                                      func (PingSlotChannelReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                      func (p PingSlotChannelReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                        MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                        func (*PingSlotChannelReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                        func (p *PingSlotChannelReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                          UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                          type PingSlotInfoReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                          type PingSlotInfoReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                          	Periodicity uint8 `json:"periodicity"`
                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                            PingSlotInfoReqPayload represents the PingSlotInfoReq payload.

                                                                                                                                                                                                                                                                                                                                                                                                            func (PingSlotInfoReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                            func (p PingSlotInfoReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                              MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                              func (*PingSlotInfoReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                              func (p *PingSlotInfoReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                type ProprietaryMACCommandPayload

                                                                                                                                                                                                                                                                                                                                                                                                                type ProprietaryMACCommandPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                	Bytes []byte `json:"bytes"`
                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                  ProprietaryMACCommandPayload represents a proprietary payload.

                                                                                                                                                                                                                                                                                                                                                                                                                  func (ProprietaryMACCommandPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                  func (p ProprietaryMACCommandPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                    MarshalBinary marshals the object into a slice of bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                    func (*ProprietaryMACCommandPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                    func (p *ProprietaryMACCommandPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                      UnmarshalBinary decodes the object from a slice of bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                      type RXParamSetupAnsPayload

                                                                                                                                                                                                                                                                                                                                                                                                                      type RXParamSetupAnsPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                      	ChannelACK     bool `json:"channelAck"`
                                                                                                                                                                                                                                                                                                                                                                                                                      	RX2DataRateACK bool `json:"rx2DataRateAck"`
                                                                                                                                                                                                                                                                                                                                                                                                                      	RX1DROffsetACK bool `json:"rx1DROffsetAck"`
                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                        RXParamSetupAnsPayload represents the RXParamSetupAns payload.

                                                                                                                                                                                                                                                                                                                                                                                                                        func (RXParamSetupAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                        func (p RXParamSetupAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                          MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                          func (*RXParamSetupAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                          func (p *RXParamSetupAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                            UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                            type RXParamSetupReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                                            type RXParamSetupReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                            	Frequency  uint32     `json:"frequency"`
                                                                                                                                                                                                                                                                                                                                                                                                                            	DLSettings DLSettings `json:"dlSettings"`
                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                              RXParamSetupReqPayload represents the RXParamSetupReq payload.

                                                                                                                                                                                                                                                                                                                                                                                                                              func (RXParamSetupReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                              func (p RXParamSetupReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                func (*RXParamSetupReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                func (p *RXParamSetupReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                  UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                  type RXTimingSetupReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                  type RXTimingSetupReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                  	Delay uint8 `json:"delay"` // 0=1s, 1=1s, 2=2s, ... 15=15s
                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                    RXTimingSetupReqPayload represents the RXTimingSetupReq payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                    func (RXTimingSetupReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                    func (p RXTimingSetupReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                      MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*RXTimingSetupReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                      func (p *RXTimingSetupReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                        UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                        type Redundancy

                                                                                                                                                                                                                                                                                                                                                                                                                                        type Redundancy struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                        	ChMaskCntl uint8 `json:"chMaskCntl"`
                                                                                                                                                                                                                                                                                                                                                                                                                                        	NbRep      uint8 `json:"nbRep"`
                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                          Redundancy represents the redundancy field.

                                                                                                                                                                                                                                                                                                                                                                                                                                          func (Redundancy) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r Redundancy) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                            MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Redundancy) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                            func (r *Redundancy) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                              UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                              type RejoinParamSetupAnsPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                              type RejoinParamSetupAnsPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                              	TimeOK bool `json:"timeOK"`
                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                RejoinParamSetupAnsPayload represents the RejoinParamSetupAns payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                func (RejoinParamSetupAnsPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                func (p RejoinParamSetupAnsPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                  MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*RejoinParamSetupAnsPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (p *RejoinParamSetupAnsPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                    UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RejoinParamSetupReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RejoinParamSetupReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                    	MaxTimeN  uint8 `json:"maxTimeN"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                    	MaxCountN uint8 `json:"maxCountN"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                      RejoinParamSetupReqPayload represents the RejoinParamSetupReq payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (RejoinParamSetupReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (p RejoinParamSetupReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                        MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*RejoinParamSetupReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (p *RejoinParamSetupReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                          UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RejoinRequestType02Payload

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RejoinRequestType02Payload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                          	RejoinType JoinType `json:"rejoinType"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                          	NetID      NetID    `json:"netID"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                          	DevEUI     EUI64    `json:"devEUI"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                          	RJCount0   uint16   `json:"rjCount0"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                            RejoinRequestType02Payload represents a rejoin-request of type 0 or 2.

                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (RejoinRequestType02Payload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (p RejoinRequestType02Payload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                              MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*RejoinRequestType02Payload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (p *RejoinRequestType02Payload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RejoinRequestType1Payload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RejoinRequestType1Payload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	RejoinType JoinType `json:"rejoinRequest"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	JoinEUI    EUI64    `json:"joinEUI"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	DevEUI     EUI64    `json:"devEUI"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	RJCount1   uint16   `json:"rjCount1"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  RejoinRequestType1Payload represents a rejoin-request of type 1.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (RejoinRequestType1Payload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (p RejoinRequestType1Payload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    MarshalBinary marshals the object in binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*RejoinRequestType1Payload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (p *RejoinRequestType1Payload) UnmarshalBinary(uplink bool, data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      UnmarshalBinary decodes the object from binary form.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RekeyConfPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RekeyConfPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	ServLoRaWANVersion Version `json:"servLoRaWANVersion"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        RekeyConfPayload represents the RekeyConf payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (RekeyConfPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (p RekeyConfPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*RekeyConfPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (p *RekeyConfPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RekeyIndPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RekeyIndPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	DevLoRaWANVersion Version `json:"devLoRaWANVersion"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              RekeyIndPayload represents the RekeyInd payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (RekeyIndPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (p RekeyIndPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*RekeyIndPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (p *RekeyIndPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ResetConfPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ResetConfPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ServLoRaWANVersion Version `json:"servLoRaWANVersion"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ResetConfPayload represents the ResetConf payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (ResetConfPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (p ResetConfPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*ResetConfPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (p *ResetConfPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResetIndPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResetIndPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	DevLoRaWANVersion Version `json:"devLoRaWANVersion"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ResetIndPayload represents the ResetInd payload.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (ResetIndPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (p ResetIndPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*ResetIndPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (p *ResetIndPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TXParamSetupReqPayload

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TXParamSetupReqPayload struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	DownlinkDwelltime DwellTime `json:"downlinkDwellTime"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	UplinkDwellTime   DwellTime `json:"uplinkDwellTime"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MaxEIRP           uint8     `json:"maxEIRPCoded"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                TXParamSetupReqPayload represents the TXParamSetupReq payload. Note that the MaxEIRP holds the coded index value, not the actual EIRP. To translate from the actual EIRP to the coded index value, use the GetTXParamSetupEIRPIndex function. To translate a coded index value back to the actual EIRP, use the GetTXParamSetupEIRP function.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (TXParamSetupReqPayload) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (p TXParamSetupReqPayload) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  MarshalBinary encodes the object into a bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*TXParamSetupReqPayload) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (p *TXParamSetupReqPayload) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Version

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type Version struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Minor uint8 `json:"minor"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Version defines LoRaWAN version field.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (Version) MarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (v Version) MarshalBinary() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        MarshalBinary encodes the object into bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*Version) UnmarshalBinary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (v *Version) UnmarshalBinary(data []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          UnmarshalBinary decodes the object from bytes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Directories

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Path Synopsis
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package airtime provides a function for calculating the time on air.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package airtime provides a function for calculating the time on air.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          applayer
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          clocksync
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package clocksync implements the Application Layer Clock Synchronization v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package clocksync implements the Application Layer Clock Synchronization v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          fragmentation
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package fragmentation implements the Fragmented Data Block Transport v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package fragmentation implements the Fragmented Data Block Transport v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          multicastsetup
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package multicastsetup implements the Remote Multicast Setup v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package multicastsetup implements the Remote Multicast Setup v1.0.0 over LoRaWAN.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package backend provides the LoRaWAN backend interfaces structs.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package backend provides the LoRaWAN backend interfaces structs.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          joinserver
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package joinserver provides a http.Handler interface which implements the join-server API as speficied by the LoRaWAN Backend Interfaces.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package joinserver provides a http.Handler interface which implements the join-server API as speficied by the LoRaWAN Backend Interfaces.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package band provides band specific defaults and configuration for downlink communication with end-devices.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package band provides band specific defaults and configuration for downlink communication with end-devices.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package gps provides functions to handle Time <> GPS Epoch time conversion.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package gps provides functions to handle Time <> GPS Epoch time conversion.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package sensitivity provides functions for calculating the LoRa sensitivity.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Package sensitivity provides functions for calculating the LoRa sensitivity.