feat(protobufs): sync to firmware-current and consume workspace package (#1097)
* feat(protobufs): sync to firmware-current and consume workspace package Sync the vendored .proto sources to firmware-current (v2.7.25+48), regenerate the v2 TS bindings, and consume the workspace @meshtastic/protobufs (workspace:*) in place of the stale JSR 2.7.20 — finishing the monorepo migration (core was already workspace:*). Includes the one required breaking-change fix: admin nodedb_reset changed int32 to bool, so resetNodes() now sends value: true. * build(protobufs): vendor generated bindings for workspace consumers The package is consumed via workspace:* — its exports point at the TS source, which imports ./dist/meshtastic/*_pb.ts — so the generated output must exist at build time. CI builds web/core with no codegen step and the runners have no buf CLI, so the bindings are vendored here (kept gitignored; lint/format skip them). Regenerate with: pnpm --filter @meshtastic/protobufs gen * fix(protobufs): clean script removes the actual generated output dir buf writes bindings to packages/ts/dist, but clean was removing a non-existent root dist — so it never cleaned stale output. Addresses Copilot review feedback. * refactor: move web app packages/web -> apps/web Aligns the web app with the apps/web layout (matching the Vercel web-test Root Directory and the SDK-migration direction). Pure directory move plus root config: pnpm-workspace (adds apps/*), vitest projects, root tsconfig reference, and the pr/release-web/nightly workflows. vercel.json moved with the app. Build + 36 validation tests green. * feat: config fields, module pages, key verification, telemetry capture Incorporates the firmware-current feature work onto the protobuf foundation: new config fields (Display message bubbles; LoRa fem_lna_mode + serial_hal_only; Telemetry air_quality_screen_enabled); 4 new ModuleConfig pages (TrafficManagement, StatusMessage, TAK, RemoteHardware); the manual Key Verification flow (sendKeyVerification + ClientNotificationDialog stages + Verify Key button); live telemetry capture (nodeDB addDeviceMetrics) and admin hardening (toggleMutedNode, graceful PortNum default); plus the sdk-preview ConfigEditor demo and store/config tests. Build + lint + format + 131 tests green. * chore: drop #1062 (unsaved-change-detection) to match upstream revert #1062 was merged to main by accident (per @danditomaso) and is being reverted. Reverse-applied its diff here via 3-way so #1097 stays consistent with where main is headed, while keeping the feature changes layered on the same files (deviceStore/changeRegistry). Build + 131 tests + lint + format green. * fix(nodes): clean up SNR display in node table and map popup SNR is a ratio measured in dB, not dBm (which is absolute power); the node table and map popup both mislabeled it and crammed three values together: '0dBm/50%/50raw'. The trailing '%/raw' pair was the same heuristic ((snr+10)*5) shown twice — once clamped, once not. Render SNR in dB rounded to one decimal, color-coded by a 0-100% signal-quality heuristic (green/yellow/red), with the quality percentage as a muted secondary. Drop the redundant raw value. Adds unit.db; this matches the existing SNRTooltip, which already renders dB.
This commit is contained in:
@@ -2,6 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/channel.proto";
|
||||
import "meshtastic/config.proto";
|
||||
import "meshtastic/connection_status.proto";
|
||||
@@ -12,7 +13,7 @@ import "meshtastic/module_config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "AdminProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -151,6 +152,21 @@ message AdminMessage {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
PAXCOUNTER_CONFIG = 12;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
STATUSMESSAGE_CONFIG = 13;
|
||||
|
||||
/*
|
||||
* Traffic management module config
|
||||
*/
|
||||
TRAFFICMANAGEMENT_CONFIG = 14;
|
||||
|
||||
/*
|
||||
* TAK module config
|
||||
*/
|
||||
TAK_CONFIG = 15;
|
||||
}
|
||||
|
||||
enum BackupLocation {
|
||||
@@ -187,6 +203,23 @@ message AdminMessage {
|
||||
uint32 touch_y = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* User is requesting an over the air update.
|
||||
* Node will reboot into the OTA loader
|
||||
*/
|
||||
message OTAEvent {
|
||||
/*
|
||||
* Tell the node to reboot into OTA mode for firmware update via BLE or WiFi (ESP32 only for now)
|
||||
*/
|
||||
OTAMode reboot_ota_mode = 1;
|
||||
|
||||
/*
|
||||
* A 32 byte hash of the OTA firmware.
|
||||
* Used to verify the integrity of the firmware before applying an update.
|
||||
*/
|
||||
bytes ota_hash = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
@@ -414,6 +447,11 @@ message AdminMessage {
|
||||
*/
|
||||
uint32 remove_ignored_node = 48;
|
||||
|
||||
/*
|
||||
* Set specified node-num to be muted
|
||||
*/
|
||||
uint32 toggle_muted_node = 49;
|
||||
|
||||
/*
|
||||
* Begins an edit transaction for config, module config, owner, and channel settings changes
|
||||
* This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
|
||||
@@ -443,8 +481,9 @@ message AdminMessage {
|
||||
/*
|
||||
* Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot)
|
||||
* Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth.
|
||||
* Deprecated in favor of reboot_ota_mode in 2.7.17
|
||||
*/
|
||||
int32 reboot_ota_seconds = 95;
|
||||
int32 reboot_ota_seconds = 95 [deprecated = true];
|
||||
|
||||
/*
|
||||
* This message is only supported for the simulator Portduino build.
|
||||
@@ -469,11 +508,164 @@ message AdminMessage {
|
||||
|
||||
/*
|
||||
* Tell the node to reset the nodedb.
|
||||
* When true, favorites are preserved through reset.
|
||||
*/
|
||||
int32 nodedb_reset = 100;
|
||||
bool nodedb_reset = 100;
|
||||
|
||||
/*
|
||||
* Tell the node to reset into the OTA Loader
|
||||
*/
|
||||
OTAEvent ota_request = 102;
|
||||
|
||||
/*
|
||||
* Parameters and sensor configuration
|
||||
*/
|
||||
SensorConfig sensor_config = 103;
|
||||
|
||||
/*
|
||||
* Lockdown passphrase delivery / unlock / lock-now command for hardened
|
||||
* firmware builds (see MESHTASTIC_LOCKDOWN). Used to provision the
|
||||
* passphrase on first boot, unlock encrypted storage on subsequent
|
||||
* reboots, re-verify on already-unlocked devices to authorize a new
|
||||
* client connection, or immediately re-lock the device.
|
||||
*
|
||||
* Replaces the earlier scheme that repurposed SecurityConfig.private_key
|
||||
* to carry passphrase bytes; that hack is retired.
|
||||
*/
|
||||
LockdownAuth lockdown_auth = 104;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Lockdown passphrase delivery payload.
|
||||
*
|
||||
* One message handles three operations distinguished by content:
|
||||
* - Provision (first-time): passphrase set, lock_now=false. Firmware
|
||||
* generates DEK, wraps with passphrase-derived KEK, persists.
|
||||
* - Unlock: passphrase set, lock_now=false. Firmware verifies
|
||||
* passphrase against stored DEK, unlocks storage, authorizes the
|
||||
* connection that delivered this packet.
|
||||
* - Lock now: lock_now=true, passphrase ignored. Firmware revokes
|
||||
* all client auth and reboots into the locked state.
|
||||
*
|
||||
* Firmware decides between provision and unlock based on its own state
|
||||
* (whether a DEK file already exists). Clients do not need to track
|
||||
* which case applies.
|
||||
*/
|
||||
message LockdownAuth {
|
||||
/*
|
||||
* Passphrase bytes (1-32). Empty when lock_now is true.
|
||||
* Capped to 32 to match the proto cap on related security fields.
|
||||
*/
|
||||
bytes passphrase = 1;
|
||||
|
||||
/*
|
||||
* Optional override of the boot-count token TTL granted on success.
|
||||
* 0 = use firmware default (TOKEN_DEFAULT_BOOTS).
|
||||
* On reboot the firmware decrements this; when it reaches 0 the
|
||||
* device boots fully locked and requires a fresh passphrase.
|
||||
*/
|
||||
uint32 boots_remaining = 2;
|
||||
|
||||
/*
|
||||
* Optional wall-clock expiry for the unlock token, as absolute
|
||||
* Unix-epoch seconds. 0 = no time limit (only the boot-count TTL
|
||||
* applies). On boot, if the device RTC is set and now > this value,
|
||||
* the token is treated as expired.
|
||||
*/
|
||||
uint32 valid_until_epoch = 3;
|
||||
|
||||
/*
|
||||
* If true, ignore passphrase fields, immediately revoke all
|
||||
* connection-level admin authorization, and reboot the device into
|
||||
* the locked state. Always honoured regardless of current lock state.
|
||||
*/
|
||||
bool lock_now = 4;
|
||||
|
||||
/*
|
||||
* Optional per-boot uptime cap on the unlocked session, in seconds.
|
||||
* 0 = unlimited (token-only enforcement, suitable for unattended
|
||||
* tower / infrastructure nodes).
|
||||
*
|
||||
* When non-zero, the firmware arms an uptime timer at unlock. On
|
||||
* each expiry, while there is still boot-count budget, the firmware
|
||||
* decrements the on-flash boot count in place, revokes per-
|
||||
* connection admin auth (clients must re-authenticate to see
|
||||
* content), re-engages the screen lock, and re-arms the timer
|
||||
* without rebooting. Mesh routing keeps running across session
|
||||
* boundaries; only when the boot-count budget reaches zero does
|
||||
* the device hard-lock and reboot.
|
||||
*
|
||||
* Total exposure ceiling = ((resolved boot count) + 1) * max_session_seconds.
|
||||
* The +1 accounts for the initial passphrase-unlocked session
|
||||
* itself, since boots_remaining is the number of subsequent
|
||||
* session rolls (each consuming one boot from the rollback ledger).
|
||||
* The resolved boot count is the value the firmware writes into the
|
||||
* token at unlock time: the client-supplied boots_remaining when
|
||||
* non-zero, otherwise the firmware default (TOKEN_DEFAULT_BOOTS).
|
||||
* Note that boots_remaining == 0 in this message means "use firmware
|
||||
* default", NOT "zero boots" — a client computing the ceiling for
|
||||
* display should mirror that resolution rather than multiplying the
|
||||
* raw request value.
|
||||
*
|
||||
* The cap is persisted in the token, so it survives token-based
|
||||
* auto-unlock across reboots. Explicit operator Lock Now still
|
||||
* deletes the token and forces passphrase re-entry.
|
||||
*
|
||||
* Uses millis() (CPU uptime), not wall-clock time, so the cap is
|
||||
* immune to GPS spoofing, RTC backup-battery removal, and Faraday
|
||||
* cage isolation — none of those move the uptime counter. The only
|
||||
* way to reset the session clock is a reboot, which costs a boot
|
||||
* from the on-flash, HMAC-bound counter.
|
||||
*/
|
||||
uint32 max_session_seconds = 5;
|
||||
|
||||
/*
|
||||
* Disable lockdown mode. Requires a valid passphrase in the same
|
||||
* message (the device must prove the operator owns it before
|
||||
* reverting at-rest encryption). On success the firmware decrypts
|
||||
* every stored config / channel / nodedb file back to plaintext,
|
||||
* removes the wrapped DEK, unlock token, monotonic-counter, and
|
||||
* backoff files, and reboots out of lockdown.
|
||||
*
|
||||
* This is the inverse of the provision/unlock path: it is how the
|
||||
* client app's "lockdown mode" toggle returns a device to normal
|
||||
* operation.
|
||||
*
|
||||
* NOT reversed by this operation: APPROTECT. Once the debug port
|
||||
* lockout has been burned (on silicon where it is effective) it is
|
||||
* permanent — disabling lockdown decrypts your data and removes the
|
||||
* access gates, but the SWD/JTAG port stays locked for the life of
|
||||
* the device (recoverable only via a full chip erase over a debug
|
||||
* probe, which destroys all data). Clients should make this
|
||||
* irreversibility clear at the moment lockdown is first enabled.
|
||||
*
|
||||
* When true the passphrase field is still required; boots_remaining,
|
||||
* valid_until_epoch, max_session_seconds, and lock_now are ignored.
|
||||
*/
|
||||
bool disable = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
* Firmware update mode for OTA updates
|
||||
*/
|
||||
enum OTAMode {
|
||||
/*
|
||||
* Do not reboot into OTA mode
|
||||
*/
|
||||
NO_REBOOT_OTA = 0;
|
||||
|
||||
/*
|
||||
* Reboot into OTA mode for BLE firmware update
|
||||
*/
|
||||
OTA_BLE = 1;
|
||||
|
||||
/*
|
||||
* Reboot into OTA mode for WiFi firmware update
|
||||
*/
|
||||
OTA_WIFI = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parameters for setting up Meshtastic for ameteur radio usage
|
||||
*/
|
||||
@@ -499,6 +691,12 @@ message HamParameters {
|
||||
* Optional short name of user
|
||||
*/
|
||||
string short_name = 4;
|
||||
|
||||
/*
|
||||
* Optional long name of user
|
||||
* Appended to callsign
|
||||
*/
|
||||
string long_name = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -580,3 +778,113 @@ message KeyVerificationAdmin {
|
||||
*/
|
||||
optional uint32 security_number = 4;
|
||||
}
|
||||
|
||||
message SensorConfig {
|
||||
/*
|
||||
* SCD4X CO2 Sensor configuration
|
||||
*/
|
||||
SCD4X_config scd4x_config = 1;
|
||||
|
||||
/*
|
||||
* SEN5X PM Sensor configuration
|
||||
*/
|
||||
SEN5X_config sen5x_config = 2;
|
||||
|
||||
/*
|
||||
* SCD30 CO2 Sensor configuration
|
||||
*/
|
||||
SCD30_config scd30_config = 3;
|
||||
|
||||
/*
|
||||
* SHTXX temperature and relative humidity sensor configuration
|
||||
*/
|
||||
SHTXX_config shtxx_config = 4;
|
||||
}
|
||||
|
||||
message SCD4X_config {
|
||||
/*
|
||||
* Set Automatic self-calibration enabled
|
||||
*/
|
||||
optional bool set_asc = 1;
|
||||
|
||||
/*
|
||||
* Recalibration target CO2 concentration in ppm (FRC or ASC)
|
||||
*/
|
||||
optional uint32 set_target_co2_conc = 2;
|
||||
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 3;
|
||||
|
||||
/*
|
||||
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
|
||||
*/
|
||||
optional uint32 set_altitude = 4;
|
||||
|
||||
/*
|
||||
* Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude)
|
||||
*/
|
||||
optional uint32 set_ambient_pressure = 5;
|
||||
|
||||
/*
|
||||
* Perform a factory reset of the sensor
|
||||
*/
|
||||
optional bool factory_reset = 6;
|
||||
|
||||
/*
|
||||
* Power mode for sensor (true for low power, false for normal)
|
||||
*/
|
||||
optional bool set_power_mode = 7;
|
||||
}
|
||||
|
||||
message SEN5X_config {
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 1;
|
||||
|
||||
/*
|
||||
* One-shot mode (true for low power - one-shot mode, false for normal - continuous mode)
|
||||
*/
|
||||
optional bool set_one_shot_mode = 2;
|
||||
}
|
||||
|
||||
message SCD30_config {
|
||||
/*
|
||||
* Set Automatic self-calibration enabled
|
||||
*/
|
||||
optional bool set_asc = 1;
|
||||
|
||||
/*
|
||||
* Recalibration target CO2 concentration in ppm (FRC or ASC)
|
||||
*/
|
||||
optional uint32 set_target_co2_conc = 2;
|
||||
|
||||
/*
|
||||
* Reference temperature in degC
|
||||
*/
|
||||
optional float set_temperature = 3;
|
||||
|
||||
/*
|
||||
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
|
||||
*/
|
||||
optional uint32 set_altitude = 4;
|
||||
|
||||
/*
|
||||
* Power mode for sensor (true for low power, false for normal)
|
||||
*/
|
||||
optional uint32 set_measurement_interval = 5;
|
||||
|
||||
/*
|
||||
* Perform a factory reset of the sensor
|
||||
*/
|
||||
optional bool soft_reset = 6;
|
||||
}
|
||||
|
||||
message SHTXX_config {
|
||||
/*
|
||||
* Accuracy mode (0 = low, 1 = medium, 2 = high)
|
||||
*/
|
||||
optional uint32 set_accuracy = 1;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "AppOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "CannedMessageConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
/* trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH) */
|
||||
package meshtastic;
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ChannelProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -86,11 +87,6 @@ message ChannelSettings {
|
||||
* Per-channel module settings.
|
||||
*/
|
||||
ModuleSettings module_settings = 7;
|
||||
|
||||
/*
|
||||
* Whether or not we should receive notifactions / alerts through this channel
|
||||
*/
|
||||
bool mute = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -103,10 +99,10 @@ message ModuleSettings {
|
||||
uint32 position_precision = 1;
|
||||
|
||||
/*
|
||||
* Controls whether or not the phone / clients should mute the current channel
|
||||
* Controls whether or not the client / device should mute the current channel
|
||||
* Useful for noisy public channels you don't necessarily want to disable
|
||||
*/
|
||||
bool is_client_muted = 2;
|
||||
bool is_muted = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/mesh.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ClientOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -7,7 +7,7 @@ import "meshtastic/device_ui.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message Config {
|
||||
@@ -111,7 +111,7 @@ message Config {
|
||||
ROUTER_LATE = 11;
|
||||
|
||||
/*
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER, and all other packets as CLIENT.
|
||||
* Description: Treats packets from or to favorited nodes as ROUTER_LATE, and all other packets as CLIENT.
|
||||
* Technical Details: Used for stronger attic/roof nodes to distribute messages more widely
|
||||
* from weaker, indoor, or less-well-positioned nodes. Recommended for users with multiple nodes
|
||||
* where one CLIENT_BASE acts as a more powerful base station, such as an attic/roof node.
|
||||
@@ -648,6 +648,11 @@ message Config {
|
||||
* Can not be auto detected but set by proto. Used for 128x128 screens
|
||||
*/
|
||||
OLED_SH1107_128_128 = 4;
|
||||
|
||||
/*
|
||||
* Can not be auto detected but set by proto. Used for 64x128 rotated screens
|
||||
*/
|
||||
OLED_SH1107_ROTATED = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -783,6 +788,11 @@ message Config {
|
||||
* If true, node names will show in long format
|
||||
*/
|
||||
bool use_long_node_name = 13;
|
||||
|
||||
/*
|
||||
* If true, the device will display message bubbles on screen.
|
||||
*/
|
||||
bool enable_message_bubbles = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -924,6 +934,62 @@ message Config {
|
||||
* Brazil 902MHz
|
||||
*/
|
||||
BR_902 = 26;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 2m band (144-146 MHz)
|
||||
*/
|
||||
ITU1_2M = 27;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU2_2M = 28;
|
||||
|
||||
/*
|
||||
* EU 866MHz band (Band no. 47b of 2006/771/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_866 = 29;
|
||||
|
||||
/*
|
||||
* EU 874MHz and 917MHz bands (Band no. 1 and 4 of 2022/172/EC and subsequent amendments) for Non-specific short-range devices (SRD)
|
||||
*/
|
||||
EU_874 = 30;
|
||||
EU_917 = 31;
|
||||
|
||||
/*
|
||||
* EU 868MHz band, with narrow presets
|
||||
*/
|
||||
EU_N_868 = 32;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 2m band (144-148 MHz)
|
||||
*/
|
||||
ITU3_2M = 33;
|
||||
|
||||
/*
|
||||
* ITU Region 1 Amateur Radio 70cm band (430-440 MHz)
|
||||
*/
|
||||
ITU1_70CM = 34;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 70cm band (420-450 MHz)
|
||||
* Note: Some countries do not allocate 420-430 MHz or 440-450 MHz.
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_70CM = 35;
|
||||
|
||||
/*
|
||||
* ITU Region 3 Amateur Radio 70cm band (430-450 MHz)
|
||||
* Note: Some countries do not allocate 440-450 MHz. Check local law!
|
||||
*/
|
||||
ITU3_70CM = 36;
|
||||
|
||||
/*
|
||||
* ITU Region 2 Amateur Radio 1.25m '125cm' band (220-225 MHz)
|
||||
* Note: Some countries do not allocate 220-222 MHz (Ex: USA/Canada).
|
||||
* Check local law!
|
||||
*/
|
||||
ITU2_125CM = 37;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -938,8 +1004,9 @@ message Config {
|
||||
|
||||
/*
|
||||
* Long Range - Slow
|
||||
* Deprecated in 2.7: Unpopular slow preset.
|
||||
*/
|
||||
LONG_SLOW = 1;
|
||||
LONG_SLOW = 1 [deprecated = true];
|
||||
|
||||
/*
|
||||
* Very Long Range - Slow
|
||||
@@ -978,6 +1045,78 @@ message Config {
|
||||
* It is not legal to use in all regions due to this wider bandwidth.
|
||||
*/
|
||||
SHORT_TURBO = 8;
|
||||
|
||||
/*
|
||||
* Long Range - Turbo
|
||||
* This preset performs similarly to LongFast, but with 500Khz bandwidth.
|
||||
*/
|
||||
LONG_TURBO = 9;
|
||||
|
||||
/*
|
||||
* Lite Fast
|
||||
* Medium range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to MEDIUM_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_FAST = 10;
|
||||
|
||||
/*
|
||||
* Lite Slow
|
||||
* Medium-to-moderate range preset optimized for EU 866MHz SRD band with 125kHz bandwidth.
|
||||
* Comparable link budget to LONG_FAST but compliant with Band no. 47b of 2006/771/EC.
|
||||
*/
|
||||
LITE_SLOW = 11;
|
||||
|
||||
/*
|
||||
* Narrow Fast
|
||||
* Medium-to-moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget to SHORT_SLOW, but with half the data rate.
|
||||
* Intended to avoid interference with other devices.
|
||||
*/
|
||||
NARROW_FAST = 12;
|
||||
|
||||
/*
|
||||
* Narrow Slow
|
||||
* Moderate range preset optimized for EU 868MHz band with 62.5kHz bandwidth.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
NARROW_SLOW = 13;
|
||||
|
||||
/*
|
||||
* Tiny Fast
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_FAST.
|
||||
*/
|
||||
TINY_FAST = 14;
|
||||
|
||||
/*
|
||||
* Tiny Slow
|
||||
* Preset optimized for compliance with Amateur Radio restrictions with 20kHz bandwidth.
|
||||
* Many regions limit data transmission bandwidth in lower amateur bands (2 Meter).
|
||||
* Note: TCXO with tight tolerances (±5 ppm or better) is *absolutely required* at these narrow bandwidths.
|
||||
* Only compatible with SX127x and SX126x chipsets.
|
||||
* Comparable link budget and data rate to LONG_MODERATE.
|
||||
*/
|
||||
TINY_SLOW = 15;
|
||||
}
|
||||
|
||||
enum FEM_LNA_Mode {
|
||||
/*
|
||||
* FEM_LNA is present but disabled
|
||||
*/
|
||||
DISABLED = 0;
|
||||
|
||||
/*
|
||||
* FEM_LNA is present and enabled
|
||||
*/
|
||||
ENABLED = 1;
|
||||
|
||||
/*
|
||||
* FEM_LNA is not present on the device
|
||||
*/
|
||||
NOT_PRESENT = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1100,6 +1239,16 @@ message Config {
|
||||
* Sets the ok_to_mqtt bit on outgoing packets
|
||||
*/
|
||||
bool config_ok_to_mqtt = 105;
|
||||
|
||||
/*
|
||||
* Set where LORA FEM is enabled, disabled, or not present
|
||||
*/
|
||||
FEM_LNA_Mode fem_lna_mode = 106;
|
||||
|
||||
/*
|
||||
* Don't use radiolib to initialize the radio, instead listen for a serialHal connection
|
||||
*/
|
||||
bool serial_hal_only = 107;
|
||||
}
|
||||
|
||||
message BluetoothConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ConnStatusProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message DeviceConnectionStatus {
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceUIProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -2,6 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/channel.proto";
|
||||
import "meshtastic/config.proto";
|
||||
import "meshtastic/localonly.proto";
|
||||
@@ -12,7 +13,7 @@ import "nanopb.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceOnly";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
option (nanopb_fileopt).include = "<vector>";
|
||||
|
||||
@@ -49,6 +50,11 @@ message PositionLite {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Position.LocSource location_source = 5;
|
||||
|
||||
/*
|
||||
* Indicates the bits of precision set by the sending node
|
||||
*/
|
||||
uint32 precision_bits = 6;
|
||||
}
|
||||
|
||||
message UserLite {
|
||||
@@ -106,20 +112,15 @@ message NodeInfoLite {
|
||||
*/
|
||||
uint32 num = 1;
|
||||
|
||||
/*
|
||||
* The user info for this node
|
||||
*/
|
||||
UserLite user = 2;
|
||||
// Tag 2 was UserLite user; flattened into tags 14..18 (presence via
|
||||
// NODEINFO_BITFIELD_HAS_USER).
|
||||
// Tag 3 was PositionLite position; moved to NodeDatabase.positions.
|
||||
reserved 2, 3;
|
||||
reserved "user", "position";
|
||||
|
||||
/*
|
||||
* This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
|
||||
* Position.time now indicates the last time we received a POSITION from that node.
|
||||
*/
|
||||
PositionLite position = 3;
|
||||
|
||||
/*
|
||||
* Returns the Signal-to-noise ratio (SNR) of the last received message,
|
||||
* as measured by the receiver. Return SNR of the last received message in dB
|
||||
* In-memory SNR of the last received message in dB. Not serialised directly:
|
||||
* always zeroed before encode; persisted as snr_q4 = 19 below.
|
||||
*/
|
||||
float snr = 4;
|
||||
|
||||
@@ -127,48 +128,69 @@ message NodeInfoLite {
|
||||
* Set to indicate the last time we received a packet from this node
|
||||
*/
|
||||
fixed32 last_heard = 5;
|
||||
/*
|
||||
* The latest device metrics for the node.
|
||||
*/
|
||||
DeviceMetrics device_metrics = 6;
|
||||
|
||||
// Tag 6 was DeviceMetrics device_metrics; moved to NodeDatabase.telemetry.
|
||||
reserved 6;
|
||||
reserved "device_metrics";
|
||||
|
||||
/*
|
||||
* local channel index we heard that node on. Only populated if its not the default channel.
|
||||
*/
|
||||
uint32 channel = 7;
|
||||
|
||||
/*
|
||||
* True if we witnessed the node over MQTT instead of LoRA transport
|
||||
*/
|
||||
bool via_mqtt = 8;
|
||||
// Tags 8/10/11 were via_mqtt/is_favorite/is_ignored bools; packed into bitfield.
|
||||
reserved 8, 10, 11;
|
||||
reserved "via_mqtt", "is_favorite", "is_ignored";
|
||||
|
||||
/*
|
||||
* Number of hops away from us this node is (0 if direct neighbor)
|
||||
*/
|
||||
optional uint32 hops_away = 9;
|
||||
|
||||
/*
|
||||
* True if node is in our favorites list
|
||||
* Persists between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_favorite = 10;
|
||||
|
||||
/*
|
||||
* True if node is in our ignored list
|
||||
* Persists between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_ignored = 11;
|
||||
|
||||
/*
|
||||
* Last byte of the node number of the node that should be used as the next hop to reach this node.
|
||||
*/
|
||||
uint32 next_hop = 12;
|
||||
|
||||
/*
|
||||
* Bitfield for storing booleans.
|
||||
* LSB 0 is_key_manually_verified
|
||||
* Bitfield for storing booleans. See NODEINFO_BITFIELD_* in src/mesh/NodeDB.h.
|
||||
*/
|
||||
uint32 bitfield = 13;
|
||||
|
||||
// Flattened user fields (formerly UserLite). macaddr dropped (deprecated 1.2.11).
|
||||
|
||||
/*
|
||||
* A full name for this user, i.e. "Kevin Hester".
|
||||
*/
|
||||
string long_name = 14;
|
||||
|
||||
/*
|
||||
* A VERY short name, ideally two characters or an emoji.
|
||||
* Suitable for a tiny OLED screen.
|
||||
*/
|
||||
string short_name = 15;
|
||||
|
||||
/*
|
||||
* Hardware model the user's device is running.
|
||||
*/
|
||||
HardwareModel hw_model = 16;
|
||||
|
||||
/*
|
||||
* The user's role in the mesh.
|
||||
*/
|
||||
Config.DeviceConfig.Role role = 17;
|
||||
|
||||
/*
|
||||
* The public key of the user's device, for PKI-based encrypted DMs.
|
||||
*/
|
||||
bytes public_key = 18;
|
||||
|
||||
/*
|
||||
* Q4-encoded SNR: dB × 4, sint32 zigzag. Matches RouteDiscovery convention.
|
||||
* Encode: snr_q4 = (int32_t)(snr * 4.0f). Decode: snr = snr_q4 / 4.0f.
|
||||
* float snr is always zeroed on disk; this field carries all persisted SNR.
|
||||
*/
|
||||
sint32 snr_q4 = 19;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -234,6 +256,29 @@ message DeviceState {
|
||||
repeated NodeRemoteHardwarePin node_remote_hardware_pins = 13;
|
||||
}
|
||||
|
||||
// Satellite per-node entries; stored alongside the slim NodeInfoLite so nodes
|
||||
// that never report don't pay the embedded cost.
|
||||
|
||||
message NodePositionEntry {
|
||||
uint32 num = 1;
|
||||
PositionLite position = 2;
|
||||
}
|
||||
|
||||
message NodeTelemetryEntry {
|
||||
uint32 num = 1;
|
||||
DeviceMetrics device_metrics = 2;
|
||||
}
|
||||
|
||||
message NodeEnvironmentEntry {
|
||||
uint32 num = 1;
|
||||
EnvironmentMetrics environment_metrics = 2;
|
||||
}
|
||||
|
||||
message NodeStatusEntry {
|
||||
uint32 num = 1;
|
||||
StatusMessage status = 2;
|
||||
}
|
||||
|
||||
message NodeDatabase {
|
||||
/*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
@@ -246,6 +291,13 @@ message NodeDatabase {
|
||||
* New lite version of NodeDB to decrease memory footprint
|
||||
*/
|
||||
repeated NodeInfoLite nodes = 2 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite>"];
|
||||
|
||||
// Per-NodeNum satellite arrays. Constrained platforms (e.g. STM32WL) omit
|
||||
// these via MESHTASTIC_EXCLUDE_*DB build flags.
|
||||
repeated NodePositionEntry positions = 3 [(nanopb).callback_datatype = "std::vector<meshtastic_NodePositionEntry>"];
|
||||
repeated NodeTelemetryEntry telemetry = 4 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeTelemetryEntry>"];
|
||||
repeated NodeStatusEntry status = 5 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeStatusEntry>"];
|
||||
repeated NodeEnvironmentEntry environment = 6 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeEnvironmentEntry>"];
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
/* trunk-ignore(buf-lint/COMPILE) */
|
||||
import "meshtastic/deviceonly.proto";
|
||||
import "meshtastic/telemetry.proto";
|
||||
import "nanopb.proto";
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "DeviceOnlyLegacy";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
option (nanopb_fileopt).include = "<vector>";
|
||||
|
||||
/*
|
||||
* Legacy NodeInfoLite descriptor used only to decode pre-split
|
||||
* /prefs/nodes.proto saves during the v24 -> v25 migration boot.
|
||||
* This preserves the original NodeInfoLite-compatible field numbers needed
|
||||
* to parse old wire bytes cleanly, including user (2), position (3),
|
||||
* device_metrics (6), and the legacy-only compatibility fields via_mqtt (8),
|
||||
* is_favorite (10), and is_ignored (11). Steady-state code does not use
|
||||
* this struct; it is dropped after migration completes. This file should be
|
||||
* removed once DEVICESTATE_MIN_VER advances past 24.
|
||||
*/
|
||||
message NodeInfoLite_Legacy {
|
||||
uint32 num = 1;
|
||||
UserLite user = 2;
|
||||
PositionLite position = 3;
|
||||
float snr = 4;
|
||||
fixed32 last_heard = 5;
|
||||
DeviceMetrics device_metrics = 6;
|
||||
uint32 channel = 7;
|
||||
bool via_mqtt = 8;
|
||||
optional uint32 hops_away = 9;
|
||||
bool is_favorite = 10;
|
||||
bool is_ignored = 11;
|
||||
uint32 next_hop = 12;
|
||||
uint32 bitfield = 13;
|
||||
}
|
||||
|
||||
/*
|
||||
* Legacy NodeDatabase shape: one repeated array of fat NodeInfoLite_Legacy
|
||||
* with no satellite position/telemetry arrays.
|
||||
*/
|
||||
message NodeDatabase_Legacy {
|
||||
uint32 version = 1;
|
||||
repeated NodeInfoLite_Legacy nodes = 2 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite_Legacy>"];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "InterdeviceProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
// encapsulate up to 1k of NMEA string data
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/module_config.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "LocalOnlyProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -131,6 +131,21 @@ message LocalModuleConfig {
|
||||
*/
|
||||
ModuleConfig.PaxcounterConfig paxcounter = 14;
|
||||
|
||||
/*
|
||||
* StatusMessage Config
|
||||
*/
|
||||
ModuleConfig.StatusMessageConfig statusmessage = 15;
|
||||
|
||||
/*
|
||||
* The part of the config that is specific to the Traffic Management module
|
||||
*/
|
||||
ModuleConfig.TrafficManagementConfig traffic_management = 16;
|
||||
|
||||
/*
|
||||
* TAK Config
|
||||
*/
|
||||
ModuleConfig.TAKConfig tak = 17;
|
||||
|
||||
/*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
|
||||
@@ -13,7 +13,7 @@ import "meshtastic/xmodem.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "MeshProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -388,9 +388,9 @@ enum HardwareModel {
|
||||
LORA_RELAY_V1 = 32;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* T-Echo Plus device from LilyGo
|
||||
*/
|
||||
NRF52840DK = 33;
|
||||
T_ECHO_PLUS = 33;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
@@ -700,9 +700,9 @@ enum HardwareModel {
|
||||
HELTEC_SENSOR_HUB = 92;
|
||||
|
||||
/*
|
||||
* Reserved Fried Chicken ID for future use
|
||||
* Muzi Works Muzi-Base device
|
||||
*/
|
||||
RESERVED_FRIED_CHICKEN = 93;
|
||||
MUZI_BASE = 93;
|
||||
|
||||
/*
|
||||
* Heltec Magnetic Power Bank with Meshtastic compatible
|
||||
@@ -810,6 +810,129 @@ enum HardwareModel {
|
||||
*/
|
||||
T_WATCH_ULTRA = 114;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M3
|
||||
*/
|
||||
THINKNODE_M3 = 115;
|
||||
|
||||
/*
|
||||
* RAK WISMESH_TAP_V2 with ESP32-S3 CPU
|
||||
*/
|
||||
WISMESH_TAP_V2 = 116;
|
||||
|
||||
/*
|
||||
* RAK3401
|
||||
*/
|
||||
RAK3401 = 117;
|
||||
|
||||
/*
|
||||
* RAK6421 Hat+
|
||||
*/
|
||||
RAK6421 = 118;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M4
|
||||
*/
|
||||
THINKNODE_M4 = 119;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M6
|
||||
*/
|
||||
THINKNODE_M6 = 120;
|
||||
|
||||
/*
|
||||
* Elecrow Meshstick 1262
|
||||
*/
|
||||
MESHSTICK_1262 = 121;
|
||||
|
||||
/*
|
||||
* LilyGo T-Beam 1W
|
||||
*/
|
||||
TBEAM_1_WATT = 122;
|
||||
|
||||
/*
|
||||
* LilyGo T5 S3 ePaper Pro (V1 and V2)
|
||||
*/
|
||||
T5_S3_EPAPER_PRO = 123;
|
||||
|
||||
/*
|
||||
* LilyGo T-Beam BPF (144-148Mhz)
|
||||
*/
|
||||
TBEAM_BPF = 124;
|
||||
|
||||
/*
|
||||
* LilyGo T-Mini E-paper S3 Kit
|
||||
*/
|
||||
MINI_EPAPER_S3 = 125;
|
||||
|
||||
/*
|
||||
* LilyGo T-Display S3 Pro LR1121
|
||||
*/
|
||||
TDISPLAY_S3_PRO = 126;
|
||||
|
||||
/*
|
||||
* Heltec Mesh Node T096 board features an nRF52840 CPU and a TFT screen.
|
||||
*/
|
||||
HELTEC_MESH_NODE_T096 = 127;
|
||||
|
||||
/*
|
||||
* Seeed studio T1000-E Pro tracker card. NRF52840 w/ LR2021 radio,
|
||||
* GPS, button, buzzer, and sensors.
|
||||
*/
|
||||
TRACKER_T1000_E_PRO = 128;
|
||||
|
||||
/*
|
||||
* Elecrow ThinkNode M7, M8 and M9
|
||||
*/
|
||||
THINKNODE_M7 = 129;
|
||||
THINKNODE_M8 = 130;
|
||||
THINKNODE_M9 = 131;
|
||||
|
||||
/*
|
||||
* The Heltec-V4-R8 uses an ESP32S3R8 chip, plus an SX1262.
|
||||
*/
|
||||
HELTEC_V4_R8 = 132;
|
||||
|
||||
/*
|
||||
* The HELTEC_MESH_NODE_T1 uses an NRF52840 chip, plus an SX1262.
|
||||
*/
|
||||
HELTEC_MESH_NODE_T1 = 133;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Station G3: TBD
|
||||
*/
|
||||
STATION_G3 = 134;
|
||||
|
||||
/*
|
||||
* Lilygo T-Impulse-Plus
|
||||
*/
|
||||
T_IMPULSE_PLUS = 135;
|
||||
|
||||
/*
|
||||
* Lilygo T-Echo Card
|
||||
*/
|
||||
T_ECHO_CARD = 136;
|
||||
|
||||
/*
|
||||
* Seeed Tracker L2
|
||||
*/
|
||||
SEEED_WIO_TRACKER_L2 = 137;
|
||||
|
||||
/*
|
||||
* Elecrow CrowPanel Advance P4 models, ESP32-P4 and TFT with SX1262 radio plugin
|
||||
*/
|
||||
CROWPANEL_P4 = 138;
|
||||
|
||||
/*
|
||||
* Heltec Mesh Tower V2
|
||||
*/
|
||||
HELTEC_MESH_TOWER_V2 = 139;
|
||||
|
||||
/*
|
||||
* Meshnology W10
|
||||
*/
|
||||
MESHNOLOGY_W10 = 140;
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* 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.
|
||||
@@ -851,6 +974,9 @@ message User {
|
||||
|
||||
/*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
* Limited to 24 bytes of UTF-8: longer names are accepted from senders
|
||||
* built against the older 39-byte limit, but devices truncate them before
|
||||
* storing or rebroadcasting. Clients should enforce 24 bytes in their UI.
|
||||
*/
|
||||
string long_name = 2;
|
||||
|
||||
@@ -1020,6 +1146,12 @@ message Routing {
|
||||
* This typically enforced per portnum and is used to prevent a single node from monopolizing airtime
|
||||
*/
|
||||
RATE_LIMIT_EXCEEDED = 38;
|
||||
|
||||
/*
|
||||
* PKI encryption failed, due to no public key for the remote node
|
||||
* This is different from PKI_UNKNOWN_PUBKEY which indicates a failure upon receiving a packet
|
||||
*/
|
||||
PKI_SEND_FAIL_PUBLIC_KEY = 39;
|
||||
}
|
||||
|
||||
oneof variant {
|
||||
@@ -1101,6 +1233,11 @@ message Data {
|
||||
* Bitfield for extra flags. First use is to indicate that user approves the packet being uploaded to MQTT.
|
||||
*/
|
||||
optional uint32 bitfield = 9;
|
||||
|
||||
/*
|
||||
* XEdDSA signature for the payload
|
||||
*/
|
||||
bytes xeddsa_signature = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1124,6 +1261,176 @@ message KeyVerification {
|
||||
bytes hash2 = 3;
|
||||
}
|
||||
|
||||
/*
|
||||
* The actual over-the-mesh message doing store and forward++
|
||||
*/
|
||||
message StoreForwardPlusPlus {
|
||||
/*
|
||||
* Enum of message types
|
||||
*/
|
||||
enum SFPP_message_type {
|
||||
/*
|
||||
* Send an announcement of the canonical tip of a chain
|
||||
*/
|
||||
CANON_ANNOUNCE = 0;
|
||||
|
||||
/*
|
||||
* Query whether a specific link is on the chain
|
||||
*/
|
||||
CHAIN_QUERY = 1;
|
||||
|
||||
/*
|
||||
* Request the next link in the chain
|
||||
*/
|
||||
LINK_REQUEST = 3;
|
||||
|
||||
/*
|
||||
* Provide a link to add to the chain
|
||||
*/
|
||||
LINK_PROVIDE = 4;
|
||||
|
||||
/*
|
||||
* If we must fragment, send the first half
|
||||
*/
|
||||
LINK_PROVIDE_FIRSTHALF = 5;
|
||||
|
||||
/*
|
||||
* If we must fragment, send the second half
|
||||
*/
|
||||
LINK_PROVIDE_SECONDHALF = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
* Which message type is this
|
||||
*/
|
||||
SFPP_message_type sfpp_message_type = 1;
|
||||
|
||||
/*
|
||||
* The hash of the specific message
|
||||
*/
|
||||
bytes message_hash = 2;
|
||||
|
||||
/*
|
||||
* The hash of a link on a chain
|
||||
*/
|
||||
bytes commit_hash = 3;
|
||||
|
||||
/*
|
||||
* the root hash of a chain
|
||||
*/
|
||||
bytes root_hash = 4;
|
||||
|
||||
/*
|
||||
* The encrypted bytes from a message
|
||||
*/
|
||||
bytes message = 5;
|
||||
|
||||
/*
|
||||
* Message ID of the contained message
|
||||
*/
|
||||
uint32 encapsulated_id = 6;
|
||||
|
||||
/*
|
||||
* Destination of the contained message
|
||||
*/
|
||||
uint32 encapsulated_to = 7;
|
||||
|
||||
/*
|
||||
* Sender of the contained message
|
||||
*/
|
||||
uint32 encapsulated_from = 8;
|
||||
|
||||
/*
|
||||
* The receive time of the message in question
|
||||
*/
|
||||
uint32 encapsulated_rxtime = 9;
|
||||
|
||||
/*
|
||||
* Used in a LINK_REQUEST to specify the message X spots back from head
|
||||
*/
|
||||
uint32 chain_count = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
* The actual over-the-mesh message doing RemoteShell
|
||||
*/
|
||||
message RemoteShell {
|
||||
/*
|
||||
* Frame op code for PTY session control and stream transport.
|
||||
*
|
||||
* Values 1-63 are client->server requests.
|
||||
* Values 64-127 are server->client responses/events.
|
||||
*/
|
||||
enum OpCode {
|
||||
OP_UNSET = 0;
|
||||
|
||||
// Client -> server
|
||||
OPEN = 1;
|
||||
INPUT = 2;
|
||||
RESIZE = 3;
|
||||
CLOSE = 4;
|
||||
PING = 5;
|
||||
ACK = 6;
|
||||
|
||||
// Server -> client
|
||||
OPEN_OK = 64;
|
||||
OUTPUT = 65;
|
||||
CLOSED = 66;
|
||||
ERROR = 67;
|
||||
PONG = 68;
|
||||
}
|
||||
|
||||
/*
|
||||
* Structured frame operation.
|
||||
*/
|
||||
OpCode op = 1;
|
||||
|
||||
/*
|
||||
* Logical PTY session identifier.
|
||||
*/
|
||||
uint32 session_id = 2;
|
||||
|
||||
/*
|
||||
* Monotonic sequence number for this frame.
|
||||
*/
|
||||
uint32 seq = 3;
|
||||
|
||||
/*
|
||||
* Cumulative ack sequence number.
|
||||
*/
|
||||
uint32 ack_seq = 4;
|
||||
|
||||
/*
|
||||
* Opaque bytes payload for INPUT/OUTPUT/ERROR and other frame bodies.
|
||||
*/
|
||||
bytes payload = 5;
|
||||
|
||||
/*
|
||||
* Terminal size columns used for OPEN/RESIZE signaling.
|
||||
*/
|
||||
uint32 cols = 6;
|
||||
|
||||
/*
|
||||
* Terminal size rows used for OPEN/RESIZE signaling.
|
||||
*/
|
||||
uint32 rows = 7;
|
||||
|
||||
/*
|
||||
* Bit flags for protocol extensions.
|
||||
*/
|
||||
uint32 flags = 8;
|
||||
|
||||
/*
|
||||
* The last sequence number TX'd.
|
||||
*/
|
||||
uint32 last_tx_seq = 9;
|
||||
|
||||
/*
|
||||
* The last sequence number RX'd.
|
||||
*/
|
||||
uint32 last_rx_seq = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
* Waypoint message, used to share arbitrary locations across the mesh
|
||||
*/
|
||||
@@ -1170,6 +1477,13 @@ message Waypoint {
|
||||
fixed32 icon = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
* Message for node status
|
||||
*/
|
||||
message StatusMessage {
|
||||
string status = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server
|
||||
*/
|
||||
@@ -1345,6 +1659,11 @@ message MeshPacket {
|
||||
* Arrived via API connection
|
||||
*/
|
||||
TRANSPORT_API = 7;
|
||||
|
||||
/*
|
||||
* Arrived via Unicast UDP
|
||||
*/
|
||||
TRANSPORT_UNICAST_UDP = 8;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1356,6 +1675,10 @@ message MeshPacket {
|
||||
|
||||
/*
|
||||
* The (immediate) destination for this packet
|
||||
* If the value is 4,294,967,295 (maximum value of an unsigned 32bit integer), this indicates that the packet was
|
||||
* not destined for a specific node, but for a channel as indicated by the value of `channel` below.
|
||||
* If the value is another, this indicates that the packet was destined for a specific
|
||||
* node (i.e. a kind of "Direct Message" to this node) and not broadcast on a channel.
|
||||
*/
|
||||
fixed32 to = 2;
|
||||
|
||||
@@ -1499,6 +1822,11 @@ message MeshPacket {
|
||||
* Indicates which transport mechanism this packet arrived over
|
||||
*/
|
||||
TransportMechanism transport_mechanism = 21;
|
||||
|
||||
/*
|
||||
* Indicates whether the packet has a valid signature
|
||||
*/
|
||||
bool xeddsa_signed = 22;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1629,6 +1957,19 @@ message NodeInfo {
|
||||
* LSB 0 of the bitfield
|
||||
*/
|
||||
bool is_key_manually_verified = 12;
|
||||
|
||||
/*
|
||||
* True if node has been muted
|
||||
* Persistes between NodeDB internal clean ups
|
||||
*/
|
||||
bool is_muted = 13;
|
||||
|
||||
/*
|
||||
* True if node is signing its packets via XEdDSA
|
||||
* Persists between NodeDB internal clean ups
|
||||
* LSB 1 of the bitfield
|
||||
*/
|
||||
bool has_xeddsa_signed = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1987,9 +2328,105 @@ message FromRadio {
|
||||
* Persistent data for device-ui
|
||||
*/
|
||||
DeviceUIConfig deviceuiConfig = 17;
|
||||
|
||||
/*
|
||||
* Lockdown state notification for hardened firmware builds.
|
||||
* Sent post-config (so unauthorized clients learn they must
|
||||
* provision/unlock) and after each LockdownAuth admin command
|
||||
* to report success or failure. Replaces the earlier scheme of
|
||||
* encoding state as magic-string prefixes inside ClientNotification.
|
||||
*/
|
||||
LockdownStatus lockdown_status = 18;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Lockdown state report from firmware to client (for hardened builds
|
||||
* with MESHTASTIC_LOCKDOWN). Sent immediately after config_complete_id
|
||||
* to inform a freshly-connected unauthorized client what it must do,
|
||||
* and again in response to each LockdownAuth admin command.
|
||||
*/
|
||||
message LockdownStatus {
|
||||
enum State {
|
||||
/* Default; should not be sent. */
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
/*
|
||||
* No passphrase has ever been provisioned on this device.
|
||||
* Client should prompt the operator to set one.
|
||||
*/
|
||||
NEEDS_PROVISION = 1;
|
||||
|
||||
/*
|
||||
* Storage is locked or this client has not authenticated yet.
|
||||
* lock_reason carries a machine-readable detail string.
|
||||
* Client should present (or auto-replay) a passphrase via
|
||||
* AdminMessage.lockdown_auth.
|
||||
*/
|
||||
LOCKED = 2;
|
||||
|
||||
/*
|
||||
* Passphrase accepted; client is now authorized for this connection.
|
||||
* boots_remaining and valid_until_epoch describe the active session
|
||||
* token's TTL.
|
||||
*/
|
||||
UNLOCKED = 3;
|
||||
|
||||
/*
|
||||
* Passphrase rejected. backoff_seconds is non-zero when rate-limited.
|
||||
*/
|
||||
UNLOCK_FAILED = 4;
|
||||
|
||||
/*
|
||||
* Lockdown is supported by this firmware but not currently active
|
||||
* (no passphrase has been provisioned, or it was disabled via
|
||||
* AdminMessage.lockdown_auth.disable). The device is operating in
|
||||
* normal, non-encrypted mode. Clients render the lockdown-mode
|
||||
* toggle as OFF on receiving this. Distinct from NEEDS_PROVISION,
|
||||
* which is only used during an in-progress enable flow.
|
||||
*/
|
||||
DISABLED = 5;
|
||||
}
|
||||
|
||||
/* Current lockdown state being reported. */
|
||||
State state = 1;
|
||||
|
||||
/*
|
||||
* For LOCKED: machine-readable reason. Known values:
|
||||
* "needs_auth" — storage already unlocked, client must auth
|
||||
* "token_missing" — no boot token on flash
|
||||
* "token_expired" — boot token wall-clock TTL elapsed
|
||||
* "token_boots_zero" — boot token boot-count TTL exhausted
|
||||
* "token_hmac_fail" — token tampered or wrong device
|
||||
* "token_dek_fail" — token DEK decrypt failed
|
||||
* "token_wrong_size" — token file corrupted
|
||||
* "token_bad_magic" — token file corrupted
|
||||
* "not_provisioned" — should generally use NEEDS_PROVISION state instead
|
||||
* Other values may be added; clients should treat unknown values as
|
||||
* "locked, ask for passphrase".
|
||||
*/
|
||||
string lock_reason = 2;
|
||||
|
||||
/*
|
||||
* For UNLOCKED: remaining boots on the issued session token.
|
||||
* Decrements by 1 on each subsequent boot.
|
||||
*/
|
||||
uint32 boots_remaining = 3;
|
||||
|
||||
/*
|
||||
* For UNLOCKED: wall-clock expiry of the issued session token,
|
||||
* absolute Unix-epoch seconds. 0 = no time limit.
|
||||
*/
|
||||
uint32 valid_until_epoch = 4;
|
||||
|
||||
/*
|
||||
* For UNLOCK_FAILED: seconds the client must wait before another
|
||||
* passphrase attempt will be accepted. 0 = wrong passphrase, no
|
||||
* backoff (immediate retry allowed but advisable to prompt user).
|
||||
*/
|
||||
uint32 backoff_seconds = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* A notification message from the device to the client
|
||||
* To be used for important messages that should to be displayed to the user
|
||||
|
||||
@@ -2,10 +2,12 @@ syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
import "meshtastic/atak.proto";
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "ModuleConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -51,9 +53,9 @@ message ModuleConfig {
|
||||
bool encryption_enabled = 5;
|
||||
|
||||
/*
|
||||
* Whether to send / consume json packets on MQTT
|
||||
* Deprecated: JSON packet support on MQTT was removed, and this field is ignored.
|
||||
*/
|
||||
bool json_enabled = 6;
|
||||
bool json_enabled = 6 [deprecated = true];
|
||||
|
||||
/*
|
||||
* If true, we attempt to establish a secure connection using TLS
|
||||
@@ -295,6 +297,82 @@ message ModuleConfig {
|
||||
int32 ble_threshold = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* Config for the Traffic Management module.
|
||||
* Provides packet inspection and traffic shaping to help reduce channel utilization
|
||||
*/
|
||||
message TrafficManagementConfig {
|
||||
/*
|
||||
* Master enable for traffic management module
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* Enable position deduplication to drop redundant position broadcasts
|
||||
*/
|
||||
bool position_dedup_enabled = 2;
|
||||
|
||||
/*
|
||||
* Number of bits of precision for position deduplication (0-32)
|
||||
*/
|
||||
uint32 position_precision_bits = 3;
|
||||
|
||||
/*
|
||||
* Minimum interval in seconds between position updates from the same node
|
||||
*/
|
||||
uint32 position_min_interval_secs = 4;
|
||||
|
||||
/*
|
||||
* Enable direct response to NodeInfo requests from local cache
|
||||
*/
|
||||
bool nodeinfo_direct_response = 5;
|
||||
|
||||
/*
|
||||
* Minimum hop distance from requestor before responding to NodeInfo requests
|
||||
*/
|
||||
uint32 nodeinfo_direct_response_max_hops = 6;
|
||||
|
||||
/*
|
||||
* Enable per-node rate limiting to throttle chatty nodes
|
||||
*/
|
||||
bool rate_limit_enabled = 7;
|
||||
|
||||
/*
|
||||
* Time window in seconds for rate limiting calculations
|
||||
*/
|
||||
uint32 rate_limit_window_secs = 8;
|
||||
|
||||
/*
|
||||
* Maximum packets allowed per node within the rate limit window
|
||||
*/
|
||||
uint32 rate_limit_max_packets = 9;
|
||||
|
||||
/*
|
||||
* Enable dropping of unknown/undecryptable packets per rate_limit_window_secs
|
||||
*/
|
||||
bool drop_unknown_enabled = 10;
|
||||
|
||||
/*
|
||||
* Number of unknown packets before dropping from a node
|
||||
*/
|
||||
uint32 unknown_packet_threshold = 11;
|
||||
|
||||
/*
|
||||
* Set hop_limit to 0 for relayed telemetry broadcasts (own packets unaffected)
|
||||
*/
|
||||
bool exhaust_hop_telemetry = 12;
|
||||
|
||||
/*
|
||||
* Set hop_limit to 0 for relayed position broadcasts (own packets unaffected)
|
||||
*/
|
||||
bool exhaust_hop_position = 13;
|
||||
|
||||
/*
|
||||
* Preserve hop_limit for router-to-router traffic
|
||||
*/
|
||||
bool router_preserve_hops = 14;
|
||||
}
|
||||
|
||||
/*
|
||||
* Serial Config
|
||||
*/
|
||||
@@ -337,9 +415,12 @@ message ModuleConfig {
|
||||
// VE.Direct is a serial protocol used by Victron Energy products
|
||||
// https://beta.ivc.no/wiki/index.php/Victron_VE_Direct_DIY_Cable
|
||||
VE_DIRECT = 7;
|
||||
//Used to configure and view some parameters of MeshSolar.
|
||||
//https://heltec.org/project/meshsolar/
|
||||
// Used to configure and view some parameters of MeshSolar.
|
||||
// https://heltec.org/project/meshsolar/
|
||||
MS_CONFIG = 8;
|
||||
// Logs mesh traffic to the serial pins, ideal for logging via openLog or similar.
|
||||
LOG = 9; // includes other packets
|
||||
LOGTEXT = 10; // only text (channel & DM)
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -621,6 +702,11 @@ message ModuleConfig {
|
||||
* Note: We will still send telemtry to the connected phone / client every minute over the API
|
||||
*/
|
||||
bool device_telemetry_enabled = 14;
|
||||
|
||||
/*
|
||||
* Enable/Disable the air quality telemetry measurement module on-device display
|
||||
*/
|
||||
bool air_quality_screen_enabled = 15;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -761,6 +847,16 @@ message ModuleConfig {
|
||||
uint32 blue = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* StatusMessage config - Allows setting a status message for a node to periodically rebroadcast
|
||||
*/
|
||||
message StatusMessageConfig {
|
||||
/*
|
||||
* The actual status string
|
||||
*/
|
||||
string node_status = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
@@ -829,6 +925,37 @@ message ModuleConfig {
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
PaxcounterConfig paxcounter = 13;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
StatusMessageConfig statusmessage = 14;
|
||||
|
||||
/*
|
||||
* Traffic management module config for mesh network optimization
|
||||
*/
|
||||
TrafficManagementConfig traffic_management = 15;
|
||||
|
||||
/*
|
||||
* TAK team/role configuration for TAK_TRACKER
|
||||
*/
|
||||
TAKConfig tak = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* TAK team/role configuration
|
||||
*/
|
||||
message TAKConfig {
|
||||
/*
|
||||
* Team color.
|
||||
* Default Unspecifed_Color -> firmware uses Cyan
|
||||
*/
|
||||
Team team = 1;
|
||||
/*
|
||||
* Member role.
|
||||
* Default Unspecifed -> firmware uses TeamMember
|
||||
*/
|
||||
MemberRole role = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import "meshtastic/mesh.proto";
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "MQTTProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "PaxcountProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "Portnums";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -115,6 +115,11 @@ enum PortNum {
|
||||
*/
|
||||
KEY_VERIFICATION_APP = 12;
|
||||
|
||||
/*
|
||||
* Module/port for handling primitive remote shell access.
|
||||
*/
|
||||
REMOTE_SHELL_APP = 13;
|
||||
|
||||
/*
|
||||
* Provides a 'ping' service that replies to any packet it receives.
|
||||
* Also serves as a small example module.
|
||||
@@ -134,6 +139,22 @@ enum PortNum {
|
||||
*/
|
||||
PAXCOUNTER_APP = 34;
|
||||
|
||||
/*
|
||||
* Store and Forward++ module included in the firmware
|
||||
* ENCODING: protobuf
|
||||
* This module is specifically for Native Linux nodes, and provides a Git-style
|
||||
* chain of messages.
|
||||
*/
|
||||
STORE_FORWARD_PLUSPLUS_APP = 35;
|
||||
|
||||
/*
|
||||
* Node Status module
|
||||
* ENCODING: protobuf
|
||||
* This module allows setting an extra string of status for a node.
|
||||
* Broadcasts on change and on a timer, possibly once a day.
|
||||
*/
|
||||
NODE_STATUS_APP = 36;
|
||||
|
||||
/*
|
||||
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
@@ -211,6 +232,12 @@ enum PortNum {
|
||||
*/
|
||||
POWERSTRESS_APP = 74;
|
||||
|
||||
/*
|
||||
* LoraWAN Payload Transport
|
||||
* ENCODING: compact binary LoRaWAN uplink (10-byte RF metadata + PHY payload) - see LoRaWANBridgeModule
|
||||
*/
|
||||
LORAWAN_BRIDGE = 75;
|
||||
|
||||
/*
|
||||
* Reticulum Network Stack Tunnel App
|
||||
* ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
|
||||
@@ -224,6 +251,20 @@ enum PortNum {
|
||||
*/
|
||||
CAYENNE_APP = 77;
|
||||
|
||||
/*
|
||||
* ATAK Plugin V2
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin using
|
||||
* TAKPacketV2 with zstd dictionary compression.
|
||||
*/
|
||||
ATAK_PLUGIN_V2 = 78;
|
||||
|
||||
/*
|
||||
* GroupAlarm integration
|
||||
* Used for transporting GroupAlarm-related messages between Meshtastic nodes
|
||||
* and companion applications/services.
|
||||
*/
|
||||
GROUPALARM_APP = 112;
|
||||
|
||||
/*
|
||||
* Private applications should use portnums >= 256.
|
||||
* To simplify initial development and testing you can use "PRIVATE_APP"
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "PowerMonProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/* Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs).
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "RemoteHardware";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "RTTTLConfigProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package meshtastic;
|
||||
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "SerialHal";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
// SerialHalCommand messages are sent from host to device over the SerialHal
|
||||
// framing stream. Responses normally come back as SerialHalResponse with the
|
||||
// same transaction_id.
|
||||
//
|
||||
// Interrupt notifications are the one asynchronous exception: the device emits
|
||||
// an unsolicited SerialHalResponse with transaction_id == 0 and value == pin.
|
||||
// Host implementations should treat those frames as interrupt events rather
|
||||
// than replies to an outstanding request.
|
||||
|
||||
message SerialHalCommand {
|
||||
enum Type {
|
||||
UNSET = 0;
|
||||
PIN_MODE = 1;
|
||||
DIGITAL_WRITE = 2;
|
||||
DIGITAL_READ = 3;
|
||||
ATTACH_INTERRUPT = 4;
|
||||
DETACH_INTERRUPT = 5;
|
||||
SPI_TRANSFER = 6;
|
||||
NOOP = 7;
|
||||
}
|
||||
|
||||
// Host-assigned request id. Replies echo this id back in
|
||||
// SerialHalResponse.transaction_id.
|
||||
uint32 transaction_id = 1;
|
||||
Type type = 2;
|
||||
uint32 pin = 3;
|
||||
uint32 value = 4;
|
||||
uint32 mode = 5;
|
||||
bytes data = 6;
|
||||
}
|
||||
|
||||
message SerialHalResponse {
|
||||
enum Result {
|
||||
OK = 0;
|
||||
ERROR = 1;
|
||||
BAD_REQUEST = 2;
|
||||
UNSUPPORTED = 3;
|
||||
}
|
||||
|
||||
// Matches the originating SerialHalCommand.transaction_id for normal
|
||||
// request/response traffic.
|
||||
//
|
||||
// A value of 0 indicates an unsolicited interrupt notification generated by
|
||||
// the device. In that case, the host should interpret value as the GPIO pin
|
||||
// that triggered.
|
||||
uint32 transaction_id = 1;
|
||||
Result result = 2;
|
||||
// Used by DIGITAL_READ replies and interrupt notifications. For interrupt
|
||||
// notifications (transaction_id == 0), this carries the pin number.
|
||||
uint32 value = 3;
|
||||
bytes data = 4;
|
||||
string error = 5;
|
||||
}
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "StoreAndForwardProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "TelemetryProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
/*
|
||||
@@ -153,6 +153,11 @@ message EnvironmentMetrics {
|
||||
* Soil temperature measured (*C)
|
||||
*/
|
||||
optional float soil_temperature = 22;
|
||||
|
||||
/*
|
||||
* One-wire temperature (*C)
|
||||
*/
|
||||
repeated float one_wire_temperature = 23;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -443,6 +448,51 @@ message LocalStats {
|
||||
* Number of packets that were dropped because the transmit queue was full.
|
||||
*/
|
||||
uint32 num_tx_dropped = 14;
|
||||
|
||||
/*
|
||||
* Noise floor value measured in dBm
|
||||
*/
|
||||
int32 noise_floor = 15;
|
||||
}
|
||||
|
||||
/*
|
||||
* Traffic management statistics for mesh network optimization
|
||||
*/
|
||||
message TrafficManagementStats {
|
||||
/*
|
||||
* Total number of packets inspected by traffic management
|
||||
*/
|
||||
uint32 packets_inspected = 1;
|
||||
|
||||
/*
|
||||
* Number of position packets dropped due to deduplication
|
||||
*/
|
||||
uint32 position_dedup_drops = 2;
|
||||
|
||||
/*
|
||||
* Number of NodeInfo requests answered from cache
|
||||
*/
|
||||
uint32 nodeinfo_cache_hits = 3;
|
||||
|
||||
/*
|
||||
* Number of packets dropped due to rate limiting
|
||||
*/
|
||||
uint32 rate_limit_drops = 4;
|
||||
|
||||
/*
|
||||
* Number of unknown/undecryptable packets dropped
|
||||
*/
|
||||
uint32 unknown_packet_drops = 5;
|
||||
|
||||
/*
|
||||
* Number of packets with hop_limit exhausted for local-only broadcast
|
||||
*/
|
||||
uint32 hop_exhausted_packets = 6;
|
||||
|
||||
/*
|
||||
* Number of times router hop preservation was applied
|
||||
*/
|
||||
uint32 router_hops_preserved = 7;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -560,6 +610,11 @@ message Telemetry {
|
||||
* Linux host metrics
|
||||
*/
|
||||
HostMetrics host_metrics = 8;
|
||||
|
||||
/*
|
||||
* Traffic management statistics
|
||||
*/
|
||||
TrafficManagementStats traffic_management_stats = 9;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,7 +658,7 @@ enum TelemetrySensorType {
|
||||
BMP280 = 6;
|
||||
|
||||
/*
|
||||
* High accuracy temperature and humidity
|
||||
* TODO - REMOVE High accuracy temperature and humidity
|
||||
*/
|
||||
SHTC3 = 7;
|
||||
|
||||
@@ -628,7 +683,7 @@ enum TelemetrySensorType {
|
||||
QMC5883L = 11;
|
||||
|
||||
/*
|
||||
* High accuracy temperature and humidity
|
||||
* TODO - REMOVE High accuracy temperature and humidity
|
||||
*/
|
||||
SHT31 = 12;
|
||||
|
||||
@@ -653,7 +708,7 @@ enum TelemetrySensorType {
|
||||
RCWL9620 = 16;
|
||||
|
||||
/*
|
||||
* Sensirion High accuracy temperature and humidity
|
||||
* TODO - REMOVE Sensirion High accuracy temperature and humidity
|
||||
*/
|
||||
SHT4X = 17;
|
||||
|
||||
@@ -786,10 +841,56 @@ enum TelemetrySensorType {
|
||||
* SEN5X PM SENSORS
|
||||
*/
|
||||
SEN5X = 43;
|
||||
|
||||
/*
|
||||
* TSL2561 light sensor
|
||||
*/
|
||||
TSL2561 = 44;
|
||||
|
||||
/*
|
||||
* BH1750 light sensor
|
||||
*/
|
||||
BH1750 = 45;
|
||||
|
||||
/*
|
||||
* HDC1080 Temperature and Humidity Sensor
|
||||
*/
|
||||
HDC1080 = 46;
|
||||
|
||||
/*
|
||||
* TODO - REMOVE STH21 Temperature and R. Humidity sensor
|
||||
*/
|
||||
SHT21 = 47;
|
||||
|
||||
/*
|
||||
* Sensirion STC31 CO2 sensor
|
||||
*/
|
||||
STC31 = 48;
|
||||
|
||||
/*
|
||||
* SCD30 CO2, humidity, temperature sensor
|
||||
*/
|
||||
SCD30 = 49;
|
||||
|
||||
/*
|
||||
* SHT family of sensors for temperature and humidity
|
||||
*/
|
||||
SHTXX = 50;
|
||||
|
||||
/*
|
||||
* DS248X Bridge for one-wire temperature sensors
|
||||
*/
|
||||
DS248X = 51;
|
||||
|
||||
/*
|
||||
* MMC5983MA 3-Axis Digital Magnetic Sensor
|
||||
*/
|
||||
MMC5983MA = 52;
|
||||
|
||||
/*
|
||||
* ICM-42607-P 6‑Axis IMU
|
||||
*/
|
||||
ICM42607P = 53;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -806,3 +907,38 @@ message Nau7802Config {
|
||||
*/
|
||||
float calibrationFactor = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* SEN5X State, for saving to flash
|
||||
*/
|
||||
message SEN5XState {
|
||||
/*
|
||||
* Last cleaning time for SEN5X
|
||||
*/
|
||||
uint32 last_cleaning_time = 1;
|
||||
|
||||
/*
|
||||
* Last cleaning time for SEN5X - valid flag
|
||||
*/
|
||||
bool last_cleaning_valid = 2;
|
||||
|
||||
/*
|
||||
* Config flag for one-shot mode (see admin.proto)
|
||||
*/
|
||||
bool one_shot_mode = 3;
|
||||
|
||||
/*
|
||||
* Last VOC state time for SEN55
|
||||
*/
|
||||
optional uint32 voc_state_time = 4;
|
||||
|
||||
/*
|
||||
* Last VOC state validity flag for SEN55
|
||||
*/
|
||||
optional bool voc_state_valid = 5;
|
||||
|
||||
/*
|
||||
* VOC state array (8x uint8t) for SEN55
|
||||
*/
|
||||
optional fixed64 voc_state_array = 6;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ package meshtastic;
|
||||
option csharp_namespace = "Meshtastic.Protobufs";
|
||||
option go_package = "github.com/meshtastic/go/generated";
|
||||
option java_outer_classname = "XmodemProtos";
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_package = "org.meshtastic.proto";
|
||||
option swift_prefix = "";
|
||||
|
||||
message XModem {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@meshtastic/protobufs-ws",
|
||||
"name": "@meshtastic/protobufs",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
@@ -9,20 +9,18 @@
|
||||
"./packages/ts/dist/"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./packages/ts/dist/mod.d.ts",
|
||||
"default": "./packages/ts/dist/mod.js"
|
||||
},
|
||||
"./*": "./packages/ts/dist/*"
|
||||
".": "./packages/ts/mod.ts"
|
||||
},
|
||||
"types": "./packages/ts/dist/mod.d.ts",
|
||||
"types": "./packages/ts/mod.ts",
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"gen": "buf generate",
|
||||
"clean": "rimraf dist",
|
||||
"clean": "rimraf packages/ts/dist",
|
||||
"build": "pnpm run clean && pnpm run gen"
|
||||
},
|
||||
"dependencies": {},
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@bufbuild/protoc-gen-es": "^1.9.0",
|
||||
"rimraf": "^6.0.0"
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,53 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/apponly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { ChannelSettings } from "./channel_pb";
|
||||
import { file_meshtastic_channel } from "./channel_pb";
|
||||
import type { Config_LoRaConfig } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/apponly.proto.
|
||||
*/
|
||||
export const file_meshtastic_apponly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChhtZXNodGFzdGljL2FwcG9ubHkucHJvdG8SCm1lc2h0YXN0aWMibwoKQ2hhbm5lbFNldBItCghzZXR0aW5ncxgBIAMoCzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEjIKC2xvcmFfY29uZmlnGAIgASgLMh0ubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZ0JjChRvcmcubWVzaHRhc3RpYy5wcm90b0INQXBwT25seVByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_channel, file_meshtastic_config]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This is the most compact possible representation for a set of channels.
|
||||
* It includes only one PRIMARY channel (which must be first) and
|
||||
* any SECONDARY channels.
|
||||
* No DISABLED channels are included.
|
||||
* This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL
|
||||
*
|
||||
* @generated from message meshtastic.ChannelSet
|
||||
*/
|
||||
export type ChannelSet = Message<"meshtastic.ChannelSet"> & {
|
||||
/**
|
||||
*
|
||||
* Channel list with settings
|
||||
*
|
||||
* @generated from field: repeated meshtastic.ChannelSettings settings = 1;
|
||||
*/
|
||||
settings: ChannelSettings[];
|
||||
|
||||
/**
|
||||
*
|
||||
* LoRa config
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig lora_config = 2;
|
||||
*/
|
||||
loraConfig?: Config_LoRaConfig | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelSet.
|
||||
* Use `create(ChannelSetSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSetSchema: GenMessage<ChannelSet> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_apponly, 0);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,37 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/cannedmessages.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/cannedmessages.proto.
|
||||
*/
|
||||
export const file_meshtastic_cannedmessages: GenFile = /*@__PURE__*/
|
||||
fileDesc("Ch9tZXNodGFzdGljL2Nhbm5lZG1lc3NhZ2VzLnByb3RvEgptZXNodGFzdGljIi0KGUNhbm5lZE1lc3NhZ2VNb2R1bGVDb25maWcSEAoIbWVzc2FnZXMYASABKAlCbwoUb3JnLm1lc2h0YXN0aWMucHJvdG9CGUNhbm5lZE1lc3NhZ2VDb25maWdQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
*
|
||||
* Canned message module configuration.
|
||||
*
|
||||
* @generated from message meshtastic.CannedMessageModuleConfig
|
||||
*/
|
||||
export type CannedMessageModuleConfig = Message<"meshtastic.CannedMessageModuleConfig"> & {
|
||||
/**
|
||||
*
|
||||
* Predefined messages for canned message module separated by '|' characters.
|
||||
*
|
||||
* @generated from field: string messages = 1;
|
||||
*/
|
||||
messages: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.CannedMessageModuleConfig.
|
||||
* Use `create(CannedMessageModuleConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const CannedMessageModuleConfigSchema: GenMessage<CannedMessageModuleConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_cannedmessages, 0);
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/channel.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
// trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH)
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/channel.proto.
|
||||
*/
|
||||
export const file_meshtastic_channel: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChhtZXNodGFzdGljL2NoYW5uZWwucHJvdG8SCm1lc2h0YXN0aWMiuAEKD0NoYW5uZWxTZXR0aW5ncxIXCgtjaGFubmVsX251bRgBIAEoDUICGAESCwoDcHNrGAIgASgMEgwKBG5hbWUYAyABKAkSCgoCaWQYBCABKAcSFgoOdXBsaW5rX2VuYWJsZWQYBSABKAgSGAoQZG93bmxpbmtfZW5hYmxlZBgGIAEoCBIzCg9tb2R1bGVfc2V0dGluZ3MYByABKAsyGi5tZXNodGFzdGljLk1vZHVsZVNldHRpbmdzIj4KDk1vZHVsZVNldHRpbmdzEhoKEnBvc2l0aW9uX3ByZWNpc2lvbhgBIAEoDRIQCghpc19tdXRlZBgCIAEoCCKhAQoHQ2hhbm5lbBINCgVpbmRleBgBIAEoBRItCghzZXR0aW5ncxgCIAEoCzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEiYKBHJvbGUYAyABKA4yGC5tZXNodGFzdGljLkNoYW5uZWwuUm9sZSIwCgRSb2xlEgwKCERJU0FCTEVEEAASCwoHUFJJTUFSWRABEg0KCVNFQ09OREFSWRACQmMKFG9yZy5tZXNodGFzdGljLnByb3RvQg1DaGFubmVsUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* This information can be encoded as a QRcode/url so that other users can configure
|
||||
* their radio to join the same channel.
|
||||
* 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).
|
||||
* 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
|
||||
* force a new PSK) this letter will also change. Thus preventing user confusion if
|
||||
* two friends try to type in a channel name of "BobsChan" and then can't talk
|
||||
* because their PSKs will be different.
|
||||
* 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
|
||||
* users COULD type in a channel name and be able to talk.
|
||||
* FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
|
||||
* FIXME: explain how apps use channels for security.
|
||||
* explain how remote settings and remote gpio are managed as an example
|
||||
*
|
||||
* @generated from message meshtastic.ChannelSettings
|
||||
*/
|
||||
export type ChannelSettings = Message<"meshtastic.ChannelSettings"> & {
|
||||
/**
|
||||
*
|
||||
* Deprecated in favor of LoraConfig.channel_num
|
||||
*
|
||||
* @generated from field: uint32 channel_num = 1 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
channelNum: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* A simple pre-shared key for now for crypto.
|
||||
* Must be either 0 bytes (no crypto), 16 bytes (AES128), or 32 bytes (AES256).
|
||||
* A special shorthand is used for 1 byte long psks.
|
||||
* These psks should be treated as only minimally secure,
|
||||
* because they are listed in this source code.
|
||||
* Those bytes are mapped using the following scheme:
|
||||
* `0` = No crypto
|
||||
* `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.
|
||||
* Shown to user as simple1 through 10
|
||||
*
|
||||
* @generated from field: bytes psk = 2;
|
||||
*/
|
||||
psk: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* A SHORT name that will be packed into the URL.
|
||||
* Less than 12 bytes.
|
||||
* Something for end users to call the channel
|
||||
* If this is the empty string it is assumed that this channel
|
||||
* is the special (minimally secure) "Default"channel.
|
||||
* In user interfaces it should be rendered as a local language translation of "X".
|
||||
* For channel_num hashing empty string will be treated as "X".
|
||||
* Where "X" is selected based on the English words listed above for ModemPreset
|
||||
*
|
||||
* @generated from field: string name = 3;
|
||||
*/
|
||||
name: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Used to construct a globally unique channel ID.
|
||||
* The full globally unique ID will be: "name.id" where ID is shown as base36.
|
||||
* Assuming that the number of meshtastic users is below 20K (true for a long time)
|
||||
* the chance of this 64 bit random number colliding with anyone else is super low.
|
||||
* And the penalty for collision is low as well, it just means that anyone trying to decrypt channel messages might need to
|
||||
* try multiple candidate channels.
|
||||
* Any time a non wire compatible change is made to a channel, this field should be regenerated.
|
||||
* There are a small number of 'special' globally known (and fairly) insecure standard channels.
|
||||
* Those channels do not have a numeric id included in the settings, but instead it is pulled from
|
||||
* a table of well known IDs.
|
||||
* (see Well Known Channels FIXME)
|
||||
*
|
||||
* @generated from field: fixed32 id = 4;
|
||||
*/
|
||||
id: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe
|
||||
*
|
||||
* @generated from field: bool uplink_enabled = 5;
|
||||
*/
|
||||
uplinkEnabled: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* If true, messages seen on the internet will be forwarded to the local mesh.
|
||||
*
|
||||
* @generated from field: bool downlink_enabled = 6;
|
||||
*/
|
||||
downlinkEnabled: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Per-channel module settings.
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleSettings module_settings = 7;
|
||||
*/
|
||||
moduleSettings?: ModuleSettings | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelSettings.
|
||||
* Use `create(ChannelSettingsSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSettingsSchema: GenMessage<ChannelSettings> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message is specifically for modules to store per-channel configuration data.
|
||||
*
|
||||
* @generated from message meshtastic.ModuleSettings
|
||||
*/
|
||||
export type ModuleSettings = Message<"meshtastic.ModuleSettings"> & {
|
||||
/**
|
||||
*
|
||||
* Bits of precision for the location sent in position packets.
|
||||
*
|
||||
* @generated from field: uint32 position_precision = 1;
|
||||
*/
|
||||
positionPrecision: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Controls whether or not the client / device should mute the current channel
|
||||
* Useful for noisy public channels you don't necessarily want to disable
|
||||
*
|
||||
* @generated from field: bool is_muted = 2;
|
||||
*/
|
||||
isMuted: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ModuleSettings.
|
||||
* Use `create(ModuleSettingsSchema)` to create a new message.
|
||||
*/
|
||||
export const ModuleSettingsSchema: GenMessage<ModuleSettings> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* A pair of a channel number, mode and the (sharable) settings for that channel
|
||||
*
|
||||
* @generated from message meshtastic.Channel
|
||||
*/
|
||||
export type Channel = Message<"meshtastic.Channel"> & {
|
||||
/**
|
||||
*
|
||||
* The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1)
|
||||
* (Someday - not currently implemented) An index of -1 could be used to mean "set by name",
|
||||
* in which case the target node will find and set the channel by settings.name.
|
||||
*
|
||||
* @generated from field: int32 index = 1;
|
||||
*/
|
||||
index: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The new settings, or NULL to disable that channel
|
||||
*
|
||||
* @generated from field: meshtastic.ChannelSettings settings = 2;
|
||||
*/
|
||||
settings?: ChannelSettings | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.Channel.Role role = 3;
|
||||
*/
|
||||
role: Channel_Role;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Channel.
|
||||
* Use `create(ChannelSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelSchema: GenMessage<Channel> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_channel, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* How this channel is being used (or not).
|
||||
* Note: this field is an enum to give us options for the future.
|
||||
* In particular, someday we might make a 'SCANNING' option.
|
||||
* SCANNING channels could have different frequencies and the radio would
|
||||
* occasionally check that freq to see if anything is being transmitted.
|
||||
* For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow
|
||||
* cross band routing as needed.
|
||||
* If a device has only a single radio (the common case) only one channel can be PRIMARY at a time
|
||||
* (but any number of SECONDARY channels can't be sent received on that common frequency)
|
||||
*
|
||||
* @generated from enum meshtastic.Channel.Role
|
||||
*/
|
||||
export enum Channel_Role {
|
||||
/**
|
||||
*
|
||||
* This channel is not in use right now
|
||||
*
|
||||
* @generated from enum value: DISABLED = 0;
|
||||
*/
|
||||
DISABLED = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
|
||||
*
|
||||
* @generated from enum value: PRIMARY = 1;
|
||||
*/
|
||||
PRIMARY = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Secondary channels are only used for encryption/decryption/authentication purposes.
|
||||
* Their radio settings (freq etc) are ignored, only psk is used.
|
||||
*
|
||||
* @generated from enum value: SECONDARY = 2;
|
||||
*/
|
||||
SECONDARY = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Channel.Role.
|
||||
*/
|
||||
export const Channel_RoleSchema: GenEnum<Channel_Role> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_channel, 2, 0);
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/clientonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { LocalConfig, LocalModuleConfig } from "./localonly_pb";
|
||||
import { file_meshtastic_localonly } from "./localonly_pb";
|
||||
import type { Position } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/clientonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_clientonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL2NsaWVudG9ubHkucHJvdG8SCm1lc2h0YXN0aWMiqQMKDURldmljZVByb2ZpbGUSFgoJbG9uZ19uYW1lGAEgASgJSACIAQESFwoKc2hvcnRfbmFtZRgCIAEoCUgBiAEBEhgKC2NoYW5uZWxfdXJsGAMgASgJSAKIAQESLAoGY29uZmlnGAQgASgLMhcubWVzaHRhc3RpYy5Mb2NhbENvbmZpZ0gDiAEBEjkKDW1vZHVsZV9jb25maWcYBSABKAsyHS5tZXNodGFzdGljLkxvY2FsTW9kdWxlQ29uZmlnSASIAQESMQoOZml4ZWRfcG9zaXRpb24YBiABKAsyFC5tZXNodGFzdGljLlBvc2l0aW9uSAWIAQESFQoIcmluZ3RvbmUYByABKAlIBogBARIcCg9jYW5uZWRfbWVzc2FnZXMYCCABKAlIB4gBAUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQg4KDF9jaGFubmVsX3VybEIJCgdfY29uZmlnQhAKDl9tb2R1bGVfY29uZmlnQhEKD19maXhlZF9wb3NpdGlvbkILCglfcmluZ3RvbmVCEgoQX2Nhbm5lZF9tZXNzYWdlc0JmChRvcmcubWVzaHRhc3RpYy5wcm90b0IQQ2xpZW50T25seVByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_localonly, file_meshtastic_mesh]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This abstraction is used to contain any configuration for provisioning a node on any client.
|
||||
* It is useful for importing and exporting configurations.
|
||||
*
|
||||
* @generated from message meshtastic.DeviceProfile
|
||||
*/
|
||||
export type DeviceProfile = Message<"meshtastic.DeviceProfile"> & {
|
||||
/**
|
||||
*
|
||||
* Long name for the node
|
||||
*
|
||||
* @generated from field: optional string long_name = 1;
|
||||
*/
|
||||
longName?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Short name of the node
|
||||
*
|
||||
* @generated from field: optional string short_name = 2;
|
||||
*/
|
||||
shortName?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The url of the channels from our node
|
||||
*
|
||||
* @generated from field: optional string channel_url = 3;
|
||||
*/
|
||||
channelUrl?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The Config of the node
|
||||
*
|
||||
* @generated from field: optional meshtastic.LocalConfig config = 4;
|
||||
*/
|
||||
config?: LocalConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The ModuleConfig of the node
|
||||
*
|
||||
* @generated from field: optional meshtastic.LocalModuleConfig module_config = 5;
|
||||
*/
|
||||
moduleConfig?: LocalModuleConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Fixed position data
|
||||
*
|
||||
* @generated from field: optional meshtastic.Position fixed_position = 6;
|
||||
*/
|
||||
fixedPosition?: Position | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Ringtone for ExternalNotification
|
||||
*
|
||||
* @generated from field: optional string ringtone = 7;
|
||||
*/
|
||||
ringtone?: string | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Predefined messages for CannedMessage
|
||||
*
|
||||
* @generated from field: optional string canned_messages = 8;
|
||||
*/
|
||||
cannedMessages?: string | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceProfile.
|
||||
* Use `create(DeviceProfileSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceProfileSchema: GenMessage<DeviceProfile> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_clientonly, 0);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,237 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/connection_status.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/connection_status.proto.
|
||||
*/
|
||||
export const file_meshtastic_connection_status: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiJtZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvEgptZXNodGFzdGljIrECChZEZXZpY2VDb25uZWN0aW9uU3RhdHVzEjMKBHdpZmkYASABKAsyIC5tZXNodGFzdGljLldpZmlDb25uZWN0aW9uU3RhdHVzSACIAQESOwoIZXRoZXJuZXQYAiABKAsyJC5tZXNodGFzdGljLkV0aGVybmV0Q29ubmVjdGlvblN0YXR1c0gBiAEBEj0KCWJsdWV0b290aBgDIAEoCzIlLm1lc2h0YXN0aWMuQmx1ZXRvb3RoQ29ubmVjdGlvblN0YXR1c0gCiAEBEjcKBnNlcmlhbBgEIAEoCzIiLm1lc2h0YXN0aWMuU2VyaWFsQ29ubmVjdGlvblN0YXR1c0gDiAEBQgcKBV93aWZpQgsKCV9ldGhlcm5ldEIMCgpfYmx1ZXRvb3RoQgkKB19zZXJpYWwiZwoUV2lmaUNvbm5lY3Rpb25TdGF0dXMSMwoGc3RhdHVzGAEgASgLMiMubWVzaHRhc3RpYy5OZXR3b3JrQ29ubmVjdGlvblN0YXR1cxIMCgRzc2lkGAIgASgJEgwKBHJzc2kYAyABKAUiTwoYRXRoZXJuZXRDb25uZWN0aW9uU3RhdHVzEjMKBnN0YXR1cxgBIAEoCzIjLm1lc2h0YXN0aWMuTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMiewoXTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMSEgoKaXBfYWRkcmVzcxgBIAEoBxIUCgxpc19jb25uZWN0ZWQYAiABKAgSGQoRaXNfbXF0dF9jb25uZWN0ZWQYAyABKAgSGwoTaXNfc3lzbG9nX2Nvbm5lY3RlZBgEIAEoCCJMChlCbHVldG9vdGhDb25uZWN0aW9uU3RhdHVzEgsKA3BpbhgBIAEoDRIMCgRyc3NpGAIgASgFEhQKDGlzX2Nvbm5lY3RlZBgDIAEoCCI8ChZTZXJpYWxDb25uZWN0aW9uU3RhdHVzEgwKBGJhdWQYASABKA0SFAoMaXNfY29ubmVjdGVkGAIgASgIQmYKFG9yZy5tZXNodGFzdGljLnByb3RvQhBDb25uU3RhdHVzUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.DeviceConnectionStatus
|
||||
*/
|
||||
export type DeviceConnectionStatus = Message<"meshtastic.DeviceConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* WiFi Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.WifiConnectionStatus wifi = 1;
|
||||
*/
|
||||
wifi?: WifiConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.EthernetConnectionStatus ethernet = 2;
|
||||
*/
|
||||
ethernet?: EthernetConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Bluetooth Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.BluetoothConnectionStatus bluetooth = 3;
|
||||
*/
|
||||
bluetooth?: BluetoothConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Serial Status
|
||||
*
|
||||
* @generated from field: optional meshtastic.SerialConnectionStatus serial = 4;
|
||||
*/
|
||||
serial?: SerialConnectionStatus | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceConnectionStatus.
|
||||
* Use `create(DeviceConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceConnectionStatusSchema: GenMessage<DeviceConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi connection status
|
||||
*
|
||||
* @generated from message meshtastic.WifiConnectionStatus
|
||||
*/
|
||||
export type WifiConnectionStatus = Message<"meshtastic.WifiConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Connection status
|
||||
*
|
||||
* @generated from field: meshtastic.NetworkConnectionStatus status = 1;
|
||||
*/
|
||||
status?: NetworkConnectionStatus | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* WiFi access point SSID
|
||||
*
|
||||
* @generated from field: string ssid = 2;
|
||||
*/
|
||||
ssid: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* RSSI of wireless connection
|
||||
*
|
||||
* @generated from field: int32 rssi = 3;
|
||||
*/
|
||||
rssi: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.WifiConnectionStatus.
|
||||
* Use `create(WifiConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const WifiConnectionStatusSchema: GenMessage<WifiConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* Ethernet connection status
|
||||
*
|
||||
* @generated from message meshtastic.EthernetConnectionStatus
|
||||
*/
|
||||
export type EthernetConnectionStatus = Message<"meshtastic.EthernetConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Connection status
|
||||
*
|
||||
* @generated from field: meshtastic.NetworkConnectionStatus status = 1;
|
||||
*/
|
||||
status?: NetworkConnectionStatus | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.EthernetConnectionStatus.
|
||||
* Use `create(EthernetConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const EthernetConnectionStatusSchema: GenMessage<EthernetConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* Ethernet or WiFi connection status
|
||||
*
|
||||
* @generated from message meshtastic.NetworkConnectionStatus
|
||||
*/
|
||||
export type NetworkConnectionStatus = Message<"meshtastic.NetworkConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* IP address of device
|
||||
*
|
||||
* @generated from field: fixed32 ip_address = 1;
|
||||
*/
|
||||
ipAddress: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 2;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection to an MQTT broker or not
|
||||
*
|
||||
* @generated from field: bool is_mqtt_connected = 3;
|
||||
*/
|
||||
isMqttConnected: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device is actively remote syslogging or not
|
||||
*
|
||||
* @generated from field: bool is_syslog_connected = 4;
|
||||
*/
|
||||
isSyslogConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NetworkConnectionStatus.
|
||||
* Use `create(NetworkConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const NetworkConnectionStatusSchema: GenMessage<NetworkConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 3);
|
||||
|
||||
/**
|
||||
*
|
||||
* Bluetooth connection status
|
||||
*
|
||||
* @generated from message meshtastic.BluetoothConnectionStatus
|
||||
*/
|
||||
export type BluetoothConnectionStatus = Message<"meshtastic.BluetoothConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* The pairing PIN for bluetooth
|
||||
*
|
||||
* @generated from field: uint32 pin = 1;
|
||||
*/
|
||||
pin: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* RSSI of bluetooth connection
|
||||
*
|
||||
* @generated from field: int32 rssi = 2;
|
||||
*/
|
||||
rssi: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 3;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.BluetoothConnectionStatus.
|
||||
* Use `create(BluetoothConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const BluetoothConnectionStatusSchema: GenMessage<BluetoothConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 4);
|
||||
|
||||
/**
|
||||
*
|
||||
* Serial connection status
|
||||
*
|
||||
* @generated from message meshtastic.SerialConnectionStatus
|
||||
*/
|
||||
export type SerialConnectionStatus = Message<"meshtastic.SerialConnectionStatus"> & {
|
||||
/**
|
||||
*
|
||||
* Serial baud rate
|
||||
*
|
||||
* @generated from field: uint32 baud = 1;
|
||||
*/
|
||||
baud: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the device has an active connection or not
|
||||
*
|
||||
* @generated from field: bool is_connected = 2;
|
||||
*/
|
||||
isConnected: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialConnectionStatus.
|
||||
* Use `create(SerialConnectionStatusSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialConnectionStatusSchema: GenMessage<SerialConnectionStatus> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_connection_status, 5);
|
||||
|
||||
@@ -0,0 +1,698 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/device_ui.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/device_ui.proto.
|
||||
*/
|
||||
export const file_meshtastic_device_ui: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChptZXNodGFzdGljL2RldmljZV91aS5wcm90bxIKbWVzaHRhc3RpYyLABQoORGV2aWNlVUlDb25maWcSDwoHdmVyc2lvbhgBIAEoDRIZChFzY3JlZW5fYnJpZ2h0bmVzcxgCIAEoDRIWCg5zY3JlZW5fdGltZW91dBgDIAEoDRITCgtzY3JlZW5fbG9jaxgEIAEoCBIVCg1zZXR0aW5nc19sb2NrGAUgASgIEhAKCHBpbl9jb2RlGAYgASgNEiAKBXRoZW1lGAcgASgOMhEubWVzaHRhc3RpYy5UaGVtZRIVCg1hbGVydF9lbmFibGVkGAggASgIEhYKDmJhbm5lcl9lbmFibGVkGAkgASgIEhQKDHJpbmdfdG9uZV9pZBgKIAEoDRImCghsYW5ndWFnZRgLIAEoDjIULm1lc2h0YXN0aWMuTGFuZ3VhZ2USKwoLbm9kZV9maWx0ZXIYDCABKAsyFi5tZXNodGFzdGljLk5vZGVGaWx0ZXISMQoObm9kZV9oaWdobGlnaHQYDSABKAsyGS5tZXNodGFzdGljLk5vZGVIaWdobGlnaHQSGAoQY2FsaWJyYXRpb25fZGF0YRgOIAEoDBIhCghtYXBfZGF0YRgPIAEoCzIPLm1lc2h0YXN0aWMuTWFwEi0KDGNvbXBhc3NfbW9kZRgQIAEoDjIXLm1lc2h0YXN0aWMuQ29tcGFzc01vZGUSGAoQc2NyZWVuX3JnYl9jb2xvchgRIAEoDRIbChNpc19jbG9ja2ZhY2VfYW5hbG9nGBIgASgIEkIKCmdwc19mb3JtYXQYEyABKA4yLi5tZXNodGFzdGljLkRldmljZVVJQ29uZmlnLkdwc0Nvb3JkaW5hdGVGb3JtYXQiVgoTR3BzQ29vcmRpbmF0ZUZvcm1hdBIHCgNERUMQABIHCgNETVMQARIHCgNVVE0QAhIICgRNR1JTEAMSBwoDT0xDEAQSCAoET1NHUhAFEgcKA01MUxAGIqcBCgpOb2RlRmlsdGVyEhYKDnVua25vd25fc3dpdGNoGAEgASgIEhYKDm9mZmxpbmVfc3dpdGNoGAIgASgIEhkKEXB1YmxpY19rZXlfc3dpdGNoGAMgASgIEhEKCWhvcHNfYXdheRgEIAEoBRIXCg9wb3NpdGlvbl9zd2l0Y2gYBSABKAgSEQoJbm9kZV9uYW1lGAYgASgJEg8KB2NoYW5uZWwYByABKAUifgoNTm9kZUhpZ2hsaWdodBITCgtjaGF0X3N3aXRjaBgBIAEoCBIXCg9wb3NpdGlvbl9zd2l0Y2gYAiABKAgSGAoQdGVsZW1ldHJ5X3N3aXRjaBgDIAEoCBISCgppYXFfc3dpdGNoGAQgASgIEhEKCW5vZGVfbmFtZRgFIAEoCSI9CghHZW9Qb2ludBIMCgR6b29tGAEgASgFEhAKCGxhdGl0dWRlGAIgASgFEhEKCWxvbmdpdHVkZRgDIAEoBSJMCgNNYXASIgoEaG9tZRgBIAEoCzIULm1lc2h0YXN0aWMuR2VvUG9pbnQSDQoFc3R5bGUYAiABKAkSEgoKZm9sbG93X2dwcxgDIAEoCCo+CgtDb21wYXNzTW9kZRILCgdEWU5BTUlDEAASDgoKRklYRURfUklORxABEhIKDkZSRUVaRV9IRUFESU5HEAIqJQoFVGhlbWUSCAoEREFSSxAAEgkKBUxJR0hUEAESBwoDUkVEEAIqwAIKCExhbmd1YWdlEgsKB0VOR0xJU0gQABIKCgZGUkVOQ0gQARIKCgZHRVJNQU4QAhILCgdJVEFMSUFOEAMSDgoKUE9SVFVHVUVTRRAEEgsKB1NQQU5JU0gQBRILCgdTV0VESVNIEAYSCwoHRklOTklTSBAHEgoKBlBPTElTSBAIEgsKB1RVUktJU0gQCRILCgdTRVJCSUFOEAoSCwoHUlVTU0lBThALEgkKBURVVENIEAwSCQoFR1JFRUsQDRINCglOT1JXRUdJQU4QDhINCglTTE9WRU5JQU4QDxINCglVS1JBSU5JQU4QEBINCglCVUxHQVJJQU4QERIJCgVDWkVDSBASEgoKBkRBTklTSBATEhYKElNJTVBMSUZJRURfQ0hJTkVTRRAeEhcKE1RSQURJVElPTkFMX0NISU5FU0UQH0JkChRvcmcubWVzaHRhc3RpYy5wcm90b0IORGV2aWNlVUlQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.DeviceUIConfig
|
||||
*/
|
||||
export type DeviceUIConfig = Message<"meshtastic.DeviceUIConfig"> & {
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate saved files when we make incompatible changes.
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TFT display brightness 1..255
|
||||
*
|
||||
* @generated from field: uint32 screen_brightness = 2;
|
||||
*/
|
||||
screenBrightness: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Screen timeout 0..900
|
||||
*
|
||||
* @generated from field: uint32 screen_timeout = 3;
|
||||
*/
|
||||
screenTimeout: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Screen/Settings lock enabled
|
||||
*
|
||||
* @generated from field: bool screen_lock = 4;
|
||||
*/
|
||||
screenLock: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool settings_lock = 5;
|
||||
*/
|
||||
settingsLock: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 pin_code = 6;
|
||||
*/
|
||||
pinCode: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Color theme
|
||||
*
|
||||
* @generated from field: meshtastic.Theme theme = 7;
|
||||
*/
|
||||
theme: Theme;
|
||||
|
||||
/**
|
||||
*
|
||||
* Audible message, banner and ring tone
|
||||
*
|
||||
* @generated from field: bool alert_enabled = 8;
|
||||
*/
|
||||
alertEnabled: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool banner_enabled = 9;
|
||||
*/
|
||||
bannerEnabled: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 ring_tone_id = 10;
|
||||
*/
|
||||
ringToneId: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Localization
|
||||
*
|
||||
* @generated from field: meshtastic.Language language = 11;
|
||||
*/
|
||||
language: Language;
|
||||
|
||||
/**
|
||||
*
|
||||
* Node list filter
|
||||
*
|
||||
* @generated from field: meshtastic.NodeFilter node_filter = 12;
|
||||
*/
|
||||
nodeFilter?: NodeFilter | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Node list highlightening
|
||||
*
|
||||
* @generated from field: meshtastic.NodeHighlight node_highlight = 13;
|
||||
*/
|
||||
nodeHighlight?: NodeHighlight | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* 8 integers for screen calibration data
|
||||
*
|
||||
* @generated from field: bytes calibration_data = 14;
|
||||
*/
|
||||
calibrationData: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map related data
|
||||
*
|
||||
* @generated from field: meshtastic.Map map_data = 15;
|
||||
*/
|
||||
mapData?: Map | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass mode
|
||||
*
|
||||
* @generated from field: meshtastic.CompassMode compass_mode = 16;
|
||||
*/
|
||||
compassMode: CompassMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* RGB color for BaseUI
|
||||
* 0xRRGGBB format, e.g. 0xFF0000 for red
|
||||
*
|
||||
* @generated from field: uint32 screen_rgb_color = 17;
|
||||
*/
|
||||
screenRgbColor: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Clockface analog style
|
||||
* true for analog clockface, false for digital clockface
|
||||
*
|
||||
* @generated from field: bool is_clockface_analog = 18;
|
||||
*/
|
||||
isClockfaceAnalog: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* How the GPS coordinates are formatted on the OLED screen.
|
||||
*
|
||||
* @generated from field: meshtastic.DeviceUIConfig.GpsCoordinateFormat gps_format = 19;
|
||||
*/
|
||||
gpsFormat: DeviceUIConfig_GpsCoordinateFormat;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceUIConfig.
|
||||
* Use `create(DeviceUIConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceUIConfigSchema: GenMessage<DeviceUIConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*
|
||||
* @generated from enum meshtastic.DeviceUIConfig.GpsCoordinateFormat
|
||||
*/
|
||||
export enum DeviceUIConfig_GpsCoordinateFormat {
|
||||
/**
|
||||
*
|
||||
* GPS coordinates are displayed in the normal decimal degrees format:
|
||||
* DD.DDDDDD DDD.DDDDDD
|
||||
*
|
||||
* @generated from enum value: DEC = 0;
|
||||
*/
|
||||
DEC = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* GPS coordinates are displayed in the degrees minutes seconds format:
|
||||
* DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
|
||||
*
|
||||
* @generated from enum value: DMS = 1;
|
||||
*/
|
||||
DMS = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Universal Transverse Mercator format:
|
||||
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
|
||||
*
|
||||
* @generated from enum value: UTM = 2;
|
||||
*/
|
||||
UTM = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Military Grid Reference System format:
|
||||
* ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
|
||||
* E is easting, N is northing
|
||||
*
|
||||
* @generated from enum value: MGRS = 3;
|
||||
*/
|
||||
MGRS = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Open Location Code (aka Plus Codes).
|
||||
*
|
||||
* @generated from enum value: OLC = 4;
|
||||
*/
|
||||
OLC = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Ordnance Survey Grid Reference (the National Grid System of the UK).
|
||||
* Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
|
||||
* E is the easting, N is the northing
|
||||
*
|
||||
* @generated from enum value: OSGR = 5;
|
||||
*/
|
||||
OSGR = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Maidenhead Locator System
|
||||
* Described here: https://en.wikipedia.org/wiki/Maidenhead_Locator_System
|
||||
*
|
||||
* @generated from enum value: MLS = 6;
|
||||
*/
|
||||
MLS = 6,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.DeviceUIConfig.GpsCoordinateFormat.
|
||||
*/
|
||||
export const DeviceUIConfig_GpsCoordinateFormatSchema: GenEnum<DeviceUIConfig_GpsCoordinateFormat> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 0, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeFilter
|
||||
*/
|
||||
export type NodeFilter = Message<"meshtastic.NodeFilter"> & {
|
||||
/**
|
||||
*
|
||||
* Filter unknown nodes
|
||||
*
|
||||
* @generated from field: bool unknown_switch = 1;
|
||||
*/
|
||||
unknownSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter offline nodes
|
||||
*
|
||||
* @generated from field: bool offline_switch = 2;
|
||||
*/
|
||||
offlineSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes w/o public key
|
||||
*
|
||||
* @generated from field: bool public_key_switch = 3;
|
||||
*/
|
||||
publicKeySwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter based on hops away
|
||||
*
|
||||
* @generated from field: int32 hops_away = 4;
|
||||
*/
|
||||
hopsAway: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes w/o position
|
||||
*
|
||||
* @generated from field: bool position_switch = 5;
|
||||
*/
|
||||
positionSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter nodes by matching name string
|
||||
*
|
||||
* @generated from field: string node_name = 6;
|
||||
*/
|
||||
nodeName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Filter based on channel
|
||||
*
|
||||
* @generated from field: int32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeFilter.
|
||||
* Use `create(NodeFilterSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeFilterSchema: GenMessage<NodeFilter> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 1);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeHighlight
|
||||
*/
|
||||
export type NodeHighlight = Message<"meshtastic.NodeHighlight"> & {
|
||||
/**
|
||||
*
|
||||
* Hightlight nodes w/ active chat
|
||||
*
|
||||
* @generated from field: bool chat_switch = 1;
|
||||
*/
|
||||
chatSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ position
|
||||
*
|
||||
* @generated from field: bool position_switch = 2;
|
||||
*/
|
||||
positionSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ telemetry data
|
||||
*
|
||||
* @generated from field: bool telemetry_switch = 3;
|
||||
*/
|
||||
telemetrySwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes w/ iaq data
|
||||
*
|
||||
* @generated from field: bool iaq_switch = 4;
|
||||
*/
|
||||
iaqSwitch: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Highlight nodes by matching name string
|
||||
*
|
||||
* @generated from field: string node_name = 5;
|
||||
*/
|
||||
nodeName: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeHighlight.
|
||||
* Use `create(NodeHighlightSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeHighlightSchema: GenMessage<NodeHighlight> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 2);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.GeoPoint
|
||||
*/
|
||||
export type GeoPoint = Message<"meshtastic.GeoPoint"> & {
|
||||
/**
|
||||
*
|
||||
* Zoom level
|
||||
*
|
||||
* @generated from field: int32 zoom = 1;
|
||||
*/
|
||||
zoom: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Coordinate: latitude
|
||||
*
|
||||
* @generated from field: int32 latitude = 2;
|
||||
*/
|
||||
latitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Coordinate: longitude
|
||||
*
|
||||
* @generated from field: int32 longitude = 3;
|
||||
*/
|
||||
longitude: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.GeoPoint.
|
||||
* Use `create(GeoPointSchema)` to create a new message.
|
||||
*/
|
||||
export const GeoPointSchema: GenMessage<GeoPoint> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 3);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.Map
|
||||
*/
|
||||
export type Map = Message<"meshtastic.Map"> & {
|
||||
/**
|
||||
*
|
||||
* Home coordinates
|
||||
*
|
||||
* @generated from field: meshtastic.GeoPoint home = 1;
|
||||
*/
|
||||
home?: GeoPoint | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map tile style
|
||||
*
|
||||
* @generated from field: string style = 2;
|
||||
*/
|
||||
style: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Map scroll follows GPS
|
||||
*
|
||||
* @generated from field: bool follow_gps = 3;
|
||||
*/
|
||||
followGps: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Map.
|
||||
* Use `create(MapSchema)` to create a new message.
|
||||
*/
|
||||
export const MapSchema: GenMessage<Map> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_device_ui, 4);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.CompassMode
|
||||
*/
|
||||
export enum CompassMode {
|
||||
/**
|
||||
*
|
||||
* Compass with dynamic ring and heading
|
||||
*
|
||||
* @generated from enum value: DYNAMIC = 0;
|
||||
*/
|
||||
DYNAMIC = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass with fixed ring and heading
|
||||
*
|
||||
* @generated from enum value: FIXED_RING = 1;
|
||||
*/
|
||||
FIXED_RING = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compass with heading and freeze option
|
||||
*
|
||||
* @generated from enum value: FREEZE_HEADING = 2;
|
||||
*/
|
||||
FREEZE_HEADING = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.CompassMode.
|
||||
*/
|
||||
export const CompassModeSchema: GenEnum<CompassMode> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.Theme
|
||||
*/
|
||||
export enum Theme {
|
||||
/**
|
||||
*
|
||||
* Dark
|
||||
*
|
||||
* @generated from enum value: DARK = 0;
|
||||
*/
|
||||
DARK = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Light
|
||||
*
|
||||
* @generated from enum value: LIGHT = 1;
|
||||
*/
|
||||
LIGHT = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Red
|
||||
*
|
||||
* @generated from enum value: RED = 2;
|
||||
*/
|
||||
RED = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Theme.
|
||||
*/
|
||||
export const ThemeSchema: GenEnum<Theme> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* Localization
|
||||
*
|
||||
* @generated from enum meshtastic.Language
|
||||
*/
|
||||
export enum Language {
|
||||
/**
|
||||
*
|
||||
* English
|
||||
*
|
||||
* @generated from enum value: ENGLISH = 0;
|
||||
*/
|
||||
ENGLISH = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* French
|
||||
*
|
||||
* @generated from enum value: FRENCH = 1;
|
||||
*/
|
||||
FRENCH = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* German
|
||||
*
|
||||
* @generated from enum value: GERMAN = 2;
|
||||
*/
|
||||
GERMAN = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Italian
|
||||
*
|
||||
* @generated from enum value: ITALIAN = 3;
|
||||
*/
|
||||
ITALIAN = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Portuguese
|
||||
*
|
||||
* @generated from enum value: PORTUGUESE = 4;
|
||||
*/
|
||||
PORTUGUESE = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Spanish
|
||||
*
|
||||
* @generated from enum value: SPANISH = 5;
|
||||
*/
|
||||
SPANISH = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Swedish
|
||||
*
|
||||
* @generated from enum value: SWEDISH = 6;
|
||||
*/
|
||||
SWEDISH = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Finnish
|
||||
*
|
||||
* @generated from enum value: FINNISH = 7;
|
||||
*/
|
||||
FINNISH = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Polish
|
||||
*
|
||||
* @generated from enum value: POLISH = 8;
|
||||
*/
|
||||
POLISH = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Turkish
|
||||
*
|
||||
* @generated from enum value: TURKISH = 9;
|
||||
*/
|
||||
TURKISH = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Serbian
|
||||
*
|
||||
* @generated from enum value: SERBIAN = 10;
|
||||
*/
|
||||
SERBIAN = 10,
|
||||
|
||||
/**
|
||||
*
|
||||
* Russian
|
||||
*
|
||||
* @generated from enum value: RUSSIAN = 11;
|
||||
*/
|
||||
RUSSIAN = 11,
|
||||
|
||||
/**
|
||||
*
|
||||
* Dutch
|
||||
*
|
||||
* @generated from enum value: DUTCH = 12;
|
||||
*/
|
||||
DUTCH = 12,
|
||||
|
||||
/**
|
||||
*
|
||||
* Greek
|
||||
*
|
||||
* @generated from enum value: GREEK = 13;
|
||||
*/
|
||||
GREEK = 13,
|
||||
|
||||
/**
|
||||
*
|
||||
* Norwegian
|
||||
*
|
||||
* @generated from enum value: NORWEGIAN = 14;
|
||||
*/
|
||||
NORWEGIAN = 14,
|
||||
|
||||
/**
|
||||
*
|
||||
* Slovenian
|
||||
*
|
||||
* @generated from enum value: SLOVENIAN = 15;
|
||||
*/
|
||||
SLOVENIAN = 15,
|
||||
|
||||
/**
|
||||
*
|
||||
* Ukrainian
|
||||
*
|
||||
* @generated from enum value: UKRAINIAN = 16;
|
||||
*/
|
||||
UKRAINIAN = 16,
|
||||
|
||||
/**
|
||||
*
|
||||
* Bulgarian
|
||||
*
|
||||
* @generated from enum value: BULGARIAN = 17;
|
||||
*/
|
||||
BULGARIAN = 17,
|
||||
|
||||
/**
|
||||
*
|
||||
* Czech
|
||||
*
|
||||
* @generated from enum value: CZECH = 18;
|
||||
*/
|
||||
CZECH = 18,
|
||||
|
||||
/**
|
||||
*
|
||||
* Danish
|
||||
*
|
||||
* @generated from enum value: DANISH = 19;
|
||||
*/
|
||||
DANISH = 19,
|
||||
|
||||
/**
|
||||
*
|
||||
* Simplified Chinese (experimental)
|
||||
*
|
||||
* @generated from enum value: SIMPLIFIED_CHINESE = 30;
|
||||
*/
|
||||
SIMPLIFIED_CHINESE = 30,
|
||||
|
||||
/**
|
||||
*
|
||||
* Traditional Chinese (experimental)
|
||||
*
|
||||
* @generated from enum value: TRADITIONAL_CHINESE = 31;
|
||||
*/
|
||||
TRADITIONAL_CHINESE = 31,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.Language.
|
||||
*/
|
||||
export const LanguageSchema: GenEnum<Language> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_device_ui, 2);
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/deviceonly_legacy.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { PositionLite, UserLite } from "./deviceonly_pb";
|
||||
import { file_meshtastic_deviceonly } from "./deviceonly_pb";
|
||||
import type { DeviceMetrics } from "./telemetry_pb";
|
||||
import { file_meshtastic_telemetry } from "./telemetry_pb";
|
||||
import { file_nanopb } from "../nanopb_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/deviceonly_legacy.proto.
|
||||
*/
|
||||
export const file_meshtastic_deviceonly_legacy: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiJtZXNodGFzdGljL2RldmljZW9ubHlfbGVnYWN5LnByb3RvEgptZXNodGFzdGljItwCChNOb2RlSW5mb0xpdGVfTGVnYWN5EgsKA251bRgBIAEoDRIiCgR1c2VyGAIgASgLMhQubWVzaHRhc3RpYy5Vc2VyTGl0ZRIqCghwb3NpdGlvbhgDIAEoCzIYLm1lc2h0YXN0aWMuUG9zaXRpb25MaXRlEgsKA3NuchgEIAEoAhISCgpsYXN0X2hlYXJkGAUgASgHEjEKDmRldmljZV9tZXRyaWNzGAYgASgLMhkubWVzaHRhc3RpYy5EZXZpY2VNZXRyaWNzEg8KB2NoYW5uZWwYByABKA0SEAoIdmlhX21xdHQYCCABKAgSFgoJaG9wc19hd2F5GAkgASgNSACIAQESEwoLaXNfZmF2b3JpdGUYCiABKAgSEgoKaXNfaWdub3JlZBgLIAEoCBIQCghuZXh0X2hvcBgMIAEoDRIQCghiaXRmaWVsZBgNIAEoDUIMCgpfaG9wc19hd2F5IokBChNOb2RlRGF0YWJhc2VfTGVnYWN5Eg8KB3ZlcnNpb24YASABKA0SYQoFbm9kZXMYAiADKAsyHy5tZXNodGFzdGljLk5vZGVJbmZvTGl0ZV9MZWdhY3lCMZI/LpIBK3N0ZDo6dmVjdG9yPG1lc2h0YXN0aWNfTm9kZUluZm9MaXRlX0xlZ2FjeT5CdAoUb3JnLm1lc2h0YXN0aWMucHJvdG9CEERldmljZU9ubHlMZWdhY3laImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAJI/C8IBCDx2ZWN0b3I+YgZwcm90bzM", [file_meshtastic_deviceonly, file_meshtastic_telemetry, file_nanopb]);
|
||||
|
||||
/**
|
||||
*
|
||||
* Legacy NodeInfoLite descriptor used only to decode pre-split
|
||||
* /prefs/nodes.proto saves during the v24 -> v25 migration boot.
|
||||
* This preserves the original NodeInfoLite-compatible field numbers needed
|
||||
* to parse old wire bytes cleanly, including user (2), position (3),
|
||||
* device_metrics (6), and the legacy-only compatibility fields via_mqtt (8),
|
||||
* is_favorite (10), and is_ignored (11). Steady-state code does not use
|
||||
* this struct; it is dropped after migration completes. This file should be
|
||||
* removed once DEVICESTATE_MIN_VER advances past 24.
|
||||
*
|
||||
* @generated from message meshtastic.NodeInfoLite_Legacy
|
||||
*/
|
||||
export type NodeInfoLite_Legacy = Message<"meshtastic.NodeInfoLite_Legacy"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.UserLite user = 2;
|
||||
*/
|
||||
user?: UserLite | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.PositionLite position = 3;
|
||||
*/
|
||||
position?: PositionLite | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: float snr = 4;
|
||||
*/
|
||||
snr: number;
|
||||
|
||||
/**
|
||||
* @generated from field: fixed32 last_heard = 5;
|
||||
*/
|
||||
lastHeard: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.DeviceMetrics device_metrics = 6;
|
||||
*/
|
||||
deviceMetrics?: DeviceMetrics | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bool via_mqtt = 8;
|
||||
*/
|
||||
viaMqtt: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: optional uint32 hops_away = 9;
|
||||
*/
|
||||
hopsAway?: number | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: bool is_favorite = 10;
|
||||
*/
|
||||
isFavorite: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: bool is_ignored = 11;
|
||||
*/
|
||||
isIgnored: boolean;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 next_hop = 12;
|
||||
*/
|
||||
nextHop: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 bitfield = 13;
|
||||
*/
|
||||
bitfield: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeInfoLite_Legacy.
|
||||
* Use `create(NodeInfoLite_LegacySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeInfoLite_LegacySchema: GenMessage<NodeInfoLite_Legacy> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly_legacy, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* Legacy NodeDatabase shape: one repeated array of fat NodeInfoLite_Legacy
|
||||
* with no satellite position/telemetry arrays.
|
||||
*
|
||||
* @generated from message meshtastic.NodeDatabase_Legacy
|
||||
*/
|
||||
export type NodeDatabase_Legacy = Message<"meshtastic.NodeDatabase_Legacy"> & {
|
||||
/**
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeInfoLite_Legacy nodes = 2;
|
||||
*/
|
||||
nodes: NodeInfoLite_Legacy[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeDatabase_Legacy.
|
||||
* Use `create(NodeDatabase_LegacySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeDatabase_LegacySchema: GenMessage<NodeDatabase_Legacy> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly_legacy, 1);
|
||||
|
||||
@@ -0,0 +1,636 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/deviceonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Channel } from "./channel_pb";
|
||||
import { file_meshtastic_channel } from "./channel_pb";
|
||||
import type { Config_DeviceConfig_Role } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { LocalConfig, LocalModuleConfig } from "./localonly_pb";
|
||||
import { file_meshtastic_localonly } from "./localonly_pb";
|
||||
import type { HardwareModel, MeshPacket, MyNodeInfo, NodeRemoteHardwarePin, Position_LocSource, StatusMessage, User } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { DeviceMetrics, EnvironmentMetrics } from "./telemetry_pb";
|
||||
import { file_meshtastic_telemetry } from "./telemetry_pb";
|
||||
import { file_nanopb } from "../nanopb_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/deviceonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_deviceonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL2RldmljZW9ubHkucHJvdG8SCm1lc2h0YXN0aWMiqAEKDFBvc2l0aW9uTGl0ZRISCgpsYXRpdHVkZV9pGAEgASgPEhMKC2xvbmdpdHVkZV9pGAIgASgPEhAKCGFsdGl0dWRlGAMgASgFEgwKBHRpbWUYBCABKAcSNwoPbG9jYXRpb25fc291cmNlGAUgASgOMh4ubWVzaHRhc3RpYy5Qb3NpdGlvbi5Mb2NTb3VyY2USFgoOcHJlY2lzaW9uX2JpdHMYBiABKA0iggIKCFVzZXJMaXRlEhMKB21hY2FkZHIYASABKAxCAhgBEhEKCWxvbmdfbmFtZRgCIAEoCRISCgpzaG9ydF9uYW1lGAMgASgJEisKCGh3X21vZGVsGAQgASgOMhkubWVzaHRhc3RpYy5IYXJkd2FyZU1vZGVsEhMKC2lzX2xpY2Vuc2VkGAUgASgIEjIKBHJvbGUYBiABKA4yJC5tZXNodGFzdGljLkNvbmZpZy5EZXZpY2VDb25maWcuUm9sZRISCgpwdWJsaWNfa2V5GAcgASgMEhwKD2lzX3VubWVzc2FnYWJsZRgJIAEoCEgAiAEBQhIKEF9pc191bm1lc3NhZ2FibGUiqgMKDE5vZGVJbmZvTGl0ZRILCgNudW0YASABKA0SCwoDc25yGAQgASgCEhIKCmxhc3RfaGVhcmQYBSABKAcSDwoHY2hhbm5lbBgHIAEoDRIWCglob3BzX2F3YXkYCSABKA1IAIgBARIQCghuZXh0X2hvcBgMIAEoDRIQCghiaXRmaWVsZBgNIAEoDRIRCglsb25nX25hbWUYDiABKAkSEgoKc2hvcnRfbmFtZRgPIAEoCRIrCghod19tb2RlbBgQIAEoDjIZLm1lc2h0YXN0aWMuSGFyZHdhcmVNb2RlbBIyCgRyb2xlGBEgASgOMiQubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSEgoKcHVibGljX2tleRgSIAEoDBIOCgZzbnJfcTQYEyABKBFCDAoKX2hvcHNfYXdheUoECAIQA0oECAMQBEoECAYQB0oECAgQCUoECAoQC0oECAsQDFIEdXNlclIIcG9zaXRpb25SDmRldmljZV9tZXRyaWNzUgh2aWFfbXF0dFILaXNfZmF2b3JpdGVSCmlzX2lnbm9yZWQi6wIKC0RldmljZVN0YXRlEicKB215X25vZGUYAiABKAsyFi5tZXNodGFzdGljLk15Tm9kZUluZm8SHwoFb3duZXIYAyABKAsyEC5tZXNodGFzdGljLlVzZXISLQoNcmVjZWl2ZV9xdWV1ZRgFIAMoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBIPCgd2ZXJzaW9uGAggASgNEi8KD3J4X3RleHRfbWVzc2FnZRgHIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBITCgdub19zYXZlGAkgASgIQgIYARIZCg1kaWRfZ3BzX3Jlc2V0GAsgASgIQgIYARIrCgtyeF93YXlwb2ludBgMIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBJEChlub2RlX3JlbW90ZV9oYXJkd2FyZV9waW5zGA0gAygLMiEubWVzaHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdhcmVQaW4iTAoRTm9kZVBvc2l0aW9uRW50cnkSCwoDbnVtGAEgASgNEioKCHBvc2l0aW9uGAIgASgLMhgubWVzaHRhc3RpYy5Qb3NpdGlvbkxpdGUiVAoSTm9kZVRlbGVtZXRyeUVudHJ5EgsKA251bRgBIAEoDRIxCg5kZXZpY2VfbWV0cmljcxgCIAEoCzIZLm1lc2h0YXN0aWMuRGV2aWNlTWV0cmljcyJgChROb2RlRW52aXJvbm1lbnRFbnRyeRILCgNudW0YASABKA0SOwoTZW52aXJvbm1lbnRfbWV0cmljcxgCIAEoCzIeLm1lc2h0YXN0aWMuRW52aXJvbm1lbnRNZXRyaWNzIkkKD05vZGVTdGF0dXNFbnRyeRILCgNudW0YASABKA0SKQoGc3RhdHVzGAIgASgLMhkubWVzaHRhc3RpYy5TdGF0dXNNZXNzYWdlIoMECgxOb2RlRGF0YWJhc2USDwoHdmVyc2lvbhgBIAEoDRJTCgVub2RlcxgCIAMoCzIYLm1lc2h0YXN0aWMuTm9kZUluZm9MaXRlQiqSPyeSASRzdGQ6OnZlY3RvcjxtZXNodGFzdGljX05vZGVJbmZvTGl0ZT4SYQoJcG9zaXRpb25zGAMgAygLMh0ubWVzaHRhc3RpYy5Ob2RlUG9zaXRpb25FbnRyeUIvkj8skgEpc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlUG9zaXRpb25FbnRyeT4SYwoJdGVsZW1ldHJ5GAQgAygLMh4ubWVzaHRhc3RpYy5Ob2RlVGVsZW1ldHJ5RW50cnlCMJI/LZIBKnN0ZDo6dmVjdG9yPG1lc2h0YXN0aWNfTm9kZVRlbGVtZXRyeUVudHJ5PhJaCgZzdGF0dXMYBSADKAsyGy5tZXNodGFzdGljLk5vZGVTdGF0dXNFbnRyeUItkj8qkgEnc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlU3RhdHVzRW50cnk+EmkKC2Vudmlyb25tZW50GAYgAygLMiAubWVzaHRhc3RpYy5Ob2RlRW52aXJvbm1lbnRFbnRyeUIykj8vkgEsc3RkOjp2ZWN0b3I8bWVzaHRhc3RpY19Ob2RlRW52aXJvbm1lbnRFbnRyeT4iRQoLQ2hhbm5lbEZpbGUSJQoIY2hhbm5lbHMYASADKAsyEy5tZXNodGFzdGljLkNoYW5uZWwSDwoHdmVyc2lvbhgCIAEoDSLiAQoRQmFja3VwUHJlZmVyZW5jZXMSDwoHdmVyc2lvbhgBIAEoDRIRCgl0aW1lc3RhbXAYAiABKAcSJwoGY29uZmlnGAMgASgLMhcubWVzaHRhc3RpYy5Mb2NhbENvbmZpZxI0Cg1tb2R1bGVfY29uZmlnGAQgASgLMh0ubWVzaHRhc3RpYy5Mb2NhbE1vZHVsZUNvbmZpZxIpCghjaGFubmVscxgFIAEoCzIXLm1lc2h0YXN0aWMuQ2hhbm5lbEZpbGUSHwoFb3duZXIYBiABKAsyEC5tZXNodGFzdGljLlVzZXJCbgoUb3JnLm1lc2h0YXN0aWMucHJvdG9CCkRldmljZU9ubHlaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAJI/C8IBCDx2ZWN0b3I+YgZwcm90bzM", [file_meshtastic_channel, file_meshtastic_config, file_meshtastic_localonly, file_meshtastic_mesh, file_meshtastic_telemetry, file_nanopb]);
|
||||
|
||||
/**
|
||||
*
|
||||
* Position with static location information only for NodeDBLite
|
||||
*
|
||||
* @generated from message meshtastic.PositionLite
|
||||
*/
|
||||
export type PositionLite = Message<"meshtastic.PositionLite"> & {
|
||||
/**
|
||||
*
|
||||
* The new preferred location encoding, multiply by 1e-7 to get degrees
|
||||
* in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 latitude_i = 1;
|
||||
*/
|
||||
latitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: sfixed32 longitude_i = 2;
|
||||
*/
|
||||
longitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* In meters above MSL (but see issue #359)
|
||||
*
|
||||
* @generated from field: int32 altitude = 3;
|
||||
*/
|
||||
altitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* This is usually not sent over the mesh (to save space), but it is sent
|
||||
* from the phone so that the local device can set its RTC If it is sent over
|
||||
* the mesh (because there are devices on the mesh without GPS), it will only
|
||||
* be sent by devices which has a hardware GPS clock.
|
||||
* seconds since 1970
|
||||
*
|
||||
* @generated from field: fixed32 time = 4;
|
||||
*/
|
||||
time: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.Position.LocSource location_source = 5;
|
||||
*/
|
||||
locationSource: Position_LocSource;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates the bits of precision set by the sending node
|
||||
*
|
||||
* @generated from field: uint32 precision_bits = 6;
|
||||
*/
|
||||
precisionBits: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PositionLite.
|
||||
* Use `create(PositionLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const PositionLiteSchema: GenMessage<PositionLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.UserLite
|
||||
*/
|
||||
export type UserLite = Message<"meshtastic.UserLite"> & {
|
||||
/**
|
||||
*
|
||||
* This is the addr of the radio.
|
||||
*
|
||||
* @generated from field: bytes macaddr = 1 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
macaddr: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
*
|
||||
* @generated from field: string long_name = 2;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters.
|
||||
* Suitable for a tiny OLED screen
|
||||
*
|
||||
* @generated from field: string short_name = 3;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* TBEAM, HELTEC, etc...
|
||||
* Starting in 1.2.11 moved to hw_model enum in the NodeInfo object.
|
||||
* Apps will still need the string here for older builds
|
||||
* (so OTA update can find the right image), but if the enum is available it will be used instead.
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 4;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* In some regions Ham radio operators have different bandwidth limitations than others.
|
||||
* If this user is a licensed operator, set this flag.
|
||||
* Also, "long_name" should be their licence number.
|
||||
*
|
||||
* @generated from field: bool is_licensed = 5;
|
||||
*/
|
||||
isLicensed: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates that the user's role in the mesh
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 6;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* The public key of the user's device.
|
||||
* This is sent out to other nodes on the mesh to allow them to compute a shared secret key.
|
||||
*
|
||||
* @generated from field: bytes public_key = 7;
|
||||
*/
|
||||
publicKey: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether or not the node can be messaged
|
||||
*
|
||||
* @generated from field: optional bool is_unmessagable = 9;
|
||||
*/
|
||||
isUnmessagable?: boolean | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.UserLite.
|
||||
* Use `create(UserLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const UserLiteSchema: GenMessage<UserLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 1);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeInfoLite
|
||||
*/
|
||||
export type NodeInfoLite = Message<"meshtastic.NodeInfoLite"> & {
|
||||
/**
|
||||
*
|
||||
* The node number
|
||||
*
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* In-memory SNR of the last received message in dB. Not serialised directly:
|
||||
* always zeroed before encode; persisted as snr_q4 = 19 below.
|
||||
*
|
||||
* @generated from field: float snr = 4;
|
||||
*/
|
||||
snr: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Set to indicate the last time we received a packet from this node
|
||||
*
|
||||
* @generated from field: fixed32 last_heard = 5;
|
||||
*/
|
||||
lastHeard: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* local channel index we heard that node on. Only populated if its not the default channel.
|
||||
*
|
||||
* @generated from field: uint32 channel = 7;
|
||||
*/
|
||||
channel: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of hops away from us this node is (0 if direct neighbor)
|
||||
*
|
||||
* @generated from field: optional uint32 hops_away = 9;
|
||||
*/
|
||||
hopsAway?: number | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Last byte of the node number of the node that should be used as the next hop to reach this node.
|
||||
*
|
||||
* @generated from field: uint32 next_hop = 12;
|
||||
*/
|
||||
nextHop: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Bitfield for storing booleans. See NODEINFO_BITFIELD_* in src/mesh/NodeDB.h.
|
||||
*
|
||||
* @generated from field: uint32 bitfield = 13;
|
||||
*/
|
||||
bitfield: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester".
|
||||
*
|
||||
* @generated from field: string long_name = 14;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters or an emoji.
|
||||
* Suitable for a tiny OLED screen.
|
||||
*
|
||||
* @generated from field: string short_name = 15;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Hardware model the user's device is running.
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 16;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* The user's role in the mesh.
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 17;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* The public key of the user's device, for PKI-based encrypted DMs.
|
||||
*
|
||||
* @generated from field: bytes public_key = 18;
|
||||
*/
|
||||
publicKey: Uint8Array;
|
||||
|
||||
/**
|
||||
*
|
||||
* Q4-encoded SNR: dB × 4, sint32 zigzag. Matches RouteDiscovery convention.
|
||||
* Encode: snr_q4 = (int32_t)(snr * 4.0f). Decode: snr = snr_q4 / 4.0f.
|
||||
* float snr is always zeroed on disk; this field carries all persisted SNR.
|
||||
*
|
||||
* @generated from field: sint32 snr_q4 = 19;
|
||||
*/
|
||||
snrQ4: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeInfoLite.
|
||||
* Use `create(NodeInfoLiteSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeInfoLiteSchema: GenMessage<NodeInfoLite> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message is never sent over the wire, but it is used for serializing DB
|
||||
* state to flash in the device code
|
||||
* FIXME, since we write this each time we enter deep sleep (and have infinite
|
||||
* flash) it would be better to use some sort of append only data structure for
|
||||
* the receive queue and use the preferences store for the other stuff
|
||||
*
|
||||
* @generated from message meshtastic.DeviceState
|
||||
*/
|
||||
export type DeviceState = Message<"meshtastic.DeviceState"> & {
|
||||
/**
|
||||
*
|
||||
* Read only settings/info about this node
|
||||
*
|
||||
* @generated from field: meshtastic.MyNodeInfo my_node = 2;
|
||||
*/
|
||||
myNode?: MyNodeInfo | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* My owner info
|
||||
*
|
||||
* @generated from field: meshtastic.User owner = 3;
|
||||
*/
|
||||
owner?: User | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Received packets saved for delivery to the phone
|
||||
*
|
||||
* @generated from field: repeated meshtastic.MeshPacket receive_queue = 5;
|
||||
*/
|
||||
receiveQueue: MeshPacket[];
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* We keep the last received text message (only) stored in the device flash,
|
||||
* so we can show it on the screen.
|
||||
* Might be null
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket rx_text_message = 7;
|
||||
*/
|
||||
rxTextMessage?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Used only during development.
|
||||
* Indicates developer is testing and changes should never be saved to flash.
|
||||
* Deprecated in 2.3.1
|
||||
*
|
||||
* @generated from field: bool no_save = 9 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
noSave: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Previously used to manage GPS factory resets.
|
||||
* Deprecated in 2.5.23
|
||||
*
|
||||
* @generated from field: bool did_gps_reset = 11 [deprecated = true];
|
||||
* @deprecated
|
||||
*/
|
||||
didGpsReset: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* We keep the last received waypoint stored in the device flash,
|
||||
* so we can show it on the screen.
|
||||
* Might be null
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket rx_waypoint = 12;
|
||||
*/
|
||||
rxWaypoint?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The mesh's nodes with their available gpio pins for RemoteHardware module
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodeRemoteHardwarePin node_remote_hardware_pins = 13;
|
||||
*/
|
||||
nodeRemoteHardwarePins: NodeRemoteHardwarePin[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.DeviceState.
|
||||
* Use `create(DeviceStateSchema)` to create a new message.
|
||||
*/
|
||||
export const DeviceStateSchema: GenMessage<DeviceState> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 3);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodePositionEntry
|
||||
*/
|
||||
export type NodePositionEntry = Message<"meshtastic.NodePositionEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.PositionLite position = 2;
|
||||
*/
|
||||
position?: PositionLite | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodePositionEntry.
|
||||
* Use `create(NodePositionEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodePositionEntrySchema: GenMessage<NodePositionEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 4);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeTelemetryEntry
|
||||
*/
|
||||
export type NodeTelemetryEntry = Message<"meshtastic.NodeTelemetryEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.DeviceMetrics device_metrics = 2;
|
||||
*/
|
||||
deviceMetrics?: DeviceMetrics | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeTelemetryEntry.
|
||||
* Use `create(NodeTelemetryEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeTelemetryEntrySchema: GenMessage<NodeTelemetryEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 5);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeEnvironmentEntry
|
||||
*/
|
||||
export type NodeEnvironmentEntry = Message<"meshtastic.NodeEnvironmentEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.EnvironmentMetrics environment_metrics = 2;
|
||||
*/
|
||||
environmentMetrics?: EnvironmentMetrics | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeEnvironmentEntry.
|
||||
* Use `create(NodeEnvironmentEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeEnvironmentEntrySchema: GenMessage<NodeEnvironmentEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 6);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeStatusEntry
|
||||
*/
|
||||
export type NodeStatusEntry = Message<"meshtastic.NodeStatusEntry"> & {
|
||||
/**
|
||||
* @generated from field: uint32 num = 1;
|
||||
*/
|
||||
num: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.StatusMessage status = 2;
|
||||
*/
|
||||
status?: StatusMessage | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeStatusEntry.
|
||||
* Use `create(NodeStatusEntrySchema)` to create a new message.
|
||||
*/
|
||||
export const NodeStatusEntrySchema: GenMessage<NodeStatusEntry> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 7);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.NodeDatabase
|
||||
*/
|
||||
export type NodeDatabase = Message<"meshtastic.NodeDatabase"> & {
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* New lite version of NodeDB to decrease memory footprint
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodeInfoLite nodes = 2;
|
||||
*/
|
||||
nodes: NodeInfoLite[];
|
||||
|
||||
/**
|
||||
* Per-NodeNum satellite arrays. Constrained platforms (e.g. STM32WL) omit
|
||||
* these via MESHTASTIC_EXCLUDE_*DB build flags.
|
||||
*
|
||||
* @generated from field: repeated meshtastic.NodePositionEntry positions = 3;
|
||||
*/
|
||||
positions: NodePositionEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeTelemetryEntry telemetry = 4;
|
||||
*/
|
||||
telemetry: NodeTelemetryEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeStatusEntry status = 5;
|
||||
*/
|
||||
status: NodeStatusEntry[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated meshtastic.NodeEnvironmentEntry environment = 6;
|
||||
*/
|
||||
environment: NodeEnvironmentEntry[];
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.NodeDatabase.
|
||||
* Use `create(NodeDatabaseSchema)` to create a new message.
|
||||
*/
|
||||
export const NodeDatabaseSchema: GenMessage<NodeDatabase> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 8);
|
||||
|
||||
/**
|
||||
*
|
||||
* The on-disk saved channels
|
||||
*
|
||||
* @generated from message meshtastic.ChannelFile
|
||||
*/
|
||||
export type ChannelFile = Message<"meshtastic.ChannelFile"> & {
|
||||
/**
|
||||
*
|
||||
* The channels our node knows about
|
||||
*
|
||||
* @generated from field: repeated meshtastic.Channel channels = 1;
|
||||
*/
|
||||
channels: Channel[];
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 2;
|
||||
*/
|
||||
version: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ChannelFile.
|
||||
* Use `create(ChannelFileSchema)` to create a new message.
|
||||
*/
|
||||
export const ChannelFileSchema: GenMessage<ChannelFile> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 9);
|
||||
|
||||
/**
|
||||
*
|
||||
* The on-disk backup of the node's preferences
|
||||
*
|
||||
* @generated from message meshtastic.BackupPreferences
|
||||
*/
|
||||
export type BackupPreferences = Message<"meshtastic.BackupPreferences"> & {
|
||||
/**
|
||||
*
|
||||
* The version of the backup
|
||||
*
|
||||
* @generated from field: uint32 version = 1;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The timestamp of the backup (if node has time)
|
||||
*
|
||||
* @generated from field: fixed32 timestamp = 2;
|
||||
*/
|
||||
timestamp: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's configuration
|
||||
*
|
||||
* @generated from field: meshtastic.LocalConfig config = 3;
|
||||
*/
|
||||
config?: LocalConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's module configuration
|
||||
*
|
||||
* @generated from field: meshtastic.LocalModuleConfig module_config = 4;
|
||||
*/
|
||||
moduleConfig?: LocalModuleConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's channels
|
||||
*
|
||||
* @generated from field: meshtastic.ChannelFile channels = 5;
|
||||
*/
|
||||
channels?: ChannelFile | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The node's user (owner) information
|
||||
*
|
||||
* @generated from field: meshtastic.User owner = 6;
|
||||
*/
|
||||
owner?: User | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.BackupPreferences.
|
||||
* Use `create(BackupPreferencesSchema)` to create a new message.
|
||||
*/
|
||||
export const BackupPreferencesSchema: GenMessage<BackupPreferences> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_deviceonly, 10);
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/interdevice.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/interdevice.proto.
|
||||
*/
|
||||
export const file_meshtastic_interdevice: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChxtZXNodGFzdGljL2ludGVyZGV2aWNlLnByb3RvEgptZXNodGFzdGljImoKClNlbnNvckRhdGESJQoEdHlwZRgBIAEoDjIXLm1lc2h0YXN0aWMuTWVzc2FnZVR5cGUSFQoLZmxvYXRfdmFsdWUYAiABKAJIABIWCgx1aW50MzJfdmFsdWUYAyABKA1IAEIGCgRkYXRhIlYKEkludGVyZGV2aWNlTWVzc2FnZRIOCgRubWVhGAEgASgJSAASKAoGc2Vuc29yGAIgASgLMhYubWVzaHRhc3RpYy5TZW5zb3JEYXRhSABCBgoEZGF0YSrVAQoLTWVzc2FnZVR5cGUSBwoDQUNLEAASFQoQQ09MTEVDVF9JTlRFUlZBTBCgARIMCgdCRUVQX09OEKEBEg0KCEJFRVBfT0ZGEKIBEg0KCFNIVVRET1dOEKMBEg0KCFBPV0VSX09OEKQBEg8KClNDRDQxX1RFTVAQsAESEwoOU0NENDFfSFVNSURJVFkQsQESDgoJU0NENDFfQ08yELIBEg8KCkFIVDIwX1RFTVAQswESEwoOQUhUMjBfSFVNSURJVFkQtAESDwoKVFZPQ19JTkRFWBC1AUJnChRvcmcubWVzaHRhc3RpYy5wcm90b0IRSW50ZXJkZXZpY2VQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SensorData
|
||||
*/
|
||||
export type SensorData = Message<"meshtastic.SensorData"> & {
|
||||
/**
|
||||
* The message type
|
||||
*
|
||||
* @generated from field: meshtastic.MessageType type = 1;
|
||||
*/
|
||||
type: MessageType;
|
||||
|
||||
/**
|
||||
* The sensor data, either as a float or an uint32
|
||||
*
|
||||
* @generated from oneof meshtastic.SensorData.data
|
||||
*/
|
||||
data: {
|
||||
/**
|
||||
* @generated from field: float float_value = 2;
|
||||
*/
|
||||
value: number;
|
||||
case: "floatValue";
|
||||
} | {
|
||||
/**
|
||||
* @generated from field: uint32 uint32_value = 3;
|
||||
*/
|
||||
value: number;
|
||||
case: "uint32Value";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SensorData.
|
||||
* Use `create(SensorDataSchema)` to create a new message.
|
||||
*/
|
||||
export const SensorDataSchema: GenMessage<SensorData> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_interdevice, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.InterdeviceMessage
|
||||
*/
|
||||
export type InterdeviceMessage = Message<"meshtastic.InterdeviceMessage"> & {
|
||||
/**
|
||||
* The message data
|
||||
*
|
||||
* @generated from oneof meshtastic.InterdeviceMessage.data
|
||||
*/
|
||||
data: {
|
||||
/**
|
||||
* @generated from field: string nmea = 1;
|
||||
*/
|
||||
value: string;
|
||||
case: "nmea";
|
||||
} | {
|
||||
/**
|
||||
* @generated from field: meshtastic.SensorData sensor = 2;
|
||||
*/
|
||||
value: SensorData;
|
||||
case: "sensor";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.InterdeviceMessage.
|
||||
* Use `create(InterdeviceMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const InterdeviceMessageSchema: GenMessage<InterdeviceMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_interdevice, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.MessageType
|
||||
*/
|
||||
export enum MessageType {
|
||||
/**
|
||||
* @generated from enum value: ACK = 0;
|
||||
*/
|
||||
ACK = 0,
|
||||
|
||||
/**
|
||||
* in ms
|
||||
*
|
||||
* @generated from enum value: COLLECT_INTERVAL = 160;
|
||||
*/
|
||||
COLLECT_INTERVAL = 160,
|
||||
|
||||
/**
|
||||
* duration ms
|
||||
*
|
||||
* @generated from enum value: BEEP_ON = 161;
|
||||
*/
|
||||
BEEP_ON = 161,
|
||||
|
||||
/**
|
||||
* cancel prematurely
|
||||
*
|
||||
* @generated from enum value: BEEP_OFF = 162;
|
||||
*/
|
||||
BEEP_OFF = 162,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SHUTDOWN = 163;
|
||||
*/
|
||||
SHUTDOWN = 163,
|
||||
|
||||
/**
|
||||
* @generated from enum value: POWER_ON = 164;
|
||||
*/
|
||||
POWER_ON = 164,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_TEMP = 176;
|
||||
*/
|
||||
SCD41_TEMP = 176,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_HUMIDITY = 177;
|
||||
*/
|
||||
SCD41_HUMIDITY = 177,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SCD41_CO2 = 178;
|
||||
*/
|
||||
SCD41_CO2 = 178,
|
||||
|
||||
/**
|
||||
* @generated from enum value: AHT20_TEMP = 179;
|
||||
*/
|
||||
AHT20_TEMP = 179,
|
||||
|
||||
/**
|
||||
* @generated from enum value: AHT20_HUMIDITY = 180;
|
||||
*/
|
||||
AHT20_HUMIDITY = 180,
|
||||
|
||||
/**
|
||||
* @generated from enum value: TVOC_INDEX = 181;
|
||||
*/
|
||||
TVOC_INDEX = 181,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.MessageType.
|
||||
*/
|
||||
export const MessageTypeSchema: GenEnum<MessageType> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_interdevice, 0);
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/localonly.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Config_BluetoothConfig, Config_DeviceConfig, Config_DisplayConfig, Config_LoRaConfig, Config_NetworkConfig, Config_PositionConfig, Config_PowerConfig, Config_SecurityConfig } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { ModuleConfig_AmbientLightingConfig, ModuleConfig_AudioConfig, ModuleConfig_CannedMessageConfig, ModuleConfig_DetectionSensorConfig, ModuleConfig_ExternalNotificationConfig, ModuleConfig_MQTTConfig, ModuleConfig_NeighborInfoConfig, ModuleConfig_PaxcounterConfig, ModuleConfig_RangeTestConfig, ModuleConfig_RemoteHardwareConfig, ModuleConfig_SerialConfig, ModuleConfig_StatusMessageConfig, ModuleConfig_StoreForwardConfig, ModuleConfig_TAKConfig, ModuleConfig_TelemetryConfig, ModuleConfig_TrafficManagementConfig } from "./module_config_pb";
|
||||
import { file_meshtastic_module_config } from "./module_config_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/localonly.proto.
|
||||
*/
|
||||
export const file_meshtastic_localonly: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChptZXNodGFzdGljL2xvY2Fsb25seS5wcm90bxIKbWVzaHRhc3RpYyKyAwoLTG9jYWxDb25maWcSLwoGZGV2aWNlGAEgASgLMh8ubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnEjMKCHBvc2l0aW9uGAIgASgLMiEubWVzaHRhc3RpYy5Db25maWcuUG9zaXRpb25Db25maWcSLQoFcG93ZXIYAyABKAsyHi5tZXNodGFzdGljLkNvbmZpZy5Qb3dlckNvbmZpZxIxCgduZXR3b3JrGAQgASgLMiAubWVzaHRhc3RpYy5Db25maWcuTmV0d29ya0NvbmZpZxIxCgdkaXNwbGF5GAUgASgLMiAubWVzaHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZxIrCgRsb3JhGAYgASgLMh0ubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZxI1CglibHVldG9vdGgYByABKAsyIi5tZXNodGFzdGljLkNvbmZpZy5CbHVldG9vdGhDb25maWcSDwoHdmVyc2lvbhgIIAEoDRIzCghzZWN1cml0eRgJIAEoCzIhLm1lc2h0YXN0aWMuQ29uZmlnLlNlY3VyaXR5Q29uZmlnIr8IChFMb2NhbE1vZHVsZUNvbmZpZxIxCgRtcXR0GAEgASgLMiMubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuTVFUVENvbmZpZxI1CgZzZXJpYWwYAiABKAsyJS5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5TZXJpYWxDb25maWcSUgoVZXh0ZXJuYWxfbm90aWZpY2F0aW9uGAMgASgLMjMubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuRXh0ZXJuYWxOb3RpZmljYXRpb25Db25maWcSQgoNc3RvcmVfZm9yd2FyZBgEIAEoCzIrLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLlN0b3JlRm9yd2FyZENvbmZpZxI8CgpyYW5nZV90ZXN0GAUgASgLMigubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUmFuZ2VUZXN0Q29uZmlnEjsKCXRlbGVtZXRyeRgGIAEoCzIoLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLlRlbGVtZXRyeUNvbmZpZxJECg5jYW5uZWRfbWVzc2FnZRgHIAEoCzIsLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkNhbm5lZE1lc3NhZ2VDb25maWcSMwoFYXVkaW8YCSABKAsyJC5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5BdWRpb0NvbmZpZxJGCg9yZW1vdGVfaGFyZHdhcmUYCiABKAsyLS5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5SZW1vdGVIYXJkd2FyZUNvbmZpZxJCCg1uZWlnaGJvcl9pbmZvGAsgASgLMisubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuTmVpZ2hib3JJbmZvQ29uZmlnEkgKEGFtYmllbnRfbGlnaHRpbmcYDCABKAsyLi5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5BbWJpZW50TGlnaHRpbmdDb25maWcSSAoQZGV0ZWN0aW9uX3NlbnNvchgNIAEoCzIuLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkRldGVjdGlvblNlbnNvckNvbmZpZxI9CgpwYXhjb3VudGVyGA4gASgLMikubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUGF4Y291bnRlckNvbmZpZxJDCg1zdGF0dXNtZXNzYWdlGA8gASgLMiwubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuU3RhdHVzTWVzc2FnZUNvbmZpZxJMChJ0cmFmZmljX21hbmFnZW1lbnQYECABKAsyMC5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5UcmFmZmljTWFuYWdlbWVudENvbmZpZxIvCgN0YWsYESABKAsyIi5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5UQUtDb25maWcSDwoHdmVyc2lvbhgIIAEoDUJlChRvcmcubWVzaHRhc3RpYy5wcm90b0IPTG9jYWxPbmx5UHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw", [file_meshtastic_config, file_meshtastic_module_config]);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.LocalConfig
|
||||
*/
|
||||
export type LocalConfig = Message<"meshtastic.LocalConfig"> & {
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Device
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig device = 1;
|
||||
*/
|
||||
device?: Config_DeviceConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the GPS Position
|
||||
*
|
||||
* @generated from field: meshtastic.Config.PositionConfig position = 2;
|
||||
*/
|
||||
position?: Config_PositionConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Power settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.PowerConfig power = 3;
|
||||
*/
|
||||
power?: Config_PowerConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Wifi Settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.NetworkConfig network = 4;
|
||||
*/
|
||||
network?: Config_NetworkConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Display
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DisplayConfig display = 5;
|
||||
*/
|
||||
display?: Config_DisplayConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Lora Radio
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig lora = 6;
|
||||
*/
|
||||
lora?: Config_LoRaConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Bluetooth settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.BluetoothConfig bluetooth = 7;
|
||||
*/
|
||||
bluetooth?: Config_BluetoothConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to Security settings
|
||||
*
|
||||
* @generated from field: meshtastic.Config.SecurityConfig security = 9;
|
||||
*/
|
||||
security?: Config_SecurityConfig | undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.LocalConfig.
|
||||
* Use `create(LocalConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const LocalConfigSchema: GenMessage<LocalConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_localonly, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.LocalModuleConfig
|
||||
*/
|
||||
export type LocalModuleConfig = Message<"meshtastic.LocalModuleConfig"> & {
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the MQTT module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.MQTTConfig mqtt = 1;
|
||||
*/
|
||||
mqtt?: ModuleConfig_MQTTConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Serial module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.SerialConfig serial = 2;
|
||||
*/
|
||||
serial?: ModuleConfig_SerialConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the ExternalNotification module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.ExternalNotificationConfig external_notification = 3;
|
||||
*/
|
||||
externalNotification?: ModuleConfig_ExternalNotificationConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Store & Forward module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.StoreForwardConfig store_forward = 4;
|
||||
*/
|
||||
storeForward?: ModuleConfig_StoreForwardConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the RangeTest module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.RangeTestConfig range_test = 5;
|
||||
*/
|
||||
rangeTest?: ModuleConfig_RangeTestConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Telemetry module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TelemetryConfig telemetry = 6;
|
||||
*/
|
||||
telemetry?: ModuleConfig_TelemetryConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Canned Message module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.CannedMessageConfig canned_message = 7;
|
||||
*/
|
||||
cannedMessage?: ModuleConfig_CannedMessageConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Audio module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.AudioConfig audio = 9;
|
||||
*/
|
||||
audio?: ModuleConfig_AudioConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Remote Hardware module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.RemoteHardwareConfig remote_hardware = 10;
|
||||
*/
|
||||
remoteHardware?: ModuleConfig_RemoteHardwareConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Neighbor Info module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.NeighborInfoConfig neighbor_info = 11;
|
||||
*/
|
||||
neighborInfo?: ModuleConfig_NeighborInfoConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Ambient Lighting module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.AmbientLightingConfig ambient_lighting = 12;
|
||||
*/
|
||||
ambientLighting?: ModuleConfig_AmbientLightingConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Detection Sensor module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.DetectionSensorConfig detection_sensor = 13;
|
||||
*/
|
||||
detectionSensor?: ModuleConfig_DetectionSensorConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* Paxcounter Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.PaxcounterConfig paxcounter = 14;
|
||||
*/
|
||||
paxcounter?: ModuleConfig_PaxcounterConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* StatusMessage Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.StatusMessageConfig statusmessage = 15;
|
||||
*/
|
||||
statusmessage?: ModuleConfig_StatusMessageConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The part of the config that is specific to the Traffic Management module
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TrafficManagementConfig traffic_management = 16;
|
||||
*/
|
||||
trafficManagement?: ModuleConfig_TrafficManagementConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* TAK Config
|
||||
*
|
||||
* @generated from field: meshtastic.ModuleConfig.TAKConfig tak = 17;
|
||||
*/
|
||||
tak?: ModuleConfig_TAKConfig | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* A version integer used to invalidate old save files when we make
|
||||
* incompatible changes This integer is set at build time and is private to
|
||||
* NodeDB.cpp in the device code.
|
||||
*
|
||||
* @generated from field: uint32 version = 8;
|
||||
*/
|
||||
version: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.LocalModuleConfig.
|
||||
* Use `create(LocalModuleConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const LocalModuleConfigSchema: GenMessage<LocalModuleConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_localonly, 1);
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,189 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/mqtt.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Config_DeviceConfig_Role, Config_LoRaConfig_ModemPreset, Config_LoRaConfig_RegionCode } from "./config_pb";
|
||||
import { file_meshtastic_config } from "./config_pb";
|
||||
import type { HardwareModel, MeshPacket } from "./mesh_pb";
|
||||
import { file_meshtastic_mesh } from "./mesh_pb";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/mqtt.proto.
|
||||
*/
|
||||
export const file_meshtastic_mqtt: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChVtZXNodGFzdGljL21xdHQucHJvdG8SCm1lc2h0YXN0aWMiYQoPU2VydmljZUVudmVsb3BlEiYKBnBhY2tldBgBIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldBISCgpjaGFubmVsX2lkGAIgASgJEhIKCmdhdGV3YXlfaWQYAyABKAki3wMKCU1hcFJlcG9ydBIRCglsb25nX25hbWUYASABKAkSEgoKc2hvcnRfbmFtZRgCIAEoCRIyCgRyb2xlGAMgASgOMiQubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSKwoIaHdfbW9kZWwYBCABKA4yGS5tZXNodGFzdGljLkhhcmR3YXJlTW9kZWwSGAoQZmlybXdhcmVfdmVyc2lvbhgFIAEoCRI4CgZyZWdpb24YBiABKA4yKC5tZXNodGFzdGljLkNvbmZpZy5Mb1JhQ29uZmlnLlJlZ2lvbkNvZGUSPwoMbW9kZW1fcHJlc2V0GAcgASgOMikubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZy5Nb2RlbVByZXNldBIbChNoYXNfZGVmYXVsdF9jaGFubmVsGAggASgIEhIKCmxhdGl0dWRlX2kYCSABKA8SEwoLbG9uZ2l0dWRlX2kYCiABKA8SEAoIYWx0aXR1ZGUYCyABKAUSGgoScG9zaXRpb25fcHJlY2lzaW9uGAwgASgNEh4KFm51bV9vbmxpbmVfbG9jYWxfbm9kZXMYDSABKA0SIQoZaGFzX29wdGVkX3JlcG9ydF9sb2NhdGlvbhgOIAEoCEJgChRvcmcubWVzaHRhc3RpYy5wcm90b0IKTVFUVFByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM", [file_meshtastic_config, file_meshtastic_mesh]);
|
||||
|
||||
/**
|
||||
*
|
||||
* This message wraps a MeshPacket with extra metadata about the sender and how it arrived.
|
||||
*
|
||||
* @generated from message meshtastic.ServiceEnvelope
|
||||
*/
|
||||
export type ServiceEnvelope = Message<"meshtastic.ServiceEnvelope"> & {
|
||||
/**
|
||||
*
|
||||
* The (probably encrypted) packet
|
||||
*
|
||||
* @generated from field: meshtastic.MeshPacket packet = 1;
|
||||
*/
|
||||
packet?: MeshPacket | undefined;
|
||||
|
||||
/**
|
||||
*
|
||||
* The global channel ID it was sent on
|
||||
*
|
||||
* @generated from field: string channel_id = 2;
|
||||
*/
|
||||
channelId: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* The sending gateway node ID. Can we use this to authenticate/prevent fake
|
||||
* nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as
|
||||
* the globally trusted nodenum
|
||||
*
|
||||
* @generated from field: string gateway_id = 3;
|
||||
*/
|
||||
gatewayId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.ServiceEnvelope.
|
||||
* Use `create(ServiceEnvelopeSchema)` to create a new message.
|
||||
*/
|
||||
export const ServiceEnvelopeSchema: GenMessage<ServiceEnvelope> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_mqtt, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* Information about a node intended to be reported unencrypted to a map using MQTT.
|
||||
*
|
||||
* @generated from message meshtastic.MapReport
|
||||
*/
|
||||
export type MapReport = Message<"meshtastic.MapReport"> & {
|
||||
/**
|
||||
*
|
||||
* A full name for this user, i.e. "Kevin Hester"
|
||||
*
|
||||
* @generated from field: string long_name = 1;
|
||||
*/
|
||||
longName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* A VERY short name, ideally two characters.
|
||||
* Suitable for a tiny OLED screen
|
||||
*
|
||||
* @generated from field: string short_name = 2;
|
||||
*/
|
||||
shortName: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Role of the node that applies specific settings for a particular use-case
|
||||
*
|
||||
* @generated from field: meshtastic.Config.DeviceConfig.Role role = 3;
|
||||
*/
|
||||
role: Config_DeviceConfig_Role;
|
||||
|
||||
/**
|
||||
*
|
||||
* Hardware model of the node, i.e. T-Beam, Heltec V3, etc...
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareModel hw_model = 4;
|
||||
*/
|
||||
hwModel: HardwareModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* Device firmware version string
|
||||
*
|
||||
* @generated from field: string firmware_version = 5;
|
||||
*/
|
||||
firmwareVersion: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* The region code for the radio (US, CN, EU433, etc...)
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig.RegionCode region = 6;
|
||||
*/
|
||||
region: Config_LoRaConfig_RegionCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* Modem preset used by the radio (LongFast, MediumSlow, etc...)
|
||||
*
|
||||
* @generated from field: meshtastic.Config.LoRaConfig.ModemPreset modem_preset = 7;
|
||||
*/
|
||||
modemPreset: Config_LoRaConfig_ModemPreset;
|
||||
|
||||
/**
|
||||
*
|
||||
* Whether the node has a channel with default PSK and name (LongFast, MediumSlow, etc...)
|
||||
* and it uses the default frequency slot given the region and modem preset.
|
||||
*
|
||||
* @generated from field: bool has_default_channel = 8;
|
||||
*/
|
||||
hasDefaultChannel: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Latitude: multiply by 1e-7 to get degrees in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 latitude_i = 9;
|
||||
*/
|
||||
latitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Longitude: multiply by 1e-7 to get degrees in floating point
|
||||
*
|
||||
* @generated from field: sfixed32 longitude_i = 10;
|
||||
*/
|
||||
longitudeI: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Altitude in meters above MSL
|
||||
*
|
||||
* @generated from field: int32 altitude = 11;
|
||||
*/
|
||||
altitude: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Indicates the bits of precision for latitude and longitude set by the sending node
|
||||
*
|
||||
* @generated from field: uint32 position_precision = 12;
|
||||
*/
|
||||
positionPrecision: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT)
|
||||
*
|
||||
* @generated from field: uint32 num_online_local_nodes = 13;
|
||||
*/
|
||||
numOnlineLocalNodes: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* User has opted in to share their location (map report) with the mqtt server
|
||||
* Controlled by map_report.should_report_location
|
||||
*
|
||||
* @generated from field: bool has_opted_report_location = 14;
|
||||
*/
|
||||
hasOptedReportLocation: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.MapReport.
|
||||
* Use `create(MapReportSchema)` to create a new message.
|
||||
*/
|
||||
export const MapReportSchema: GenMessage<MapReport> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_mqtt, 1);
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/paxcount.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/paxcount.proto.
|
||||
*/
|
||||
export const file_meshtastic_paxcount: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3BheGNvdW50LnByb3RvEgptZXNodGFzdGljIjUKCFBheGNvdW50EgwKBHdpZmkYASABKA0SCwoDYmxlGAIgASgNEg4KBnVwdGltZRgDIAEoDUJkChRvcmcubWVzaHRhc3RpYy5wcm90b0IOUGF4Y291bnRQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.Paxcount
|
||||
*/
|
||||
export type Paxcount = Message<"meshtastic.Paxcount"> & {
|
||||
/**
|
||||
*
|
||||
* seen Wifi devices
|
||||
*
|
||||
* @generated from field: uint32 wifi = 1;
|
||||
*/
|
||||
wifi: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Seen BLE devices
|
||||
*
|
||||
* @generated from field: uint32 ble = 2;
|
||||
*/
|
||||
ble: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Uptime in seconds
|
||||
*
|
||||
* @generated from field: uint32 uptime = 3;
|
||||
*/
|
||||
uptime: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.Paxcount.
|
||||
* Use `create(PaxcountSchema)` to create a new message.
|
||||
*/
|
||||
export const PaxcountSchema: GenMessage<Paxcount> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_paxcount, 0);
|
||||
|
||||
@@ -0,0 +1,412 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/portnums.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/portnums.proto.
|
||||
*/
|
||||
export const file_meshtastic_portnums: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKv0FCgdQb3J0TnVtEg8KC1VOS05PV05fQVBQEAASFAoQVEVYVF9NRVNTQUdFX0FQUBABEhcKE1JFTU9URV9IQVJEV0FSRV9BUFAQAhIQCgxQT1NJVElPTl9BUFAQAxIQCgxOT0RFSU5GT19BUFAQBBIPCgtST1VUSU5HX0FQUBAFEg0KCUFETUlOX0FQUBAGEh8KG1RFWFRfTUVTU0FHRV9DT01QUkVTU0VEX0FQUBAHEhAKDFdBWVBPSU5UX0FQUBAIEg0KCUFVRElPX0FQUBAJEhgKFERFVEVDVElPTl9TRU5TT1JfQVBQEAoSDQoJQUxFUlRfQVBQEAsSGAoUS0VZX1ZFUklGSUNBVElPTl9BUFAQDBIUChBSRU1PVEVfU0hFTExfQVBQEA0SDQoJUkVQTFlfQVBQECASEQoNSVBfVFVOTkVMX0FQUBAhEhIKDlBBWENPVU5URVJfQVBQECISHgoaU1RPUkVfRk9SV0FSRF9QTFVTUExVU19BUFAQIxITCg9OT0RFX1NUQVRVU19BUFAQJBIOCgpTRVJJQUxfQVBQEEASFQoRU1RPUkVfRk9SV0FSRF9BUFAQQRISCg5SQU5HRV9URVNUX0FQUBBCEhEKDVRFTEVNRVRSWV9BUFAQQxILCgdaUFNfQVBQEEQSEQoNU0lNVUxBVE9SX0FQUBBFEhIKDlRSQUNFUk9VVEVfQVBQEEYSFAoQTkVJR0hCT1JJTkZPX0FQUBBHEg8KC0FUQUtfUExVR0lOEEgSEgoOTUFQX1JFUE9SVF9BUFAQSRITCg9QT1dFUlNUUkVTU19BUFAQShISCg5MT1JBV0FOX0JSSURHRRBLEhgKFFJFVElDVUxVTV9UVU5ORUxfQVBQEEwSDwoLQ0FZRU5ORV9BUFAQTRISCg5BVEFLX1BMVUdJTl9WMhBOEhIKDkdST1VQQUxBUk1fQVBQEHASEAoLUFJJVkFURV9BUFAQgAISEwoOQVRBS19GT1JXQVJERVIQgQISCAoDTUFYEP8DQl4KFG9yZy5tZXNodGFzdGljLnByb3RvQghQb3J0bnVtc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM");
|
||||
|
||||
/**
|
||||
*
|
||||
* For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
|
||||
* unique 'portnum' for their application.
|
||||
* If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
|
||||
* master table.
|
||||
* PortNums should be assigned in the following range:
|
||||
* 0-63 Core Meshtastic use, do not use for third party apps
|
||||
* 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application
|
||||
* 256-511 Use one of these portnums for your private applications that you don't want to register publically
|
||||
* All other values are reserved.
|
||||
* Note: This was formerly a Type enum named 'typ' with the same id #
|
||||
* We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
|
||||
* This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
|
||||
*
|
||||
* @generated from enum meshtastic.PortNum
|
||||
*/
|
||||
export enum PortNum {
|
||||
/**
|
||||
*
|
||||
* Deprecated: do not use in new code (formerly called OPAQUE)
|
||||
* A message sent from a device outside of the mesh, in a form the mesh does not understand
|
||||
* NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
|
||||
* ENCODING: binary undefined
|
||||
*
|
||||
* @generated from enum value: UNKNOWN_APP = 0;
|
||||
*/
|
||||
UNKNOWN_APP = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* A simple UTF-8 text message, which even the little micros in the mesh
|
||||
* can understand and show on their screen eventually in some circumstances
|
||||
* even signal might send messages in this form (see below)
|
||||
* ENCODING: UTF-8 Plaintext (?)
|
||||
*
|
||||
* @generated from enum value: TEXT_MESSAGE_APP = 1;
|
||||
*/
|
||||
TEXT_MESSAGE_APP = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Reserved for built-in GPIO/example app.
|
||||
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: REMOTE_HARDWARE_APP = 2;
|
||||
*/
|
||||
REMOTE_HARDWARE_APP = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The built-in position messaging app.
|
||||
* Payload is a Position message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: POSITION_APP = 3;
|
||||
*/
|
||||
POSITION_APP = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* The built-in user info app.
|
||||
* Payload is a User message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: NODEINFO_APP = 4;
|
||||
*/
|
||||
NODEINFO_APP = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Protocol control packets for mesh protocol use.
|
||||
* Payload is a Routing message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: ROUTING_APP = 5;
|
||||
*/
|
||||
ROUTING_APP = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Admin control packets.
|
||||
* Payload is a AdminMessage message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: ADMIN_APP = 6;
|
||||
*/
|
||||
ADMIN_APP = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Compressed TEXT_MESSAGE payloads.
|
||||
* ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
|
||||
* NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
|
||||
* payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
|
||||
* any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
|
||||
*
|
||||
* @generated from enum value: TEXT_MESSAGE_COMPRESSED_APP = 7;
|
||||
*/
|
||||
TEXT_MESSAGE_COMPRESSED_APP = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Waypoint payloads.
|
||||
* Payload is a Waypoint message.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: WAYPOINT_APP = 8;
|
||||
*/
|
||||
WAYPOINT_APP = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Audio Payloads.
|
||||
* Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
|
||||
* ENCODING: codec2 audio frames
|
||||
* NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
|
||||
* This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
|
||||
*
|
||||
* @generated from enum value: AUDIO_APP = 9;
|
||||
*/
|
||||
AUDIO_APP = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Same as Text Message but originating from Detection Sensor Module.
|
||||
* NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
|
||||
*
|
||||
* @generated from enum value: DETECTION_SENSOR_APP = 10;
|
||||
*/
|
||||
DETECTION_SENSOR_APP = 10,
|
||||
|
||||
/**
|
||||
*
|
||||
* Same as Text Message but used for critical alerts.
|
||||
*
|
||||
* @generated from enum value: ALERT_APP = 11;
|
||||
*/
|
||||
ALERT_APP = 11,
|
||||
|
||||
/**
|
||||
*
|
||||
* Module/port for handling key verification requests.
|
||||
*
|
||||
* @generated from enum value: KEY_VERIFICATION_APP = 12;
|
||||
*/
|
||||
KEY_VERIFICATION_APP = 12,
|
||||
|
||||
/**
|
||||
*
|
||||
* Module/port for handling primitive remote shell access.
|
||||
*
|
||||
* @generated from enum value: REMOTE_SHELL_APP = 13;
|
||||
*/
|
||||
REMOTE_SHELL_APP = 13,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a 'ping' service that replies to any packet it receives.
|
||||
* Also serves as a small example module.
|
||||
* ENCODING: ASCII Plaintext
|
||||
*
|
||||
* @generated from enum value: REPLY_APP = 32;
|
||||
*/
|
||||
REPLY_APP = 32,
|
||||
|
||||
/**
|
||||
*
|
||||
* Used for the python IP tunnel feature
|
||||
* ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
|
||||
*
|
||||
* @generated from enum value: IP_TUNNEL_APP = 33;
|
||||
*/
|
||||
IP_TUNNEL_APP = 33,
|
||||
|
||||
/**
|
||||
*
|
||||
* Paxcounter lib included in the firmware
|
||||
* ENCODING: protobuf
|
||||
*
|
||||
* @generated from enum value: PAXCOUNTER_APP = 34;
|
||||
*/
|
||||
PAXCOUNTER_APP = 34,
|
||||
|
||||
/**
|
||||
*
|
||||
* Store and Forward++ module included in the firmware
|
||||
* ENCODING: protobuf
|
||||
* This module is specifically for Native Linux nodes, and provides a Git-style
|
||||
* chain of messages.
|
||||
*
|
||||
* @generated from enum value: STORE_FORWARD_PLUSPLUS_APP = 35;
|
||||
*/
|
||||
STORE_FORWARD_PLUSPLUS_APP = 35,
|
||||
|
||||
/**
|
||||
*
|
||||
* Node Status module
|
||||
* ENCODING: protobuf
|
||||
* This module allows setting an extra string of status for a node.
|
||||
* Broadcasts on change and on a timer, possibly once a day.
|
||||
*
|
||||
* @generated from enum value: NODE_STATUS_APP = 36;
|
||||
*/
|
||||
NODE_STATUS_APP = 36,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
* network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
|
||||
* Maximum packet size of 240 bytes.
|
||||
* Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
|
||||
* ENCODING: binary undefined
|
||||
*
|
||||
* @generated from enum value: SERIAL_APP = 64;
|
||||
*/
|
||||
SERIAL_APP = 64,
|
||||
|
||||
/**
|
||||
*
|
||||
* STORE_FORWARD_APP (Work in Progress)
|
||||
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: STORE_FORWARD_APP = 65;
|
||||
*/
|
||||
STORE_FORWARD_APP = 65,
|
||||
|
||||
/**
|
||||
*
|
||||
* Optional port for messages for the range test module.
|
||||
* ENCODING: ASCII Plaintext
|
||||
* NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
|
||||
*
|
||||
* @generated from enum value: RANGE_TEST_APP = 66;
|
||||
*/
|
||||
RANGE_TEST_APP = 66,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a format to send and receive telemetry data from the Meshtastic network.
|
||||
* Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: TELEMETRY_APP = 67;
|
||||
*/
|
||||
TELEMETRY_APP = 67,
|
||||
|
||||
/**
|
||||
*
|
||||
* Experimental tools for estimating node position without a GPS
|
||||
* Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
|
||||
* Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
|
||||
* ENCODING: arrays of int64 fields
|
||||
*
|
||||
* @generated from enum value: ZPS_APP = 68;
|
||||
*/
|
||||
ZPS_APP = 68,
|
||||
|
||||
/**
|
||||
*
|
||||
* Used to let multiple instances of Linux native applications communicate
|
||||
* as if they did using their LoRa chip.
|
||||
* Maintained by GitHub user GUVWAF.
|
||||
* Project files at https://github.com/GUVWAF/Meshtasticator
|
||||
* ENCODING: Protobuf (?)
|
||||
*
|
||||
* @generated from enum value: SIMULATOR_APP = 69;
|
||||
*/
|
||||
SIMULATOR_APP = 69,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides a traceroute functionality to show the route a packet towards
|
||||
* a certain destination would take on the mesh. Contains a RouteDiscovery message as payload.
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: TRACEROUTE_APP = 70;
|
||||
*/
|
||||
TRACEROUTE_APP = 70,
|
||||
|
||||
/**
|
||||
*
|
||||
* Aggregates edge info for the network by sending out a list of each node's neighbors
|
||||
* ENCODING: Protobuf
|
||||
*
|
||||
* @generated from enum value: NEIGHBORINFO_APP = 71;
|
||||
*/
|
||||
NEIGHBORINFO_APP = 71,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Plugin
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin
|
||||
*
|
||||
* @generated from enum value: ATAK_PLUGIN = 72;
|
||||
*/
|
||||
ATAK_PLUGIN = 72,
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides unencrypted information about a node for consumption by a map via MQTT
|
||||
*
|
||||
* @generated from enum value: MAP_REPORT_APP = 73;
|
||||
*/
|
||||
MAP_REPORT_APP = 73,
|
||||
|
||||
/**
|
||||
*
|
||||
* PowerStress based monitoring support (for automated power consumption testing)
|
||||
*
|
||||
* @generated from enum value: POWERSTRESS_APP = 74;
|
||||
*/
|
||||
POWERSTRESS_APP = 74,
|
||||
|
||||
/**
|
||||
*
|
||||
* LoraWAN Payload Transport
|
||||
* ENCODING: compact binary LoRaWAN uplink (10-byte RF metadata + PHY payload) - see LoRaWANBridgeModule
|
||||
*
|
||||
* @generated from enum value: LORAWAN_BRIDGE = 75;
|
||||
*/
|
||||
LORAWAN_BRIDGE = 75,
|
||||
|
||||
/**
|
||||
*
|
||||
* Reticulum Network Stack Tunnel App
|
||||
* ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
|
||||
*
|
||||
* @generated from enum value: RETICULUM_TUNNEL_APP = 76;
|
||||
*/
|
||||
RETICULUM_TUNNEL_APP = 76,
|
||||
|
||||
/**
|
||||
*
|
||||
* App for transporting Cayenne Low Power Payload, popular for LoRaWAN sensor nodes. Offers ability to send
|
||||
* arbitrary telemetry over meshtastic that is not covered by telemetry.proto
|
||||
* ENCODING: CayenneLLP
|
||||
*
|
||||
* @generated from enum value: CAYENNE_APP = 77;
|
||||
*/
|
||||
CAYENNE_APP = 77,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Plugin V2
|
||||
* Portnum for payloads from the official Meshtastic ATAK plugin using
|
||||
* TAKPacketV2 with zstd dictionary compression.
|
||||
*
|
||||
* @generated from enum value: ATAK_PLUGIN_V2 = 78;
|
||||
*/
|
||||
ATAK_PLUGIN_V2 = 78,
|
||||
|
||||
/**
|
||||
*
|
||||
* GroupAlarm integration
|
||||
* Used for transporting GroupAlarm-related messages between Meshtastic nodes
|
||||
* and companion applications/services.
|
||||
*
|
||||
* @generated from enum value: GROUPALARM_APP = 112;
|
||||
*/
|
||||
GROUPALARM_APP = 112,
|
||||
|
||||
/**
|
||||
*
|
||||
* Private applications should use portnums >= 256.
|
||||
* To simplify initial development and testing you can use "PRIVATE_APP"
|
||||
* in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh))
|
||||
*
|
||||
* @generated from enum value: PRIVATE_APP = 256;
|
||||
*/
|
||||
PRIVATE_APP = 256,
|
||||
|
||||
/**
|
||||
*
|
||||
* ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
|
||||
* ENCODING: libcotshrink
|
||||
*
|
||||
* @generated from enum value: ATAK_FORWARDER = 257;
|
||||
*/
|
||||
ATAK_FORWARDER = 257,
|
||||
|
||||
/**
|
||||
*
|
||||
* Currently we limit port nums to no higher than this value
|
||||
*
|
||||
* @generated from enum value: MAX = 511;
|
||||
*/
|
||||
MAX = 511,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PortNum.
|
||||
*/
|
||||
export const PortNumSchema: GenEnum<PortNum> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_portnums, 0);
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/powermon.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/powermon.proto.
|
||||
*/
|
||||
export const file_meshtastic_powermon: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChltZXNodGFzdGljL3Bvd2VybW9uLnByb3RvEgptZXNodGFzdGljIuABCghQb3dlck1vbiLTAQoFU3RhdGUSCAoETm9uZRAAEhEKDUNQVV9EZWVwU2xlZXAQARISCg5DUFVfTGlnaHRTbGVlcBACEgwKCFZleHQxX09uEAQSDQoJTG9yYV9SWE9uEAgSDQoJTG9yYV9UWE9uEBASEQoNTG9yYV9SWEFjdGl2ZRAgEgkKBUJUX09uEEASCwoGTEVEX09uEIABEg4KCVNjcmVlbl9PbhCAAhITCg5TY3JlZW5fRHJhd2luZxCABBIMCgdXaWZpX09uEIAIEg8KCkdQU19BY3RpdmUQgBAi/wIKElBvd2VyU3RyZXNzTWVzc2FnZRIyCgNjbWQYASABKA4yJS5tZXNodGFzdGljLlBvd2VyU3RyZXNzTWVzc2FnZS5PcGNvZGUSEwoLbnVtX3NlY29uZHMYAiABKAIinwIKBk9wY29kZRIJCgVVTlNFVBAAEg4KClBSSU5UX0lORk8QARIPCgtGT1JDRV9RVUlFVBACEg0KCUVORF9RVUlFVBADEg0KCVNDUkVFTl9PThAQEg4KClNDUkVFTl9PRkYQERIMCghDUFVfSURMRRAgEhEKDUNQVV9ERUVQU0xFRVAQIRIOCgpDUFVfRlVMTE9OECISCgoGTEVEX09OEDASCwoHTEVEX09GRhAxEgwKCExPUkFfT0ZGEEASCwoHTE9SQV9UWBBBEgsKB0xPUkFfUlgQQhIKCgZCVF9PRkYQUBIJCgVCVF9PThBREgwKCFdJRklfT0ZGEGASCwoHV0lGSV9PThBhEgsKB0dQU19PRkYQcBIKCgZHUFNfT04QcUJkChRvcmcubWVzaHRhc3RpYy5wcm90b0IOUG93ZXJNb25Qcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs).
|
||||
* But we wrap our State enum in this message to effectively nest a namespace (without our linter yelling at us)
|
||||
*
|
||||
* @generated from message meshtastic.PowerMon
|
||||
*/
|
||||
export type PowerMon = Message<"meshtastic.PowerMon"> & {
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PowerMon.
|
||||
* Use `create(PowerMonSchema)` to create a new message.
|
||||
*/
|
||||
export const PowerMonSchema: GenMessage<PowerMon> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_powermon, 0);
|
||||
|
||||
/**
|
||||
* Any significant power changing event in meshtastic should be tagged with a powermon state transition.
|
||||
* If you are making new meshtastic features feel free to add new entries at the end of this definition.
|
||||
*
|
||||
* @generated from enum meshtastic.PowerMon.State
|
||||
*/
|
||||
export enum PowerMon_State {
|
||||
/**
|
||||
* @generated from enum value: None = 0;
|
||||
*/
|
||||
None = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CPU_DeepSleep = 1;
|
||||
*/
|
||||
CPU_DeepSleep = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CPU_LightSleep = 2;
|
||||
*/
|
||||
CPU_LightSleep = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The external Vext1 power is on. Many boards have auxillary power rails that the CPU turns on only
|
||||
* occasionally. In cases where that rail has multiple devices on it we usually want to have logging on
|
||||
* the state of that rail as an independent record.
|
||||
* For instance on the Heltec Tracker 1.1 board, this rail is the power source for the GPS and screen.
|
||||
*
|
||||
* The log messages will be short and complete (see PowerMon.Event in the protobufs for details).
|
||||
* something like "S:PM:C,0x00001234,REASON" where the hex number is the bitmask of all current states.
|
||||
* (We use a bitmask for states so that if a log message gets lost it won't be fatal)
|
||||
*
|
||||
* @generated from enum value: Vext1_On = 4;
|
||||
*/
|
||||
Vext1_On = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_RXOn = 8;
|
||||
*/
|
||||
Lora_RXOn = 8,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_TXOn = 16;
|
||||
*/
|
||||
Lora_TXOn = 16,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Lora_RXActive = 32;
|
||||
*/
|
||||
Lora_RXActive = 32,
|
||||
|
||||
/**
|
||||
* @generated from enum value: BT_On = 64;
|
||||
*/
|
||||
BT_On = 64,
|
||||
|
||||
/**
|
||||
* @generated from enum value: LED_On = 128;
|
||||
*/
|
||||
LED_On = 128,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Screen_On = 256;
|
||||
*/
|
||||
Screen_On = 256,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Screen_Drawing = 512;
|
||||
*/
|
||||
Screen_Drawing = 512,
|
||||
|
||||
/**
|
||||
* @generated from enum value: Wifi_On = 1024;
|
||||
*/
|
||||
Wifi_On = 1024,
|
||||
|
||||
/**
|
||||
*
|
||||
* GPS is actively trying to find our location
|
||||
* See GPSPowerState for more details
|
||||
*
|
||||
* @generated from enum value: GPS_Active = 2048;
|
||||
*/
|
||||
GPS_Active = 2048,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PowerMon.State.
|
||||
*/
|
||||
export const PowerMon_StateSchema: GenEnum<PowerMon_State> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_powermon, 0, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* PowerStress testing support via the C++ PowerStress module
|
||||
*
|
||||
* @generated from message meshtastic.PowerStressMessage
|
||||
*/
|
||||
export type PowerStressMessage = Message<"meshtastic.PowerStressMessage"> & {
|
||||
/**
|
||||
*
|
||||
* What type of HardwareMessage is this?
|
||||
*
|
||||
* @generated from field: meshtastic.PowerStressMessage.Opcode cmd = 1;
|
||||
*/
|
||||
cmd: PowerStressMessage_Opcode;
|
||||
|
||||
/**
|
||||
* @generated from field: float num_seconds = 2;
|
||||
*/
|
||||
numSeconds: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.PowerStressMessage.
|
||||
* Use `create(PowerStressMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const PowerStressMessageSchema: GenMessage<PowerStressMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_powermon, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* What operation would we like the UUT to perform.
|
||||
* note: senders should probably set want_response in their request packets, so that they can know when the state
|
||||
* machine has started processing their request
|
||||
*
|
||||
* @generated from enum meshtastic.PowerStressMessage.Opcode
|
||||
*/
|
||||
export enum PowerStressMessage_Opcode {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
* Print board version slog and send an ack that we are alive and ready to process commands
|
||||
*
|
||||
* @generated from enum value: PRINT_INFO = 1;
|
||||
*/
|
||||
PRINT_INFO = 1,
|
||||
|
||||
/**
|
||||
* Try to turn off all automatic processing of packets, screen, sleeping, etc (to make it easier to measure in isolation)
|
||||
*
|
||||
* @generated from enum value: FORCE_QUIET = 2;
|
||||
*/
|
||||
FORCE_QUIET = 2,
|
||||
|
||||
/**
|
||||
* Stop powerstress processing - probably by just rebooting the board
|
||||
*
|
||||
* @generated from enum value: END_QUIET = 3;
|
||||
*/
|
||||
END_QUIET = 3,
|
||||
|
||||
/**
|
||||
* Turn the screen on
|
||||
*
|
||||
* @generated from enum value: SCREEN_ON = 16;
|
||||
*/
|
||||
SCREEN_ON = 16,
|
||||
|
||||
/**
|
||||
* Turn the screen off
|
||||
*
|
||||
* @generated from enum value: SCREEN_OFF = 17;
|
||||
*/
|
||||
SCREEN_OFF = 17,
|
||||
|
||||
/**
|
||||
* Let the CPU run but we assume mostly idling for num_seconds
|
||||
*
|
||||
* @generated from enum value: CPU_IDLE = 32;
|
||||
*/
|
||||
CPU_IDLE = 32,
|
||||
|
||||
/**
|
||||
* Force deep sleep for FIXME seconds
|
||||
*
|
||||
* @generated from enum value: CPU_DEEPSLEEP = 33;
|
||||
*/
|
||||
CPU_DEEPSLEEP = 33,
|
||||
|
||||
/**
|
||||
* Spin the CPU as fast as possible for num_seconds
|
||||
*
|
||||
* @generated from enum value: CPU_FULLON = 34;
|
||||
*/
|
||||
CPU_FULLON = 34,
|
||||
|
||||
/**
|
||||
* Turn the LED on for num_seconds (and leave it on - for baseline power measurement purposes)
|
||||
*
|
||||
* @generated from enum value: LED_ON = 48;
|
||||
*/
|
||||
LED_ON = 48,
|
||||
|
||||
/**
|
||||
* Force the LED off for num_seconds
|
||||
*
|
||||
* @generated from enum value: LED_OFF = 49;
|
||||
*/
|
||||
LED_OFF = 49,
|
||||
|
||||
/**
|
||||
* Completely turn off the LORA radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: LORA_OFF = 64;
|
||||
*/
|
||||
LORA_OFF = 64,
|
||||
|
||||
/**
|
||||
* Send Lora packets for num_seconds
|
||||
*
|
||||
* @generated from enum value: LORA_TX = 65;
|
||||
*/
|
||||
LORA_TX = 65,
|
||||
|
||||
/**
|
||||
* Receive Lora packets for num_seconds (node will be mostly just listening, unless an external agent is helping stress this by sending packets on the current channel)
|
||||
*
|
||||
* @generated from enum value: LORA_RX = 66;
|
||||
*/
|
||||
LORA_RX = 66,
|
||||
|
||||
/**
|
||||
* Turn off the BT radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: BT_OFF = 80;
|
||||
*/
|
||||
BT_OFF = 80,
|
||||
|
||||
/**
|
||||
* Turn on the BT radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: BT_ON = 81;
|
||||
*/
|
||||
BT_ON = 81,
|
||||
|
||||
/**
|
||||
* Turn off the WIFI radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: WIFI_OFF = 96;
|
||||
*/
|
||||
WIFI_OFF = 96,
|
||||
|
||||
/**
|
||||
* Turn on the WIFI radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: WIFI_ON = 97;
|
||||
*/
|
||||
WIFI_ON = 97,
|
||||
|
||||
/**
|
||||
* Turn off the GPS radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: GPS_OFF = 112;
|
||||
*/
|
||||
GPS_OFF = 112,
|
||||
|
||||
/**
|
||||
* Turn on the GPS radio for num_seconds
|
||||
*
|
||||
* @generated from enum value: GPS_ON = 113;
|
||||
*/
|
||||
GPS_ON = 113,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.PowerStressMessage.Opcode.
|
||||
*/
|
||||
export const PowerStressMessage_OpcodeSchema: GenEnum<PowerStressMessage_Opcode> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_powermon, 1, 0);
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/remote_hardware.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/remote_hardware.proto.
|
||||
*/
|
||||
export const file_meshtastic_remote_hardware: GenFile = /*@__PURE__*/
|
||||
fileDesc("CiBtZXNodGFzdGljL3JlbW90ZV9oYXJkd2FyZS5wcm90bxIKbWVzaHRhc3RpYyLWAQoPSGFyZHdhcmVNZXNzYWdlEi4KBHR5cGUYASABKA4yIC5tZXNodGFzdGljLkhhcmR3YXJlTWVzc2FnZS5UeXBlEhEKCWdwaW9fbWFzaxgCIAEoBBISCgpncGlvX3ZhbHVlGAMgASgEImwKBFR5cGUSCQoFVU5TRVQQABIPCgtXUklURV9HUElPUxABEg8KC1dBVENIX0dQSU9TEAISEQoNR1BJT1NfQ0hBTkdFRBADEg4KClJFQURfR1BJT1MQBBIUChBSRUFEX0dQSU9TX1JFUExZEAVCZAoUb3JnLm1lc2h0YXN0aWMucHJvdG9CDlJlbW90ZUhhcmR3YXJlWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* An example app to show off the module system. This message is used for
|
||||
* REMOTE_HARDWARE_APP PortNums.
|
||||
* Also provides easy remote access to any GPIO.
|
||||
* In the future other remote hardware operations can be added based on user interest
|
||||
* (i.e. serial output, spi/i2c input/output).
|
||||
* FIXME - currently this feature is turned on by default which is dangerous
|
||||
* because no security yet (beyond the channel mechanism).
|
||||
* It should be off by default and then protected based on some TBD mechanism
|
||||
* (a special channel once multichannel support is included?)
|
||||
*
|
||||
* @generated from message meshtastic.HardwareMessage
|
||||
*/
|
||||
export type HardwareMessage = Message<"meshtastic.HardwareMessage"> & {
|
||||
/**
|
||||
*
|
||||
* What type of HardwareMessage is this?
|
||||
*
|
||||
* @generated from field: meshtastic.HardwareMessage.Type type = 1;
|
||||
*/
|
||||
type: HardwareMessage_Type;
|
||||
|
||||
/**
|
||||
*
|
||||
* What gpios are we changing. Not used for all MessageTypes, see MessageType for details
|
||||
*
|
||||
* @generated from field: uint64 gpio_mask = 2;
|
||||
*/
|
||||
gpioMask: bigint;
|
||||
|
||||
/**
|
||||
*
|
||||
* For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios.
|
||||
* Not used for all MessageTypes, see MessageType for details
|
||||
*
|
||||
* @generated from field: uint64 gpio_value = 3;
|
||||
*/
|
||||
gpioValue: bigint;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.HardwareMessage.
|
||||
* Use `create(HardwareMessageSchema)` to create a new message.
|
||||
*/
|
||||
export const HardwareMessageSchema: GenMessage<HardwareMessage> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_remote_hardware, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from enum meshtastic.HardwareMessage.Type
|
||||
*/
|
||||
export enum HardwareMessage_Type {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Set gpio gpios based on gpio_mask/gpio_value
|
||||
*
|
||||
* @generated from enum value: WRITE_GPIOS = 1;
|
||||
*/
|
||||
WRITE_GPIOS = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* We are now interested in watching the gpio_mask gpios.
|
||||
* If the selected gpios change, please broadcast GPIOS_CHANGED.
|
||||
* Will implicitly change the gpios requested to be INPUT gpios.
|
||||
*
|
||||
* @generated from enum value: WATCH_GPIOS = 2;
|
||||
*/
|
||||
WATCH_GPIOS = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
|
||||
*
|
||||
* @generated from enum value: GPIOS_CHANGED = 3;
|
||||
*/
|
||||
GPIOS_CHANGED = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
|
||||
*
|
||||
* @generated from enum value: READ_GPIOS = 4;
|
||||
*/
|
||||
READ_GPIOS = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
|
||||
*
|
||||
* @generated from enum value: READ_GPIOS_REPLY = 5;
|
||||
*/
|
||||
READ_GPIOS_REPLY = 5,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.HardwareMessage.Type.
|
||||
*/
|
||||
export const HardwareMessage_TypeSchema: GenEnum<HardwareMessage_Type> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_remote_hardware, 0, 0);
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/rtttl.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/rtttl.proto.
|
||||
*/
|
||||
export const file_meshtastic_rtttl: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChZtZXNodGFzdGljL3J0dHRsLnByb3RvEgptZXNodGFzdGljIh8KC1JUVFRMQ29uZmlnEhAKCHJpbmd0b25lGAEgASgJQmcKFG9yZy5tZXNodGFzdGljLnByb3RvQhFSVFRUTENvbmZpZ1Byb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM");
|
||||
|
||||
/**
|
||||
*
|
||||
* Canned message module configuration.
|
||||
*
|
||||
* @generated from message meshtastic.RTTTLConfig
|
||||
*/
|
||||
export type RTTTLConfig = Message<"meshtastic.RTTTLConfig"> & {
|
||||
/**
|
||||
*
|
||||
* Ringtone for PWM Buzzer in RTTTL Format.
|
||||
*
|
||||
* @generated from field: string ringtone = 1;
|
||||
*/
|
||||
ringtone: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.RTTTLConfig.
|
||||
* Use `create(RTTTLConfigSchema)` to create a new message.
|
||||
*/
|
||||
export const RTTTLConfigSchema: GenMessage<RTTTLConfig> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_rtttl, 0);
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/serial_hal.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/serial_hal.proto.
|
||||
*/
|
||||
export const file_meshtastic_serial_hal: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChttZXNodGFzdGljL3NlcmlhbF9oYWwucHJvdG8SCm1lc2h0YXN0aWMiogIKEFNlcmlhbEhhbENvbW1hbmQSFgoOdHJhbnNhY3Rpb25faWQYASABKA0SLwoEdHlwZRgCIAEoDjIhLm1lc2h0YXN0aWMuU2VyaWFsSGFsQ29tbWFuZC5UeXBlEgsKA3BpbhgDIAEoDRINCgV2YWx1ZRgEIAEoDRIMCgRtb2RlGAUgASgNEgwKBGRhdGEYBiABKAwijAEKBFR5cGUSCQoFVU5TRVQQABIMCghQSU5fTU9ERRABEhEKDURJR0lUQUxfV1JJVEUQAhIQCgxESUdJVEFMX1JFQUQQAxIUChBBVFRBQ0hfSU5URVJSVVBUEAQSFAoQREVUQUNIX0lOVEVSUlVQVBAFEhAKDFNQSV9UUkFOU0ZFUhAGEggKBE5PT1AQByLMAQoRU2VyaWFsSGFsUmVzcG9uc2USFgoOdHJhbnNhY3Rpb25faWQYASABKA0SNAoGcmVzdWx0GAIgASgOMiQubWVzaHRhc3RpYy5TZXJpYWxIYWxSZXNwb25zZS5SZXN1bHQSDQoFdmFsdWUYAyABKA0SDAoEZGF0YRgEIAEoDBINCgVlcnJvchgFIAEoCSI9CgZSZXN1bHQSBgoCT0sQABIJCgVFUlJPUhABEg8KC0JBRF9SRVFVRVNUEAISDwoLVU5TVVBQT1JURUQQA0JfChRvcmcubWVzaHRhc3RpYy5wcm90b0IJU2VyaWFsSGFsWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SerialHalCommand
|
||||
*/
|
||||
export type SerialHalCommand = Message<"meshtastic.SerialHalCommand"> & {
|
||||
/**
|
||||
* Host-assigned request id. Replies echo this id back in
|
||||
* SerialHalResponse.transaction_id.
|
||||
*
|
||||
* @generated from field: uint32 transaction_id = 1;
|
||||
*/
|
||||
transactionId: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.SerialHalCommand.Type type = 2;
|
||||
*/
|
||||
type: SerialHalCommand_Type;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 pin = 3;
|
||||
*/
|
||||
pin: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 value = 4;
|
||||
*/
|
||||
value: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 mode = 5;
|
||||
*/
|
||||
mode: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes data = 6;
|
||||
*/
|
||||
data: Uint8Array;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialHalCommand.
|
||||
* Use `create(SerialHalCommandSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialHalCommandSchema: GenMessage<SerialHalCommand> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_serial_hal, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.SerialHalCommand.Type
|
||||
*/
|
||||
export enum SerialHalCommand_Type {
|
||||
/**
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: PIN_MODE = 1;
|
||||
*/
|
||||
PIN_MODE = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DIGITAL_WRITE = 2;
|
||||
*/
|
||||
DIGITAL_WRITE = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DIGITAL_READ = 3;
|
||||
*/
|
||||
DIGITAL_READ = 3,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ATTACH_INTERRUPT = 4;
|
||||
*/
|
||||
ATTACH_INTERRUPT = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: DETACH_INTERRUPT = 5;
|
||||
*/
|
||||
DETACH_INTERRUPT = 5,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SPI_TRANSFER = 6;
|
||||
*/
|
||||
SPI_TRANSFER = 6,
|
||||
|
||||
/**
|
||||
* @generated from enum value: NOOP = 7;
|
||||
*/
|
||||
NOOP = 7,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.SerialHalCommand.Type.
|
||||
*/
|
||||
export const SerialHalCommand_TypeSchema: GenEnum<SerialHalCommand_Type> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_serial_hal, 0, 0);
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.SerialHalResponse
|
||||
*/
|
||||
export type SerialHalResponse = Message<"meshtastic.SerialHalResponse"> & {
|
||||
/**
|
||||
* Matches the originating SerialHalCommand.transaction_id for normal
|
||||
* request/response traffic.
|
||||
*
|
||||
* A value of 0 indicates an unsolicited interrupt notification generated by
|
||||
* the device. In that case, the host should interpret value as the GPIO pin
|
||||
* that triggered.
|
||||
*
|
||||
* @generated from field: uint32 transaction_id = 1;
|
||||
*/
|
||||
transactionId: number;
|
||||
|
||||
/**
|
||||
* @generated from field: meshtastic.SerialHalResponse.Result result = 2;
|
||||
*/
|
||||
result: SerialHalResponse_Result;
|
||||
|
||||
/**
|
||||
* Used by DIGITAL_READ replies and interrupt notifications. For interrupt
|
||||
* notifications (transaction_id == 0), this carries the pin number.
|
||||
*
|
||||
* @generated from field: uint32 value = 3;
|
||||
*/
|
||||
value: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes data = 4;
|
||||
*/
|
||||
data: Uint8Array;
|
||||
|
||||
/**
|
||||
* @generated from field: string error = 5;
|
||||
*/
|
||||
error: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.SerialHalResponse.
|
||||
* Use `create(SerialHalResponseSchema)` to create a new message.
|
||||
*/
|
||||
export const SerialHalResponseSchema: GenMessage<SerialHalResponse> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_serial_hal, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.SerialHalResponse.Result
|
||||
*/
|
||||
export enum SerialHalResponse_Result {
|
||||
/**
|
||||
* @generated from enum value: OK = 0;
|
||||
*/
|
||||
OK = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ERROR = 1;
|
||||
*/
|
||||
ERROR = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: BAD_REQUEST = 2;
|
||||
*/
|
||||
BAD_REQUEST = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: UNSUPPORTED = 3;
|
||||
*/
|
||||
UNSUPPORTED = 3,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.SerialHalResponse.Result.
|
||||
*/
|
||||
export const SerialHalResponse_ResultSchema: GenEnum<SerialHalResponse_Result> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_serial_hal, 1, 0);
|
||||
|
||||
@@ -0,0 +1,384 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/storeforward.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/storeforward.proto.
|
||||
*/
|
||||
export const file_meshtastic_storeforward: GenFile = /*@__PURE__*/
|
||||
fileDesc("Ch1tZXNodGFzdGljL3N0b3JlZm9yd2FyZC5wcm90bxIKbWVzaHRhc3RpYyKcBwoPU3RvcmVBbmRGb3J3YXJkEjcKAnJyGAEgASgOMisubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuUmVxdWVzdFJlc3BvbnNlEjcKBXN0YXRzGAIgASgLMiYubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuU3RhdGlzdGljc0gAEjYKB2hpc3RvcnkYAyABKAsyIy5tZXNodGFzdGljLlN0b3JlQW5kRm9yd2FyZC5IaXN0b3J5SAASOgoJaGVhcnRiZWF0GAQgASgLMiUubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuSGVhcnRiZWF0SAASDgoEdGV4dBgFIAEoDEgAGs0BCgpTdGF0aXN0aWNzEhYKDm1lc3NhZ2VzX3RvdGFsGAEgASgNEhYKDm1lc3NhZ2VzX3NhdmVkGAIgASgNEhQKDG1lc3NhZ2VzX21heBgDIAEoDRIPCgd1cF90aW1lGAQgASgNEhAKCHJlcXVlc3RzGAUgASgNEhgKEHJlcXVlc3RzX2hpc3RvcnkYBiABKA0SEQoJaGVhcnRiZWF0GAcgASgIEhIKCnJldHVybl9tYXgYCCABKA0SFQoNcmV0dXJuX3dpbmRvdxgJIAEoDRpJCgdIaXN0b3J5EhgKEGhpc3RvcnlfbWVzc2FnZXMYASABKA0SDgoGd2luZG93GAIgASgNEhQKDGxhc3RfcmVxdWVzdBgDIAEoDRouCglIZWFydGJlYXQSDgoGcGVyaW9kGAEgASgNEhEKCXNlY29uZGFyeRgCIAEoDSK8AgoPUmVxdWVzdFJlc3BvbnNlEgkKBVVOU0VUEAASEAoMUk9VVEVSX0VSUk9SEAESFAoQUk9VVEVSX0hFQVJUQkVBVBACEg8KC1JPVVRFUl9QSU5HEAMSDwoLUk9VVEVSX1BPTkcQBBIPCgtST1VURVJfQlVTWRAFEhIKDlJPVVRFUl9ISVNUT1JZEAYSEAoMUk9VVEVSX1NUQVRTEAcSFgoSUk9VVEVSX1RFWFRfRElSRUNUEAgSGQoVUk9VVEVSX1RFWFRfQlJPQURDQVNUEAkSEAoMQ0xJRU5UX0VSUk9SEEASEgoOQ0xJRU5UX0hJU1RPUlkQQRIQCgxDTElFTlRfU1RBVFMQQhIPCgtDTElFTlRfUElORxBDEg8KC0NMSUVOVF9QT05HEEQSEAoMQ0xJRU5UX0FCT1JUEGpCCQoHdmFyaWFudEJrChRvcmcubWVzaHRhc3RpYy5wcm90b0IVU3RvcmVBbmRGb3J3YXJkUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw");
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward
|
||||
*/
|
||||
export type StoreAndForward = Message<"meshtastic.StoreAndForward"> & {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.RequestResponse rr = 1;
|
||||
*/
|
||||
rr: StoreAndForward_RequestResponse;
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from oneof meshtastic.StoreAndForward.variant
|
||||
*/
|
||||
variant: {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.Statistics stats = 2;
|
||||
*/
|
||||
value: StoreAndForward_Statistics;
|
||||
case: "stats";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.History history = 3;
|
||||
*/
|
||||
value: StoreAndForward_History;
|
||||
case: "history";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from field: meshtastic.StoreAndForward.Heartbeat heartbeat = 4;
|
||||
*/
|
||||
value: StoreAndForward_Heartbeat;
|
||||
case: "heartbeat";
|
||||
} | {
|
||||
/**
|
||||
*
|
||||
* Text from history message.
|
||||
*
|
||||
* @generated from field: bytes text = 5;
|
||||
*/
|
||||
value: Uint8Array;
|
||||
case: "text";
|
||||
} | { case: undefined; value?: undefined };
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.
|
||||
* Use `create(StoreAndForwardSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForwardSchema: GenMessage<StoreAndForward> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.Statistics
|
||||
*/
|
||||
export type StoreAndForward_Statistics = Message<"meshtastic.StoreAndForward.Statistics"> & {
|
||||
/**
|
||||
*
|
||||
* Number of messages we have ever seen
|
||||
*
|
||||
* @generated from field: uint32 messages_total = 1;
|
||||
*/
|
||||
messagesTotal: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of messages we have currently saved our history.
|
||||
*
|
||||
* @generated from field: uint32 messages_saved = 2;
|
||||
*/
|
||||
messagesSaved: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum number of messages we will save
|
||||
*
|
||||
* @generated from field: uint32 messages_max = 3;
|
||||
*/
|
||||
messagesMax: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Router uptime in seconds
|
||||
*
|
||||
* @generated from field: uint32 up_time = 4;
|
||||
*/
|
||||
upTime: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of times any client sent a request to the S&F.
|
||||
*
|
||||
* @generated from field: uint32 requests = 5;
|
||||
*/
|
||||
requests: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Number of times the history was requested.
|
||||
*
|
||||
* @generated from field: uint32 requests_history = 6;
|
||||
*/
|
||||
requestsHistory: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Is the heartbeat enabled on the server?
|
||||
*
|
||||
* @generated from field: bool heartbeat = 7;
|
||||
*/
|
||||
heartbeat: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum number of messages the server will return.
|
||||
*
|
||||
* @generated from field: uint32 return_max = 8;
|
||||
*/
|
||||
returnMax: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Maximum history window in minutes the server will return messages from.
|
||||
*
|
||||
* @generated from field: uint32 return_window = 9;
|
||||
*/
|
||||
returnWindow: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.Statistics.
|
||||
* Use `create(StoreAndForward_StatisticsSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_StatisticsSchema: GenMessage<StoreAndForward_Statistics> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 0);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.History
|
||||
*/
|
||||
export type StoreAndForward_History = Message<"meshtastic.StoreAndForward.History"> & {
|
||||
/**
|
||||
*
|
||||
* Number of that will be sent to the client
|
||||
*
|
||||
* @generated from field: uint32 history_messages = 1;
|
||||
*/
|
||||
historyMessages: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* The window of messages that was used to filter the history client requested
|
||||
*
|
||||
* @generated from field: uint32 window = 2;
|
||||
*/
|
||||
window: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* Index in the packet history of the last message sent in a previous request to the server.
|
||||
* Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client.
|
||||
*
|
||||
* @generated from field: uint32 last_request = 3;
|
||||
*/
|
||||
lastRequest: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.History.
|
||||
* Use `create(StoreAndForward_HistorySchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_HistorySchema: GenMessage<StoreAndForward_History> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 1);
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO: REPLACE
|
||||
*
|
||||
* @generated from message meshtastic.StoreAndForward.Heartbeat
|
||||
*/
|
||||
export type StoreAndForward_Heartbeat = Message<"meshtastic.StoreAndForward.Heartbeat"> & {
|
||||
/**
|
||||
*
|
||||
* Period in seconds that the heartbeat is sent out that will be sent to the client
|
||||
*
|
||||
* @generated from field: uint32 period = 1;
|
||||
*/
|
||||
period: number;
|
||||
|
||||
/**
|
||||
*
|
||||
* If set, this is not the primary Store & Forward router on the mesh
|
||||
*
|
||||
* @generated from field: uint32 secondary = 2;
|
||||
*/
|
||||
secondary: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.StoreAndForward.Heartbeat.
|
||||
* Use `create(StoreAndForward_HeartbeatSchema)` to create a new message.
|
||||
*/
|
||||
export const StoreAndForward_HeartbeatSchema: GenMessage<StoreAndForward_Heartbeat> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_storeforward, 0, 2);
|
||||
|
||||
/**
|
||||
*
|
||||
* 001 - 063 = From Router
|
||||
* 064 - 127 = From Client
|
||||
*
|
||||
* @generated from enum meshtastic.StoreAndForward.RequestResponse
|
||||
*/
|
||||
export enum StoreAndForward_RequestResponse {
|
||||
/**
|
||||
*
|
||||
* Unset/unused
|
||||
*
|
||||
* @generated from enum value: UNSET = 0;
|
||||
*/
|
||||
UNSET = 0,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is an in error state.
|
||||
*
|
||||
* @generated from enum value: ROUTER_ERROR = 1;
|
||||
*/
|
||||
ROUTER_ERROR = 1,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router heartbeat
|
||||
*
|
||||
* @generated from enum value: ROUTER_HEARTBEAT = 2;
|
||||
*/
|
||||
ROUTER_HEARTBEAT = 2,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router has requested the client respond. This can work as a
|
||||
* "are you there" message.
|
||||
*
|
||||
* @generated from enum value: ROUTER_PING = 3;
|
||||
*/
|
||||
ROUTER_PING = 3,
|
||||
|
||||
/**
|
||||
*
|
||||
* The response to a "Ping"
|
||||
*
|
||||
* @generated from enum value: ROUTER_PONG = 4;
|
||||
*/
|
||||
ROUTER_PONG = 4,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is currently busy. Please try again later.
|
||||
*
|
||||
* @generated from enum value: ROUTER_BUSY = 5;
|
||||
*/
|
||||
ROUTER_BUSY = 5,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is responding to a request for history.
|
||||
*
|
||||
* @generated from enum value: ROUTER_HISTORY = 6;
|
||||
*/
|
||||
ROUTER_HISTORY = 6,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router is responding to a request for stats.
|
||||
*
|
||||
* @generated from enum value: ROUTER_STATS = 7;
|
||||
*/
|
||||
ROUTER_STATS = 7,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router sends a text message from its history that was a direct message.
|
||||
*
|
||||
* @generated from enum value: ROUTER_TEXT_DIRECT = 8;
|
||||
*/
|
||||
ROUTER_TEXT_DIRECT = 8,
|
||||
|
||||
/**
|
||||
*
|
||||
* Router sends a text message from its history that was a broadcast.
|
||||
*
|
||||
* @generated from enum value: ROUTER_TEXT_BROADCAST = 9;
|
||||
*/
|
||||
ROUTER_TEXT_BROADCAST = 9,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client is an in error state.
|
||||
*
|
||||
* @generated from enum value: CLIENT_ERROR = 64;
|
||||
*/
|
||||
CLIENT_ERROR = 64,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested a replay from the router.
|
||||
*
|
||||
* @generated from enum value: CLIENT_HISTORY = 65;
|
||||
*/
|
||||
CLIENT_HISTORY = 65,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested stats from the router.
|
||||
*
|
||||
* @generated from enum value: CLIENT_STATS = 66;
|
||||
*/
|
||||
CLIENT_STATS = 66,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested the router respond. This can work as a
|
||||
* "are you there" message.
|
||||
*
|
||||
* @generated from enum value: CLIENT_PING = 67;
|
||||
*/
|
||||
CLIENT_PING = 67,
|
||||
|
||||
/**
|
||||
*
|
||||
* The response to a "Ping"
|
||||
*
|
||||
* @generated from enum value: CLIENT_PONG = 68;
|
||||
*/
|
||||
CLIENT_PONG = 68,
|
||||
|
||||
/**
|
||||
*
|
||||
* Client has requested that the router abort processing the client's request
|
||||
*
|
||||
* @generated from enum value: CLIENT_ABORT = 106;
|
||||
*/
|
||||
CLIENT_ABORT = 106,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.StoreAndForward.RequestResponse.
|
||||
*/
|
||||
export const StoreAndForward_RequestResponseSchema: GenEnum<StoreAndForward_RequestResponse> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_storeforward, 0, 0);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,97 @@
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file meshtastic/xmodem.proto (package meshtastic, syntax proto3)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file meshtastic/xmodem.proto.
|
||||
*/
|
||||
export const file_meshtastic_xmodem: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChdtZXNodGFzdGljL3htb2RlbS5wcm90bxIKbWVzaHRhc3RpYyK2AQoGWE1vZGVtEisKB2NvbnRyb2wYASABKA4yGi5tZXNodGFzdGljLlhNb2RlbS5Db250cm9sEgsKA3NlcRgCIAEoDRINCgVjcmMxNhgDIAEoDRIOCgZidWZmZXIYBCABKAwiUwoHQ29udHJvbBIHCgNOVUwQABIHCgNTT0gQARIHCgNTVFgQAhIHCgNFT1QQBBIHCgNBQ0sQBhIHCgNOQUsQFRIHCgNDQU4QGBIJCgVDVFJMWhAaQmIKFG9yZy5tZXNodGFzdGljLnByb3RvQgxYbW9kZW1Qcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z");
|
||||
|
||||
/**
|
||||
* @generated from message meshtastic.XModem
|
||||
*/
|
||||
export type XModem = Message<"meshtastic.XModem"> & {
|
||||
/**
|
||||
* @generated from field: meshtastic.XModem.Control control = 1;
|
||||
*/
|
||||
control: XModem_Control;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 seq = 2;
|
||||
*/
|
||||
seq: number;
|
||||
|
||||
/**
|
||||
* @generated from field: uint32 crc16 = 3;
|
||||
*/
|
||||
crc16: number;
|
||||
|
||||
/**
|
||||
* @generated from field: bytes buffer = 4;
|
||||
*/
|
||||
buffer: Uint8Array;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message meshtastic.XModem.
|
||||
* Use `create(XModemSchema)` to create a new message.
|
||||
*/
|
||||
export const XModemSchema: GenMessage<XModem> = /*@__PURE__*/
|
||||
messageDesc(file_meshtastic_xmodem, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum meshtastic.XModem.Control
|
||||
*/
|
||||
export enum XModem_Control {
|
||||
/**
|
||||
* @generated from enum value: NUL = 0;
|
||||
*/
|
||||
NUL = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: SOH = 1;
|
||||
*/
|
||||
SOH = 1,
|
||||
|
||||
/**
|
||||
* @generated from enum value: STX = 2;
|
||||
*/
|
||||
STX = 2,
|
||||
|
||||
/**
|
||||
* @generated from enum value: EOT = 4;
|
||||
*/
|
||||
EOT = 4,
|
||||
|
||||
/**
|
||||
* @generated from enum value: ACK = 6;
|
||||
*/
|
||||
ACK = 6,
|
||||
|
||||
/**
|
||||
* @generated from enum value: NAK = 21;
|
||||
*/
|
||||
NAK = 21,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CAN = 24;
|
||||
*/
|
||||
CAN = 24,
|
||||
|
||||
/**
|
||||
* @generated from enum value: CTRLZ = 26;
|
||||
*/
|
||||
CTRLZ = 26,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum meshtastic.XModem.Control.
|
||||
*/
|
||||
export const XModem_ControlSchema: GenEnum<XModem_Control> = /*@__PURE__*/
|
||||
enumDesc(file_meshtastic_xmodem, 0, 0);
|
||||
|
||||
+463
@@ -0,0 +1,463 @@
|
||||
// Custom options for defining:
|
||||
// - Maximum size of string/bytes
|
||||
// - Maximum number of elements in array
|
||||
//
|
||||
// These are used by nanopb to generate statically allocable structures
|
||||
// for memory-limited environments.
|
||||
|
||||
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
||||
// @generated from file nanopb.proto (syntax proto2)
|
||||
/* eslint-disable */
|
||||
|
||||
import type { GenEnum, GenExtension, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
||||
import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { EnumOptions, FieldDescriptorProto_Type, FieldOptions, FileOptions, MessageOptions } from "@bufbuild/protobuf/wkt";
|
||||
import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt";
|
||||
import type { Message } from "@bufbuild/protobuf";
|
||||
|
||||
/**
|
||||
* Describes the file nanopb.proto.
|
||||
*/
|
||||
export const file_nanopb: GenFile = /*@__PURE__*/
|
||||
fileDesc("CgxuYW5vcGIucHJvdG8ipAcKDU5hbm9QQk9wdGlvbnMSEAoIbWF4X3NpemUYASABKAUSEgoKbWF4X2xlbmd0aBgOIAEoBRIRCgltYXhfY291bnQYAiABKAUSJgoIaW50X3NpemUYByABKA4yCC5JbnRTaXplOgpJU19ERUZBVUxUEiQKBHR5cGUYAyABKA4yCi5GaWVsZFR5cGU6CkZUX0RFRkFVTFQSGAoKbG9uZ19uYW1lcxgEIAEoCDoEdHJ1ZRIcCg1wYWNrZWRfc3RydWN0GAUgASgIOgVmYWxzZRIaCgtwYWNrZWRfZW51bRgKIAEoCDoFZmFsc2USGwoMc2tpcF9tZXNzYWdlGAYgASgIOgVmYWxzZRIYCglub191bmlvbnMYCCABKAg6BWZhbHNlEg0KBW1zZ2lkGAkgASgNEh4KD2Fub255bW91c19vbmVvZhgLIAEoCDoFZmFsc2USFQoGcHJvdG8zGAwgASgIOgVmYWxzZRIjChRwcm90bzNfc2luZ3VsYXJfbXNncxgVIAEoCDoFZmFsc2USHQoOZW51bV90b19zdHJpbmcYDSABKAg6BWZhbHNlEhsKDGZpeGVkX2xlbmd0aBgPIAEoCDoFZmFsc2USGgoLZml4ZWRfY291bnQYECABKAg6BWZhbHNlEh4KD3N1Ym1zZ19jYWxsYmFjaxgWIAEoCDoFZmFsc2USLwoMbWFuZ2xlX25hbWVzGBEgASgOMhEuVHlwZW5hbWVNYW5nbGluZzoGTV9OT05FEigKEWNhbGxiYWNrX2RhdGF0eXBlGBIgASgJOg1wYl9jYWxsYmFja190EjQKEWNhbGxiYWNrX2Z1bmN0aW9uGBMgASgJOhlwYl9kZWZhdWx0X2ZpZWxkX2NhbGxiYWNrEjAKDmRlc2NyaXB0b3JzaXplGBQgASgOMg8uRGVzY3JpcHRvclNpemU6B0RTX0FVVE8SGgoLZGVmYXVsdF9oYXMYFyABKAg6BWZhbHNlEg8KB2luY2x1ZGUYGCADKAkSDwoHZXhjbHVkZRgaIAMoCRIPCgdwYWNrYWdlGBkgASgJEkEKDXR5cGVfb3ZlcnJpZGUYGyABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRIZCgtzb3J0X2J5X3RhZxgcIAEoCDoEdHJ1ZRIuCg1mYWxsYmFja190eXBlGB0gASgOMgouRmllbGRUeXBlOgtGVF9DQUxMQkFDSyppCglGaWVsZFR5cGUSDgoKRlRfREVGQVVMVBAAEg8KC0ZUX0NBTExCQUNLEAESDgoKRlRfUE9JTlRFUhAEEg0KCUZUX1NUQVRJQxACEg0KCUZUX0lHTk9SRRADEg0KCUZUX0lOTElORRAFKkQKB0ludFNpemUSDgoKSVNfREVGQVVMVBAAEggKBElTXzgQCBIJCgVJU18xNhAQEgkKBUlTXzMyECASCQoFSVNfNjQQQCpaChBUeXBlbmFtZU1hbmdsaW5nEgoKBk1fTk9ORRAAEhMKD01fU1RSSVBfUEFDS0FHRRABEg0KCU1fRkxBVFRFThACEhYKEk1fUEFDS0FHRV9JTklUSUFMUxADKkUKDkRlc2NyaXB0b3JTaXplEgsKB0RTX0FVVE8QABIICgREU18xEAESCAoERFNfMhACEggKBERTXzQQBBIICgREU184EAg6VAoObmFub3BiX2ZpbGVvcHQSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMY8gcgASgLMg4uTmFub1BCT3B0aW9uc1INbmFub3BiRmlsZW9wdDpVCg1uYW5vcGJfbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGPIHIAEoCzIOLk5hbm9QQk9wdGlvbnNSDG5hbm9wYk1zZ29wdDpUCg5uYW5vcGJfZW51bW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjyByABKAsyDi5OYW5vUEJPcHRpb25zUg1uYW5vcGJFbnVtb3B0OkYKBm5hbm9wYhIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY8gcgASgLMg4uTmFub1BCT3B0aW9uc1IGbmFub3BiQj4KGGZpLmthcHNpLmtvdGkuanBhLm5hbm9wYloiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZA", [file_google_protobuf_descriptor]);
|
||||
|
||||
/**
|
||||
* This is the inner options message, which basically defines options for
|
||||
* a field. When it is used in message or file scope, it applies to all
|
||||
* fields.
|
||||
*
|
||||
* @generated from message NanoPBOptions
|
||||
*/
|
||||
export type NanoPBOptions = Message<"NanoPBOptions"> & {
|
||||
/**
|
||||
* Allocated size for 'bytes' and 'string' fields.
|
||||
* For string fields, this should include the space for null terminator.
|
||||
*
|
||||
* @generated from field: optional int32 max_size = 1;
|
||||
*/
|
||||
maxSize: number;
|
||||
|
||||
/**
|
||||
* Maximum length for 'string' fields. Setting this is equivalent
|
||||
* to setting max_size to a value of length+1.
|
||||
*
|
||||
* @generated from field: optional int32 max_length = 14;
|
||||
*/
|
||||
maxLength: number;
|
||||
|
||||
/**
|
||||
* Allocated number of entries in arrays ('repeated' fields)
|
||||
*
|
||||
* @generated from field: optional int32 max_count = 2;
|
||||
*/
|
||||
maxCount: number;
|
||||
|
||||
/**
|
||||
* Size of integer fields. Can save some memory if you don't need
|
||||
* full 32 bits for the value.
|
||||
*
|
||||
* @generated from field: optional IntSize int_size = 7 [default = IS_DEFAULT];
|
||||
*/
|
||||
intSize: IntSize;
|
||||
|
||||
/**
|
||||
* Force type of field (callback or static allocation)
|
||||
*
|
||||
* @generated from field: optional FieldType type = 3 [default = FT_DEFAULT];
|
||||
*/
|
||||
type: FieldType;
|
||||
|
||||
/**
|
||||
* Use long names for enums, i.e. EnumName_EnumValue.
|
||||
*
|
||||
* @generated from field: optional bool long_names = 4 [default = true];
|
||||
*/
|
||||
longNames: boolean;
|
||||
|
||||
/**
|
||||
* Add 'packed' attribute to generated structs.
|
||||
* Note: this cannot be used on CPUs that break on unaligned
|
||||
* accesses to variables.
|
||||
*
|
||||
* @generated from field: optional bool packed_struct = 5 [default = false];
|
||||
*/
|
||||
packedStruct: boolean;
|
||||
|
||||
/**
|
||||
* Add 'packed' attribute to generated enums.
|
||||
*
|
||||
* @generated from field: optional bool packed_enum = 10 [default = false];
|
||||
*/
|
||||
packedEnum: boolean;
|
||||
|
||||
/**
|
||||
* Skip this message
|
||||
*
|
||||
* @generated from field: optional bool skip_message = 6 [default = false];
|
||||
*/
|
||||
skipMessage: boolean;
|
||||
|
||||
/**
|
||||
* Generate oneof fields as normal optional fields instead of union.
|
||||
*
|
||||
* @generated from field: optional bool no_unions = 8 [default = false];
|
||||
*/
|
||||
noUnions: boolean;
|
||||
|
||||
/**
|
||||
* integer type tag for a message
|
||||
*
|
||||
* @generated from field: optional uint32 msgid = 9;
|
||||
*/
|
||||
msgid: number;
|
||||
|
||||
/**
|
||||
* decode oneof as anonymous union
|
||||
*
|
||||
* @generated from field: optional bool anonymous_oneof = 11 [default = false];
|
||||
*/
|
||||
anonymousOneof: boolean;
|
||||
|
||||
/**
|
||||
* Proto3 singular field does not generate a "has_" flag
|
||||
*
|
||||
* @generated from field: optional bool proto3 = 12 [default = false];
|
||||
*/
|
||||
proto3: boolean;
|
||||
|
||||
/**
|
||||
* Force proto3 messages to have no "has_" flag.
|
||||
* This was default behavior until nanopb-0.4.0.
|
||||
*
|
||||
* @generated from field: optional bool proto3_singular_msgs = 21 [default = false];
|
||||
*/
|
||||
proto3SingularMsgs: boolean;
|
||||
|
||||
/**
|
||||
* Generate an enum->string mapping function (can take up lots of space).
|
||||
*
|
||||
* @generated from field: optional bool enum_to_string = 13 [default = false];
|
||||
*/
|
||||
enumToString: boolean;
|
||||
|
||||
/**
|
||||
* Generate bytes arrays with fixed length
|
||||
*
|
||||
* @generated from field: optional bool fixed_length = 15 [default = false];
|
||||
*/
|
||||
fixedLength: boolean;
|
||||
|
||||
/**
|
||||
* Generate repeated field with fixed count
|
||||
*
|
||||
* @generated from field: optional bool fixed_count = 16 [default = false];
|
||||
*/
|
||||
fixedCount: boolean;
|
||||
|
||||
/**
|
||||
* Generate message-level callback that is called before decoding submessages.
|
||||
* This can be used to set callback fields for submsgs inside oneofs.
|
||||
*
|
||||
* @generated from field: optional bool submsg_callback = 22 [default = false];
|
||||
*/
|
||||
submsgCallback: boolean;
|
||||
|
||||
/**
|
||||
* Shorten or remove package names from type names.
|
||||
* This option applies only on the file level.
|
||||
*
|
||||
* @generated from field: optional TypenameMangling mangle_names = 17 [default = M_NONE];
|
||||
*/
|
||||
mangleNames: TypenameMangling;
|
||||
|
||||
/**
|
||||
* Data type for storage associated with callback fields.
|
||||
*
|
||||
* @generated from field: optional string callback_datatype = 18 [default = "pb_callback_t"];
|
||||
*/
|
||||
callbackDatatype: string;
|
||||
|
||||
/**
|
||||
* Callback function used for encoding and decoding.
|
||||
* Prior to nanopb-0.4.0, the callback was specified in per-field pb_callback_t
|
||||
* structure. This is still supported, but does not work inside e.g. oneof or pointer
|
||||
* fields. Instead, a new method allows specifying a per-message callback that
|
||||
* will be called for all callback fields in a message type.
|
||||
*
|
||||
* @generated from field: optional string callback_function = 19 [default = "pb_default_field_callback"];
|
||||
*/
|
||||
callbackFunction: string;
|
||||
|
||||
/**
|
||||
* Select the size of field descriptors. This option has to be defined
|
||||
* for the whole message, not per-field. Usually automatic selection is
|
||||
* ok, but if it results in compilation errors you can increase the field
|
||||
* size here.
|
||||
*
|
||||
* @generated from field: optional DescriptorSize descriptorsize = 20 [default = DS_AUTO];
|
||||
*/
|
||||
descriptorsize: DescriptorSize;
|
||||
|
||||
/**
|
||||
* Set default value for has_ fields.
|
||||
*
|
||||
* @generated from field: optional bool default_has = 23 [default = false];
|
||||
*/
|
||||
defaultHas: boolean;
|
||||
|
||||
/**
|
||||
* Extra files to include in generated `.pb.h`
|
||||
*
|
||||
* @generated from field: repeated string include = 24;
|
||||
*/
|
||||
include: string[];
|
||||
|
||||
/**
|
||||
* Automatic includes to exclude from generated `.pb.h`
|
||||
* Same as nanopb_generator.py command line flag -x.
|
||||
*
|
||||
* @generated from field: repeated string exclude = 26;
|
||||
*/
|
||||
exclude: string[];
|
||||
|
||||
/**
|
||||
* Package name that applies only for nanopb.
|
||||
*
|
||||
* @generated from field: optional string package = 25;
|
||||
*/
|
||||
package: string;
|
||||
|
||||
/**
|
||||
* Override type of the field in generated C code. Only to be used with related field types
|
||||
*
|
||||
* @generated from field: optional google.protobuf.FieldDescriptorProto.Type type_override = 27;
|
||||
*/
|
||||
typeOverride: FieldDescriptorProto_Type;
|
||||
|
||||
/**
|
||||
* Due to historical reasons, nanopb orders fields in structs by their tag number
|
||||
* instead of the order in .proto. Set this to false to keep the .proto order.
|
||||
* The default value will probably change to false in nanopb-0.5.0.
|
||||
*
|
||||
* @generated from field: optional bool sort_by_tag = 28 [default = true];
|
||||
*/
|
||||
sortByTag: boolean;
|
||||
|
||||
/**
|
||||
* Set the FT_DEFAULT field conversion strategy.
|
||||
* A field that can become a static member of a c struct (e.g. int, bool, etc)
|
||||
* will be a a static field.
|
||||
* Fields with dynamic length are converted to either a pointer or a callback.
|
||||
*
|
||||
* @generated from field: optional FieldType fallback_type = 29 [default = FT_CALLBACK];
|
||||
*/
|
||||
fallbackType: FieldType;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message NanoPBOptions.
|
||||
* Use `create(NanoPBOptionsSchema)` to create a new message.
|
||||
*/
|
||||
export const NanoPBOptionsSchema: GenMessage<NanoPBOptions> = /*@__PURE__*/
|
||||
messageDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum FieldType
|
||||
*/
|
||||
export enum FieldType {
|
||||
/**
|
||||
* Automatically decide field type, generate static field if possible.
|
||||
*
|
||||
* @generated from enum value: FT_DEFAULT = 0;
|
||||
*/
|
||||
FT_DEFAULT = 0,
|
||||
|
||||
/**
|
||||
* Always generate a callback field.
|
||||
*
|
||||
* @generated from enum value: FT_CALLBACK = 1;
|
||||
*/
|
||||
FT_CALLBACK = 1,
|
||||
|
||||
/**
|
||||
* Always generate a dynamically allocated field.
|
||||
*
|
||||
* @generated from enum value: FT_POINTER = 4;
|
||||
*/
|
||||
FT_POINTER = 4,
|
||||
|
||||
/**
|
||||
* Generate a static field or raise an exception if not possible.
|
||||
*
|
||||
* @generated from enum value: FT_STATIC = 2;
|
||||
*/
|
||||
FT_STATIC = 2,
|
||||
|
||||
/**
|
||||
* Ignore the field completely.
|
||||
*
|
||||
* @generated from enum value: FT_IGNORE = 3;
|
||||
*/
|
||||
FT_IGNORE = 3,
|
||||
|
||||
/**
|
||||
* Legacy option, use the separate 'fixed_length' option instead
|
||||
*
|
||||
* @generated from enum value: FT_INLINE = 5;
|
||||
*/
|
||||
FT_INLINE = 5,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum FieldType.
|
||||
*/
|
||||
export const FieldTypeSchema: GenEnum<FieldType> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from enum IntSize
|
||||
*/
|
||||
export enum IntSize {
|
||||
/**
|
||||
* Default, 32/64bit based on type in .proto
|
||||
*
|
||||
* @generated from enum value: IS_DEFAULT = 0;
|
||||
*/
|
||||
IS_DEFAULT = 0,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_8 = 8;
|
||||
*/
|
||||
IS_8 = 8,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_16 = 16;
|
||||
*/
|
||||
IS_16 = 16,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_32 = 32;
|
||||
*/
|
||||
IS_32 = 32,
|
||||
|
||||
/**
|
||||
* @generated from enum value: IS_64 = 64;
|
||||
*/
|
||||
IS_64 = 64,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum IntSize.
|
||||
*/
|
||||
export const IntSizeSchema: GenEnum<IntSize> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 1);
|
||||
|
||||
/**
|
||||
* @generated from enum TypenameMangling
|
||||
*/
|
||||
export enum TypenameMangling {
|
||||
/**
|
||||
* Default, no typename mangling
|
||||
*
|
||||
* @generated from enum value: M_NONE = 0;
|
||||
*/
|
||||
M_NONE = 0,
|
||||
|
||||
/**
|
||||
* Strip current package name
|
||||
*
|
||||
* @generated from enum value: M_STRIP_PACKAGE = 1;
|
||||
*/
|
||||
M_STRIP_PACKAGE = 1,
|
||||
|
||||
/**
|
||||
* Only use last path component
|
||||
*
|
||||
* @generated from enum value: M_FLATTEN = 2;
|
||||
*/
|
||||
M_FLATTEN = 2,
|
||||
|
||||
/**
|
||||
* Replace the package name by the initials
|
||||
*
|
||||
* @generated from enum value: M_PACKAGE_INITIALS = 3;
|
||||
*/
|
||||
M_PACKAGE_INITIALS = 3,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum TypenameMangling.
|
||||
*/
|
||||
export const TypenameManglingSchema: GenEnum<TypenameMangling> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 2);
|
||||
|
||||
/**
|
||||
* @generated from enum DescriptorSize
|
||||
*/
|
||||
export enum DescriptorSize {
|
||||
/**
|
||||
* Select minimal size based on field type
|
||||
*
|
||||
* @generated from enum value: DS_AUTO = 0;
|
||||
*/
|
||||
DS_AUTO = 0,
|
||||
|
||||
/**
|
||||
* 1 word; up to 15 byte fields, no arrays
|
||||
*
|
||||
* @generated from enum value: DS_1 = 1;
|
||||
*/
|
||||
DS_1 = 1,
|
||||
|
||||
/**
|
||||
* 2 words; up to 4095 byte fields, 4095 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_2 = 2;
|
||||
*/
|
||||
DS_2 = 2,
|
||||
|
||||
/**
|
||||
* 4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_4 = 4;
|
||||
*/
|
||||
DS_4 = 4,
|
||||
|
||||
/**
|
||||
* 8 words; up to 2^32-1 entry arrays
|
||||
*
|
||||
* @generated from enum value: DS_8 = 8;
|
||||
*/
|
||||
DS_8 = 8,
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the enum DescriptorSize.
|
||||
*/
|
||||
export const DescriptorSizeSchema: GenEnum<DescriptorSize> = /*@__PURE__*/
|
||||
enumDesc(file_nanopb, 3);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_fileopt = 1010;
|
||||
*/
|
||||
export const nanopb_fileopt: GenExtension<FileOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 0);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_msgopt = 1010;
|
||||
*/
|
||||
export const nanopb_msgopt: GenExtension<MessageOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 1);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb_enumopt = 1010;
|
||||
*/
|
||||
export const nanopb_enumopt: GenExtension<EnumOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 2);
|
||||
|
||||
/**
|
||||
* @generated from extension: optional NanoPBOptions nanopb = 1010;
|
||||
*/
|
||||
export const nanopb: GenExtension<FieldOptions, NanoPBOptions> = /*@__PURE__*/
|
||||
extDesc(file_nanopb, 3);
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
export * as Admin from "./dist/admin_pb.ts";
|
||||
export * as AppOnly from "./dist/apponly_pb.ts";
|
||||
export * as ATAK from "./dist/atak_pb.ts";
|
||||
export * as CannedMessages from "./dist/cannedmessages_pb.ts";
|
||||
export * as Channel from "./dist/channel_pb.ts";
|
||||
export * as ClientOnly from "./dist/clientonly_pb.ts";
|
||||
export * as Config from "./dist/config_pb.ts";
|
||||
export * as ConnectionStatus from "./dist/connection_status_pb.ts";
|
||||
export * as LocalOnly from "./dist/localonly_pb.ts";
|
||||
export * as Mesh from "./dist/mesh_pb.ts";
|
||||
export * as ModuleConfig from "./dist/module_config_pb.ts";
|
||||
export * as Mqtt from "./dist/mqtt_pb.ts";
|
||||
export * as PaxCount from "./dist/paxcount_pb.ts";
|
||||
export * as Portnums from "./dist/portnums_pb.ts";
|
||||
export * as PowerMon from "./dist/powermon_pb.ts";
|
||||
export * as RemoteHardware from "./dist/remote_hardware_pb.ts";
|
||||
export * as Rtttl from "./dist/rtttl_pb.ts";
|
||||
export * as StoreForward from "./dist/storeforward_pb.ts";
|
||||
export * as Telemetry from "./dist/telemetry_pb.ts";
|
||||
export * as Xmodem from "./dist/xmodem_pb.ts";
|
||||
export * as Admin from "./dist/meshtastic/admin_pb.ts";
|
||||
export * as AppOnly from "./dist/meshtastic/apponly_pb.ts";
|
||||
export * as ATAK from "./dist/meshtastic/atak_pb.ts";
|
||||
export * as CannedMessages from "./dist/meshtastic/cannedmessages_pb.ts";
|
||||
export * as Channel from "./dist/meshtastic/channel_pb.ts";
|
||||
export * as ClientOnly from "./dist/meshtastic/clientonly_pb.ts";
|
||||
export * as Config from "./dist/meshtastic/config_pb.ts";
|
||||
export * as ConnectionStatus from "./dist/meshtastic/connection_status_pb.ts";
|
||||
export * as LocalOnly from "./dist/meshtastic/localonly_pb.ts";
|
||||
export * as Mesh from "./dist/meshtastic/mesh_pb.ts";
|
||||
export * as ModuleConfig from "./dist/meshtastic/module_config_pb.ts";
|
||||
export * as Mqtt from "./dist/meshtastic/mqtt_pb.ts";
|
||||
export * as PaxCount from "./dist/meshtastic/paxcount_pb.ts";
|
||||
export * as Portnums from "./dist/meshtastic/portnums_pb.ts";
|
||||
export * as PowerMon from "./dist/meshtastic/powermon_pb.ts";
|
||||
export * as RemoteHardware from "./dist/meshtastic/remote_hardware_pb.ts";
|
||||
export * as Rtttl from "./dist/meshtastic/rtttl_pb.ts";
|
||||
export * as StoreForward from "./dist/meshtastic/storeforward_pb.ts";
|
||||
export * as Telemetry from "./dist/meshtastic/telemetry_pb.ts";
|
||||
export * as Xmodem from "./dist/meshtastic/xmodem_pb.ts";
|
||||
|
||||
Reference in New Issue
Block a user