-
-
Notifications
You must be signed in to change notification settings - Fork 138
LXMF Fields
This page is under heavy construction - Most fields are considered experimental!
Common for all fields is that LXMF handles binary packing before sending. All fields must be passed in the specified format, often as a list
with specific fields. Internally, LXMF uses MessagePack to pack data, so it can be efficiently transferred over the air/wire by Reticulum.
Not yet fully implemented, and spec is likely to change
Constant | Index | Description | Content |
---|---|---|---|
FIELD_EMBEDDED_LXMS | 0x01 |
See the Sideband application source code for telemetry format info
Constant | Index | Description | Content |
---|---|---|---|
FIELD_TELEMETRY | 0x02 | Node telemetry, all enabled sensors |
See the Sideband application source code for telemetry format info
Constant | Index | Description | Content |
---|---|---|---|
FIELD_TELEMETRY_STREAM | 0x03 | Aggregated downstream telemetry for bulk transfer |
Constant | Index | Description | Content |
---|---|---|---|
LXMF.FIELD_ICON_APPEARANCE | 0x04 | Defines the icon that represents this node on the situation map. | [string ICON, byte[3] FG_COLOR, byte[3] BG_COLOR] |
Icon is a string with the name of a Material Symbol. Searchable list
FG/BG Color is an RGB color code from 000000 to FFFFFF.
# Displays a yellow hiker on a blue background
lxm_fields = { LXMF.FIELD_ICON_APPEARANCE: ["hiking",\xff\xff\x00,\x00\x00\xff] }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Constant | Index | Description | Content |
---|---|---|---|
FIELD_FILE_ATTACHMENTS | 0x05 | List of file attachments | See example |
# Attach a file
file_name = "some_file.pdf"
with open(file_name, "rb") as att_file:
file_attachment_1 = [file_name, att_file.read()]
lxm_fields = { LXMF.FIELD_FILE_ATTACHMENTS: [file_attachment_1] }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Constant | Index | Description | Content |
---|---|---|---|
FIELD_IMAGE | 0x06 | Image container | See example |
# Include an image
image = ["webp", image_data]
lxm_fields = { LXMF.FIELD_IMAGE: image }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Constant | Index | Description | Content |
---|---|---|---|
FIELD_AUDIO | 0x07 | Audio container for non-realtime purposes | See example |
See https://github.com/markqvist/LXMF/blob/master/LXMF/LXMF.py for available audio modes.
# Audio fields are a list with two entries of:
# - The audio mode in use, from one of the available modes
# - The audio data encoded according to the specified mode
audio = [LXMF.AM_CODEC2_2400, audio_data]
lxm_fields = { LXMF.FIELD_AUDIO: audio }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Not yet fully implemented, and spec is likely to change
Constant | Index | Description | Content |
---|---|---|---|
FIELD_THREAD | 0x08 |
See the Sideband application source code for command/result format info
Constant | Index | Description | Content |
---|---|---|---|
FIELD_COMMANDS | 0x09 | Direct commands |
Custom commands are sent in this field. Built in commands include:
Ping
Echo
Signal
See the Sideband application source code for command/result format info
Constant | Index | Description | Content |
---|---|---|---|
FIELD_RESULTS | 0x0A |
Not yet fully implemented, and spec is likely to change
Constant | Index | Description | Content |
---|---|---|---|
FIELD_GROUP | 0x0B |