Merge remote-tracking branch 'upstream/master' into scd4x

This commit is contained in:
Riley Nielsen 2024-10-07 17:39:10 -07:00
commit a4274bcc0b
13 changed files with 204 additions and 33 deletions

View file

@ -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

View file

@ -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;
}
}

View file

@ -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

View file

@ -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;
}

View file

@ -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

View file

@ -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;
}
}
}

View file

@ -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

View file

@ -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

View file

@ -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;
}
}
}

View file

@ -26,3 +26,4 @@
*DetectionSensorConfig.monitor_pin int_size:8
*DetectionSensorConfig.name max_size:20
*DetectionSensorConfig.detection_trigger_type max_size:8

View file

@ -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;
}
/*

View file

@ -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

View file

@ -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;
}
/*