Documentation
¶
Index ¶
- func DownlinkTransmittedToProto(gatewayID lorawan.EUI64, dt DownlinkTransmitted) (gw.DownlinkTxAck, error)
- func JoinRequestToProto(loraBand band.Band, gatewayID lorawan.EUI64, jr JoinRequest) (*gw.UplinkFrame, error)
- func SetRadioMetaDataToProto(loraBand band.Band, gatewayID lorawan.EUI64, rmd RadioMetaData, ...) error
- func UplinkDataFrameToProto(loraBand band.Band, gatewayID lorawan.EUI64, updf UplinkDataFrame) (*gw.UplinkFrame, error)
- func UplinkProprietaryFrameToProto(loraBand band.Band, gatewayID lorawan.EUI64, uppf UplinkProprietaryFrame) (*gw.UplinkFrame, error)
- type DownlinkFrame
- type DownlinkTransmitted
- type EUI64
- type JoinRequest
- type MessageType
- type RadioMetaData
- type RadioMetaDataUpInfo
- type RouterConfig
- type RouterInfoRequest
- type RouterInfoResponse
- type SX1301Conf
- type SX1301ConfChanFSK
- type SX1301ConfChanLoRaStd
- type SX1301ConfChanMultiSF
- type SX1301ConfRadio
- type TimeSyncGPSTimeTransfer
- type TimeSyncRequest
- type TimeSyncResponse
- type UplinkDataFrame
- type UplinkProprietaryFrame
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DownlinkTransmittedToProto ¶
func DownlinkTransmittedToProto(gatewayID lorawan.EUI64, dt DownlinkTransmitted) (gw.DownlinkTxAck, error)
DownlinkTransmittedToProto converts the DownlinkTransmitted to the protobuf struct.
func JoinRequestToProto ¶
func JoinRequestToProto(loraBand band.Band, gatewayID lorawan.EUI64, jr JoinRequest) (*gw.UplinkFrame, error)
JoinRequestToProto converts the JoinRequest to the protobuf struct.
func SetRadioMetaDataToProto ¶
func SetRadioMetaDataToProto(loraBand band.Band, gatewayID lorawan.EUI64, rmd RadioMetaData, pb *gw.UplinkFrame) error
SetRadioMetaDataToProto sets the given parameters to the given protobuf struct.
func UplinkDataFrameToProto ¶
func UplinkDataFrameToProto(loraBand band.Band, gatewayID lorawan.EUI64, updf UplinkDataFrame) (*gw.UplinkFrame, error)
UplinkDataFrameToProto converts the UplinkDataFrame to the protobuf struct.
func UplinkProprietaryFrameToProto ¶
func UplinkProprietaryFrameToProto(loraBand band.Band, gatewayID lorawan.EUI64, uppf UplinkProprietaryFrame) (*gw.UplinkFrame, error)
UplinkProprietaryFrameToProto converts the UplinkProprietaryFrame to the protobuf struct.
Types ¶
type DownlinkFrame ¶
type DownlinkFrame struct {
MessageType MessageType `json:"msgtype"`
DevEui string `json:"DevEui"`
DC int `json:"dC"`
DIID uint32 `json:"diid"`
PDU string `json:"pdu"`
Priority int `json:"priority"`
RxDelay *int `json:"RxDelay,omitempty"`
RX1DR *int `json:"RX1DR,omitempty"`
RX1Freq *uint32 `json:"RX1Freq,omitempty"`
RX2DR *int `json:"RX2DR,omitempty"`
RX2Freq *uint32 `json:"RX2Freq,omitempty"`
DR *int `json:"DR,omitempty"`
Freq *uint32 `json:"Freq,omitempty"`
GPSTime *uint64 `json:"gpstime,omitempty"`
XTime *uint64 `json:"xtime,omitempty"`
RCtx *uint64 `json:"rctx,omitempty"`
}
DownlinkFrame implements the downlink message.
func DownlinkFrameFromProto ¶
func DownlinkFrameFromProto(loraBand band.Band, pb *gw.DownlinkFrame) (DownlinkFrame, error)
DownlinkFrameFromProto convers the given protobuf message to a DownlinkFrame.
type DownlinkTransmitted ¶
type DownlinkTransmitted struct {
MessageType MessageType `json:"msgtype"`
DIID uint32 `json:"diid"`
}
DownlinkTransmitted implements the downlink transmitted message.
type EUI64 ¶
EUI64 implements the BasicStation EUI64 type.
func (EUI64) MarshalText ¶
MarshalText encodes the EUI64 to a ID6 string.
func (*EUI64) UnmarshalText ¶
UnmarshalText decodes the EUI64 from an ID6 or EUI string.
type JoinRequest ¶
type JoinRequest struct {
RadioMetaData
MessageType MessageType `json:"msgType"`
MHDR uint8 `json:"Mhdr"`
JoinEUI EUI64 `json:"JoinEui"`
DevEUI EUI64 `json:"DevEui"`
DevNonce uint16 `json:"DevNonce"`
MIC int32 `json:"MIC"`
}
JoinRequest implements the join-request message.
type MessageType ¶
type MessageType string
MessageType defines the message type.
const ( VersionMessage MessageType = "version" RouterConfigMessage MessageType = "router_config" JoinRequestMessage MessageType = "jreq" UplinkDataFrameMessage MessageType = "updf" ProprietaryDataFrameMessage MessageType = "propdf" DownlinkMessage MessageType = "dnmsg" DownlinkTransmittedMessage MessageType = "dntxed" TimeSyncMessage MessageType = "timesync" )
Message types.
func GetMessageType ¶
func GetMessageType(b []byte) (MessageType, error)
GetMessageType returns the message type for the given paylaod.
type RadioMetaData ¶
type RadioMetaData struct {
DR int `json:"DR"`
Frequency uint32 `json:"Freq"`
UpInfo RadioMetaDataUpInfo `json:"upinfo"`
}
RadioMetaData contains the radio meta-data.
type RadioMetaDataUpInfo ¶
type RadioMetaDataUpInfo struct {
RxTime float64 `json:"rxtime"`
RCtx uint64 `json:"rctx"`
XTime uint64 `json:"xtime"`
GPSTime int64 `json:"gpstime"`
RSSI float32 `json:"rssi"`
SNR float32 `json:"snr"`
}
RadioMetaDataUpInfo contains the radio meta-data uplink info.
type RouterConfig ¶
type RouterConfig struct {
MessageType MessageType `json:"msgtype"`
NetID []uint32 `json:"NetID"`
JoinEui [][]uint64 `json:"JoinEui"`
Region string `json:"region"`
HWSpec string `json:"hwspec"`
FreqRange []uint32 `json:"freq_range"`
DRs [][]int `json:"DRs"`
SX1301Conf []SX1301Conf `json:"sx1301_conf"`
}
RouterConfig implements the router-config message.
func GetRouterConfig ¶
func GetRouterConfig(region band.Name, netIDs []lorawan.NetID, joinEUIs [][2]lorawan.EUI64, freqMin, freqMax uint32, concentrators []config.BasicStationConcentrator) (RouterConfig, error)
GetRouterConfig returns the router-config message.
type RouterInfoRequest ¶
type RouterInfoRequest struct {
Router EUI64 `json:"router"`
}
RouterInfoRequest implements the router-info request.
type RouterInfoResponse ¶
type RouterInfoResponse struct {
Router EUI64 `json:"router"`
Muxs EUI64 `json:"muxs"`
URI string `json:"uri"`
Error string `json:"error,omitempty"` // only in case of error
}
RouterInfoResponse implements the router-info response.
type SX1301Conf ¶
type SX1301Conf struct {
Radio0 SX1301ConfRadio `json:"radio_0"`
Radio1 SX1301ConfRadio `json:"radio_1"`
ChanFSK SX1301ConfChanFSK `json:"chan_FSK"`
ChanLoRaStd SX1301ConfChanLoRaStd `json:"chan_Lora_std"`
ChanMultiSF0 SX1301ConfChanMultiSF `json:"chan_multiSF_0"`
ChanMultiSF1 SX1301ConfChanMultiSF `json:"chan_multiSF_1"`
ChanMultiSF2 SX1301ConfChanMultiSF `json:"chan_multiSF_2"`
ChanMultiSF3 SX1301ConfChanMultiSF `json:"chan_multiSF_3"`
ChanMultiSF4 SX1301ConfChanMultiSF `json:"chan_multiSF_4"`
ChanMultiSF5 SX1301ConfChanMultiSF `json:"chan_multiSF_5"`
ChanMultiSF6 SX1301ConfChanMultiSF `json:"chan_multiSF_6"`
ChanMultiSF7 SX1301ConfChanMultiSF `json:"chan_multiSF_7"`
}
SX1301Conf implements a single SX1301 configuration.
type SX1301ConfChanFSK ¶
type SX1301ConfChanFSK struct {
Enable bool `json:"enable"`
}
SX1301ConfChanFSK implements the FSK channel configuration.
type SX1301ConfChanLoRaStd ¶
type SX1301ConfChanLoRaStd struct {
Enable bool `json:"enable"`
Radio int `json:"radio"`
IF int `json:"if"`
Bandwidth uint32 `json:"bandwidth,omitempty"`
SpreadingFactor uint32 `json:"spread_factor,omitempty"`
}
SX1301ConfChanLoRaStd implements the LoRa (single SF) configuration.
type SX1301ConfChanMultiSF ¶
type SX1301ConfChanMultiSF struct {
Enable bool `json:"enable"`
Radio int `json:"radio"`
IF int `json:"if"`
}
SX1301ConfChanMultiSF implements the LoRa multi SF configuration.
type SX1301ConfRadio ¶
SX1301ConfRadio implements a SX1301 radio configuration.
type TimeSyncGPSTimeTransfer ¶
type TimeSyncGPSTimeTransfer struct {
MessageType MessageType `json:"msgtype"`
XTime uint64 `json:"xtime"`
GPSTime int64 `json:"gpstime"`
}
TimeSyncGPSTimeTransfer implements the GPS time transfer that is initiated by the NS.
type TimeSyncRequest ¶
type TimeSyncRequest struct {
MessageType MessageType `json:"msgtype"`
TxTime int64 `json:"txtime"`
}
TimeSyncRequest implements the router-info request.
type TimeSyncResponse ¶
type TimeSyncResponse struct {
MessageType MessageType `json:"msgtype"`
TxTime int64 `json:"txtime"`
GPSTime int64 `json:"gpstime"`
}
TimeSyncResponse implements the router-info response.
type UplinkDataFrame ¶
type UplinkDataFrame struct {
RadioMetaData
MessageType MessageType `json:"msgtype"`
MHDR uint8 `json:"Mhdr"`
DevAddr int32 `json:"DevAddr"`
FCtrl uint8 `json:"FCtrl"`
FCnt uint16 `json:"FCnt"`
FOpts string `json:"FOpts"`
FPort int `json:"FPort"`
FRMPayload string `json:"FRMPayload"`
MIC int32 `json:"MIC"`
}
UplinkDataFrame implements the uplink data-frame message.
type UplinkProprietaryFrame ¶
type UplinkProprietaryFrame struct {
RadioMetaData
MessageType MessageType `json:"msgType"`
FRMPayload string `json:"FRMPayload"`
}
UplinkProprietaryFrame implements the uplink proprietary frame.