- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 228
 
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 |