Documentation
¶
Index ¶
- Variables
- type DownlinkFunctions
- type DownlinkProcessor
- type Handler
- type UplinkFunctions
- func (f *UplinkFunctions) Convert(fields map[string]interface{}, port uint8) (map[string]interface{}, error)
- func (f *UplinkFunctions) Decode(payload []byte, port uint8) (map[string]interface{}, error)
- func (f *UplinkFunctions) Process(payload []byte, port uint8) (map[string]interface{}, bool, error)
- func (f *UplinkFunctions) Validate(fields map[string]interface{}, port uint8) (bool, error)
- type UplinkProcessor
Constants ¶
This section is empty.
Variables ¶
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 DownlinkFunctions ¶
type DownlinkFunctions 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
}
DownlinkFunctions encodes payload using JavaScript functions
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
type UplinkFunctions ¶
type UplinkFunctions 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
}
UplinkFunctions decodes, converts and validates payload using JavaScript functions
func (*UplinkFunctions) Convert ¶
func (f *UplinkFunctions) Convert(fields map[string]interface{}, port uint8) (map[string]interface{}, error)
Convert converts the values in the specified map to a another map using the Converter function. If the Converter function is not set, this function returns the data as-is
func (*UplinkFunctions) Decode ¶
func (f *UplinkFunctions) Decode(payload []byte, port uint8) (map[string]interface{}, error)
Decode decodes the payload using the Decoder function into a map
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