Skip to content

Package lorawan provides structures and tools to read and write LoraWAN messages from and to a slice of bytes.

License

Notifications You must be signed in to change notification settings

hzw-the-programmer/lorawan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 LoRa Server project forum: https://forum.loraserver.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/).

About

Package lorawan provides structures and tools to read and write LoraWAN messages from and to a slice of bytes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.9%
  • Makefile 0.1%