merge resolution

pull/341/head
uhuruhashimoto 2023-04-08 09:57:37 -04:00
commit e8cfdab886
12 zmienionych plików z 141 dodań i 97 usunięć

Wyświetl plik

@ -21,10 +21,6 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Checkout master
run: git switch master
- id: version - id: version
name: Get current version name: Get current version
run: | run: |
@ -69,4 +65,4 @@ jobs:
# buf_token: ${{ secrets.BUF_TOKEN }} # buf_token: ${{ secrets.BUF_TOKEN }}
run: | run: |
export BUF_TOKEN=${{ secrets.BUF_TOKEN }} export BUF_TOKEN=${{ secrets.BUF_TOKEN }}
buf push --tag ${{ github.ref_name }} buf push --tag ${{ steps.version.outputs.NEW_VERSION }}

Wyświetl plik

@ -10,7 +10,6 @@ option swift_prefix = "";
import "meshtastic/channel.proto"; import "meshtastic/channel.proto";
import "meshtastic/config.proto"; import "meshtastic/config.proto";
import "meshtastic/device_metadata.proto";
import "meshtastic/mesh.proto"; import "meshtastic/mesh.proto";
import "meshtastic/module_config.proto"; import "meshtastic/module_config.proto";
import "meshtastic/connection_status.proto"; import "meshtastic/connection_status.proto";
@ -257,7 +256,7 @@ message AdminMessage {
int32 reboot_ota_seconds = 95; int32 reboot_ota_seconds = 95;
/* /*
* This message is only supported for the simulator porduino build. * This message is only supported for the simulator Portduino build.
* If received the simulator will exit successfully. * If received the simulator will exit successfully.
*/ */
bool exit_simulator = 96; bool exit_simulator = 96;

Wyświetl plik

@ -9,11 +9,9 @@ option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = ""; option swift_prefix = "";
/* /*
* Full settings (center freq, spread factor, pre-shared secret key etc...) * This information can be encoded as a QRcode/url so that other users can configure
* needed to configure a radio for speaking on a particular channel This
* information can be encoded as a QRcode/url so that other users can configure
* their radio to join the same channel. * their radio to join the same channel.
* A note about how channel names are shown to users: channelname-Xy * A note about how channel names are shown to users: channelname-X
* poundsymbol is a prefix used to indicate this is a channel name (idea from @professr). * poundsymbol is a prefix used to indicate this is a channel name (idea from @professr).
* Where X is a letter from A-Z (base 26) representing a hash of the PSK for this * Where X is a letter from A-Z (base 26) representing a hash of the PSK for this
* channel - so that if the user changes anything about the channel (which does * channel - so that if the user changes anything about the channel (which does
@ -23,8 +21,6 @@ option swift_prefix = "";
* The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26" * The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26"
* This also allows the option of someday if people have the PSK off (zero), the * This also allows the option of someday if people have the PSK off (zero), the
* users COULD type in a channel name and be able to talk. * users COULD type in a channel name and be able to talk.
* Y is a lower case letter from a-z that represents the channel 'speed' settings
* (for some future definition of speed)
* FIXME: Add description of multi-channel support and how primary vs secondary channels are used. * FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
* FIXME: explain how apps use channels for security. * FIXME: explain how apps use channels for security.
* explain how remote settings and remote gpio are managed as an example * explain how remote settings and remote gpio are managed as an example
@ -44,7 +40,7 @@ message ChannelSettings {
* because they are listed in this source code. * because they are listed in this source code.
* Those bytes are mapped using the following scheme: * Those bytes are mapped using the following scheme:
* `0` = No crypto * `0` = No crypto
* `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf} * `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0x01}
* `2` through 10 = The default channel key, except with 1 through 9 added to the last byte. * `2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
* Shown to user as simple1 through 10 * Shown to user as simple1 through 10
*/ */

Wyświetl plik

@ -55,6 +55,12 @@ message Config {
* Position Mesh packets will be prioritized higher and sent more frequently by default. * Position Mesh packets will be prioritized higher and sent more frequently by default.
*/ */
TRACKER = 5; TRACKER = 5;
/*
* Sensor device role
* Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
*/
SENSOR = 6;
} }
/* /*
@ -118,6 +124,11 @@ message Config {
* Defaults to 900 Seconds (15 minutes) * Defaults to 900 Seconds (15 minutes)
*/ */
uint32 node_info_broadcast_secs = 7; uint32 node_info_broadcast_secs = 7;
/*
* Treat double tap interrupt on supported accelerometers as a button press if set to true
*/
bool double_tap_as_button_press = 8;
} }
/* /*
@ -246,7 +257,15 @@ message Config {
*/ */
uint32 tx_gpio = 9; uint32 tx_gpio = 9;
/*
* The minimum distance in meters traveled (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
*/
uint32 broadcast_smart_minimum_distance = 10;
/*
* The minumum number of seconds (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
*/
uint32 broadcast_smart_minimum_interval_secs = 11;
} }
/* /*
@ -554,6 +573,11 @@ message Config {
* Print first line in pseudo-bold? FALSE is original style, TRUE is bold * Print first line in pseudo-bold? FALSE is original style, TRUE is bold
*/ */
bool heading_bold = 9; bool heading_bold = 9;
/*
* Should we wake the screen up on accelerometer detected motion or tap
*/
bool wake_on_tap_or_motion = 10;
} }
/* /*
@ -579,7 +603,7 @@ message Config {
EU_433 = 2; EU_433 = 2;
/* /*
* European Union 433mhz * European Union 868mhz
*/ */
EU_868 = 3; EU_868 = 3;
@ -692,7 +716,7 @@ message Config {
} }
/* /*
* When enabled, the `modem_preset` fields will be adheared to, else the `bandwidth`/`spread_factor`/`coding_rate` * When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
* will be taked from their respective manually defined fields * will be taked from their respective manually defined fields
*/ */
bool use_preset = 1; bool use_preset = 1;
@ -750,7 +774,7 @@ message Config {
bool tx_enabled = 9; bool tx_enabled = 9;
/* /*
* If zero then, use default max legal continuous power (ie. something that won't * If zero, then use default max legal continuous power (ie. something that won't
* burn out the radio hardware) * burn out the radio hardware)
* In most cases you should use zero here. * In most cases you should use zero here.
* Units are in dBm. * Units are in dBm.
@ -758,7 +782,7 @@ message Config {
int32 tx_power = 10; int32 tx_power = 10;
/* /*
* This is controlling the actual hardware frequency the radio is transmitting on. * This controls the actual hardware frequency the radio transmits on.
* Most users should never need to be exposed to this field/concept. * Most users should never need to be exposed to this field/concept.
* A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region). * A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region).
* If ZERO then the rule is "use the old channel name hash based * If ZERO then the rule is "use the old channel name hash based
@ -792,7 +816,7 @@ message Config {
/* /*
* For testing it is useful sometimes to force a node to never listen to * For testing it is useful sometimes to force a node to never listen to
* particular other nodes (simulating radio out of range). All nodenums listed * particular other nodes (simulating radio out of range). All nodenums listed
* in ignore_incoming will have packets they send droped on receive (by router.cpp) * in ignore_incoming will have packets they send dropped on receive (by router.cpp)
*/ */
repeated uint32 ignore_incoming = 103; repeated uint32 ignore_incoming = 103;
@ -802,17 +826,17 @@ message Config {
enum PairingMode { enum PairingMode {
/* /*
* Device generates a random pin that will be shown on the screen of the device for pairing * Device generates a random PIN that will be shown on the screen of the device for pairing
*/ */
RANDOM_PIN = 0; RANDOM_PIN = 0;
/* /*
* Device requires a specified fixed pin for pairing * Device requires a specified fixed PIN for pairing
*/ */
FIXED_PIN = 1; FIXED_PIN = 1;
/* /*
* Device requires no pin for pairing * Device requires no PIN for pairing
*/ */
NO_PIN = 2; NO_PIN = 2;
} }
@ -828,7 +852,7 @@ message Config {
PairingMode mode = 2; PairingMode mode = 2;
/* /*
* Specified pin for PairingMode.FixedPin * Specified PIN for PairingMode.FixedPin
*/ */
uint32 fixed_pin = 3; uint32 fixed_pin = 3;

Wyświetl plik

@ -39,12 +39,12 @@ message WifiConnectionStatus {
NetworkConnectionStatus status = 1; NetworkConnectionStatus status = 1;
/* /*
* WiFi access point ssid * WiFi access point SSID
*/ */
string ssid = 2; string ssid = 2;
/* /*
* Rssi of wireless connection * RSSI of wireless connection
*/ */
int32 rssi = 3; int32 rssi = 3;
} }
@ -89,12 +89,12 @@ message NetworkConnectionStatus {
*/ */
message BluetoothConnectionStatus { message BluetoothConnectionStatus {
/* /*
* The pairing pin for bluetooth * The pairing PIN for bluetooth
*/ */
uint32 pin = 1; uint32 pin = 1;
/* /*
* Rssi of bluetooth connection * RSSI of bluetooth connection
*/ */
int32 rssi = 2; int32 rssi = 2;
@ -109,7 +109,7 @@ message BluetoothConnectionStatus {
*/ */
message SerialConnectionStatus { message SerialConnectionStatus {
/* /*
* The serial baud rate * Serial baud rate
*/ */
uint32 baud = 1; uint32 baud = 1;

Wyświetl plik

@ -1 +0,0 @@
*DeviceMetadata.firmware_version max_size:18

Wyświetl plik

@ -1,62 +0,0 @@
syntax = "proto3";
package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "DeviceMetadataProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/config.proto";
import "meshtastic/mesh.proto";
/*
* Device metadata response
*/
message DeviceMetadata {
/*
* Device firmware version string
*/
string firmware_version = 1;
/*
* Device state version
*/
uint32 device_state_version = 2;
/*
* Indicates whether the device can shutdown CPU natively or via power management chip
*/
bool canShutdown = 3;
/*
* Indicates that the device has native wifi capability
*/
bool hasWifi = 4;
/*
* Indicates that the device has native bluetooth capability
*/
bool hasBluetooth = 5;
/*
* Indicates that the device has an ethernet peripheral
*/
bool hasEthernet = 6;
/*
* Indicates that the device's role in the mesh
*/
Config.DeviceConfig.Role role = 7;
/*
* Indicates the device's current enabled position flags
*/
uint32 position_flags = 8;
/*
* Device hardware model
*/
HardwareModel hw_model = 9;
}

Wyświetl plik

@ -62,7 +62,7 @@ message DeviceState {
bool no_save = 9; bool no_save = 9;
/* /*
* Some GPSes seem to have bogus settings from the factory, so we always do one factory reset. * Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
*/ */
bool did_gps_reset = 11; bool did_gps_reset = 11;
@ -115,7 +115,7 @@ enum ScreenFonts {
/* /*
* This can be used for customizing the firmware distribution. If populated, * This can be used for customizing the firmware distribution. If populated,
* show a secondary bootup screen with cuatom logo and text for 2.5 seconds. * show a secondary bootup screen with custom logo and text for 2.5 seconds.
*/ */
message OEMStore { message OEMStore {
@ -130,7 +130,7 @@ message OEMStore {
uint32 oem_icon_height = 2; uint32 oem_icon_height = 2;
/* /*
* The Logo in xbm bytechar format * The Logo in XBM bytechar format
*/ */
bytes oem_icon_bits = 3; bytes oem_icon_bits = 3;

Wyświetl plik

@ -13,6 +13,8 @@
# outside of this envelope # outside of this envelope
*Data.payload max_size:237 *Data.payload max_size:237
*NodeInfo.channel int_size:8
# Big enough for 1.2.28.568032c-d # Big enough for 1.2.28.568032c-d
*MyNodeInfo.firmware_version max_size:18 *MyNodeInfo.firmware_version max_size:18
@ -49,4 +51,8 @@
*Waypoint.name max_size:30 *Waypoint.name max_size:30
*Waypoint.description max_size:100 *Waypoint.description max_size:100
*NeighborInfo.neighbors max_count:10 <<<<<<< HEAD
*NeighborInfo.neighbors max_count:10
=======
*DeviceMetadata.firmware_version max_size:18
>>>>>>> 3e5ab67ff6659476df66bde6bbbae3c520460db9

Wyświetl plik

@ -302,6 +302,11 @@ enum HardwareModel {
* TODO: REPLACE * TODO: REPLACE
*/ */
TLORA_T3_S3 = 16; TLORA_T3_S3 = 16;
/*
* B&Q Consulting Nano G1 Explorer: https://wiki.uniteng.com/en/meshtastic/nano-g1-explorer
*/
NANO_G1_EXPLORER = 17;
/* /*
* B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station * B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
@ -309,7 +314,9 @@ enum HardwareModel {
STATION_G1 = 25; STATION_G1 = 25;
/* /*
* ---------------------------------------------------------------------------
* Less common/prototype boards listed here (needs one more byte over the air) * Less common/prototype boards listed here (needs one more byte over the air)
* ---------------------------------------------------------------------------
*/ */
LORA_RELAY_V1 = 32; LORA_RELAY_V1 = 32;
@ -381,10 +388,12 @@ enum HardwareModel {
/* /*
* BetaFPV ExpressLRS "Nano" TX Module 900MHz with ESP32 CPU * BetaFPV ExpressLRS "Nano" TX Module 900MHz with ESP32 CPU
*/ */
BETAFPV_900_NANO_TX = 46; BETAFPV_900_NANO_TX = 46;
/* /*
* ------------------------------------------------------------------------------------------------------------------------------------------
* 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. * 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.
* ------------------------------------------------------------------------------------------------------------------------------------------
*/ */
PRIVATE_HW = 255; PRIVATE_HW = 255;
} }
@ -966,6 +975,12 @@ message NodeInfo {
* The latest device metrics for the node. * The latest device metrics for the node.
*/ */
DeviceMetrics device_metrics = 6; DeviceMetrics device_metrics = 6;
/*
* local channel index we heard that node on. Only populated if its not the default channel.
*/
uint32 channel = 7;
} }
/* /*
@ -1304,6 +1319,11 @@ message FromRadio {
* File Transfer Chunk * File Transfer Chunk
*/ */
XModem xmodemPacket = 12; XModem xmodemPacket = 12;
/*
* Device metadata message
*/
DeviceMetadata metadata = 13;
} }
} }
@ -1409,3 +1429,53 @@ message Neighbor {
*/ */
fixed32 rx_time = 3; fixed32 rx_time = 3;
} }
/*
* Device metadata response
*/
message DeviceMetadata {
/*
* Device firmware version string
*/
string firmware_version = 1;
/*
* Device state version
*/
uint32 device_state_version = 2;
/*
* Indicates whether the device can shutdown CPU natively or via power management chip
*/
bool canShutdown = 3;
/*
* Indicates that the device has native wifi capability
*/
bool hasWifi = 4;
/*
* Indicates that the device has native bluetooth capability
*/
bool hasBluetooth = 5;
/*
* Indicates that the device has an ethernet peripheral
*/
bool hasEthernet = 6;
/*
* Indicates that the device's role in the mesh
*/
Config.DeviceConfig.Role role = 7;
/*
* Indicates the device's current enabled position flags
*/
uint32 position_flags = 8;
/*
* Device hardware model
*/
HardwareModel hw_model = 9;
}

Wyświetl plik

@ -56,6 +56,11 @@ message ModuleConfig {
* Whether to send / consume json packets on MQTT * Whether to send / consume json packets on MQTT
*/ */
bool json_enabled = 6; bool json_enabled = 6;
/*
* If true, we attempt to establish a secure connection using TLS
*/
bool tls_enabled = 7;
} }
/* /*
@ -373,6 +378,17 @@ message ModuleConfig {
* display the results in Fahrenheit as a "user preference". * display the results in Fahrenheit as a "user preference".
*/ */
bool environment_display_fahrenheit = 5; bool environment_display_fahrenheit = 5;
/*
* Enable/Disable the air quality metrics
*/
bool air_quality_enabled = 6;
/*
* Interval in seconds of how often we should try to send our
* air quality metrics to the mesh
*/
uint32 air_quality_interval = 7;
} }
/* /*

Wyświetl plik

@ -13,7 +13,7 @@ option swift_prefix = "";
*/ */
message DeviceMetrics { message DeviceMetrics {
/* /*
* 1-100 (0 means powered) * 0-100 (>100 means powered)
*/ */
uint32 battery_level = 1; uint32 battery_level = 1;