 Documentation
      ¶
      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.