Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AMQPBufferSize = 10
AMQPBufferSize indicates the size for uplink channel buffers
var (
// AMQPDownlinkQueue is the AMQP queue to use for downlink
AMQPDownlinkQueue = "ttn-handler-downlink"
)
var ErrNotNeeded = errors.New("Further processing not needed")
ErrNotNeeded indicates that the processing of a message should be aborted
var MQTTBufferSize = 10
MQTTBufferSize indicates the size for uplink channel buffers
var MQTTTimeout = 2 * time.Second
MQTTTimeout indicates how long we should wait for an MQTT publish
var ResponseDeadline = 100 * time.Millisecond
ResponseDeadline indicates how long
Functions ¶
This section is empty.
Types ¶
type CustomDownlinkFunctions ¶
type CustomDownlinkFunctions struct { // Encoder is a JavaScript function that accepts the payload as JSON and // returns an array of bytes Encoder string // Logger is the logger that will be used to store logs Logger functions.Logger }
CustomDownlinkFunctions encodes payload using JavaScript functions
func (*CustomDownlinkFunctions) Encode ¶
func (f *CustomDownlinkFunctions) Encode(payload map[string]interface{}, port uint8) ([]byte, bool, error)
Encode encodes the specified field, converts it into a valid payload
func (*CustomDownlinkFunctions) Log ¶
func (f *CustomDownlinkFunctions) Log() []*pb_handler.LogEntry
Log returns the log
type CustomUplinkFunctions ¶
type CustomUplinkFunctions struct { // Decoder is a JavaScript function that accepts the payload as byte array and // returns an object containing the decoded values Decoder string // Converter is a JavaScript function that accepts the data as decoded by // Decoder and returns an object containing the converted values Converter string // Validator is a JavaScript function that validates the data is converted by // Converter and returns a boolean value indicating the validity of the data Validator string // Logger is the logger that will be used to store logs Logger functions.Logger }
CustomUplinkFunctions decodes, converts and validates payload using JavaScript functions
func (*CustomUplinkFunctions) Decode ¶
func (f *CustomUplinkFunctions) Decode(payload []byte, port uint8) (map[string]interface{}, bool, error)
Decode decodes the specified payload, converts it and tests the validity
func (*CustomUplinkFunctions) Log ¶
func (f *CustomUplinkFunctions) Log() []*pb_handler.LogEntry
Log returns the log
type DownlinkProcessor ¶
type DownlinkProcessor func(ctx ttnlog.Interface, appDown *types.DownlinkMessage, ttnDown *pb_broker.DownlinkMessage, device *device.Device) error
DownlinkProcessor processes an application-layer downlink message to a downlik protobuf
type Handler ¶
type Handler interface { component.Interface component.ManagementInterface WithMQTT(username, password string, brokers ...string) Handler WithAMQP(username, password, host, exchange string) Handler HandleUplink(uplink *pb_broker.DeduplicatedUplinkMessage) error HandleActivationChallenge(challenge *pb_broker.ActivationChallengeRequest) (*pb_broker.ActivationChallengeResponse, error) HandleActivation(activation *pb_broker.DeduplicatedDeviceActivationRequest) (*pb.DeviceActivationResponse, error) EnqueueDownlink(appDownlink *types.DownlinkMessage) error }
Handler component
func NewRedisHandler ¶
NewRedisHandler creates a new Redis-backed Handler
type PayloadDecoder ¶
type PayloadDecoder interface { Decode(payload []byte, fPort uint8) (map[string]interface{}, bool, error) Log() []*pb_handler.LogEntry }
PayloadDecoder decodes raw payload to fields
type PayloadEncoder ¶
type PayloadEncoder interface { Encode(fields map[string]interface{}, fPort uint8) ([]byte, bool, error) Log() []*pb_handler.LogEntry }
PayloadEncoder encodes fields to raw payload
type UplinkProcessor ¶
type UplinkProcessor func(ctx ttnlog.Interface, ttnUp *pb_broker.DeduplicatedUplinkMessage, appUp *types.UplinkMessage, device *device.Device) error
UplinkProcessor processes an uplink protobuf to an application-layer uplink message