mirror of
https://github.com/meshtastic/protobufs.git
synced 2026-04-20 22:13:55 +00:00
Merge remote-tracking branch 'upstream/master' into scd4x
This commit is contained in:
commit
a4274bcc0b
13 changed files with 204 additions and 33 deletions
|
|
@ -5,3 +5,4 @@
|
|||
*GeoChat.message max_size:200
|
||||
*GeoChat.to max_size:120
|
||||
*GeoChat.to_callsign max_size:120
|
||||
*TAKPacket.detail max_size:220
|
||||
|
|
@ -40,6 +40,12 @@ message TAKPacket {
|
|||
* ATAK GeoChat message
|
||||
*/
|
||||
GeoChat chat = 6;
|
||||
|
||||
/*
|
||||
* Generic CoT detail XML
|
||||
* May be compressed / truncated by the sender (EUD)
|
||||
*/
|
||||
bytes detail = 7;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,4 @@
|
|||
*DeviceProfile.long_name max_size:40
|
||||
*DeviceProfile.short_name max_size:5
|
||||
*DeviceProfile.short_name max_size:5
|
||||
*DeviceProfile.ringtone max_size:231
|
||||
*DeviceProfile.canned_messages max_size:201
|
||||
|
|
@ -3,6 +3,7 @@ syntax = "proto3";
|
|||
package meshtastic;
|
||||
|
||||
import "meshtastic/localonly.proto";
|
||||
import "meshtastic/mesh.proto";
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
|
|
@ -39,4 +40,19 @@ message DeviceProfile {
|
|||
* The ModuleConfig of the node
|
||||
*/
|
||||
optional LocalModuleConfig module_config = 5;
|
||||
|
||||
/*
|
||||
* Fixed position data
|
||||
*/
|
||||
optional Position fixed_position = 6;
|
||||
|
||||
/*
|
||||
* Ringtone for ExternalNotification
|
||||
*/
|
||||
optional string ringtone = 7;
|
||||
|
||||
/*
|
||||
* Predefined messages for CannedMessage
|
||||
*/
|
||||
optional string canned_messages = 8;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,4 +19,4 @@
|
|||
*SecurityConfig.public_key max_size:32
|
||||
*SecurityConfig.private_key max_size:32
|
||||
*SecurityConfig.admin_key max_size:32
|
||||
*SecurityConfig.admin_key max_count:1
|
||||
*SecurityConfig.admin_key max_count:3
|
||||
|
|
|
|||
|
|
@ -802,6 +802,21 @@ message Config {
|
|||
* Singapore 923mhz
|
||||
*/
|
||||
SG_923 = 18;
|
||||
|
||||
/*
|
||||
* Philippines 433mhz
|
||||
*/
|
||||
PH_433 = 19;
|
||||
|
||||
/*
|
||||
* Philippines 868mhz
|
||||
*/
|
||||
PH_868 = 20;
|
||||
|
||||
/*
|
||||
* Philippines 915mhz
|
||||
*/
|
||||
PH_915 = 21;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -973,6 +988,11 @@ message Config {
|
|||
* If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it.
|
||||
*/
|
||||
bool ignore_mqtt = 104;
|
||||
|
||||
/*
|
||||
* Sets the ok_to_mqtt bit on outgoing packets
|
||||
*/
|
||||
bool config_ok_to_mqtt = 105;
|
||||
}
|
||||
|
||||
message BluetoothConfig {
|
||||
|
|
@ -1070,4 +1090,4 @@ message Config {
|
|||
SecurityConfig security = 8;
|
||||
SessionkeyConfig sessionkey = 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ message NodeInfoLite {
|
|||
/*
|
||||
* Number of hops away from us this node is (0 if adjacent)
|
||||
*/
|
||||
uint32 hops_away = 9;
|
||||
optional uint32 hops_away = 9;
|
||||
|
||||
/*
|
||||
* True if node is in our favorites list
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
# note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is
|
||||
# outside of this envelope
|
||||
*Data.payload max_size:237
|
||||
*Data.bitfield int_size:8
|
||||
|
||||
*NodeInfo.channel int_size:8
|
||||
*NodeInfo.hops_away int_size:8
|
||||
|
|
@ -72,4 +73,4 @@
|
|||
|
||||
*ChunkedPayload.chunk_count int_size:16
|
||||
*ChunkedPayload.chunk_index int_size:16
|
||||
*ChunkedPayload.payload_chunk max_size:228
|
||||
*ChunkedPayload.payload_chunk max_size:228
|
||||
|
|
|
|||
|
|
@ -338,6 +338,11 @@ enum HardwareModel {
|
|||
* Heltec HRU-3601: https://heltec.org/project/hru-3601/
|
||||
*/
|
||||
HELTEC_HRU_3601 = 23;
|
||||
|
||||
/*
|
||||
* Heltec Wireless Bridge
|
||||
*/
|
||||
HELTEC_WIRELESS_BRIDGE = 24;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
|
||||
|
|
@ -427,7 +432,7 @@ enum HardwareModel {
|
|||
DR_DEV = 41;
|
||||
|
||||
/*
|
||||
* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/
|
||||
* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/
|
||||
*/
|
||||
M5STACK = 42;
|
||||
|
||||
|
|
@ -619,10 +624,31 @@ enum HardwareModel {
|
|||
* ^^^ short A0 to switch to I2C address 0x3C
|
||||
*
|
||||
*/
|
||||
RP2040_FEATHER_RFM95 = 76;
|
||||
/* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ */
|
||||
M5STACK_COREBASIC=77;
|
||||
M5STACK_CORE2=78;
|
||||
RP2040_FEATHER_RFM95 = 76;
|
||||
|
||||
/* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/ */
|
||||
M5STACK_COREBASIC = 77;
|
||||
M5STACK_CORE2 = 78;
|
||||
|
||||
/* Pico2 with Waveshare Hat, same as Pico */
|
||||
RPI_PICO2 = 79;
|
||||
|
||||
/* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/ */
|
||||
M5STACK_CORES3 = 80;
|
||||
|
||||
/* Seeed XIAO S3 DK*/
|
||||
SEEED_XIAO_S3 = 81;
|
||||
|
||||
/*
|
||||
* Nordic nRF52840+Semtech SX1262 LoRa BLE Combo Module. nRF52840+SX1262 MS24SF1
|
||||
*/
|
||||
MS24SF1 = 82;
|
||||
|
||||
/*
|
||||
* Lilygo TLora-C6 with the new ESP32-C6 MCU
|
||||
*/
|
||||
TLORA_C6 = 83;
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
|
||||
|
|
@ -811,7 +837,17 @@ message Routing {
|
|||
/*
|
||||
* The receiving node does not have a Public Key to decode with
|
||||
*/
|
||||
PKI_UNKNOWN_PUBKEY = 35;
|
||||
PKI_UNKNOWN_PUBKEY = 35;
|
||||
|
||||
/*
|
||||
* Admin packet otherwise checks out, but uses a bogus or expired session key
|
||||
*/
|
||||
ADMIN_BAD_SESSION_KEY = 36;
|
||||
|
||||
/*
|
||||
* Admin packet sent using PKC, but not from a public key on the admin key list
|
||||
*/
|
||||
ADMIN_PUBLIC_KEY_UNAUTHORIZED = 37;
|
||||
}
|
||||
|
||||
oneof variant {
|
||||
|
|
@ -888,6 +924,11 @@ message Data {
|
|||
* a message a heart or poop emoji.
|
||||
*/
|
||||
fixed32 emoji = 8;
|
||||
|
||||
/*
|
||||
* Bitfield for extra flags. First use is to indicate that user approves the packet being uploaded to MQTT.
|
||||
*/
|
||||
optional uint32 bitfield = 9;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1301,7 +1342,7 @@ message NodeInfo {
|
|||
/*
|
||||
* Number of hops away from us this node is (0 if adjacent)
|
||||
*/
|
||||
uint32 hops_away = 9;
|
||||
optional uint32 hops_away = 9;
|
||||
|
||||
/*
|
||||
* True if node is in our favorites list
|
||||
|
|
@ -1813,6 +1854,11 @@ message DeviceMetadata {
|
|||
* Has Remote Hardware enabled
|
||||
*/
|
||||
bool hasRemoteHardware = 10;
|
||||
|
||||
/*
|
||||
* Has PKC capabilities
|
||||
*/
|
||||
bool hasPKC = 11;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1889,4 +1935,4 @@ message ChunkedPayloadResponse {
|
|||
*/
|
||||
resend_chunks resend_chunks = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,3 +26,4 @@
|
|||
|
||||
*DetectionSensorConfig.monitor_pin int_size:8
|
||||
*DetectionSensorConfig.name max_size:20
|
||||
*DetectionSensorConfig.detection_trigger_type max_size:8
|
||||
|
|
|
|||
|
|
@ -137,20 +137,39 @@ message ModuleConfig {
|
|||
* Detection Sensor Module Config
|
||||
*/
|
||||
message DetectionSensorConfig {
|
||||
|
||||
enum TriggerType {
|
||||
// Event is triggered if pin is low
|
||||
LOGIC_LOW = 0;
|
||||
// Event is triggered if pin is high
|
||||
LOGIC_HIGH = 1;
|
||||
// Event is triggered when pin goes high to low
|
||||
FALLING_EDGE = 2;
|
||||
// Event is triggered when pin goes low to high
|
||||
RISING_EDGE = 3;
|
||||
// Event is triggered on every pin state change, low is considered to be
|
||||
// "active"
|
||||
EITHER_EDGE_ACTIVE_LOW = 4;
|
||||
// Event is triggered on every pin state change, high is considered to be
|
||||
// "active"
|
||||
EITHER_EDGE_ACTIVE_HIGH = 5;
|
||||
}
|
||||
/*
|
||||
* Whether the Module is enabled
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we can send a message to the mesh when a state change is detected
|
||||
* Interval in seconds of how often we can send a message to the mesh when a
|
||||
* trigger event is detected
|
||||
*/
|
||||
uint32 minimum_broadcast_secs = 2;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we should send a message to the mesh with the current state regardless of changes
|
||||
* When set to 0, only state changes will be broadcasted
|
||||
* Works as a sort of status heartbeat for peace of mind
|
||||
* Interval in seconds of how often we should send a message to the mesh
|
||||
* with the current state regardless of trigger events When set to 0, only
|
||||
* trigger events will be broadcasted Works as a sort of status heartbeat
|
||||
* for peace of mind
|
||||
*/
|
||||
uint32 state_broadcast_secs = 3;
|
||||
|
||||
|
|
@ -173,10 +192,9 @@ message ModuleConfig {
|
|||
uint32 monitor_pin = 6;
|
||||
|
||||
/*
|
||||
* Whether or not the GPIO pin state detection is triggered on HIGH (1)
|
||||
* Otherwise LOW (0)
|
||||
* The type of trigger event to be used
|
||||
*/
|
||||
bool detection_triggered_high = 7;
|
||||
TriggerType detection_trigger_type = 7;
|
||||
|
||||
/*
|
||||
* Whether or not use INPUT_PULLUP mode for GPIO pin
|
||||
|
|
@ -545,22 +563,37 @@ message ModuleConfig {
|
|||
uint32 air_quality_interval = 7;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* air quality metrics to the mesh
|
||||
* Enable/disable Power metrics
|
||||
*/
|
||||
bool power_measurement_enabled = 8;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* air quality metrics to the mesh
|
||||
* power metrics to the mesh
|
||||
*/
|
||||
uint32 power_update_interval = 9;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* air quality metrics to the mesh
|
||||
* Enable/Disable the power measurement module on-device display
|
||||
*/
|
||||
bool power_screen_enabled = 10;
|
||||
|
||||
/*
|
||||
* Preferences for the (Health) Telemetry Module
|
||||
* Enable/Disable the telemetry measurement module measurement collection
|
||||
*/
|
||||
bool health_measurement_enabled = 11;
|
||||
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* health metrics to the mesh
|
||||
*/
|
||||
uint32 health_update_interval = 12;
|
||||
|
||||
/*
|
||||
* Enable/Disable the health telemetry module on-device display
|
||||
*/
|
||||
bool health_screen_enabled = 13;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -6,3 +6,6 @@
|
|||
|
||||
*LocalStats.num_online_nodes int_size:16
|
||||
*LocalStats.num_total_nodes int_size:16
|
||||
|
||||
*HealthMetrics.heart_bpm int_size:8
|
||||
*HealthMetrics.spO2 int_size:8
|
||||
|
|
|
|||
|
|
@ -128,11 +128,6 @@ message EnvironmentMetrics {
|
|||
* Wind lull in m/s
|
||||
*/
|
||||
optional float wind_lull = 17;
|
||||
|
||||
/*
|
||||
* CO2 measurement in ppm
|
||||
*/
|
||||
optional uint32 co2 = 18;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -258,7 +253,7 @@ message LocalStats {
|
|||
uint32 num_packets_tx = 4;
|
||||
|
||||
/*
|
||||
* Number of packets received good
|
||||
* Number of packets received (both good and bad)
|
||||
*/
|
||||
uint32 num_packets_rx = 5;
|
||||
|
||||
|
|
@ -276,6 +271,43 @@ message LocalStats {
|
|||
* Number of nodes total
|
||||
*/
|
||||
uint32 num_total_nodes = 8;
|
||||
|
||||
/*
|
||||
* Number of received packets that were duplicates (due to multiple nodes relaying).
|
||||
* If this number is high, there are nodes in the mesh relaying packets when it's unnecessary, for example due to the ROUTER/REPEATER role.
|
||||
*/
|
||||
uint32 num_rx_dupe = 9;
|
||||
|
||||
/*
|
||||
* Number of packets we transmitted that were a relay for others (not originating from ourselves).
|
||||
*/
|
||||
uint32 num_tx_relay = 10;
|
||||
|
||||
/*
|
||||
* Number of times we canceled a packet to be relayed, because someone else did it before us.
|
||||
* This will always be zero for ROUTERs/REPEATERs. If this number is high, some other node(s) is/are relaying faster than you.
|
||||
*/
|
||||
uint32 num_tx_relay_canceled = 11;
|
||||
}
|
||||
|
||||
/*
|
||||
* Health telemetry metrics
|
||||
*/
|
||||
message HealthMetrics {
|
||||
/*
|
||||
* Heart rate (beats per minute)
|
||||
*/
|
||||
optional uint32 heart_bpm = 1;
|
||||
|
||||
/*
|
||||
* SpO2 (blood oxygen saturation) level
|
||||
*/
|
||||
optional uint32 spO2 = 2;
|
||||
|
||||
/*
|
||||
* Body temperature in degrees Celsius
|
||||
*/
|
||||
optional float temperature = 3;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -312,6 +344,11 @@ message Telemetry {
|
|||
* Local device mesh statistics
|
||||
*/
|
||||
LocalStats local_stats = 6;
|
||||
|
||||
/*
|
||||
* Health telemetry metrics
|
||||
*/
|
||||
HealthMetrics health_metrics = 7;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -468,11 +505,16 @@ enum TelemetrySensorType {
|
|||
* Custom I2C sensor implementation based on https://github.com/meshtastic/i2c-sensor
|
||||
*/
|
||||
CUSTOM_SENSOR = 29;
|
||||
|
||||
/*
|
||||
* MAX30102 Pulse Oximeter and Heart-Rate Sensor
|
||||
*/
|
||||
MAX30102 = 30;
|
||||
|
||||
/*
|
||||
* SCD40/SCD41 CO2, humidity, temperature sensor
|
||||
* MLX90614 non-contact IR temperature sensor.
|
||||
*/
|
||||
SCD4X = 30;
|
||||
MLX90614 = 31;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue