diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 02541e2..16ae1d0 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -14,6 +14,7 @@ import "meshtastic/config.proto"; import "meshtastic/device_metadata.proto"; import "meshtastic/mesh.proto"; import "meshtastic/module_config.proto"; +import "meshtastic/connection_status.proto"; /* * This message is handled by the Admin module and is responsible for all settings/channel read/write operations. @@ -190,6 +191,16 @@ message AdminMessage { */ string get_ringtone_response = 15; + /* + * Request the node to send it's connection status + */ + bool get_device_connection_status_request = 16; + + /* + * Device connection status response + */ + DeviceConnectionStatus get_device_connection_status_response = 17; + /* * Set the owner for this node */ diff --git a/meshtastic/connection_status.proto b/meshtastic/connection_status.proto new file mode 100644 index 0000000..d71b93f --- /dev/null +++ b/meshtastic/connection_status.proto @@ -0,0 +1,121 @@ +syntax = "proto3"; + +package meshtastic; + +option optimize_for = LITE_RUNTIME; +option java_package = "com.geeksville.mesh"; +option java_outer_classname = "ConfigProtos"; +option go_package = "github.com/meshtastic/go/generated"; +option csharp_namespace = "Meshtastic.Protobufs"; +option swift_prefix = ""; + +message DeviceConnectionStatus { + /* + * WiFi Status + */ + optional WifiConnectionStatus wifi = 1; + /* + * WiFi Status + */ + optional EthernetConnectionStatus ethernet = 2; + + /* + * Bluetooth Status + */ + optional BluetoothConnectionStatus bluetooth = 3; + + /* + * Serial Status + */ + optional SerialConnectionStatus serial = 4; +} + +/* + * WiFi connection status + */ +message WifiConnectionStatus { + /* + * Connection status + */ + EthernetConnectionStatus status = 1; + + /* + * WiFi access point ssid + */ + string ssid = 2; + + /* + * Rssi of wireless connection + */ + int32 rssi = 3; +} + +/* + * Ethernet connection status + */ +message EthernetConnectionStatus { + /* + * Connection status + */ + NetworkConnectionStatus status = 1; +} + +/* + * Ethernet or WiFi connection status + */ +message NetworkConnectionStatus { + /* + * IP address of device + */ + fixed32 ip_address = 1; + + /* + * Whether the device has an active connection or not + */ + bool is_connected = 2; + + /* + * Whether the device has an active connection to an MQTT broker or not + */ + bool is_mqtt_connected = 3; + + /* + * Whether the device is actively remote syslogging or not + */ + bool is_syslog_connected = 4; +} + +/* + * Bluetooth connection status + */ +message BluetoothConnectionStatus { + /* + * The pairing pin for bluetooth + */ + uint32 pin = 1; + + /* + * Rssi of bluetooth connection + */ + int32 rssi = 2; + + /* + * Whether the device has an active connection or not + */ + bool is_connected = 3; +} + +/* + * Serial connection status + */ + message SerialConnectionStatus { + /* + * The serial baud rate + */ + uint32 baud = 1; + + /* + * Whether the device has an active connection or not + */ + bool is_connected = 2; +} \ No newline at end of file