Documentation ¶
Index ¶
- Constants
- type ADRSettings
- type Device
- type Frame
- type FrameHistory
- type Options
- type RedisDeviceStore
- func (s *RedisDeviceStore) Delete(appEUI types.AppEUI, devEUI types.DevEUI) error
- func (s *RedisDeviceStore) Frames(appEUI types.AppEUI, devEUI types.DevEUI) (FrameHistory, error)
- func (s *RedisDeviceStore) Get(appEUI types.AppEUI, devEUI types.DevEUI) (*Device, error)
- func (s *RedisDeviceStore) List(opts *storage.ListOptions) ([]*Device, error)
- func (s *RedisDeviceStore) ListForAddress(devAddr types.DevAddr) ([]*Device, error)
- func (s *RedisDeviceStore) Set(new *Device, properties ...string) (err error)
- type RedisFrameHistory
- type Store
Constants ¶
const FramesHistorySize = 20
FramesHistorySize for ADR
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ADRSettings ¶
type ADRSettings struct { Band string `redis:"band"` Margin int `redis:"margin"` // Indicates whether the NetworkServer should send a LinkADRReq when possible SendReq bool `redis:"send_req,omitempty"` Failed int `redis:"failed,omitempty"` // number of failed ADR attempts // Desired Settings: DataRate string `redis:"data_rate,omitempty"` TxPower int `redis:"tx_power,omitempty"` NbTrans int `redis:"nb_trans,omitempty"` }
ADRSettings contains the (desired) settings for a device that uses ADR
type Device ¶
type Device struct { DevEUI types.DevEUI `redis:"dev_eui"` AppEUI types.AppEUI `redis:"app_eui"` AppID string `redis:"app_id"` DevID string `redis:"dev_id"` DevAddr types.DevAddr `redis:"dev_addr"` NwkSKey types.NwkSKey `redis:"nwk_s_key"` FCntUp uint32 `redis:"f_cnt_up"` FCntDown uint32 `redis:"f_cnt_down"` LastSeen time.Time `redis:"last_seen"` Options Options `redis:"options"` ADR ADRSettings `redis:"adr,include"` CreatedAt time.Time `redis:"created_at"` UpdatedAt time.Time `redis:"updated_at"` // contains filtered or unexported fields }
Device contains the state of a device
func (Device) ChangedFields ¶
ChangedFields returns the names of the changed fields since the last call to StartUpdate
func (*Device) StartUpdate ¶
func (d *Device) StartUpdate()
StartUpdate stores the state of the device
type Frame ¶
type Frame struct { FCnt uint32 `json:"f_cnt"` SNR float32 `json:"snr"` GatewayCount uint32 `json:"gw_cnt"` }
Frame collected for ADR
type FrameHistory ¶
FrameHistory for a device
type Options ¶
type Options struct { ActivationConstraints string `json:"activation_constraints,omitempty"` // Activation Constraints (public/local/private) DisableFCntCheck bool `json:"disable_fcnt_check,omitemtpy"` // Disable Frame counter check (insecure) Uses32BitFCnt bool `json:"uses_32_bit_fcnt,omitemtpy"` // Use 32-bit Frame counters }
Options for the specified device
type RedisDeviceStore ¶
type RedisDeviceStore struct {
// contains filtered or unexported fields
}
RedisDeviceStore stores Devices in Redis. - Devices are stored as a Hash - DevAddr mappings are indexed in a Set
func (*RedisDeviceStore) Frames ¶
func (s *RedisDeviceStore) Frames(appEUI types.AppEUI, devEUI types.DevEUI) (FrameHistory, error)
Frames history for a specific Device
func (*RedisDeviceStore) List ¶
func (s *RedisDeviceStore) List(opts *storage.ListOptions) ([]*Device, error)
List all Devices
func (*RedisDeviceStore) ListForAddress ¶
func (s *RedisDeviceStore) ListForAddress(devAddr types.DevAddr) ([]*Device, error)
ListForAddress lists all devices for a specific DevAddr
type RedisFrameHistory ¶
type RedisFrameHistory struct {
// contains filtered or unexported fields
}
RedisFrameHistory implements the frame history in Redis
func (*RedisFrameHistory) Clear ¶
func (s *RedisFrameHistory) Clear() error
Clear frames in the device's history
func (*RedisFrameHistory) Get ¶
func (s *RedisFrameHistory) Get() (out []*Frame, err error)
Get the last frames from the device's history
func (*RedisFrameHistory) Push ¶
func (s *RedisFrameHistory) Push(frame *Frame) error
Push a Frame to the device's history
func (*RedisFrameHistory) Trim ¶
func (s *RedisFrameHistory) Trim() error
Trim frames in the device's history
type Store ¶
type Store interface { List(opts *storage.ListOptions) ([]*Device, error) ListForAddress(devAddr types.DevAddr) ([]*Device, error) Get(appEUI types.AppEUI, devEUI types.DevEUI) (*Device, error) Set(new *Device, properties ...string) (err error) Delete(appEUI types.AppEUI, devEUI types.DevEUI) error Frames(appEUI types.AppEUI, devEUI types.DevEUI) (FrameHistory, error) }
Store interface for Devices
func NewRedisDeviceStore ¶
NewRedisDeviceStore creates a new Redis-based status store