Documentation ¶
Index ¶
- Constants
- func NewFormatter(maxRoundTripDelay time.Duration) semtechws.Formatter
- func Type(data []byte) (string, error)
- type AbsoluteTimeDownlinkMessage
- type DiscoverQuery
- type DiscoverResponse
- type DownlinkMessage
- type JoinRequest
- type MessageType
- type RadioMetaData
- type TimeSyncRequest
- type TimeSyncResponse
- type TimestampDownlinkMessage
- type TxConfirmation
- type UpInfo
- type UplinkDataFrame
- type Version
Constants ¶
const ( // Upstream types for messages from the Gateway. TypeUpstreamVersion = "version" TypeUpstreamJoinRequest = "jreq" TypeUpstreamUplinkDataFrame = "updf" TypeUpstreamProprietaryDataFrame = "propdf" TypeUpstreamTxConfirmation = "dntxed" TypeUpstreamTimeSync = "timesync" TypeUpstreamRemoteShell = "rmtsh" // Downstream types for messages from the Network TypeDownstreamDownlinkMessage = "dnmsg" TypeDownstreamDownlinkMulticastSchedule = "dnsched" TypeDownstreamTimeSync = "timesync" TypeDownstreamRemoteCommand = "runcmd" TypeDownstreamRemoteShell = "rmtsh" )
Definition of LoRa Basic Station message types.
Variables ¶
This section is empty.
Functions ¶
func NewFormatter ¶
NewFormatter returns a new LoRa Basic Station LNS formatter.
Types ¶
type AbsoluteTimeDownlinkMessage ¶
type AbsoluteTimeDownlinkMessage struct { DR int `json:"DR"` Freq int `json:"Freq"` GPSTime int64 `json:"gpstime"` }
AbsoluteTimeDownlinkMessage encapsulates the information used for downlinks which are meant to be sent at fixed absolute GPS times.
type DiscoverQuery ¶
DiscoverQuery contains the unique identifier of the gateway. This message is sent by the gateway.
type DiscoverResponse ¶
type DiscoverResponse struct { EUI id6.EUI `json:"router"` Muxs id6.EUI `json:"muxs,omitempty"` URI string `json:"uri,omitempty"` Error string `json:"error,omitempty"` }
DiscoverResponse contains the response to the discover query. This message is sent by the Gateway Server.
type DownlinkMessage ¶
type DownlinkMessage struct { DevEUI string `json:"DevEui"` DeviceClass uint `json:"dC"` Diid int64 `json:"diid"` Pdu string `json:"pdu"` Priority int `json:"priority"` RCtx int64 `json:"rctx"` MuxTime float64 `json:"MuxTime"` *TimestampDownlinkMessage `json:",omitempty"` *AbsoluteTimeDownlinkMessage `json:",omitempty"` }
DownlinkMessage is the LoRaWAN downlink message sent to the LoRa Basics Station.
func (*DownlinkMessage) ToDownlinkMessage ¶
func (dnmsg *DownlinkMessage) ToDownlinkMessage(bandID string) (*ttnpb.DownlinkMessage, error)
ToDownlinkMessage translates the LNS DownlinkMessage "dnmsg" to ttnpb.DownlinkMessage.
type JoinRequest ¶
type JoinRequest struct { MHdr uint `json:"MHdr"` JoinEUI id6.EUI `json:"JoinEui"` DevEUI id6.EUI `json:"DevEui"` DevNonce uint `json:"DevNonce"` MIC int32 `json:"MIC"` RefTime float64 `json:"RefTime"` RadioMetaData }
JoinRequest is the LoRaWAN Join Request message from LoRa Basics Station protocol.
func (*JoinRequest) FromUplinkMessage ¶
func (req *JoinRequest) FromUplinkMessage(up *ttnpb.UplinkMessage, bandID string) error
FromUplinkMessage extracts fields from ttnpb.UplinkMessage and creates the LoRa Basics Station Join Request Frame.
func (JoinRequest) MarshalJSON ¶
func (req JoinRequest) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
type RadioMetaData ¶
type RadioMetaData struct { DataRate int `json:"DR"` Frequency uint64 `json:"Freq"` UpInfo UpInfo `json:"upinfo"` }
RadioMetaData is a the metadata that is received as part of all upstream messages (except Tx Confirmation).
type TimeSyncRequest ¶
type TimeSyncRequest struct {
TxTime float64 `json:"txtime"`
}
TimeSyncRequest is the time synchronization request from the BasicStation.
func (TimeSyncRequest) MarshalJSON ¶
func (tsr TimeSyncRequest) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
func (TimeSyncRequest) Response ¶
func (tsr TimeSyncRequest) Response(t time.Time) TimeSyncResponse
Response generates a TimeSyncResponse for this request.
type TimeSyncResponse ¶
type TimeSyncResponse struct { TxTime float64 `json:"txtime,omitempty"` XTime int64 `json:"xtime,omitempty"` GPSTime int64 `json:"gpstime"` MuxTime float64 `json:"MuxTime,omitempty"` }
TimeSyncResponse is the time synchronization response to the BasicStation.
func (TimeSyncResponse) MarshalJSON ¶
func (tsr TimeSyncResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
type TimestampDownlinkMessage ¶
type TimestampDownlinkMessage struct { RxDelay int `json:"RxDelay"` Rx1DR int `json:"RX1DR"` Rx1Freq int `json:"RX1Freq"` XTime int64 `json:"xtime"` }
TimestampDownlinkMessage encapsulates the information used for downlinks which are meant to be sent at fixed concentrator timestamps.
type TxConfirmation ¶
type TxConfirmation struct { Diid int64 `json:"diid"` DevEUI id6.EUI `json:"DevEui"` RCtx int64 `json:"rctx"` XTime int64 `json:"xtime"` TxTime float64 `json:"txtime"` GPSTime int64 `json:"gpstime"` }
TxConfirmation is a Transmit Confirmation message from the BasicStation.
func (TxConfirmation) MarshalJSON ¶
func (conf TxConfirmation) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
func (TxConfirmation) ToTxAck ¶
func (conf TxConfirmation) ToTxAck( ctx context.Context, tokens *io.DownlinkTokens, receivedAt time.Time, ) *ttnpb.TxAcknowledgment
ToTxAck converts the LoRa Basics Station TxConfirmation message to ttnpb.TxAcknowledgment
type UpInfo ¶
type UpInfo struct { RxTime float64 `json:"rxtime"` RCtx int64 `json:"rtcx"` XTime int64 `json:"xtime"` GPSTime int64 `json:"gpstime"` RSSI float32 `json:"rssi"` SNR float32 `json:"snr"` }
UpInfo provides additional metadata on each upstream message.
type UplinkDataFrame ¶
type UplinkDataFrame struct { MHdr uint `json:"MHdr"` DevAddr int32 `json:"DevAddr"` FCtrl uint `json:"FCtrl"` FCnt uint `json:"Fcnt"` FOpts string `json:"FOpts"` FPort int `json:"FPort"` FRMPayload string `json:"FRMPayload"` MIC int32 `json:"MIC"` RefTime float64 `json:"RefTime"` RadioMetaData }
UplinkDataFrame is the LoRaWAN Uplink message of the LoRa Basics Station protocol.
func (*UplinkDataFrame) FromUplinkMessage ¶
func (updf *UplinkDataFrame) FromUplinkMessage(up *ttnpb.UplinkMessage, bandID string) error
FromUplinkMessage extracts fields from ttnpb.UplinkMessage and creates the LoRa Basics Station UplinkDataFrame.
func (UplinkDataFrame) MarshalJSON ¶
func (updf UplinkDataFrame) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
type Version ¶
type Version struct { Station string `json:"station"` Firmware string `json:"firmware"` Package string `json:"package"` Model string `json:"model"` Protocol int `json:"protocol"` Features string `json:"features,omitempty"` }
Version contains version information. This message is sent by the gateway.
func (Version) IsProduction ¶
IsProduction checks the features field for "prod" and returns true if found. This is then used to set debug options in the router config.
func (Version) MarshalJSON ¶
MarshalJSON implements json.Marshaler.