Documentation
¶
Index ¶
- type AppNonce
- type DevNonce
- type Device
- type DownlinkQueue
- type Options
- type RedisDeviceStore
- func (s *RedisDeviceStore) Count() (int, error)
- func (s *RedisDeviceStore) CountForApp(appID string) (int, error)
- func (s *RedisDeviceStore) Delete(appID, devID string) error
- func (s *RedisDeviceStore) DownlinkQueue(appID, devID string) (DownlinkQueue, error)
- func (s *RedisDeviceStore) Get(appID, devID string) (*Device, error)
- func (s *RedisDeviceStore) List(opts *storage.ListOptions) ([]*Device, error)
- func (s *RedisDeviceStore) ListForApp(appID string, opts *storage.ListOptions) ([]*Device, error)
- func (s *RedisDeviceStore) Set(new *Device, properties ...string) (err error)
- type RedisDownlinkQueue
- func (s *RedisDownlinkQueue) Length() (int, error)
- func (s *RedisDownlinkQueue) Next() (*types.DownlinkMessage, error)
- func (s *RedisDownlinkQueue) PushFirst(msg *types.DownlinkMessage) error
- func (s *RedisDownlinkQueue) PushLast(msg *types.DownlinkMessage) error
- func (s *RedisDownlinkQueue) Replace(msg *types.DownlinkMessage) error
- type Store
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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"`
Description string `redis:"description"`
Latitude float32 `redis:"latitude"`
Longitude float32 `redis:"longitude"`
Altitude int32 `redis:"altitude"`
Options Options `redis:"options"`
AppKey types.AppKey `redis:"app_key"`
UsedDevNonces []DevNonce `redis:"used_dev_nonces"`
UsedAppNonces []AppNonce `redis:"used_app_nonces"`
DevAddr types.DevAddr `redis:"dev_addr"`
NwkSKey types.NwkSKey `redis:"nwk_s_key"`
AppSKey types.AppSKey `redis:"app_s_key"`
FCntUp uint32 `redis:"f_cnt_up"` // Only used to detect retries
CurrentDownlink *types.DownlinkMessage `redis:"current_downlink"`
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) GetLoRaWAN ¶
func (d Device) GetLoRaWAN() *pb_lorawan.Device
GetLoRaWAN returns a LoRaWAN Device proto
func (*Device) StartUpdate ¶
func (d *Device) StartUpdate()
StartUpdate stores the state of the device
type DownlinkQueue ¶
type DownlinkQueue interface {
Length() (int, error)
Next() (*types.DownlinkMessage, error)
Replace(msg *types.DownlinkMessage) error
PushFirst(msg *types.DownlinkMessage) error
PushLast(msg *types.DownlinkMessage) error
}
DownlinkQueue stores the Downlink queue
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 device
type RedisDeviceStore ¶
type RedisDeviceStore struct {
// contains filtered or unexported fields
}
RedisDeviceStore stores Devices in Redis. - Devices are stored as a Hash
func NewRedisDeviceStore ¶
func NewRedisDeviceStore(client *redis.Client, prefix string) *RedisDeviceStore
NewRedisDeviceStore creates a new Redis-based Device store
func (*RedisDeviceStore) Count ¶
func (s *RedisDeviceStore) Count() (int, error)
Count all devices in the store
func (*RedisDeviceStore) CountForApp ¶
func (s *RedisDeviceStore) CountForApp(appID string) (int, error)
CountForApp counts all devices for an Application
func (*RedisDeviceStore) Delete ¶
func (s *RedisDeviceStore) Delete(appID, devID string) error
Delete a Device
func (*RedisDeviceStore) DownlinkQueue ¶
func (s *RedisDeviceStore) DownlinkQueue(appID, devID string) (DownlinkQueue, error)
DownlinkQueue for a specific Device
func (*RedisDeviceStore) Get ¶
func (s *RedisDeviceStore) Get(appID, devID string) (*Device, error)
Get a specific Device
func (*RedisDeviceStore) List ¶
func (s *RedisDeviceStore) List(opts *storage.ListOptions) ([]*Device, error)
List all Devices
func (*RedisDeviceStore) ListForApp ¶
func (s *RedisDeviceStore) ListForApp(appID string, opts *storage.ListOptions) ([]*Device, error)
ListForApp lists all devices for a specific Application
type RedisDownlinkQueue ¶
type RedisDownlinkQueue struct {
// contains filtered or unexported fields
}
RedisDownlinkQueue implements the downlink queue in Redis
func (*RedisDownlinkQueue) Length ¶
func (s *RedisDownlinkQueue) Length() (int, error)
Length of the downlink queue
func (*RedisDownlinkQueue) Next ¶
func (s *RedisDownlinkQueue) Next() (*types.DownlinkMessage, error)
Next item in the downlink queue
func (*RedisDownlinkQueue) PushFirst ¶
func (s *RedisDownlinkQueue) PushFirst(msg *types.DownlinkMessage) error
PushFirst message to the downlink queue
func (*RedisDownlinkQueue) PushLast ¶
func (s *RedisDownlinkQueue) PushLast(msg *types.DownlinkMessage) error
PushLast message to the downlink queue
func (*RedisDownlinkQueue) Replace ¶
func (s *RedisDownlinkQueue) Replace(msg *types.DownlinkMessage) error
Replace the downlink queue with msg
type Store ¶
type Store interface {
Count() (int, error)
CountForApp(appID string) (int, error)
List(opts *storage.ListOptions) ([]*Device, error)
ListForApp(appID string, opts *storage.ListOptions) ([]*Device, error)
Get(appID, devID string) (*Device, error)
DownlinkQueue(appID, devID string) (DownlinkQueue, error)
Set(new *Device, properties ...string) (err error)
Delete(appID, devID string) error
}
Store interface for Devices