aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmoke <[email protected]>2024-02-16 06:58:59 -1000
committerGitHub <[email protected]>2024-02-16 06:58:59 -1000
commit59d8f1e1d46abe92e114d50a7a1852bdb8baa608 (patch)
tree13387a512fe8844f91da6c96622f5d2073459075
parent06f88424566478b7a8e5817fd6af3d2a76e34519 (diff)
feat/update-protobufs (#16)
* use meshnet-gophers protobufs * update go.mod for meshnet-gophers protobufs * update protos * add gitignore * update go.mod * use locally generated protobufs * add generate.go * use meshtastic protobufs upstream
-rw-r--r--.gitignore1
-rw-r--r--.gitmodules3
-rw-r--r--emulated/emulated.go2
-rw-r--r--emulated/example/main.go2
-rw-r--r--example/main.go2
-rw-r--r--generate.go2
-rw-r--r--go.mod3
-rw-r--r--go.sum12
-rw-r--r--meshtastic/admin.pb.go1298
-rw-r--r--meshtastic/admin_vtproto.pb.go6074
-rw-r--r--meshtastic/apponly.pb.go178
-rw-r--r--meshtastic/apponly_vtproto.pb.go453
-rw-r--r--meshtastic/atak.pb.go856
-rw-r--r--meshtastic/atak_vtproto.pb.go2798
-rw-r--r--meshtastic/cannedmessages.pb.go152
-rw-r--r--meshtastic/cannedmessages_vtproto.pb.go322
-rw-r--r--meshtastic/channel.pb.go408
-rw-r--r--meshtastic/channel_vtproto.pb.go1062
-rw-r--r--meshtastic/clientonly.pb.go213
-rw-r--r--meshtastic/clientonly_vtproto.pb.go717
-rw-r--r--meshtastic/config.pb.go2612
-rw-r--r--meshtastic/config_vtproto.pb.go7824
-rw-r--r--meshtastic/connection_status.pb.go621
-rw-r--r--meshtastic/connection_status_vtproto.pb.go2567
-rw-r--r--meshtastic/deviceonly.pb.go927
-rw-r--r--meshtastic/deviceonly_vtproto.pb.go3925
-rw-r--r--meshtastic/localonly.pb.go533
-rw-r--r--meshtastic/localonly_vtproto.pb.go2551
-rw-r--r--meshtastic/mesh.pb.go3914
-rw-r--r--meshtastic/mesh_vtproto.pb.go13823
-rw-r--r--meshtastic/module_config.pb.go2699
-rw-r--r--meshtastic/module_config_vtproto.pb.go11271
-rw-r--r--meshtastic/mqtt.pb.go180
-rw-r--r--meshtastic/mqtt_vtproto.pb.go512
-rw-r--r--meshtastic/paxcount.pb.go170
-rw-r--r--meshtastic/paxcount_vtproto.pb.go396
-rw-r--r--meshtastic/portnums.pb.go328
-rw-r--r--meshtastic/remote_hardware.pb.go261
-rw-r--r--meshtastic/remote_hardware_vtproto.pb.go396
-rw-r--r--meshtastic/rtttl.pb.go150
-rw-r--r--meshtastic/rtttl_vtproto.pb.go322
-rw-r--r--meshtastic/storeforward.pb.go702
-rw-r--r--meshtastic/storeforward_vtproto.pb.go2386
-rw-r--r--meshtastic/telemetry.pb.go905
-rw-r--r--meshtastic/telemetry_vtproto.pb.go3161
-rw-r--r--meshtastic/xmodem.pb.go251
-rw-r--r--meshtastic/xmodem_vtproto.pb.go487
-rw-r--r--mqtt/node.go2
m---------protobufs0
-rw-r--r--radio/radio.go2
-rw-r--r--transport/client.go2
-rw-r--r--transport/stream_conn_test.go2
-rw-r--r--util.go2
53 files changed, 78427 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ff86dbb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+go.work*
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..4e64efd
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "protobufs"]
+ path = protobufs
+ url = https://github.com/meshtastic/protobufs
diff --git a/emulated/emulated.go b/emulated/emulated.go
index de62c2a..27ab820 100644
--- a/emulated/emulated.go
+++ b/emulated/emulated.go
@@ -1,11 +1,11 @@
package emulated
import (
- pb "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"context"
"fmt"
"github.com/charmbracelet/log"
"github.com/crypto-smoke/meshtastic-go"
+ pb "github.com/crypto-smoke/meshtastic-go/meshtastic"
"github.com/crypto-smoke/meshtastic-go/mqtt"
"github.com/crypto-smoke/meshtastic-go/radio"
"github.com/crypto-smoke/meshtastic-go/transport"
diff --git a/emulated/example/main.go b/emulated/example/main.go
index e2978e2..36b36c3 100644
--- a/emulated/example/main.go
+++ b/emulated/example/main.go
@@ -1,12 +1,12 @@
package main
import (
- pb "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"context"
"fmt"
"github.com/charmbracelet/log"
"github.com/crypto-smoke/meshtastic-go"
"github.com/crypto-smoke/meshtastic-go/emulated"
+ pb "github.com/crypto-smoke/meshtastic-go/meshtastic"
"github.com/crypto-smoke/meshtastic-go/mqtt"
"github.com/crypto-smoke/meshtastic-go/radio"
"github.com/crypto-smoke/meshtastic-go/transport"
diff --git a/example/main.go b/example/main.go
index 884ee36..886ae92 100644
--- a/example/main.go
+++ b/example/main.go
@@ -1,9 +1,9 @@
package main
import (
- pb "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"context"
"github.com/charmbracelet/log"
+ pb "github.com/crypto-smoke/meshtastic-go/meshtastic"
"github.com/crypto-smoke/meshtastic-go/transport"
"github.com/crypto-smoke/meshtastic-go/transport/serial"
"google.golang.org/protobuf/proto"
diff --git a/generate.go b/generate.go
new file mode 100644
index 0000000..3e4d349
--- /dev/null
+++ b/generate.go
@@ -0,0 +1,2 @@
+//go:generate protoc -I protobufs\ --go_out=. --go_opt=paths=source_relative --go-vtproto_out=paths=source_relative:. protobufs\meshtastic\*.proto
+package meshtastic
diff --git a/go.mod b/go.mod
index 7fe3502..5f0a00b 100644
--- a/go.mod
+++ b/go.mod
@@ -3,9 +3,9 @@ module github.com/crypto-smoke/meshtastic-go
go 1.21
require (
- buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go v1.32.0-20240211215705-89f15a9842b0.1
github.com/charmbracelet/log v0.3.1
github.com/eclipse/paho.mqtt.golang v1.4.3
+ github.com/meshnet-gophers/protobufs v2.2.22+incompatible
github.com/stretchr/testify v1.8.4
go.bug.st/serial v1.6.1
golang.org/x/sync v0.6.0
@@ -24,6 +24,7 @@ require (
github.com/mattn/go-runewidth v0.0.15 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
+ github.com/planetscale/vtprotobuf v0.6.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3 // indirect
diff --git a/go.sum b/go.sum
index 915c602..2d084cd 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,3 @@
-buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go v1.32.0-20240211215705-89f15a9842b0.1 h1:XYsqzpo0wQYlLzZDsT5cdnrNrfBY0mgJd6bvfiixX9E=
-buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go v1.32.0-20240211215705-89f15a9842b0.1/go.mod h1:6znL4Am/mtSqEWteEmKgLpgDI0t/Wx80bzMsTKlu2oA=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/charmbracelet/lipgloss v0.9.1 h1:PNyd3jvaJbg4jRHKWXnCj1akQm4rh8dbEzN1p/u1KWg=
@@ -14,8 +12,6 @@ github.com/eclipse/paho.mqtt.golang v1.4.3 h1:2kwcUGn8seMUfWndX0hGbvH8r7crgcJguQ
github.com/eclipse/paho.mqtt.golang v1.4.3/go.mod h1:CSYvoAlsMkhYOXh/oKyxa8EcBci6dVkLCbo5tTC1RIE=
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
@@ -27,10 +23,16 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/meshnet-gophers/protobufs v0.0.0-20240216150730-37862814df79 h1:DGGW63VDYWFbV1pX32iQqwJ+ASWgKflp5JaU/ARyblo=
+github.com/meshnet-gophers/protobufs v0.0.0-20240216150730-37862814df79/go.mod h1:1FRbeHjF+DvD6od6oedTYUP6j8nIzeXGG1q9CcLAMw8=
+github.com/meshnet-gophers/protobufs v2.2.22+incompatible h1:PqhnY9Tk4ounTqx3/lqffGOwip0nvvmSKXg3DneEEOQ=
+github.com/meshnet-gophers/protobufs v2.2.22+incompatible/go.mod h1:1FRbeHjF+DvD6od6oedTYUP6j8nIzeXGG1q9CcLAMw8=
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
+github.com/planetscale/vtprotobuf v0.6.0 h1:nBeETjudeJ5ZgBHUz1fVHvbqUKnYOXNhsIEabROxmNA=
+github.com/planetscale/vtprotobuf v0.6.0/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
@@ -50,8 +52,6 @@ golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
diff --git a/meshtastic/admin.pb.go b/meshtastic/admin.pb.go
new file mode 100644
index 0000000..2e4720c
--- /dev/null
+++ b/meshtastic/admin.pb.go
@@ -0,0 +1,1298 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/admin.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// TODO: REPLACE
+type AdminMessage_ConfigType int32
+
+const (
+ // TODO: REPLACE
+ AdminMessage_DEVICE_CONFIG AdminMessage_ConfigType = 0
+ // TODO: REPLACE
+ AdminMessage_POSITION_CONFIG AdminMessage_ConfigType = 1
+ // TODO: REPLACE
+ AdminMessage_POWER_CONFIG AdminMessage_ConfigType = 2
+ // TODO: REPLACE
+ AdminMessage_NETWORK_CONFIG AdminMessage_ConfigType = 3
+ // TODO: REPLACE
+ AdminMessage_DISPLAY_CONFIG AdminMessage_ConfigType = 4
+ // TODO: REPLACE
+ AdminMessage_LORA_CONFIG AdminMessage_ConfigType = 5
+ // TODO: REPLACE
+ AdminMessage_BLUETOOTH_CONFIG AdminMessage_ConfigType = 6
+)
+
+// Enum value maps for AdminMessage_ConfigType.
+var (
+ AdminMessage_ConfigType_name = map[int32]string{
+ 0: "DEVICE_CONFIG",
+ 1: "POSITION_CONFIG",
+ 2: "POWER_CONFIG",
+ 3: "NETWORK_CONFIG",
+ 4: "DISPLAY_CONFIG",
+ 5: "LORA_CONFIG",
+ 6: "BLUETOOTH_CONFIG",
+ }
+ AdminMessage_ConfigType_value = map[string]int32{
+ "DEVICE_CONFIG": 0,
+ "POSITION_CONFIG": 1,
+ "POWER_CONFIG": 2,
+ "NETWORK_CONFIG": 3,
+ "DISPLAY_CONFIG": 4,
+ "LORA_CONFIG": 5,
+ "BLUETOOTH_CONFIG": 6,
+ }
+)
+
+func (x AdminMessage_ConfigType) Enum() *AdminMessage_ConfigType {
+ p := new(AdminMessage_ConfigType)
+ *p = x
+ return p
+}
+
+func (x AdminMessage_ConfigType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (AdminMessage_ConfigType) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_admin_proto_enumTypes[0].Descriptor()
+}
+
+func (AdminMessage_ConfigType) Type() protoreflect.EnumType {
+ return &file_meshtastic_admin_proto_enumTypes[0]
+}
+
+func (x AdminMessage_ConfigType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AdminMessage_ConfigType.Descriptor instead.
+func (AdminMessage_ConfigType) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_admin_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// TODO: REPLACE
+type AdminMessage_ModuleConfigType int32
+
+const (
+ // TODO: REPLACE
+ AdminMessage_MQTT_CONFIG AdminMessage_ModuleConfigType = 0
+ // TODO: REPLACE
+ AdminMessage_SERIAL_CONFIG AdminMessage_ModuleConfigType = 1
+ // TODO: REPLACE
+ AdminMessage_EXTNOTIF_CONFIG AdminMessage_ModuleConfigType = 2
+ // TODO: REPLACE
+ AdminMessage_STOREFORWARD_CONFIG AdminMessage_ModuleConfigType = 3
+ // TODO: REPLACE
+ AdminMessage_RANGETEST_CONFIG AdminMessage_ModuleConfigType = 4
+ // TODO: REPLACE
+ AdminMessage_TELEMETRY_CONFIG AdminMessage_ModuleConfigType = 5
+ // TODO: REPLACE
+ AdminMessage_CANNEDMSG_CONFIG AdminMessage_ModuleConfigType = 6
+ // TODO: REPLACE
+ AdminMessage_AUDIO_CONFIG AdminMessage_ModuleConfigType = 7
+ // TODO: REPLACE
+ AdminMessage_REMOTEHARDWARE_CONFIG AdminMessage_ModuleConfigType = 8
+ // TODO: REPLACE
+ AdminMessage_NEIGHBORINFO_CONFIG AdminMessage_ModuleConfigType = 9
+ // TODO: REPLACE
+ AdminMessage_AMBIENTLIGHTING_CONFIG AdminMessage_ModuleConfigType = 10
+ // TODO: REPLACE
+ AdminMessage_DETECTIONSENSOR_CONFIG AdminMessage_ModuleConfigType = 11
+ // TODO: REPLACE
+ AdminMessage_PAXCOUNTER_CONFIG AdminMessage_ModuleConfigType = 12
+)
+
+// Enum value maps for AdminMessage_ModuleConfigType.
+var (
+ AdminMessage_ModuleConfigType_name = map[int32]string{
+ 0: "MQTT_CONFIG",
+ 1: "SERIAL_CONFIG",
+ 2: "EXTNOTIF_CONFIG",
+ 3: "STOREFORWARD_CONFIG",
+ 4: "RANGETEST_CONFIG",
+ 5: "TELEMETRY_CONFIG",
+ 6: "CANNEDMSG_CONFIG",
+ 7: "AUDIO_CONFIG",
+ 8: "REMOTEHARDWARE_CONFIG",
+ 9: "NEIGHBORINFO_CONFIG",
+ 10: "AMBIENTLIGHTING_CONFIG",
+ 11: "DETECTIONSENSOR_CONFIG",
+ 12: "PAXCOUNTER_CONFIG",
+ }
+ AdminMessage_ModuleConfigType_value = map[string]int32{
+ "MQTT_CONFIG": 0,
+ "SERIAL_CONFIG": 1,
+ "EXTNOTIF_CONFIG": 2,
+ "STOREFORWARD_CONFIG": 3,
+ "RANGETEST_CONFIG": 4,
+ "TELEMETRY_CONFIG": 5,
+ "CANNEDMSG_CONFIG": 6,
+ "AUDIO_CONFIG": 7,
+ "REMOTEHARDWARE_CONFIG": 8,
+ "NEIGHBORINFO_CONFIG": 9,
+ "AMBIENTLIGHTING_CONFIG": 10,
+ "DETECTIONSENSOR_CONFIG": 11,
+ "PAXCOUNTER_CONFIG": 12,
+ }
+)
+
+func (x AdminMessage_ModuleConfigType) Enum() *AdminMessage_ModuleConfigType {
+ p := new(AdminMessage_ModuleConfigType)
+ *p = x
+ return p
+}
+
+func (x AdminMessage_ModuleConfigType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (AdminMessage_ModuleConfigType) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_admin_proto_enumTypes[1].Descriptor()
+}
+
+func (AdminMessage_ModuleConfigType) Type() protoreflect.EnumType {
+ return &file_meshtastic_admin_proto_enumTypes[1]
+}
+
+func (x AdminMessage_ModuleConfigType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AdminMessage_ModuleConfigType.Descriptor instead.
+func (AdminMessage_ModuleConfigType) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_admin_proto_rawDescGZIP(), []int{0, 1}
+}
+
+// This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
+// This message is used to do settings operations to both remote AND local nodes.
+// (Prior to 1.2 these operations were done via special ToRadio operations)
+type AdminMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // TODO: REPLACE
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *AdminMessage_GetChannelRequest
+ // *AdminMessage_GetChannelResponse
+ // *AdminMessage_GetOwnerRequest
+ // *AdminMessage_GetOwnerResponse
+ // *AdminMessage_GetConfigRequest
+ // *AdminMessage_GetConfigResponse
+ // *AdminMessage_GetModuleConfigRequest
+ // *AdminMessage_GetModuleConfigResponse
+ // *AdminMessage_GetCannedMessageModuleMessagesRequest
+ // *AdminMessage_GetCannedMessageModuleMessagesResponse
+ // *AdminMessage_GetDeviceMetadataRequest
+ // *AdminMessage_GetDeviceMetadataResponse
+ // *AdminMessage_GetRingtoneRequest
+ // *AdminMessage_GetRingtoneResponse
+ // *AdminMessage_GetDeviceConnectionStatusRequest
+ // *AdminMessage_GetDeviceConnectionStatusResponse
+ // *AdminMessage_SetHamMode
+ // *AdminMessage_GetNodeRemoteHardwarePinsRequest
+ // *AdminMessage_GetNodeRemoteHardwarePinsResponse
+ // *AdminMessage_EnterDfuModeRequest
+ // *AdminMessage_DeleteFileRequest
+ // *AdminMessage_SetOwner
+ // *AdminMessage_SetChannel
+ // *AdminMessage_SetConfig
+ // *AdminMessage_SetModuleConfig
+ // *AdminMessage_SetCannedMessageModuleMessages
+ // *AdminMessage_SetRingtoneMessage
+ // *AdminMessage_RemoveByNodenum
+ // *AdminMessage_BeginEditSettings
+ // *AdminMessage_CommitEditSettings
+ // *AdminMessage_RebootOtaSeconds
+ // *AdminMessage_ExitSimulator
+ // *AdminMessage_RebootSeconds
+ // *AdminMessage_ShutdownSeconds
+ // *AdminMessage_FactoryReset
+ // *AdminMessage_NodedbReset
+ PayloadVariant isAdminMessage_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *AdminMessage) Reset() {
+ *x = AdminMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_admin_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AdminMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdminMessage) ProtoMessage() {}
+
+func (x *AdminMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_admin_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdminMessage.ProtoReflect.Descriptor instead.
+func (*AdminMessage) Descriptor() ([]byte, []int) {
+ return file_meshtastic_admin_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *AdminMessage) GetPayloadVariant() isAdminMessage_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetChannelRequest() uint32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetChannelRequest); ok {
+ return x.GetChannelRequest
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetGetChannelResponse() *Channel {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetChannelResponse); ok {
+ return x.GetChannelResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetOwnerRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetOwnerRequest); ok {
+ return x.GetOwnerRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetOwnerResponse() *User {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetOwnerResponse); ok {
+ return x.GetOwnerResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetConfigRequest() AdminMessage_ConfigType {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetConfigRequest); ok {
+ return x.GetConfigRequest
+ }
+ return AdminMessage_DEVICE_CONFIG
+}
+
+func (x *AdminMessage) GetGetConfigResponse() *Config {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetConfigResponse); ok {
+ return x.GetConfigResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetModuleConfigRequest() AdminMessage_ModuleConfigType {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetModuleConfigRequest); ok {
+ return x.GetModuleConfigRequest
+ }
+ return AdminMessage_MQTT_CONFIG
+}
+
+func (x *AdminMessage) GetGetModuleConfigResponse() *ModuleConfig {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetModuleConfigResponse); ok {
+ return x.GetModuleConfigResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetCannedMessageModuleMessagesRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetCannedMessageModuleMessagesRequest); ok {
+ return x.GetCannedMessageModuleMessagesRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetCannedMessageModuleMessagesResponse() string {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetCannedMessageModuleMessagesResponse); ok {
+ return x.GetCannedMessageModuleMessagesResponse
+ }
+ return ""
+}
+
+func (x *AdminMessage) GetGetDeviceMetadataRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetDeviceMetadataRequest); ok {
+ return x.GetDeviceMetadataRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetDeviceMetadataResponse() *DeviceMetadata {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetDeviceMetadataResponse); ok {
+ return x.GetDeviceMetadataResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetRingtoneRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetRingtoneRequest); ok {
+ return x.GetRingtoneRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetRingtoneResponse() string {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetRingtoneResponse); ok {
+ return x.GetRingtoneResponse
+ }
+ return ""
+}
+
+func (x *AdminMessage) GetGetDeviceConnectionStatusRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetDeviceConnectionStatusRequest); ok {
+ return x.GetDeviceConnectionStatusRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetDeviceConnectionStatusResponse() *DeviceConnectionStatus {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetDeviceConnectionStatusResponse); ok {
+ return x.GetDeviceConnectionStatusResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetSetHamMode() *HamParameters {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetHamMode); ok {
+ return x.SetHamMode
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetGetNodeRemoteHardwarePinsRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetNodeRemoteHardwarePinsRequest); ok {
+ return x.GetNodeRemoteHardwarePinsRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetGetNodeRemoteHardwarePinsResponse() *NodeRemoteHardwarePinsResponse {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_GetNodeRemoteHardwarePinsResponse); ok {
+ return x.GetNodeRemoteHardwarePinsResponse
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetEnterDfuModeRequest() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_EnterDfuModeRequest); ok {
+ return x.EnterDfuModeRequest
+ }
+ return false
+}
+
+func (x *AdminMessage) GetDeleteFileRequest() string {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_DeleteFileRequest); ok {
+ return x.DeleteFileRequest
+ }
+ return ""
+}
+
+func (x *AdminMessage) GetSetOwner() *User {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetOwner); ok {
+ return x.SetOwner
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetSetChannel() *Channel {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetChannel); ok {
+ return x.SetChannel
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetSetConfig() *Config {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetConfig); ok {
+ return x.SetConfig
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetSetModuleConfig() *ModuleConfig {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetModuleConfig); ok {
+ return x.SetModuleConfig
+ }
+ return nil
+}
+
+func (x *AdminMessage) GetSetCannedMessageModuleMessages() string {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetCannedMessageModuleMessages); ok {
+ return x.SetCannedMessageModuleMessages
+ }
+ return ""
+}
+
+func (x *AdminMessage) GetSetRingtoneMessage() string {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_SetRingtoneMessage); ok {
+ return x.SetRingtoneMessage
+ }
+ return ""
+}
+
+func (x *AdminMessage) GetRemoveByNodenum() uint32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_RemoveByNodenum); ok {
+ return x.RemoveByNodenum
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetBeginEditSettings() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_BeginEditSettings); ok {
+ return x.BeginEditSettings
+ }
+ return false
+}
+
+func (x *AdminMessage) GetCommitEditSettings() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_CommitEditSettings); ok {
+ return x.CommitEditSettings
+ }
+ return false
+}
+
+func (x *AdminMessage) GetRebootOtaSeconds() int32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_RebootOtaSeconds); ok {
+ return x.RebootOtaSeconds
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetExitSimulator() bool {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_ExitSimulator); ok {
+ return x.ExitSimulator
+ }
+ return false
+}
+
+func (x *AdminMessage) GetRebootSeconds() int32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_RebootSeconds); ok {
+ return x.RebootSeconds
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetShutdownSeconds() int32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_ShutdownSeconds); ok {
+ return x.ShutdownSeconds
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetFactoryReset() int32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_FactoryReset); ok {
+ return x.FactoryReset
+ }
+ return 0
+}
+
+func (x *AdminMessage) GetNodedbReset() int32 {
+ if x, ok := x.GetPayloadVariant().(*AdminMessage_NodedbReset); ok {
+ return x.NodedbReset
+ }
+ return 0
+}
+
+type isAdminMessage_PayloadVariant interface {
+ isAdminMessage_PayloadVariant()
+}
+
+type AdminMessage_GetChannelRequest struct {
+ // Send the specified channel in the response to this message
+ // NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present)
+ GetChannelRequest uint32 `protobuf:"varint,1,opt,name=get_channel_request,json=getChannelRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetChannelResponse struct {
+ // TODO: REPLACE
+ GetChannelResponse *Channel `protobuf:"bytes,2,opt,name=get_channel_response,json=getChannelResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetOwnerRequest struct {
+ // Send the current owner data in the response to this message.
+ GetOwnerRequest bool `protobuf:"varint,3,opt,name=get_owner_request,json=getOwnerRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetOwnerResponse struct {
+ // TODO: REPLACE
+ GetOwnerResponse *User `protobuf:"bytes,4,opt,name=get_owner_response,json=getOwnerResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetConfigRequest struct {
+ // Ask for the following config data to be sent
+ GetConfigRequest AdminMessage_ConfigType `protobuf:"varint,5,opt,name=get_config_request,json=getConfigRequest,proto3,enum=meshtastic.AdminMessage_ConfigType,oneof"`
+}
+
+type AdminMessage_GetConfigResponse struct {
+ // Send the current Config in the response to this message.
+ GetConfigResponse *Config `protobuf:"bytes,6,opt,name=get_config_response,json=getConfigResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetModuleConfigRequest struct {
+ // Ask for the following config data to be sent
+ GetModuleConfigRequest AdminMessage_ModuleConfigType `protobuf:"varint,7,opt,name=get_module_config_request,json=getModuleConfigRequest,proto3,enum=meshtastic.AdminMessage_ModuleConfigType,oneof"`
+}
+
+type AdminMessage_GetModuleConfigResponse struct {
+ // Send the current Config in the response to this message.
+ GetModuleConfigResponse *ModuleConfig `protobuf:"bytes,8,opt,name=get_module_config_response,json=getModuleConfigResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetCannedMessageModuleMessagesRequest struct {
+ // Get the Canned Message Module messages in the response to this message.
+ GetCannedMessageModuleMessagesRequest bool `protobuf:"varint,10,opt,name=get_canned_message_module_messages_request,json=getCannedMessageModuleMessagesRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetCannedMessageModuleMessagesResponse struct {
+ // Get the Canned Message Module messages in the response to this message.
+ GetCannedMessageModuleMessagesResponse string `protobuf:"bytes,11,opt,name=get_canned_message_module_messages_response,json=getCannedMessageModuleMessagesResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetDeviceMetadataRequest struct {
+ // Request the node to send device metadata (firmware, protobuf version, etc)
+ GetDeviceMetadataRequest bool `protobuf:"varint,12,opt,name=get_device_metadata_request,json=getDeviceMetadataRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetDeviceMetadataResponse struct {
+ // Device metadata response
+ GetDeviceMetadataResponse *DeviceMetadata `protobuf:"bytes,13,opt,name=get_device_metadata_response,json=getDeviceMetadataResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetRingtoneRequest struct {
+ // Get the Ringtone in the response to this message.
+ GetRingtoneRequest bool `protobuf:"varint,14,opt,name=get_ringtone_request,json=getRingtoneRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetRingtoneResponse struct {
+ // Get the Ringtone in the response to this message.
+ GetRingtoneResponse string `protobuf:"bytes,15,opt,name=get_ringtone_response,json=getRingtoneResponse,proto3,oneof"`
+}
+
+type AdminMessage_GetDeviceConnectionStatusRequest struct {
+ // Request the node to send it's connection status
+ GetDeviceConnectionStatusRequest bool `protobuf:"varint,16,opt,name=get_device_connection_status_request,json=getDeviceConnectionStatusRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetDeviceConnectionStatusResponse struct {
+ // Device connection status response
+ GetDeviceConnectionStatusResponse *DeviceConnectionStatus `protobuf:"bytes,17,opt,name=get_device_connection_status_response,json=getDeviceConnectionStatusResponse,proto3,oneof"`
+}
+
+type AdminMessage_SetHamMode struct {
+ // Setup a node for licensed amateur (ham) radio operation
+ SetHamMode *HamParameters `protobuf:"bytes,18,opt,name=set_ham_mode,json=setHamMode,proto3,oneof"`
+}
+
+type AdminMessage_GetNodeRemoteHardwarePinsRequest struct {
+ // Get the mesh's nodes with their available gpio pins for RemoteHardware module use
+ GetNodeRemoteHardwarePinsRequest bool `protobuf:"varint,19,opt,name=get_node_remote_hardware_pins_request,json=getNodeRemoteHardwarePinsRequest,proto3,oneof"`
+}
+
+type AdminMessage_GetNodeRemoteHardwarePinsResponse struct {
+ // Respond with the mesh's nodes with their available gpio pins for RemoteHardware module use
+ GetNodeRemoteHardwarePinsResponse *NodeRemoteHardwarePinsResponse `protobuf:"bytes,20,opt,name=get_node_remote_hardware_pins_response,json=getNodeRemoteHardwarePinsResponse,proto3,oneof"`
+}
+
+type AdminMessage_EnterDfuModeRequest struct {
+ // Enter (UF2) DFU mode
+ // Only implemented on NRF52 currently
+ EnterDfuModeRequest bool `protobuf:"varint,21,opt,name=enter_dfu_mode_request,json=enterDfuModeRequest,proto3,oneof"`
+}
+
+type AdminMessage_DeleteFileRequest struct {
+ // Delete the file by the specified path from the device
+ DeleteFileRequest string `protobuf:"bytes,22,opt,name=delete_file_request,json=deleteFileRequest,proto3,oneof"`
+}
+
+type AdminMessage_SetOwner struct {
+ // Set the owner for this node
+ SetOwner *User `protobuf:"bytes,32,opt,name=set_owner,json=setOwner,proto3,oneof"`
+}
+
+type AdminMessage_SetChannel struct {
+ // Set channels (using the new API).
+ // A special channel is the "primary channel".
+ // The other records are secondary channels.
+ // Note: only one channel can be marked as primary.
+ // If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
+ SetChannel *Channel `protobuf:"bytes,33,opt,name=set_channel,json=setChannel,proto3,oneof"`
+}
+
+type AdminMessage_SetConfig struct {
+ // Set the current Config
+ SetConfig *Config `protobuf:"bytes,34,opt,name=set_config,json=setConfig,proto3,oneof"`
+}
+
+type AdminMessage_SetModuleConfig struct {
+ // Set the current Config
+ SetModuleConfig *ModuleConfig `protobuf:"bytes,35,opt,name=set_module_config,json=setModuleConfig,proto3,oneof"`
+}
+
+type AdminMessage_SetCannedMessageModuleMessages struct {
+ // Set the Canned Message Module messages text.
+ SetCannedMessageModuleMessages string `protobuf:"bytes,36,opt,name=set_canned_message_module_messages,json=setCannedMessageModuleMessages,proto3,oneof"`
+}
+
+type AdminMessage_SetRingtoneMessage struct {
+ // Set the ringtone for ExternalNotification.
+ SetRingtoneMessage string `protobuf:"bytes,37,opt,name=set_ringtone_message,json=setRingtoneMessage,proto3,oneof"`
+}
+
+type AdminMessage_RemoveByNodenum struct {
+ // Remove the node by the specified node-num from the NodeDB on the device
+ RemoveByNodenum uint32 `protobuf:"varint,38,opt,name=remove_by_nodenum,json=removeByNodenum,proto3,oneof"`
+}
+
+type AdminMessage_BeginEditSettings struct {
+ // 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)
+ BeginEditSettings bool `protobuf:"varint,64,opt,name=begin_edit_settings,json=beginEditSettings,proto3,oneof"`
+}
+
+type AdminMessage_CommitEditSettings struct {
+ // Commits an open transaction for any edits made to config, module config, owner, and channel settings
+ CommitEditSettings bool `protobuf:"varint,65,opt,name=commit_edit_settings,json=commitEditSettings,proto3,oneof"`
+}
+
+type AdminMessage_RebootOtaSeconds struct {
+ // 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.
+ RebootOtaSeconds int32 `protobuf:"varint,95,opt,name=reboot_ota_seconds,json=rebootOtaSeconds,proto3,oneof"`
+}
+
+type AdminMessage_ExitSimulator struct {
+ // This message is only supported for the simulator Portduino build.
+ // If received the simulator will exit successfully.
+ ExitSimulator bool `protobuf:"varint,96,opt,name=exit_simulator,json=exitSimulator,proto3,oneof"`
+}
+
+type AdminMessage_RebootSeconds struct {
+ // Tell the node to reboot in this many seconds (or <0 to cancel reboot)
+ RebootSeconds int32 `protobuf:"varint,97,opt,name=reboot_seconds,json=rebootSeconds,proto3,oneof"`
+}
+
+type AdminMessage_ShutdownSeconds struct {
+ // Tell the node to shutdown in this many seconds (or <0 to cancel shutdown)
+ ShutdownSeconds int32 `protobuf:"varint,98,opt,name=shutdown_seconds,json=shutdownSeconds,proto3,oneof"`
+}
+
+type AdminMessage_FactoryReset struct {
+ // Tell the node to factory reset, all device settings will be returned to factory defaults.
+ FactoryReset int32 `protobuf:"varint,99,opt,name=factory_reset,json=factoryReset,proto3,oneof"`
+}
+
+type AdminMessage_NodedbReset struct {
+ // Tell the node to reset the nodedb.
+ NodedbReset int32 `protobuf:"varint,100,opt,name=nodedb_reset,json=nodedbReset,proto3,oneof"`
+}
+
+func (*AdminMessage_GetChannelRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetChannelResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetOwnerRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetOwnerResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetConfigRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetConfigResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetModuleConfigRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetModuleConfigResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetCannedMessageModuleMessagesRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetCannedMessageModuleMessagesResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetDeviceMetadataRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetDeviceMetadataResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetRingtoneRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetRingtoneResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetDeviceConnectionStatusRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetDeviceConnectionStatusResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetHamMode) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetNodeRemoteHardwarePinsRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_GetNodeRemoteHardwarePinsResponse) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_EnterDfuModeRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_DeleteFileRequest) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetOwner) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetChannel) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetConfig) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetModuleConfig) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetCannedMessageModuleMessages) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_SetRingtoneMessage) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_RemoveByNodenum) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_BeginEditSettings) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_CommitEditSettings) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_RebootOtaSeconds) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_ExitSimulator) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_RebootSeconds) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_ShutdownSeconds) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_FactoryReset) isAdminMessage_PayloadVariant() {}
+
+func (*AdminMessage_NodedbReset) isAdminMessage_PayloadVariant() {}
+
+// Parameters for setting up Meshtastic for ameteur radio usage
+type HamParameters struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Amateur radio call sign, eg. KD2ABC
+ CallSign string `protobuf:"bytes,1,opt,name=call_sign,json=callSign,proto3" json:"call_sign,omitempty"`
+ // Transmit power in dBm at the LoRA transceiver, not including any amplification
+ TxPower int32 `protobuf:"varint,2,opt,name=tx_power,json=txPower,proto3" json:"tx_power,omitempty"`
+ // The selected frequency of LoRA operation
+ // Please respect your local laws, regulations, and band plans.
+ // Ensure your radio is capable of operating of the selected frequency before setting this.
+ Frequency float32 `protobuf:"fixed32,3,opt,name=frequency,proto3" json:"frequency,omitempty"`
+ // Optional short name of user
+ ShortName string `protobuf:"bytes,4,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"`
+}
+
+func (x *HamParameters) Reset() {
+ *x = HamParameters{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_admin_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HamParameters) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HamParameters) ProtoMessage() {}
+
+func (x *HamParameters) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_admin_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HamParameters.ProtoReflect.Descriptor instead.
+func (*HamParameters) Descriptor() ([]byte, []int) {
+ return file_meshtastic_admin_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *HamParameters) GetCallSign() string {
+ if x != nil {
+ return x.CallSign
+ }
+ return ""
+}
+
+func (x *HamParameters) GetTxPower() int32 {
+ if x != nil {
+ return x.TxPower
+ }
+ return 0
+}
+
+func (x *HamParameters) GetFrequency() float32 {
+ if x != nil {
+ return x.Frequency
+ }
+ return 0
+}
+
+func (x *HamParameters) GetShortName() string {
+ if x != nil {
+ return x.ShortName
+ }
+ return ""
+}
+
+// Response envelope for node_remote_hardware_pins
+type NodeRemoteHardwarePinsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Nodes and their respective remote hardware GPIO pins
+ NodeRemoteHardwarePins []*NodeRemoteHardwarePin `protobuf:"bytes,1,rep,name=node_remote_hardware_pins,json=nodeRemoteHardwarePins,proto3" json:"node_remote_hardware_pins,omitempty"`
+}
+
+func (x *NodeRemoteHardwarePinsResponse) Reset() {
+ *x = NodeRemoteHardwarePinsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_admin_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NodeRemoteHardwarePinsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NodeRemoteHardwarePinsResponse) ProtoMessage() {}
+
+func (x *NodeRemoteHardwarePinsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_admin_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NodeRemoteHardwarePinsResponse.ProtoReflect.Descriptor instead.
+func (*NodeRemoteHardwarePinsResponse) Descriptor() ([]byte, []int) {
+ return file_meshtastic_admin_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *NodeRemoteHardwarePinsResponse) GetNodeRemoteHardwarePins() []*NodeRemoteHardwarePin {
+ if x != nil {
+ return x.NodeRemoteHardwarePins
+ }
+ return nil
+}
+
+var File_meshtastic_admin_proto protoreflect.FileDescriptor
+
+var file_meshtastic_admin_proto_rawDesc = []byte{
+ 0x0a, 0x16, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x1a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x6f, 0x6e,
+ 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x1e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x6f, 0x64, 0x75,
+ 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+ 0xc1, 0x16, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x30, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
+ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52,
+ 0x11, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x47, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
+ 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68,
+ 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x67,
+ 0x65, 0x74, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x65, 0x74, 0x4f, 0x77, 0x6e,
+ 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x12, 0x67, 0x65, 0x74,
+ 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x74, 0x4f, 0x77,
+ 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x67,
+ 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x10,
+ 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x44, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x11, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x16, 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x57,
+ 0x0a, 0x1a, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x17,
+ 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x2a, 0x67, 0x65, 0x74, 0x5f, 0x63,
+ 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x25, 0x67,
+ 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x2b, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x6e,
+ 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x26, 0x67, 0x65, 0x74,
+ 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x1b, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, 0x67, 0x65, 0x74, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x74,
+ 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28,
+ 0x08, 0x48, 0x00, 0x52, 0x12, 0x67, 0x65, 0x74, 0x52, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x5f, 0x72,
+ 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x67, 0x65, 0x74, 0x52, 0x69, 0x6e,
+ 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a,
+ 0x24, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x20, 0x67,
+ 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x76, 0x0a, 0x25, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
+ 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x48, 0x00, 0x52, 0x21, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x5f, 0x68,
+ 0x61, 0x6d, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x48, 0x61, 0x6d, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x48,
+ 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x25, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x6f,
+ 0x64, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61,
+ 0x72, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
+ 0x13, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x20, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65,
+ 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69,
+ 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x26, 0x67, 0x65, 0x74,
+ 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72,
+ 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74,
+ 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x21, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65,
+ 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69,
+ 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x65, 0x6e,
+ 0x74, 0x65, 0x72, 0x5f, 0x64, 0x66, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x65, 0x6e,
+ 0x74, 0x65, 0x72, 0x44, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65,
+ 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
+ 0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72,
+ 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x74, 0x4f,
+ 0x77, 0x6e, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x00,
+ 0x52, 0x0a, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x33, 0x0a, 0x0a,
+ 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x46, 0x0a, 0x11, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x65, 0x74, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x22, 0x73, 0x65, 0x74,
+ 0x5f, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f,
+ 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18,
+ 0x24, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x1e, 0x73, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e,
+ 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x5f, 0x72,
+ 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x25, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x74, 0x52, 0x69, 0x6e, 0x67,
+ 0x74, 0x6f, 0x6e, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x72,
+ 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x6e, 0x75, 0x6d,
+ 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
+ 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x65, 0x67,
+ 0x69, 0x6e, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
+ 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x45,
+ 0x64, 0x69, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69,
+ 0x6e, 0x67, 0x73, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x45, 0x64, 0x69, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12,
+ 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x6f, 0x74, 0x61, 0x5f, 0x73, 0x65,
+ 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x10, 0x72,
+ 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4f, 0x74, 0x61, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12,
+ 0x27, 0x0a, 0x0e, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f,
+ 0x72, 0x18, 0x60, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, 0x69, 0x74, 0x53,
+ 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0e, 0x72, 0x65, 0x62, 0x6f,
+ 0x6f, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x61, 0x20, 0x01, 0x28, 0x05,
+ 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
+ 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65,
+ 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x62, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0f, 0x73,
+ 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x25,
+ 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18,
+ 0x63, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x64, 0x62, 0x5f,
+ 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0b, 0x6e,
+ 0x6f, 0x64, 0x65, 0x64, 0x62, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x0a, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, 0x56,
+ 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
+ 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
+ 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49,
+ 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x43,
+ 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x53, 0x50, 0x4c,
+ 0x41, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4c,
+ 0x4f, 0x52, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10,
+ 0x42, 0x4c, 0x55, 0x45, 0x54, 0x4f, 0x4f, 0x54, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47,
+ 0x10, 0x06, 0x22, 0xbb, 0x02, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x51, 0x54, 0x54, 0x5f,
+ 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x52, 0x49,
+ 0x41, 0x4c, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45,
+ 0x58, 0x54, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02,
+ 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44,
+ 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x41, 0x4e,
+ 0x47, 0x45, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x04, 0x12,
+ 0x14, 0x0a, 0x10, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4e,
+ 0x46, 0x49, 0x47, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x4d,
+ 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x41,
+ 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x07, 0x12, 0x19, 0x0a,
+ 0x15, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f,
+ 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x45, 0x49, 0x47,
+ 0x48, 0x42, 0x4f, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
+ 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4d, 0x42, 0x49, 0x45, 0x4e, 0x54, 0x4c, 0x49, 0x47, 0x48,
+ 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0a, 0x12, 0x1a, 0x0a,
+ 0x16, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52,
+ 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x58,
+ 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0c,
+ 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69,
+ 0x61, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x0d, 0x48, 0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x69,
+ 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1c, 0x0a,
+ 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
+ 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
+ 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x1e, 0x4e, 0x6f,
+ 0x64, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65,
+ 0x50, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x19,
+ 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64,
+ 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x6f, 0x64,
+ 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50,
+ 0x69, 0x6e, 0x52, 0x16, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61,
+ 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x42, 0x60, 0x0a, 0x13, 0x63, 0x6f,
+ 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x42, 0x0b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22,
+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
+ 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_admin_proto_rawDescOnce sync.Once
+ file_meshtastic_admin_proto_rawDescData = file_meshtastic_admin_proto_rawDesc
+)
+
+func file_meshtastic_admin_proto_rawDescGZIP() []byte {
+ file_meshtastic_admin_proto_rawDescOnce.Do(func() {
+ file_meshtastic_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_admin_proto_rawDescData)
+ })
+ return file_meshtastic_admin_proto_rawDescData
+}
+
+var file_meshtastic_admin_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_meshtastic_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_meshtastic_admin_proto_goTypes = []interface{}{
+ (AdminMessage_ConfigType)(0), // 0: meshtastic.AdminMessage.ConfigType
+ (AdminMessage_ModuleConfigType)(0), // 1: meshtastic.AdminMessage.ModuleConfigType
+ (*AdminMessage)(nil), // 2: meshtastic.AdminMessage
+ (*HamParameters)(nil), // 3: meshtastic.HamParameters
+ (*NodeRemoteHardwarePinsResponse)(nil), // 4: meshtastic.NodeRemoteHardwarePinsResponse
+ (*Channel)(nil), // 5: meshtastic.Channel
+ (*User)(nil), // 6: meshtastic.User
+ (*Config)(nil), // 7: meshtastic.Config
+ (*ModuleConfig)(nil), // 8: meshtastic.ModuleConfig
+ (*DeviceMetadata)(nil), // 9: meshtastic.DeviceMetadata
+ (*DeviceConnectionStatus)(nil), // 10: meshtastic.DeviceConnectionStatus
+ (*NodeRemoteHardwarePin)(nil), // 11: meshtastic.NodeRemoteHardwarePin
+}
+var file_meshtastic_admin_proto_depIdxs = []int32{
+ 5, // 0: meshtastic.AdminMessage.get_channel_response:type_name -> meshtastic.Channel
+ 6, // 1: meshtastic.AdminMessage.get_owner_response:type_name -> meshtastic.User
+ 0, // 2: meshtastic.AdminMessage.get_config_request:type_name -> meshtastic.AdminMessage.ConfigType
+ 7, // 3: meshtastic.AdminMessage.get_config_response:type_name -> meshtastic.Config
+ 1, // 4: meshtastic.AdminMessage.get_module_config_request:type_name -> meshtastic.AdminMessage.ModuleConfigType
+ 8, // 5: meshtastic.AdminMessage.get_module_config_response:type_name -> meshtastic.ModuleConfig
+ 9, // 6: meshtastic.AdminMessage.get_device_metadata_response:type_name -> meshtastic.DeviceMetadata
+ 10, // 7: meshtastic.AdminMessage.get_device_connection_status_response:type_name -> meshtastic.DeviceConnectionStatus
+ 3, // 8: meshtastic.AdminMessage.set_ham_mode:type_name -> meshtastic.HamParameters
+ 4, // 9: meshtastic.AdminMessage.get_node_remote_hardware_pins_response:type_name -> meshtastic.NodeRemoteHardwarePinsResponse
+ 6, // 10: meshtastic.AdminMessage.set_owner:type_name -> meshtastic.User
+ 5, // 11: meshtastic.AdminMessage.set_channel:type_name -> meshtastic.Channel
+ 7, // 12: meshtastic.AdminMessage.set_config:type_name -> meshtastic.Config
+ 8, // 13: meshtastic.AdminMessage.set_module_config:type_name -> meshtastic.ModuleConfig
+ 11, // 14: meshtastic.NodeRemoteHardwarePinsResponse.node_remote_hardware_pins:type_name -> meshtastic.NodeRemoteHardwarePin
+ 15, // [15:15] is the sub-list for method output_type
+ 15, // [15:15] is the sub-list for method input_type
+ 15, // [15:15] is the sub-list for extension type_name
+ 15, // [15:15] is the sub-list for extension extendee
+ 0, // [0:15] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_admin_proto_init() }
+func file_meshtastic_admin_proto_init() {
+ if File_meshtastic_admin_proto != nil {
+ return
+ }
+ file_meshtastic_channel_proto_init()
+ file_meshtastic_config_proto_init()
+ file_meshtastic_connection_status_proto_init()
+ file_meshtastic_deviceonly_proto_init()
+ file_meshtastic_mesh_proto_init()
+ file_meshtastic_module_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AdminMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HamParameters); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NodeRemoteHardwarePinsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_admin_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*AdminMessage_GetChannelRequest)(nil),
+ (*AdminMessage_GetChannelResponse)(nil),
+ (*AdminMessage_GetOwnerRequest)(nil),
+ (*AdminMessage_GetOwnerResponse)(nil),
+ (*AdminMessage_GetConfigRequest)(nil),
+ (*AdminMessage_GetConfigResponse)(nil),
+ (*AdminMessage_GetModuleConfigRequest)(nil),
+ (*AdminMessage_GetModuleConfigResponse)(nil),
+ (*AdminMessage_GetCannedMessageModuleMessagesRequest)(nil),
+ (*AdminMessage_GetCannedMessageModuleMessagesResponse)(nil),
+ (*AdminMessage_GetDeviceMetadataRequest)(nil),
+ (*AdminMessage_GetDeviceMetadataResponse)(nil),
+ (*AdminMessage_GetRingtoneRequest)(nil),
+ (*AdminMessage_GetRingtoneResponse)(nil),
+ (*AdminMessage_GetDeviceConnectionStatusRequest)(nil),
+ (*AdminMessage_GetDeviceConnectionStatusResponse)(nil),
+ (*AdminMessage_SetHamMode)(nil),
+ (*AdminMessage_GetNodeRemoteHardwarePinsRequest)(nil),
+ (*AdminMessage_GetNodeRemoteHardwarePinsResponse)(nil),
+ (*AdminMessage_EnterDfuModeRequest)(nil),
+ (*AdminMessage_DeleteFileRequest)(nil),
+ (*AdminMessage_SetOwner)(nil),
+ (*AdminMessage_SetChannel)(nil),
+ (*AdminMessage_SetConfig)(nil),
+ (*AdminMessage_SetModuleConfig)(nil),
+ (*AdminMessage_SetCannedMessageModuleMessages)(nil),
+ (*AdminMessage_SetRingtoneMessage)(nil),
+ (*AdminMessage_RemoveByNodenum)(nil),
+ (*AdminMessage_BeginEditSettings)(nil),
+ (*AdminMessage_CommitEditSettings)(nil),
+ (*AdminMessage_RebootOtaSeconds)(nil),
+ (*AdminMessage_ExitSimulator)(nil),
+ (*AdminMessage_RebootSeconds)(nil),
+ (*AdminMessage_ShutdownSeconds)(nil),
+ (*AdminMessage_FactoryReset)(nil),
+ (*AdminMessage_NodedbReset)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_admin_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_admin_proto_goTypes,
+ DependencyIndexes: file_meshtastic_admin_proto_depIdxs,
+ EnumInfos: file_meshtastic_admin_proto_enumTypes,
+ MessageInfos: file_meshtastic_admin_proto_msgTypes,
+ }.Build()
+ File_meshtastic_admin_proto = out.File
+ file_meshtastic_admin_proto_rawDesc = nil
+ file_meshtastic_admin_proto_goTypes = nil
+ file_meshtastic_admin_proto_depIdxs = nil
+}
diff --git a/meshtastic/admin_vtproto.pb.go b/meshtastic/admin_vtproto.pb.go
new file mode 100644
index 0000000..3a4f86a
--- /dev/null
+++ b/meshtastic/admin_vtproto.pb.go
@@ -0,0 +1,6074 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/admin.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ math "math"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *AdminMessage) CloneVT() *AdminMessage {
+ if m == nil {
+ return (*AdminMessage)(nil)
+ }
+ r := new(AdminMessage)
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isAdminMessage_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *AdminMessage) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *AdminMessage_GetChannelRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetChannelRequest)(nil)
+ }
+ r := new(AdminMessage_GetChannelRequest)
+ r.GetChannelRequest = m.GetChannelRequest
+ return r
+}
+
+func (m *AdminMessage_GetChannelResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetChannelResponse)(nil)
+ }
+ r := new(AdminMessage_GetChannelResponse)
+ r.GetChannelResponse = m.GetChannelResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetOwnerRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetOwnerRequest)(nil)
+ }
+ r := new(AdminMessage_GetOwnerRequest)
+ r.GetOwnerRequest = m.GetOwnerRequest
+ return r
+}
+
+func (m *AdminMessage_GetOwnerResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetOwnerResponse)(nil)
+ }
+ r := new(AdminMessage_GetOwnerResponse)
+ r.GetOwnerResponse = m.GetOwnerResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetConfigRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetConfigRequest)(nil)
+ }
+ r := new(AdminMessage_GetConfigRequest)
+ r.GetConfigRequest = m.GetConfigRequest
+ return r
+}
+
+func (m *AdminMessage_GetConfigResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetConfigResponse)(nil)
+ }
+ r := new(AdminMessage_GetConfigResponse)
+ r.GetConfigResponse = m.GetConfigResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetModuleConfigRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetModuleConfigRequest)(nil)
+ }
+ r := new(AdminMessage_GetModuleConfigRequest)
+ r.GetModuleConfigRequest = m.GetModuleConfigRequest
+ return r
+}
+
+func (m *AdminMessage_GetModuleConfigResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetModuleConfigResponse)(nil)
+ }
+ r := new(AdminMessage_GetModuleConfigResponse)
+ r.GetModuleConfigResponse = m.GetModuleConfigResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetCannedMessageModuleMessagesRequest)(nil)
+ }
+ r := new(AdminMessage_GetCannedMessageModuleMessagesRequest)
+ r.GetCannedMessageModuleMessagesRequest = m.GetCannedMessageModuleMessagesRequest
+ return r
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetCannedMessageModuleMessagesResponse)(nil)
+ }
+ r := new(AdminMessage_GetCannedMessageModuleMessagesResponse)
+ r.GetCannedMessageModuleMessagesResponse = m.GetCannedMessageModuleMessagesResponse
+ return r
+}
+
+func (m *AdminMessage_GetDeviceMetadataRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetDeviceMetadataRequest)(nil)
+ }
+ r := new(AdminMessage_GetDeviceMetadataRequest)
+ r.GetDeviceMetadataRequest = m.GetDeviceMetadataRequest
+ return r
+}
+
+func (m *AdminMessage_GetDeviceMetadataResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetDeviceMetadataResponse)(nil)
+ }
+ r := new(AdminMessage_GetDeviceMetadataResponse)
+ r.GetDeviceMetadataResponse = m.GetDeviceMetadataResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetRingtoneRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetRingtoneRequest)(nil)
+ }
+ r := new(AdminMessage_GetRingtoneRequest)
+ r.GetRingtoneRequest = m.GetRingtoneRequest
+ return r
+}
+
+func (m *AdminMessage_GetRingtoneResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetRingtoneResponse)(nil)
+ }
+ r := new(AdminMessage_GetRingtoneResponse)
+ r.GetRingtoneResponse = m.GetRingtoneResponse
+ return r
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetDeviceConnectionStatusRequest)(nil)
+ }
+ r := new(AdminMessage_GetDeviceConnectionStatusRequest)
+ r.GetDeviceConnectionStatusRequest = m.GetDeviceConnectionStatusRequest
+ return r
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetDeviceConnectionStatusResponse)(nil)
+ }
+ r := new(AdminMessage_GetDeviceConnectionStatusResponse)
+ r.GetDeviceConnectionStatusResponse = m.GetDeviceConnectionStatusResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_SetHamMode) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetHamMode)(nil)
+ }
+ r := new(AdminMessage_SetHamMode)
+ r.SetHamMode = m.SetHamMode.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetNodeRemoteHardwarePinsRequest)(nil)
+ }
+ r := new(AdminMessage_GetNodeRemoteHardwarePinsRequest)
+ r.GetNodeRemoteHardwarePinsRequest = m.GetNodeRemoteHardwarePinsRequest
+ return r
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_GetNodeRemoteHardwarePinsResponse)(nil)
+ }
+ r := new(AdminMessage_GetNodeRemoteHardwarePinsResponse)
+ r.GetNodeRemoteHardwarePinsResponse = m.GetNodeRemoteHardwarePinsResponse.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_EnterDfuModeRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_EnterDfuModeRequest)(nil)
+ }
+ r := new(AdminMessage_EnterDfuModeRequest)
+ r.EnterDfuModeRequest = m.EnterDfuModeRequest
+ return r
+}
+
+func (m *AdminMessage_DeleteFileRequest) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_DeleteFileRequest)(nil)
+ }
+ r := new(AdminMessage_DeleteFileRequest)
+ r.DeleteFileRequest = m.DeleteFileRequest
+ return r
+}
+
+func (m *AdminMessage_SetOwner) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetOwner)(nil)
+ }
+ r := new(AdminMessage_SetOwner)
+ r.SetOwner = m.SetOwner.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_SetChannel) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetChannel)(nil)
+ }
+ r := new(AdminMessage_SetChannel)
+ r.SetChannel = m.SetChannel.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_SetConfig) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetConfig)(nil)
+ }
+ r := new(AdminMessage_SetConfig)
+ r.SetConfig = m.SetConfig.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_SetModuleConfig) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetModuleConfig)(nil)
+ }
+ r := new(AdminMessage_SetModuleConfig)
+ r.SetModuleConfig = m.SetModuleConfig.CloneVT()
+ return r
+}
+
+func (m *AdminMessage_SetCannedMessageModuleMessages) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetCannedMessageModuleMessages)(nil)
+ }
+ r := new(AdminMessage_SetCannedMessageModuleMessages)
+ r.SetCannedMessageModuleMessages = m.SetCannedMessageModuleMessages
+ return r
+}
+
+func (m *AdminMessage_SetRingtoneMessage) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_SetRingtoneMessage)(nil)
+ }
+ r := new(AdminMessage_SetRingtoneMessage)
+ r.SetRingtoneMessage = m.SetRingtoneMessage
+ return r
+}
+
+func (m *AdminMessage_RemoveByNodenum) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_RemoveByNodenum)(nil)
+ }
+ r := new(AdminMessage_RemoveByNodenum)
+ r.RemoveByNodenum = m.RemoveByNodenum
+ return r
+}
+
+func (m *AdminMessage_BeginEditSettings) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_BeginEditSettings)(nil)
+ }
+ r := new(AdminMessage_BeginEditSettings)
+ r.BeginEditSettings = m.BeginEditSettings
+ return r
+}
+
+func (m *AdminMessage_CommitEditSettings) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_CommitEditSettings)(nil)
+ }
+ r := new(AdminMessage_CommitEditSettings)
+ r.CommitEditSettings = m.CommitEditSettings
+ return r
+}
+
+func (m *AdminMessage_RebootOtaSeconds) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_RebootOtaSeconds)(nil)
+ }
+ r := new(AdminMessage_RebootOtaSeconds)
+ r.RebootOtaSeconds = m.RebootOtaSeconds
+ return r
+}
+
+func (m *AdminMessage_ExitSimulator) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_ExitSimulator)(nil)
+ }
+ r := new(AdminMessage_ExitSimulator)
+ r.ExitSimulator = m.ExitSimulator
+ return r
+}
+
+func (m *AdminMessage_RebootSeconds) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_RebootSeconds)(nil)
+ }
+ r := new(AdminMessage_RebootSeconds)
+ r.RebootSeconds = m.RebootSeconds
+ return r
+}
+
+func (m *AdminMessage_ShutdownSeconds) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_ShutdownSeconds)(nil)
+ }
+ r := new(AdminMessage_ShutdownSeconds)
+ r.ShutdownSeconds = m.ShutdownSeconds
+ return r
+}
+
+func (m *AdminMessage_FactoryReset) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_FactoryReset)(nil)
+ }
+ r := new(AdminMessage_FactoryReset)
+ r.FactoryReset = m.FactoryReset
+ return r
+}
+
+func (m *AdminMessage_NodedbReset) CloneVT() isAdminMessage_PayloadVariant {
+ if m == nil {
+ return (*AdminMessage_NodedbReset)(nil)
+ }
+ r := new(AdminMessage_NodedbReset)
+ r.NodedbReset = m.NodedbReset
+ return r
+}
+
+func (m *HamParameters) CloneVT() *HamParameters {
+ if m == nil {
+ return (*HamParameters)(nil)
+ }
+ r := new(HamParameters)
+ r.CallSign = m.CallSign
+ r.TxPower = m.TxPower
+ r.Frequency = m.Frequency
+ r.ShortName = m.ShortName
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *HamParameters) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *NodeRemoteHardwarePinsResponse) CloneVT() *NodeRemoteHardwarePinsResponse {
+ if m == nil {
+ return (*NodeRemoteHardwarePinsResponse)(nil)
+ }
+ r := new(NodeRemoteHardwarePinsResponse)
+ if rhs := m.NodeRemoteHardwarePins; rhs != nil {
+ tmpContainer := make([]*NodeRemoteHardwarePin, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.NodeRemoteHardwarePins = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NodeRemoteHardwarePinsResponse) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *AdminMessage) EqualVT(that *AdminMessage) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isAdminMessage_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *AdminMessage) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*AdminMessage)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *AdminMessage_GetChannelRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetChannelRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetChannelRequest != that.GetChannelRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetChannelResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetChannelResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetChannelResponse, that.GetChannelResponse; p != q {
+ if p == nil {
+ p = &Channel{}
+ }
+ if q == nil {
+ q = &Channel{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetOwnerRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetOwnerRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetOwnerRequest != that.GetOwnerRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetOwnerResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetOwnerResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetOwnerResponse, that.GetOwnerResponse; p != q {
+ if p == nil {
+ p = &User{}
+ }
+ if q == nil {
+ q = &User{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetConfigRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetConfigRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetConfigRequest != that.GetConfigRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetConfigResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetConfigResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetConfigResponse, that.GetConfigResponse; p != q {
+ if p == nil {
+ p = &Config{}
+ }
+ if q == nil {
+ q = &Config{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetModuleConfigRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetModuleConfigRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetModuleConfigRequest != that.GetModuleConfigRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetModuleConfigResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetModuleConfigResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetModuleConfigResponse, that.GetModuleConfigResponse; p != q {
+ if p == nil {
+ p = &ModuleConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetCannedMessageModuleMessagesRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetCannedMessageModuleMessagesRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetCannedMessageModuleMessagesRequest != that.GetCannedMessageModuleMessagesRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetCannedMessageModuleMessagesResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetCannedMessageModuleMessagesResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetCannedMessageModuleMessagesResponse != that.GetCannedMessageModuleMessagesResponse {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetDeviceMetadataRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetDeviceMetadataRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetDeviceMetadataRequest != that.GetDeviceMetadataRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetDeviceMetadataResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetDeviceMetadataResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetDeviceMetadataResponse, that.GetDeviceMetadataResponse; p != q {
+ if p == nil {
+ p = &DeviceMetadata{}
+ }
+ if q == nil {
+ q = &DeviceMetadata{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetRingtoneRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetRingtoneRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetRingtoneRequest != that.GetRingtoneRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetRingtoneResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetRingtoneResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetRingtoneResponse != that.GetRingtoneResponse {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetDeviceConnectionStatusRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetDeviceConnectionStatusRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetDeviceConnectionStatusRequest != that.GetDeviceConnectionStatusRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetDeviceConnectionStatusResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetDeviceConnectionStatusResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetDeviceConnectionStatusResponse, that.GetDeviceConnectionStatusResponse; p != q {
+ if p == nil {
+ p = &DeviceConnectionStatus{}
+ }
+ if q == nil {
+ q = &DeviceConnectionStatus{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_SetHamMode) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetHamMode)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.SetHamMode, that.SetHamMode; p != q {
+ if p == nil {
+ p = &HamParameters{}
+ }
+ if q == nil {
+ q = &HamParameters{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_GetNodeRemoteHardwarePinsRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetNodeRemoteHardwarePinsRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.GetNodeRemoteHardwarePinsRequest != that.GetNodeRemoteHardwarePinsRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_GetNodeRemoteHardwarePinsResponse) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_GetNodeRemoteHardwarePinsResponse)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.GetNodeRemoteHardwarePinsResponse, that.GetNodeRemoteHardwarePinsResponse; p != q {
+ if p == nil {
+ p = &NodeRemoteHardwarePinsResponse{}
+ }
+ if q == nil {
+ q = &NodeRemoteHardwarePinsResponse{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_EnterDfuModeRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_EnterDfuModeRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.EnterDfuModeRequest != that.EnterDfuModeRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_DeleteFileRequest) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_DeleteFileRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.DeleteFileRequest != that.DeleteFileRequest {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_SetOwner) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetOwner)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.SetOwner, that.SetOwner; p != q {
+ if p == nil {
+ p = &User{}
+ }
+ if q == nil {
+ q = &User{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_SetChannel) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetChannel)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.SetChannel, that.SetChannel; p != q {
+ if p == nil {
+ p = &Channel{}
+ }
+ if q == nil {
+ q = &Channel{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_SetConfig) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetConfig)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.SetConfig, that.SetConfig; p != q {
+ if p == nil {
+ p = &Config{}
+ }
+ if q == nil {
+ q = &Config{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_SetModuleConfig) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetModuleConfig)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.SetModuleConfig, that.SetModuleConfig; p != q {
+ if p == nil {
+ p = &ModuleConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *AdminMessage_SetCannedMessageModuleMessages) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetCannedMessageModuleMessages)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.SetCannedMessageModuleMessages != that.SetCannedMessageModuleMessages {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_SetRingtoneMessage) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_SetRingtoneMessage)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.SetRingtoneMessage != that.SetRingtoneMessage {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_RemoveByNodenum) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_RemoveByNodenum)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.RemoveByNodenum != that.RemoveByNodenum {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_BeginEditSettings) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_BeginEditSettings)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.BeginEditSettings != that.BeginEditSettings {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_CommitEditSettings) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_CommitEditSettings)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.CommitEditSettings != that.CommitEditSettings {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_RebootOtaSeconds) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_RebootOtaSeconds)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.RebootOtaSeconds != that.RebootOtaSeconds {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_ExitSimulator) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_ExitSimulator)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.ExitSimulator != that.ExitSimulator {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_RebootSeconds) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_RebootSeconds)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.RebootSeconds != that.RebootSeconds {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_ShutdownSeconds) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_ShutdownSeconds)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.ShutdownSeconds != that.ShutdownSeconds {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_FactoryReset) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_FactoryReset)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.FactoryReset != that.FactoryReset {
+ return false
+ }
+ return true
+}
+
+func (this *AdminMessage_NodedbReset) EqualVT(thatIface isAdminMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*AdminMessage_NodedbReset)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.NodedbReset != that.NodedbReset {
+ return false
+ }
+ return true
+}
+
+func (this *HamParameters) EqualVT(that *HamParameters) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.CallSign != that.CallSign {
+ return false
+ }
+ if this.TxPower != that.TxPower {
+ return false
+ }
+ if this.Frequency != that.Frequency {
+ return false
+ }
+ if this.ShortName != that.ShortName {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *HamParameters) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*HamParameters)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *NodeRemoteHardwarePinsResponse) EqualVT(that *NodeRemoteHardwarePinsResponse) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if len(this.NodeRemoteHardwarePins) != len(that.NodeRemoteHardwarePins) {
+ return false
+ }
+ for i, vx := range this.NodeRemoteHardwarePins {
+ vy := that.NodeRemoteHardwarePins[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &NodeRemoteHardwarePin{}
+ }
+ if q == nil {
+ q = &NodeRemoteHardwarePin{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NodeRemoteHardwarePinsResponse) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NodeRemoteHardwarePinsResponse)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *AdminMessage) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *AdminMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AdminMessage_GetChannelRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetChannelRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetChannelRequest))
+ i--
+ dAtA[i] = 0x8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetChannelResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetChannelResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetChannelResponse != nil {
+ size, err := m.GetChannelResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetOwnerRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetOwnerRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetOwnerRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetOwnerResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetOwnerResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetOwnerResponse != nil {
+ size, err := m.GetOwnerResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetConfigRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetConfigRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetConfigRequest))
+ i--
+ dAtA[i] = 0x28
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetConfigResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetConfigResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetConfigResponse != nil {
+ size, err := m.GetConfigResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetModuleConfigRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetModuleConfigRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetModuleConfigRequest))
+ i--
+ dAtA[i] = 0x38
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetModuleConfigResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetModuleConfigResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetModuleConfigResponse != nil {
+ size, err := m.GetModuleConfigResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetCannedMessageModuleMessagesRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.GetCannedMessageModuleMessagesResponse)
+ copy(dAtA[i:], m.GetCannedMessageModuleMessagesResponse)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GetCannedMessageModuleMessagesResponse)))
+ i--
+ dAtA[i] = 0x5a
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceMetadataRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceMetadataRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetDeviceMetadataRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceMetadataResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceMetadataResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetDeviceMetadataResponse != nil {
+ size, err := m.GetDeviceMetadataResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetRingtoneRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetRingtoneRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetRingtoneRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x70
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetRingtoneResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetRingtoneResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.GetRingtoneResponse)
+ copy(dAtA[i:], m.GetRingtoneResponse)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GetRingtoneResponse)))
+ i--
+ dAtA[i] = 0x7a
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetDeviceConnectionStatusRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetDeviceConnectionStatusResponse != nil {
+ size, err := m.GetDeviceConnectionStatusResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetHamMode) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetHamMode) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetHamMode != nil {
+ size, err := m.SetHamMode.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x92
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetNodeRemoteHardwarePinsRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x98
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetNodeRemoteHardwarePinsResponse != nil {
+ size, err := m.GetNodeRemoteHardwarePinsResponse.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa2
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_EnterDfuModeRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_EnterDfuModeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.EnterDfuModeRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_DeleteFileRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_DeleteFileRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.DeleteFileRequest)
+ copy(dAtA[i:], m.DeleteFileRequest)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeleteFileRequest)))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb2
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetOwner) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetOwner) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetOwner != nil {
+ size, err := m.SetOwner.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x82
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetChannel) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetChannel != nil {
+ size, err := m.SetChannel.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetConfig != nil {
+ size, err := m.SetConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x92
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetModuleConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetModuleConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetModuleConfig != nil {
+ size, err := m.SetModuleConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x9a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetCannedMessageModuleMessages) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetCannedMessageModuleMessages) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.SetCannedMessageModuleMessages)
+ copy(dAtA[i:], m.SetCannedMessageModuleMessages)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SetCannedMessageModuleMessages)))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xa2
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetRingtoneMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_SetRingtoneMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.SetRingtoneMessage)
+ copy(dAtA[i:], m.SetRingtoneMessage)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SetRingtoneMessage)))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xaa
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RemoveByNodenum) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_RemoveByNodenum) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RemoveByNodenum))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xb0
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_BeginEditSettings) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_BeginEditSettings) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.BeginEditSettings {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x4
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_CommitEditSettings) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_CommitEditSettings) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.CommitEditSettings {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x4
+ i--
+ dAtA[i] = 0x88
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RebootOtaSeconds) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_RebootOtaSeconds) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootOtaSeconds))
+ i--
+ dAtA[i] = 0x5
+ i--
+ dAtA[i] = 0xf8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_ExitSimulator) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_ExitSimulator) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.ExitSimulator {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RebootSeconds) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_RebootSeconds) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootSeconds))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x88
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_ShutdownSeconds) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_ShutdownSeconds) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ShutdownSeconds))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x90
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_FactoryReset) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_FactoryReset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FactoryReset))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x98
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_NodedbReset) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AdminMessage_NodedbReset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodedbReset))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xa0
+ return len(dAtA) - i, nil
+}
+func (m *HamParameters) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *HamParameters) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *HamParameters) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.ShortName) > 0 {
+ i -= len(m.ShortName)
+ copy(dAtA[i:], m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ShortName)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Frequency != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Frequency))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.TxPower != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxPower))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.CallSign) > 0 {
+ i -= len(m.CallSign)
+ copy(dAtA[i:], m.CallSign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CallSign)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for iNdEx := len(m.NodeRemoteHardwarePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeRemoteHardwarePins[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AdminMessage) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *AdminMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_NodedbReset); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_FactoryReset); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_ShutdownSeconds); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_RebootSeconds); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_ExitSimulator); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_RebootOtaSeconds); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_CommitEditSettings); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_BeginEditSettings); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_RemoveByNodenum); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetRingtoneMessage); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetCannedMessageModuleMessages); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetModuleConfig); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetConfig); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetChannel); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetOwner); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_DeleteFileRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_EnterDfuModeRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetNodeRemoteHardwarePinsResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetNodeRemoteHardwarePinsRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_SetHamMode); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetDeviceConnectionStatusResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetDeviceConnectionStatusRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetRingtoneResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetRingtoneRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetDeviceMetadataResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetDeviceMetadataRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetCannedMessageModuleMessagesResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetCannedMessageModuleMessagesRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetModuleConfigResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetModuleConfigRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetConfigResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetConfigRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetOwnerResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetOwnerRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetChannelResponse); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*AdminMessage_GetChannelRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AdminMessage_GetChannelRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetChannelRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetChannelRequest))
+ i--
+ dAtA[i] = 0x8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetChannelResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetChannelResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetChannelResponse != nil {
+ size, err := m.GetChannelResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetOwnerRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetOwnerRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetOwnerRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetOwnerResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetOwnerResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetOwnerResponse != nil {
+ size, err := m.GetOwnerResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetConfigRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetConfigRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetConfigRequest))
+ i--
+ dAtA[i] = 0x28
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetConfigResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetConfigResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetConfigResponse != nil {
+ size, err := m.GetConfigResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetModuleConfigRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetModuleConfigRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GetModuleConfigRequest))
+ i--
+ dAtA[i] = 0x38
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetModuleConfigResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetModuleConfigResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetModuleConfigResponse != nil {
+ size, err := m.GetModuleConfigResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetCannedMessageModuleMessagesRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.GetCannedMessageModuleMessagesResponse)
+ copy(dAtA[i:], m.GetCannedMessageModuleMessagesResponse)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GetCannedMessageModuleMessagesResponse)))
+ i--
+ dAtA[i] = 0x5a
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceMetadataRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceMetadataRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetDeviceMetadataRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceMetadataResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceMetadataResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetDeviceMetadataResponse != nil {
+ size, err := m.GetDeviceMetadataResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetRingtoneRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetRingtoneRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetRingtoneRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x70
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetRingtoneResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetRingtoneResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.GetRingtoneResponse)
+ copy(dAtA[i:], m.GetRingtoneResponse)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GetRingtoneResponse)))
+ i--
+ dAtA[i] = 0x7a
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetDeviceConnectionStatusRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetDeviceConnectionStatusResponse != nil {
+ size, err := m.GetDeviceConnectionStatusResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetHamMode) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetHamMode) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetHamMode != nil {
+ size, err := m.SetHamMode.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x92
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.GetNodeRemoteHardwarePinsRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x98
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.GetNodeRemoteHardwarePinsResponse != nil {
+ size, err := m.GetNodeRemoteHardwarePinsResponse.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa2
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_EnterDfuModeRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_EnterDfuModeRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.EnterDfuModeRequest {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_DeleteFileRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_DeleteFileRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.DeleteFileRequest)
+ copy(dAtA[i:], m.DeleteFileRequest)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeleteFileRequest)))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb2
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetOwner) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetOwner) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetOwner != nil {
+ size, err := m.SetOwner.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x82
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetChannel) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetChannel != nil {
+ size, err := m.SetChannel.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetConfig != nil {
+ size, err := m.SetConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x92
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetModuleConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetModuleConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SetModuleConfig != nil {
+ size, err := m.SetModuleConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0x9a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetCannedMessageModuleMessages) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetCannedMessageModuleMessages) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.SetCannedMessageModuleMessages)
+ copy(dAtA[i:], m.SetCannedMessageModuleMessages)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SetCannedMessageModuleMessages)))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xa2
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_SetRingtoneMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_SetRingtoneMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.SetRingtoneMessage)
+ copy(dAtA[i:], m.SetRingtoneMessage)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SetRingtoneMessage)))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xaa
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RemoveByNodenum) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_RemoveByNodenum) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RemoveByNodenum))
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xb0
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_BeginEditSettings) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_BeginEditSettings) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.BeginEditSettings {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x4
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_CommitEditSettings) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_CommitEditSettings) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.CommitEditSettings {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x4
+ i--
+ dAtA[i] = 0x88
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RebootOtaSeconds) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_RebootOtaSeconds) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootOtaSeconds))
+ i--
+ dAtA[i] = 0x5
+ i--
+ dAtA[i] = 0xf8
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_ExitSimulator) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_ExitSimulator) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.ExitSimulator {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x80
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_RebootSeconds) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_RebootSeconds) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootSeconds))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x88
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_ShutdownSeconds) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_ShutdownSeconds) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ShutdownSeconds))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x90
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_FactoryReset) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_FactoryReset) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FactoryReset))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0x98
+ return len(dAtA) - i, nil
+}
+func (m *AdminMessage_NodedbReset) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AdminMessage_NodedbReset) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodedbReset))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xa0
+ return len(dAtA) - i, nil
+}
+func (m *HamParameters) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *HamParameters) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *HamParameters) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.ShortName) > 0 {
+ i -= len(m.ShortName)
+ copy(dAtA[i:], m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ShortName)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Frequency != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Frequency))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.TxPower != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxPower))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.CallSign) > 0 {
+ i -= len(m.CallSign)
+ copy(dAtA[i:], m.CallSign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CallSign)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NodeRemoteHardwarePinsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for iNdEx := len(m.NodeRemoteHardwarePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeRemoteHardwarePins[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AdminMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *AdminMessage_GetChannelRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GetChannelRequest))
+ return n
+}
+func (m *AdminMessage_GetChannelResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetChannelResponse != nil {
+ l = m.GetChannelResponse.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetOwnerRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *AdminMessage_GetOwnerResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetOwnerResponse != nil {
+ l = m.GetOwnerResponse.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetConfigRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GetConfigRequest))
+ return n
+}
+func (m *AdminMessage_GetConfigResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetConfigResponse != nil {
+ l = m.GetConfigResponse.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetModuleConfigRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GetModuleConfigRequest))
+ return n
+}
+func (m *AdminMessage_GetModuleConfigResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetModuleConfigResponse != nil {
+ l = m.GetModuleConfigResponse.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *AdminMessage_GetCannedMessageModuleMessagesResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.GetCannedMessageModuleMessagesResponse)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *AdminMessage_GetDeviceMetadataRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *AdminMessage_GetDeviceMetadataResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetDeviceMetadataResponse != nil {
+ l = m.GetDeviceMetadataResponse.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetRingtoneRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *AdminMessage_GetRingtoneResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.GetRingtoneResponse)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *AdminMessage_GetDeviceConnectionStatusRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_GetDeviceConnectionStatusResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetDeviceConnectionStatusResponse != nil {
+ l = m.GetDeviceConnectionStatusResponse.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_SetHamMode) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SetHamMode != nil {
+ l = m.SetHamMode.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_GetNodeRemoteHardwarePinsResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GetNodeRemoteHardwarePinsResponse != nil {
+ l = m.GetNodeRemoteHardwarePinsResponse.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_EnterDfuModeRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_DeleteFileRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.DeleteFileRequest)
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *AdminMessage_SetOwner) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SetOwner != nil {
+ l = m.SetOwner.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_SetChannel) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SetChannel != nil {
+ l = m.SetChannel.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_SetConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SetConfig != nil {
+ l = m.SetConfig.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_SetModuleConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SetModuleConfig != nil {
+ l = m.SetModuleConfig.SizeVT()
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *AdminMessage_SetCannedMessageModuleMessages) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.SetCannedMessageModuleMessages)
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *AdminMessage_SetRingtoneMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.SetRingtoneMessage)
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *AdminMessage_RemoveByNodenum) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.RemoveByNodenum))
+ return n
+}
+func (m *AdminMessage_BeginEditSettings) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_CommitEditSettings) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_RebootOtaSeconds) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.RebootOtaSeconds))
+ return n
+}
+func (m *AdminMessage_ExitSimulator) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 3
+ return n
+}
+func (m *AdminMessage_RebootSeconds) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.RebootSeconds))
+ return n
+}
+func (m *AdminMessage_ShutdownSeconds) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.ShutdownSeconds))
+ return n
+}
+func (m *AdminMessage_FactoryReset) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.FactoryReset))
+ return n
+}
+func (m *AdminMessage_NodedbReset) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.NodedbReset))
+ return n
+}
+func (m *HamParameters) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.CallSign)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.TxPower != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TxPower))
+ }
+ if m.Frequency != 0 {
+ n += 5
+ }
+ l = len(m.ShortName)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *NodeRemoteHardwarePinsResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for _, e := range m.NodeRemoteHardwarePins {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *AdminMessage) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AdminMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AdminMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetChannelRequest", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetChannelRequest{GetChannelRequest: v}
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetChannelResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetChannelResponse); ok {
+ if err := oneof.GetChannelResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetChannelResponse{GetChannelResponse: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetOwnerRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetOwnerRequest{GetOwnerRequest: b}
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetOwnerResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetOwnerResponse); ok {
+ if err := oneof.GetOwnerResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &User{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetOwnerResponse{GetOwnerResponse: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetConfigRequest", wireType)
+ }
+ var v AdminMessage_ConfigType
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= AdminMessage_ConfigType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetConfigRequest{GetConfigRequest: v}
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetConfigResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetConfigResponse); ok {
+ if err := oneof.GetConfigResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetConfigResponse{GetConfigResponse: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetModuleConfigRequest", wireType)
+ }
+ var v AdminMessage_ModuleConfigType
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= AdminMessage_ModuleConfigType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetModuleConfigRequest{GetModuleConfigRequest: v}
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetModuleConfigResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetModuleConfigResponse); ok {
+ if err := oneof.GetModuleConfigResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetModuleConfigResponse{GetModuleConfigResponse: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetCannedMessageModuleMessagesRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetCannedMessageModuleMessagesRequest{GetCannedMessageModuleMessagesRequest: b}
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetCannedMessageModuleMessagesResponse", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &AdminMessage_GetCannedMessageModuleMessagesResponse{GetCannedMessageModuleMessagesResponse: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceMetadataRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetDeviceMetadataRequest{GetDeviceMetadataRequest: b}
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceMetadataResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetDeviceMetadataResponse); ok {
+ if err := oneof.GetDeviceMetadataResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetadata{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetDeviceMetadataResponse{GetDeviceMetadataResponse: v}
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetRingtoneRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetRingtoneRequest{GetRingtoneRequest: b}
+ case 15:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetRingtoneResponse", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &AdminMessage_GetRingtoneResponse{GetRingtoneResponse: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 16:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceConnectionStatusRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetDeviceConnectionStatusRequest{GetDeviceConnectionStatusRequest: b}
+ case 17:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceConnectionStatusResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetDeviceConnectionStatusResponse); ok {
+ if err := oneof.GetDeviceConnectionStatusResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceConnectionStatus{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetDeviceConnectionStatusResponse{GetDeviceConnectionStatusResponse: v}
+ }
+ iNdEx = postIndex
+ case 18:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetHamMode", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetHamMode); ok {
+ if err := oneof.SetHamMode.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &HamParameters{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetHamMode{SetHamMode: v}
+ }
+ iNdEx = postIndex
+ case 19:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetNodeRemoteHardwarePinsRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetNodeRemoteHardwarePinsRequest{GetNodeRemoteHardwarePinsRequest: b}
+ case 20:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetNodeRemoteHardwarePinsResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetNodeRemoteHardwarePinsResponse); ok {
+ if err := oneof.GetNodeRemoteHardwarePinsResponse.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &NodeRemoteHardwarePinsResponse{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetNodeRemoteHardwarePinsResponse{GetNodeRemoteHardwarePinsResponse: v}
+ }
+ iNdEx = postIndex
+ case 21:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnterDfuModeRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_EnterDfuModeRequest{EnterDfuModeRequest: b}
+ case 22:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeleteFileRequest", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &AdminMessage_DeleteFileRequest{DeleteFileRequest: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 32:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetOwner", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetOwner); ok {
+ if err := oneof.SetOwner.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &User{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetOwner{SetOwner: v}
+ }
+ iNdEx = postIndex
+ case 33:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetChannel", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetChannel); ok {
+ if err := oneof.SetChannel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetChannel{SetChannel: v}
+ }
+ iNdEx = postIndex
+ case 34:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetConfig); ok {
+ if err := oneof.SetConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetConfig{SetConfig: v}
+ }
+ iNdEx = postIndex
+ case 35:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetModuleConfig); ok {
+ if err := oneof.SetModuleConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetModuleConfig{SetModuleConfig: v}
+ }
+ iNdEx = postIndex
+ case 36:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetCannedMessageModuleMessages", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &AdminMessage_SetCannedMessageModuleMessages{SetCannedMessageModuleMessages: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 37:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetRingtoneMessage", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &AdminMessage_SetRingtoneMessage{SetRingtoneMessage: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 38:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoveByNodenum", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RemoveByNodenum{RemoveByNodenum: v}
+ case 64:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BeginEditSettings", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_BeginEditSettings{BeginEditSettings: b}
+ case 65:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CommitEditSettings", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_CommitEditSettings{CommitEditSettings: b}
+ case 95:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootOtaSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RebootOtaSeconds{RebootOtaSeconds: v}
+ case 96:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExitSimulator", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_ExitSimulator{ExitSimulator: b}
+ case 97:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RebootSeconds{RebootSeconds: v}
+ case 98:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShutdownSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_ShutdownSeconds{ShutdownSeconds: v}
+ case 99:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FactoryReset", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_FactoryReset{FactoryReset: v}
+ case 100:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodedbReset", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_NodedbReset{NodedbReset: v}
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *HamParameters) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: HamParameters: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: HamParameters: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CallSign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.CallSign = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxPower", wireType)
+ }
+ m.TxPower = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxPower |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Frequency", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Frequency = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ShortName = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeRemoteHardwarePinsResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePinsResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePinsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeRemoteHardwarePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeRemoteHardwarePins = append(m.NodeRemoteHardwarePins, &NodeRemoteHardwarePin{})
+ if err := m.NodeRemoteHardwarePins[len(m.NodeRemoteHardwarePins)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *AdminMessage) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AdminMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AdminMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetChannelRequest", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetChannelRequest{GetChannelRequest: v}
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetChannelResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetChannelResponse); ok {
+ if err := oneof.GetChannelResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetChannelResponse{GetChannelResponse: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetOwnerRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetOwnerRequest{GetOwnerRequest: b}
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetOwnerResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetOwnerResponse); ok {
+ if err := oneof.GetOwnerResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &User{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetOwnerResponse{GetOwnerResponse: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetConfigRequest", wireType)
+ }
+ var v AdminMessage_ConfigType
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= AdminMessage_ConfigType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetConfigRequest{GetConfigRequest: v}
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetConfigResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetConfigResponse); ok {
+ if err := oneof.GetConfigResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetConfigResponse{GetConfigResponse: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetModuleConfigRequest", wireType)
+ }
+ var v AdminMessage_ModuleConfigType
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= AdminMessage_ModuleConfigType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_GetModuleConfigRequest{GetModuleConfigRequest: v}
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetModuleConfigResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetModuleConfigResponse); ok {
+ if err := oneof.GetModuleConfigResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetModuleConfigResponse{GetModuleConfigResponse: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetCannedMessageModuleMessagesRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetCannedMessageModuleMessagesRequest{GetCannedMessageModuleMessagesRequest: b}
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetCannedMessageModuleMessagesResponse", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &AdminMessage_GetCannedMessageModuleMessagesResponse{GetCannedMessageModuleMessagesResponse: stringValue}
+ iNdEx = postIndex
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceMetadataRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetDeviceMetadataRequest{GetDeviceMetadataRequest: b}
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceMetadataResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetDeviceMetadataResponse); ok {
+ if err := oneof.GetDeviceMetadataResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetadata{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetDeviceMetadataResponse{GetDeviceMetadataResponse: v}
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetRingtoneRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetRingtoneRequest{GetRingtoneRequest: b}
+ case 15:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetRingtoneResponse", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &AdminMessage_GetRingtoneResponse{GetRingtoneResponse: stringValue}
+ iNdEx = postIndex
+ case 16:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceConnectionStatusRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetDeviceConnectionStatusRequest{GetDeviceConnectionStatusRequest: b}
+ case 17:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetDeviceConnectionStatusResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetDeviceConnectionStatusResponse); ok {
+ if err := oneof.GetDeviceConnectionStatusResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceConnectionStatus{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetDeviceConnectionStatusResponse{GetDeviceConnectionStatusResponse: v}
+ }
+ iNdEx = postIndex
+ case 18:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetHamMode", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetHamMode); ok {
+ if err := oneof.SetHamMode.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &HamParameters{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetHamMode{SetHamMode: v}
+ }
+ iNdEx = postIndex
+ case 19:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetNodeRemoteHardwarePinsRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_GetNodeRemoteHardwarePinsRequest{GetNodeRemoteHardwarePinsRequest: b}
+ case 20:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GetNodeRemoteHardwarePinsResponse", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_GetNodeRemoteHardwarePinsResponse); ok {
+ if err := oneof.GetNodeRemoteHardwarePinsResponse.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &NodeRemoteHardwarePinsResponse{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_GetNodeRemoteHardwarePinsResponse{GetNodeRemoteHardwarePinsResponse: v}
+ }
+ iNdEx = postIndex
+ case 21:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnterDfuModeRequest", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_EnterDfuModeRequest{EnterDfuModeRequest: b}
+ case 22:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeleteFileRequest", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &AdminMessage_DeleteFileRequest{DeleteFileRequest: stringValue}
+ iNdEx = postIndex
+ case 32:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetOwner", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetOwner); ok {
+ if err := oneof.SetOwner.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &User{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetOwner{SetOwner: v}
+ }
+ iNdEx = postIndex
+ case 33:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetChannel", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetChannel); ok {
+ if err := oneof.SetChannel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetChannel{SetChannel: v}
+ }
+ iNdEx = postIndex
+ case 34:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetConfig); ok {
+ if err := oneof.SetConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetConfig{SetConfig: v}
+ }
+ iNdEx = postIndex
+ case 35:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*AdminMessage_SetModuleConfig); ok {
+ if err := oneof.SetModuleConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &AdminMessage_SetModuleConfig{SetModuleConfig: v}
+ }
+ iNdEx = postIndex
+ case 36:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetCannedMessageModuleMessages", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &AdminMessage_SetCannedMessageModuleMessages{SetCannedMessageModuleMessages: stringValue}
+ iNdEx = postIndex
+ case 37:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SetRingtoneMessage", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &AdminMessage_SetRingtoneMessage{SetRingtoneMessage: stringValue}
+ iNdEx = postIndex
+ case 38:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoveByNodenum", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RemoveByNodenum{RemoveByNodenum: v}
+ case 64:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BeginEditSettings", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_BeginEditSettings{BeginEditSettings: b}
+ case 65:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CommitEditSettings", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_CommitEditSettings{CommitEditSettings: b}
+ case 95:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootOtaSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RebootOtaSeconds{RebootOtaSeconds: v}
+ case 96:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExitSimulator", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &AdminMessage_ExitSimulator{ExitSimulator: b}
+ case 97:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_RebootSeconds{RebootSeconds: v}
+ case 98:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShutdownSeconds", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_ShutdownSeconds{ShutdownSeconds: v}
+ case 99:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FactoryReset", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_FactoryReset{FactoryReset: v}
+ case 100:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodedbReset", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &AdminMessage_NodedbReset{NodedbReset: v}
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *HamParameters) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: HamParameters: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: HamParameters: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CallSign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.CallSign = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxPower", wireType)
+ }
+ m.TxPower = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxPower |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Frequency", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Frequency = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.ShortName = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeRemoteHardwarePinsResponse) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePinsResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePinsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeRemoteHardwarePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeRemoteHardwarePins = append(m.NodeRemoteHardwarePins, &NodeRemoteHardwarePin{})
+ if err := m.NodeRemoteHardwarePins[len(m.NodeRemoteHardwarePins)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/apponly.pb.go b/meshtastic/apponly.pb.go
new file mode 100644
index 0000000..247ca9c
--- /dev/null
+++ b/meshtastic/apponly.pb.go
@@ -0,0 +1,178 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/apponly.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 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
+type ChannelSet struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Channel list with settings
+ Settings []*ChannelSettings `protobuf:"bytes,1,rep,name=settings,proto3" json:"settings,omitempty"`
+ // LoRa config
+ LoraConfig *Config_LoRaConfig `protobuf:"bytes,2,opt,name=lora_config,json=loraConfig,proto3" json:"lora_config,omitempty"`
+}
+
+func (x *ChannelSet) Reset() {
+ *x = ChannelSet{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_apponly_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ChannelSet) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChannelSet) ProtoMessage() {}
+
+func (x *ChannelSet) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_apponly_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChannelSet.ProtoReflect.Descriptor instead.
+func (*ChannelSet) Descriptor() ([]byte, []int) {
+ return file_meshtastic_apponly_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ChannelSet) GetSettings() []*ChannelSettings {
+ if x != nil {
+ return x.Settings
+ }
+ return nil
+}
+
+func (x *ChannelSet) GetLoraConfig() *Config_LoRaConfig {
+ if x != nil {
+ return x.LoraConfig
+ }
+ return nil
+}
+
+var File_meshtastic_apponly_proto protoreflect.FileDescriptor
+
+var file_meshtastic_apponly_proto_rawDesc = []byte{
+ 0x0a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x61, 0x70, 0x70,
+ 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x1a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x1a, 0x17, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x01, 0x0a, 0x0a, 0x43, 0x68,
+ 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53,
+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
+ 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6c, 0x6f, 0x72, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x42, 0x62, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69,
+ 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0d, 0x41, 0x70, 0x70, 0x4f, 0x6e, 0x6c,
+ 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67,
+ 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_apponly_proto_rawDescOnce sync.Once
+ file_meshtastic_apponly_proto_rawDescData = file_meshtastic_apponly_proto_rawDesc
+)
+
+func file_meshtastic_apponly_proto_rawDescGZIP() []byte {
+ file_meshtastic_apponly_proto_rawDescOnce.Do(func() {
+ file_meshtastic_apponly_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_apponly_proto_rawDescData)
+ })
+ return file_meshtastic_apponly_proto_rawDescData
+}
+
+var file_meshtastic_apponly_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_apponly_proto_goTypes = []interface{}{
+ (*ChannelSet)(nil), // 0: meshtastic.ChannelSet
+ (*ChannelSettings)(nil), // 1: meshtastic.ChannelSettings
+ (*Config_LoRaConfig)(nil), // 2: meshtastic.Config.LoRaConfig
+}
+var file_meshtastic_apponly_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.ChannelSet.settings:type_name -> meshtastic.ChannelSettings
+ 2, // 1: meshtastic.ChannelSet.lora_config:type_name -> meshtastic.Config.LoRaConfig
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_apponly_proto_init() }
+func file_meshtastic_apponly_proto_init() {
+ if File_meshtastic_apponly_proto != nil {
+ return
+ }
+ file_meshtastic_channel_proto_init()
+ file_meshtastic_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_apponly_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ChannelSet); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_apponly_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_apponly_proto_goTypes,
+ DependencyIndexes: file_meshtastic_apponly_proto_depIdxs,
+ MessageInfos: file_meshtastic_apponly_proto_msgTypes,
+ }.Build()
+ File_meshtastic_apponly_proto = out.File
+ file_meshtastic_apponly_proto_rawDesc = nil
+ file_meshtastic_apponly_proto_goTypes = nil
+ file_meshtastic_apponly_proto_depIdxs = nil
+}
diff --git a/meshtastic/apponly_vtproto.pb.go b/meshtastic/apponly_vtproto.pb.go
new file mode 100644
index 0000000..fa47558
--- /dev/null
+++ b/meshtastic/apponly_vtproto.pb.go
@@ -0,0 +1,453 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/apponly.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *ChannelSet) CloneVT() *ChannelSet {
+ if m == nil {
+ return (*ChannelSet)(nil)
+ }
+ r := new(ChannelSet)
+ r.LoraConfig = m.LoraConfig.CloneVT()
+ if rhs := m.Settings; rhs != nil {
+ tmpContainer := make([]*ChannelSettings, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.Settings = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ChannelSet) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *ChannelSet) EqualVT(that *ChannelSet) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if len(this.Settings) != len(that.Settings) {
+ return false
+ }
+ for i, vx := range this.Settings {
+ vy := that.Settings[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &ChannelSettings{}
+ }
+ if q == nil {
+ q = &ChannelSettings{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ if !this.LoraConfig.EqualVT(that.LoraConfig) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ChannelSet) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ChannelSet)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *ChannelSet) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelSet) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ChannelSet) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LoraConfig != nil {
+ size, err := m.LoraConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Settings) > 0 {
+ for iNdEx := len(m.Settings) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Settings[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelSet) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelSet) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ChannelSet) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LoraConfig != nil {
+ size, err := m.LoraConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Settings) > 0 {
+ for iNdEx := len(m.Settings) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Settings[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelSet) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Settings) > 0 {
+ for _, e := range m.Settings {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ if m.LoraConfig != nil {
+ l = m.LoraConfig.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ChannelSet) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelSet: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelSet: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Settings", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Settings = append(m.Settings, &ChannelSettings{})
+ if err := m.Settings[len(m.Settings)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LoraConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.LoraConfig == nil {
+ m.LoraConfig = &Config_LoRaConfig{}
+ }
+ if err := m.LoraConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChannelSet) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelSet: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelSet: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Settings", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Settings = append(m.Settings, &ChannelSettings{})
+ if err := m.Settings[len(m.Settings)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LoraConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.LoraConfig == nil {
+ m.LoraConfig = &Config_LoRaConfig{}
+ }
+ if err := m.LoraConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/atak.pb.go b/meshtastic/atak.pb.go
new file mode 100644
index 0000000..9f89ba7
--- /dev/null
+++ b/meshtastic/atak.pb.go
@@ -0,0 +1,856 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/atak.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type Team int32
+
+const (
+ // Unspecifed
+ Team_Unspecifed_Color Team = 0
+ // White
+ Team_White Team = 1
+ // Yellow
+ Team_Yellow Team = 2
+ // Orange
+ Team_Orange Team = 3
+ // Magenta
+ Team_Magenta Team = 4
+ // Red
+ Team_Red Team = 5
+ // Maroon
+ Team_Maroon Team = 6
+ // Purple
+ Team_Purple Team = 7
+ // Dark Blue
+ Team_Dark_Blue Team = 8
+ // Blue
+ Team_Blue Team = 9
+ // Cyan
+ Team_Cyan Team = 10
+ // Teal
+ Team_Teal Team = 11
+ // Green
+ Team_Green Team = 12
+ // Dark Green
+ Team_Dark_Green Team = 13
+ // Brown
+ Team_Brown Team = 14
+)
+
+// Enum value maps for Team.
+var (
+ Team_name = map[int32]string{
+ 0: "Unspecifed_Color",
+ 1: "White",
+ 2: "Yellow",
+ 3: "Orange",
+ 4: "Magenta",
+ 5: "Red",
+ 6: "Maroon",
+ 7: "Purple",
+ 8: "Dark_Blue",
+ 9: "Blue",
+ 10: "Cyan",
+ 11: "Teal",
+ 12: "Green",
+ 13: "Dark_Green",
+ 14: "Brown",
+ }
+ Team_value = map[string]int32{
+ "Unspecifed_Color": 0,
+ "White": 1,
+ "Yellow": 2,
+ "Orange": 3,
+ "Magenta": 4,
+ "Red": 5,
+ "Maroon": 6,
+ "Purple": 7,
+ "Dark_Blue": 8,
+ "Blue": 9,
+ "Cyan": 10,
+ "Teal": 11,
+ "Green": 12,
+ "Dark_Green": 13,
+ "Brown": 14,
+ }
+)
+
+func (x Team) Enum() *Team {
+ p := new(Team)
+ *p = x
+ return p
+}
+
+func (x Team) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Team) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_atak_proto_enumTypes[0].Descriptor()
+}
+
+func (Team) Type() protoreflect.EnumType {
+ return &file_meshtastic_atak_proto_enumTypes[0]
+}
+
+func (x Team) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Team.Descriptor instead.
+func (Team) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{0}
+}
+
+// Role of the group member
+type MemberRole int32
+
+const (
+ // Unspecifed
+ MemberRole_Unspecifed MemberRole = 0
+ // Team Member
+ MemberRole_TeamMember MemberRole = 1
+ // Team Lead
+ MemberRole_TeamLead MemberRole = 2
+ // Headquarters
+ MemberRole_HQ MemberRole = 3
+ // Airsoft enthusiast
+ MemberRole_Sniper MemberRole = 4
+ // Medic
+ MemberRole_Medic MemberRole = 5
+ // ForwardObserver
+ MemberRole_ForwardObserver MemberRole = 6
+ // Radio Telephone Operator
+ MemberRole_RTO MemberRole = 7
+ // Doggo
+ MemberRole_K9 MemberRole = 8
+)
+
+// Enum value maps for MemberRole.
+var (
+ MemberRole_name = map[int32]string{
+ 0: "Unspecifed",
+ 1: "TeamMember",
+ 2: "TeamLead",
+ 3: "HQ",
+ 4: "Sniper",
+ 5: "Medic",
+ 6: "ForwardObserver",
+ 7: "RTO",
+ 8: "K9",
+ }
+ MemberRole_value = map[string]int32{
+ "Unspecifed": 0,
+ "TeamMember": 1,
+ "TeamLead": 2,
+ "HQ": 3,
+ "Sniper": 4,
+ "Medic": 5,
+ "ForwardObserver": 6,
+ "RTO": 7,
+ "K9": 8,
+ }
+)
+
+func (x MemberRole) Enum() *MemberRole {
+ p := new(MemberRole)
+ *p = x
+ return p
+}
+
+func (x MemberRole) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (MemberRole) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_atak_proto_enumTypes[1].Descriptor()
+}
+
+func (MemberRole) Type() protoreflect.EnumType {
+ return &file_meshtastic_atak_proto_enumTypes[1]
+}
+
+func (x MemberRole) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use MemberRole.Descriptor instead.
+func (MemberRole) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{1}
+}
+
+// Packets for the official ATAK Plugin
+type TAKPacket struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Are the payloads strings compressed for LoRA transport?
+ IsCompressed bool `protobuf:"varint,1,opt,name=is_compressed,json=isCompressed,proto3" json:"is_compressed,omitempty"`
+ // The contact / callsign for ATAK user
+ Contact *Contact `protobuf:"bytes,2,opt,name=contact,proto3" json:"contact,omitempty"`
+ // The group for ATAK user
+ Group *Group `protobuf:"bytes,3,opt,name=group,proto3" json:"group,omitempty"`
+ // The status of the ATAK EUD
+ Status *Status `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
+ // The payload of the packet
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *TAKPacket_Pli
+ // *TAKPacket_Chat
+ PayloadVariant isTAKPacket_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *TAKPacket) Reset() {
+ *x = TAKPacket{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TAKPacket) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TAKPacket) ProtoMessage() {}
+
+func (x *TAKPacket) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TAKPacket.ProtoReflect.Descriptor instead.
+func (*TAKPacket) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *TAKPacket) GetIsCompressed() bool {
+ if x != nil {
+ return x.IsCompressed
+ }
+ return false
+}
+
+func (x *TAKPacket) GetContact() *Contact {
+ if x != nil {
+ return x.Contact
+ }
+ return nil
+}
+
+func (x *TAKPacket) GetGroup() *Group {
+ if x != nil {
+ return x.Group
+ }
+ return nil
+}
+
+func (x *TAKPacket) GetStatus() *Status {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
+func (m *TAKPacket) GetPayloadVariant() isTAKPacket_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *TAKPacket) GetPli() *PLI {
+ if x, ok := x.GetPayloadVariant().(*TAKPacket_Pli); ok {
+ return x.Pli
+ }
+ return nil
+}
+
+func (x *TAKPacket) GetChat() *GeoChat {
+ if x, ok := x.GetPayloadVariant().(*TAKPacket_Chat); ok {
+ return x.Chat
+ }
+ return nil
+}
+
+type isTAKPacket_PayloadVariant interface {
+ isTAKPacket_PayloadVariant()
+}
+
+type TAKPacket_Pli struct {
+ // TAK position report
+ Pli *PLI `protobuf:"bytes,5,opt,name=pli,proto3,oneof"`
+}
+
+type TAKPacket_Chat struct {
+ // ATAK GeoChat message
+ Chat *GeoChat `protobuf:"bytes,6,opt,name=chat,proto3,oneof"`
+}
+
+func (*TAKPacket_Pli) isTAKPacket_PayloadVariant() {}
+
+func (*TAKPacket_Chat) isTAKPacket_PayloadVariant() {}
+
+// ATAK GeoChat message
+type GeoChat struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The text message
+ Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+ // Uid recipient of the message
+ To *string `protobuf:"bytes,2,opt,name=to,proto3,oneof" json:"to,omitempty"`
+}
+
+func (x *GeoChat) Reset() {
+ *x = GeoChat{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GeoChat) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GeoChat) ProtoMessage() {}
+
+func (x *GeoChat) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GeoChat.ProtoReflect.Descriptor instead.
+func (*GeoChat) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GeoChat) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *GeoChat) GetTo() string {
+ if x != nil && x.To != nil {
+ return *x.To
+ }
+ return ""
+}
+
+// ATAK Group
+// <__group role='Team Member' name='Cyan'/>
+type Group struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Role of the group member
+ Role MemberRole `protobuf:"varint,1,opt,name=role,proto3,enum=meshtastic.MemberRole" json:"role,omitempty"`
+ // Team (color)
+ // Default Cyan
+ Team Team `protobuf:"varint,2,opt,name=team,proto3,enum=meshtastic.Team" json:"team,omitempty"`
+}
+
+func (x *Group) Reset() {
+ *x = Group{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Group) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Group) ProtoMessage() {}
+
+func (x *Group) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Group.ProtoReflect.Descriptor instead.
+func (*Group) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Group) GetRole() MemberRole {
+ if x != nil {
+ return x.Role
+ }
+ return MemberRole_Unspecifed
+}
+
+func (x *Group) GetTeam() Team {
+ if x != nil {
+ return x.Team
+ }
+ return Team_Unspecifed_Color
+}
+
+// ATAK EUD Status
+// <status battery='100' />
+type Status struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Battery level
+ Battery uint32 `protobuf:"varint,1,opt,name=battery,proto3" json:"battery,omitempty"`
+}
+
+func (x *Status) Reset() {
+ *x = Status{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Status) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Status) ProtoMessage() {}
+
+func (x *Status) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Status.ProtoReflect.Descriptor instead.
+func (*Status) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *Status) GetBattery() uint32 {
+ if x != nil {
+ return x.Battery
+ }
+ return 0
+}
+
+// ATAK Contact
+// <contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/>
+type Contact struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Callsign
+ Callsign string `protobuf:"bytes,1,opt,name=callsign,proto3" json:"callsign,omitempty"`
+ // Device callsign
+ DeviceCallsign string `protobuf:"bytes,2,opt,name=device_callsign,json=deviceCallsign,proto3" json:"device_callsign,omitempty"`
+}
+
+func (x *Contact) Reset() {
+ *x = Contact{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Contact) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Contact) ProtoMessage() {}
+
+func (x *Contact) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Contact.ProtoReflect.Descriptor instead.
+func (*Contact) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Contact) GetCallsign() string {
+ if x != nil {
+ return x.Callsign
+ }
+ return ""
+}
+
+func (x *Contact) GetDeviceCallsign() string {
+ if x != nil {
+ return x.DeviceCallsign
+ }
+ return ""
+}
+
+// Position Location Information from ATAK
+type PLI struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The new preferred location encoding, multiply by 1e-7 to get degrees
+ // in floating point
+ LatitudeI int32 `protobuf:"fixed32,1,opt,name=latitude_i,json=latitudeI,proto3" json:"latitude_i,omitempty"`
+ // The new preferred location encoding, multiply by 1e-7 to get degrees
+ // in floating point
+ LongitudeI int32 `protobuf:"fixed32,2,opt,name=longitude_i,json=longitudeI,proto3" json:"longitude_i,omitempty"`
+ // Altitude (ATAK prefers HAE)
+ Altitude uint32 `protobuf:"varint,3,opt,name=altitude,proto3" json:"altitude,omitempty"`
+ // Speed
+ Speed uint32 `protobuf:"varint,4,opt,name=speed,proto3" json:"speed,omitempty"`
+ // Course in degrees
+ Course uint32 `protobuf:"varint,5,opt,name=course,proto3" json:"course,omitempty"`
+}
+
+func (x *PLI) Reset() {
+ *x = PLI{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_atak_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PLI) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PLI) ProtoMessage() {}
+
+func (x *PLI) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_atak_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PLI.ProtoReflect.Descriptor instead.
+func (*PLI) Descriptor() ([]byte, []int) {
+ return file_meshtastic_atak_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *PLI) GetLatitudeI() int32 {
+ if x != nil {
+ return x.LatitudeI
+ }
+ return 0
+}
+
+func (x *PLI) GetLongitudeI() int32 {
+ if x != nil {
+ return x.LongitudeI
+ }
+ return 0
+}
+
+func (x *PLI) GetAltitude() uint32 {
+ if x != nil {
+ return x.Altitude
+ }
+ return 0
+}
+
+func (x *PLI) GetSpeed() uint32 {
+ if x != nil {
+ return x.Speed
+ }
+ return 0
+}
+
+func (x *PLI) GetCourse() uint32 {
+ if x != nil {
+ return x.Course
+ }
+ return 0
+}
+
+var File_meshtastic_atak_proto protoreflect.FileDescriptor
+
+var file_meshtastic_atak_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x61, 0x74, 0x61,
+ 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x22, 0x97, 0x02, 0x0a, 0x09, 0x54, 0x41, 0x4b, 0x50, 0x61, 0x63, 0x6b, 0x65,
+ 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73,
+ 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70,
+ 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a,
+ 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x6c,
+ 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x4c, 0x49, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6c, 0x69, 0x12,
+ 0x29, 0x0a, 0x04, 0x63, 0x68, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x47, 0x65, 0x6f, 0x43, 0x68,
+ 0x61, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61,
+ 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x3f, 0x0a,
+ 0x07, 0x47, 0x65, 0x6f, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
+ 0x52, 0x02, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x6f, 0x22, 0x59,
+ 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72,
+ 0x6f, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x54,
+ 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x22, 0x0a, 0x06, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x22, 0x4e, 0x0a,
+ 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c,
+ 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c,
+ 0x73, 0x69, 0x67, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
+ 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x8f, 0x01,
+ 0x0a, 0x03, 0x50, 0x4c, 0x49, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x5f, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x69, 0x74,
+ 0x75, 0x64, 0x65, 0x49, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x5f, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x69,
+ 0x74, 0x75, 0x64, 0x65, 0x49, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73,
+ 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2a,
+ 0xc0, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x70,
+ 0x65, 0x63, 0x69, 0x66, 0x65, 0x64, 0x5f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x09,
+ 0x0a, 0x05, 0x57, 0x68, 0x69, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x65, 0x6c,
+ 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x10,
+ 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x61, 0x10, 0x04, 0x12, 0x07,
+ 0x0a, 0x03, 0x52, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6f, 0x6f,
+ 0x6e, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x10, 0x07, 0x12,
+ 0x0d, 0x0a, 0x09, 0x44, 0x61, 0x72, 0x6b, 0x5f, 0x42, 0x6c, 0x75, 0x65, 0x10, 0x08, 0x12, 0x08,
+ 0x0a, 0x04, 0x42, 0x6c, 0x75, 0x65, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x79, 0x61, 0x6e,
+ 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6c, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05,
+ 0x47, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x61, 0x72, 0x6b, 0x5f,
+ 0x47, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x72, 0x6f, 0x77, 0x6e,
+ 0x10, 0x0e, 0x2a, 0x7f, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65,
+ 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x65, 0x64, 0x10, 0x00,
+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01,
+ 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x61, 0x64, 0x10, 0x02, 0x12, 0x06,
+ 0x0a, 0x02, 0x48, 0x51, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x6e, 0x69, 0x70, 0x65, 0x72,
+ 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x65, 0x64, 0x69, 0x63, 0x10, 0x05, 0x12, 0x13, 0x0a,
+ 0x0f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x54, 0x4f, 0x10, 0x07, 0x12, 0x06, 0x0a, 0x02, 0x4b,
+ 0x39, 0x10, 0x08, 0x42, 0x5f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73,
+ 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0a, 0x41, 0x54, 0x41, 0x4b,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f,
+ 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_atak_proto_rawDescOnce sync.Once
+ file_meshtastic_atak_proto_rawDescData = file_meshtastic_atak_proto_rawDesc
+)
+
+func file_meshtastic_atak_proto_rawDescGZIP() []byte {
+ file_meshtastic_atak_proto_rawDescOnce.Do(func() {
+ file_meshtastic_atak_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_atak_proto_rawDescData)
+ })
+ return file_meshtastic_atak_proto_rawDescData
+}
+
+var file_meshtastic_atak_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_meshtastic_atak_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_meshtastic_atak_proto_goTypes = []interface{}{
+ (Team)(0), // 0: meshtastic.Team
+ (MemberRole)(0), // 1: meshtastic.MemberRole
+ (*TAKPacket)(nil), // 2: meshtastic.TAKPacket
+ (*GeoChat)(nil), // 3: meshtastic.GeoChat
+ (*Group)(nil), // 4: meshtastic.Group
+ (*Status)(nil), // 5: meshtastic.Status
+ (*Contact)(nil), // 6: meshtastic.Contact
+ (*PLI)(nil), // 7: meshtastic.PLI
+}
+var file_meshtastic_atak_proto_depIdxs = []int32{
+ 6, // 0: meshtastic.TAKPacket.contact:type_name -> meshtastic.Contact
+ 4, // 1: meshtastic.TAKPacket.group:type_name -> meshtastic.Group
+ 5, // 2: meshtastic.TAKPacket.status:type_name -> meshtastic.Status
+ 7, // 3: meshtastic.TAKPacket.pli:type_name -> meshtastic.PLI
+ 3, // 4: meshtastic.TAKPacket.chat:type_name -> meshtastic.GeoChat
+ 1, // 5: meshtastic.Group.role:type_name -> meshtastic.MemberRole
+ 0, // 6: meshtastic.Group.team:type_name -> meshtastic.Team
+ 7, // [7:7] is the sub-list for method output_type
+ 7, // [7:7] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_atak_proto_init() }
+func file_meshtastic_atak_proto_init() {
+ if File_meshtastic_atak_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_atak_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TAKPacket); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GeoChat); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Group); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Status); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Contact); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PLI); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_atak_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*TAKPacket_Pli)(nil),
+ (*TAKPacket_Chat)(nil),
+ }
+ file_meshtastic_atak_proto_msgTypes[1].OneofWrappers = []interface{}{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_atak_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_atak_proto_goTypes,
+ DependencyIndexes: file_meshtastic_atak_proto_depIdxs,
+ EnumInfos: file_meshtastic_atak_proto_enumTypes,
+ MessageInfos: file_meshtastic_atak_proto_msgTypes,
+ }.Build()
+ File_meshtastic_atak_proto = out.File
+ file_meshtastic_atak_proto_rawDesc = nil
+ file_meshtastic_atak_proto_goTypes = nil
+ file_meshtastic_atak_proto_depIdxs = nil
+}
diff --git a/meshtastic/atak_vtproto.pb.go b/meshtastic/atak_vtproto.pb.go
new file mode 100644
index 0000000..24bfb18
--- /dev/null
+++ b/meshtastic/atak_vtproto.pb.go
@@ -0,0 +1,2798 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/atak.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *TAKPacket) CloneVT() *TAKPacket {
+ if m == nil {
+ return (*TAKPacket)(nil)
+ }
+ r := new(TAKPacket)
+ r.IsCompressed = m.IsCompressed
+ r.Contact = m.Contact.CloneVT()
+ r.Group = m.Group.CloneVT()
+ r.Status = m.Status.CloneVT()
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isTAKPacket_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *TAKPacket) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *TAKPacket_Pli) CloneVT() isTAKPacket_PayloadVariant {
+ if m == nil {
+ return (*TAKPacket_Pli)(nil)
+ }
+ r := new(TAKPacket_Pli)
+ r.Pli = m.Pli.CloneVT()
+ return r
+}
+
+func (m *TAKPacket_Chat) CloneVT() isTAKPacket_PayloadVariant {
+ if m == nil {
+ return (*TAKPacket_Chat)(nil)
+ }
+ r := new(TAKPacket_Chat)
+ r.Chat = m.Chat.CloneVT()
+ return r
+}
+
+func (m *GeoChat) CloneVT() *GeoChat {
+ if m == nil {
+ return (*GeoChat)(nil)
+ }
+ r := new(GeoChat)
+ r.Message = m.Message
+ if rhs := m.To; rhs != nil {
+ tmpVal := *rhs
+ r.To = &tmpVal
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GeoChat) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Group) CloneVT() *Group {
+ if m == nil {
+ return (*Group)(nil)
+ }
+ r := new(Group)
+ r.Role = m.Role
+ r.Team = m.Team
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Group) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Status) CloneVT() *Status {
+ if m == nil {
+ return (*Status)(nil)
+ }
+ r := new(Status)
+ r.Battery = m.Battery
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Status) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Contact) CloneVT() *Contact {
+ if m == nil {
+ return (*Contact)(nil)
+ }
+ r := new(Contact)
+ r.Callsign = m.Callsign
+ r.DeviceCallsign = m.DeviceCallsign
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Contact) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *PLI) CloneVT() *PLI {
+ if m == nil {
+ return (*PLI)(nil)
+ }
+ r := new(PLI)
+ r.LatitudeI = m.LatitudeI
+ r.LongitudeI = m.LongitudeI
+ r.Altitude = m.Altitude
+ r.Speed = m.Speed
+ r.Course = m.Course
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *PLI) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *TAKPacket) EqualVT(that *TAKPacket) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isTAKPacket_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ if this.IsCompressed != that.IsCompressed {
+ return false
+ }
+ if !this.Contact.EqualVT(that.Contact) {
+ return false
+ }
+ if !this.Group.EqualVT(that.Group) {
+ return false
+ }
+ if !this.Status.EqualVT(that.Status) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *TAKPacket) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*TAKPacket)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *TAKPacket_Pli) EqualVT(thatIface isTAKPacket_PayloadVariant) bool {
+ that, ok := thatIface.(*TAKPacket_Pli)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Pli, that.Pli; p != q {
+ if p == nil {
+ p = &PLI{}
+ }
+ if q == nil {
+ q = &PLI{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *TAKPacket_Chat) EqualVT(thatIface isTAKPacket_PayloadVariant) bool {
+ that, ok := thatIface.(*TAKPacket_Chat)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Chat, that.Chat; p != q {
+ if p == nil {
+ p = &GeoChat{}
+ }
+ if q == nil {
+ q = &GeoChat{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *GeoChat) EqualVT(that *GeoChat) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Message != that.Message {
+ return false
+ }
+ if p, q := this.To, that.To; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *GeoChat) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*GeoChat)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Group) EqualVT(that *Group) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Role != that.Role {
+ return false
+ }
+ if this.Team != that.Team {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Group) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Group)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Status) EqualVT(that *Status) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Battery != that.Battery {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Status) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Status)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Contact) EqualVT(that *Contact) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Callsign != that.Callsign {
+ return false
+ }
+ if this.DeviceCallsign != that.DeviceCallsign {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Contact) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Contact)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *PLI) EqualVT(that *PLI) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.LatitudeI != that.LatitudeI {
+ return false
+ }
+ if this.LongitudeI != that.LongitudeI {
+ return false
+ }
+ if this.Altitude != that.Altitude {
+ return false
+ }
+ if this.Speed != that.Speed {
+ return false
+ }
+ if this.Course != that.Course {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *PLI) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*PLI)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *TAKPacket) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *TAKPacket) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *TAKPacket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Group != nil {
+ size, err := m.Group.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Contact != nil {
+ size, err := m.Contact.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.IsCompressed {
+ i--
+ if m.IsCompressed {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *TAKPacket_Pli) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *TAKPacket_Pli) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Pli != nil {
+ size, err := m.Pli.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *TAKPacket_Chat) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *TAKPacket_Chat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Chat != nil {
+ size, err := m.Chat.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *GeoChat) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GeoChat) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GeoChat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.To != nil {
+ i -= len(*m.To)
+ copy(dAtA[i:], *m.To)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.To)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Group) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Group) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Group) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Team != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Team))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Status) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Status) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Battery != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Battery))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Contact) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Contact) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Contact) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.DeviceCallsign) > 0 {
+ i -= len(m.DeviceCallsign)
+ copy(dAtA[i:], m.DeviceCallsign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeviceCallsign)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Callsign) > 0 {
+ i -= len(m.Callsign)
+ copy(dAtA[i:], m.Callsign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Callsign)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PLI) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PLI) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *PLI) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Course != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Course))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Speed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Speed))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *TAKPacket) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *TAKPacket) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *TAKPacket) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*TAKPacket_Chat); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*TAKPacket_Pli); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Group != nil {
+ size, err := m.Group.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Contact != nil {
+ size, err := m.Contact.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.IsCompressed {
+ i--
+ if m.IsCompressed {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *TAKPacket_Pli) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *TAKPacket_Pli) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Pli != nil {
+ size, err := m.Pli.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *TAKPacket_Chat) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *TAKPacket_Chat) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Chat != nil {
+ size, err := m.Chat.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *GeoChat) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GeoChat) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *GeoChat) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.To != nil {
+ i -= len(*m.To)
+ copy(dAtA[i:], *m.To)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.To)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Group) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Group) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Group) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Team != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Team))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Status) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Status) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Status) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Battery != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Battery))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Contact) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Contact) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Contact) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.DeviceCallsign) > 0 {
+ i -= len(m.DeviceCallsign)
+ copy(dAtA[i:], m.DeviceCallsign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DeviceCallsign)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Callsign) > 0 {
+ i -= len(m.Callsign)
+ copy(dAtA[i:], m.Callsign)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Callsign)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PLI) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PLI) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *PLI) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Course != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Course))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Speed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Speed))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *TAKPacket) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.IsCompressed {
+ n += 2
+ }
+ if m.Contact != nil {
+ l = m.Contact.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Group != nil {
+ l = m.Group.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Status != nil {
+ l = m.Status.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *TAKPacket_Pli) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Pli != nil {
+ l = m.Pli.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *TAKPacket_Chat) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Chat != nil {
+ l = m.Chat.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *GeoChat) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Message)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.To != nil {
+ l = len(*m.To)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Group) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Role != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Role))
+ }
+ if m.Team != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Team))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Status) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Battery != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Battery))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Contact) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Callsign)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.DeviceCallsign)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *PLI) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LatitudeI != 0 {
+ n += 5
+ }
+ if m.LongitudeI != 0 {
+ n += 5
+ }
+ if m.Altitude != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Altitude))
+ }
+ if m.Speed != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Speed))
+ }
+ if m.Course != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Course))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *TAKPacket) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: TAKPacket: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: TAKPacket: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsCompressed", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsCompressed = bool(v != 0)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Contact", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Contact == nil {
+ m.Contact = &Contact{}
+ }
+ if err := m.Contact.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Group == nil {
+ m.Group = &Group{}
+ }
+ if err := m.Group.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &Status{}
+ }
+ if err := m.Status.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pli", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*TAKPacket_Pli); ok {
+ if err := oneof.Pli.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &PLI{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &TAKPacket_Pli{Pli: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Chat", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*TAKPacket_Chat); ok {
+ if err := oneof.Chat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &GeoChat{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &TAKPacket_Chat{Chat: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GeoChat) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GeoChat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GeoChat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Message = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.To = &s
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Group) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Group: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Group: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= MemberRole(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Team", wireType)
+ }
+ m.Team = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Team |= Team(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Status) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Status: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Status: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Battery", wireType)
+ }
+ m.Battery = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Battery |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Contact) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Contact: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Contact: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Callsign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Callsign = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceCallsign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.DeviceCallsign = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PLI) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PLI: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PLI: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Speed", wireType)
+ }
+ m.Speed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Speed |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Course", wireType)
+ }
+ m.Course = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Course |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *TAKPacket) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: TAKPacket: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: TAKPacket: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsCompressed", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsCompressed = bool(v != 0)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Contact", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Contact == nil {
+ m.Contact = &Contact{}
+ }
+ if err := m.Contact.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Group == nil {
+ m.Group = &Group{}
+ }
+ if err := m.Group.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &Status{}
+ }
+ if err := m.Status.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pli", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*TAKPacket_Pli); ok {
+ if err := oneof.Pli.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &PLI{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &TAKPacket_Pli{Pli: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Chat", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*TAKPacket_Chat); ok {
+ if err := oneof.Chat.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &GeoChat{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &TAKPacket_Chat{Chat: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GeoChat) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GeoChat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GeoChat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Message = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ s := stringValue
+ m.To = &s
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Group) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Group: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Group: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= MemberRole(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Team", wireType)
+ }
+ m.Team = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Team |= Team(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Status) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Status: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Status: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Battery", wireType)
+ }
+ m.Battery = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Battery |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Contact) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Contact: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Contact: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Callsign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Callsign = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceCallsign", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.DeviceCallsign = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PLI) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PLI: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PLI: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Speed", wireType)
+ }
+ m.Speed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Speed |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Course", wireType)
+ }
+ m.Course = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Course |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/cannedmessages.pb.go b/meshtastic/cannedmessages.pb.go
new file mode 100644
index 0000000..b577cf9
--- /dev/null
+++ b/meshtastic/cannedmessages.pb.go
@@ -0,0 +1,152 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/cannedmessages.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Canned message module configuration.
+type CannedMessageModuleConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Predefined messages for canned message module separated by '|' characters.
+ Messages string `protobuf:"bytes,1,opt,name=messages,proto3" json:"messages,omitempty"`
+}
+
+func (x *CannedMessageModuleConfig) Reset() {
+ *x = CannedMessageModuleConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_cannedmessages_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CannedMessageModuleConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CannedMessageModuleConfig) ProtoMessage() {}
+
+func (x *CannedMessageModuleConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_cannedmessages_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CannedMessageModuleConfig.ProtoReflect.Descriptor instead.
+func (*CannedMessageModuleConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_cannedmessages_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CannedMessageModuleConfig) GetMessages() string {
+ if x != nil {
+ return x.Messages
+ }
+ return ""
+}
+
+var File_meshtastic_cannedmessages_proto protoreflect.FileDescriptor
+
+var file_meshtastic_cannedmessages_proto_rawDesc = []byte{
+ 0x0a, 0x1f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x61, 0x6e,
+ 0x6e, 0x65, 0x64, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0x37, 0x0a,
+ 0x19, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x42, 0x6e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65,
+ 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x19, 0x43,
+ 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_cannedmessages_proto_rawDescOnce sync.Once
+ file_meshtastic_cannedmessages_proto_rawDescData = file_meshtastic_cannedmessages_proto_rawDesc
+)
+
+func file_meshtastic_cannedmessages_proto_rawDescGZIP() []byte {
+ file_meshtastic_cannedmessages_proto_rawDescOnce.Do(func() {
+ file_meshtastic_cannedmessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_cannedmessages_proto_rawDescData)
+ })
+ return file_meshtastic_cannedmessages_proto_rawDescData
+}
+
+var file_meshtastic_cannedmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_cannedmessages_proto_goTypes = []interface{}{
+ (*CannedMessageModuleConfig)(nil), // 0: meshtastic.CannedMessageModuleConfig
+}
+var file_meshtastic_cannedmessages_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_cannedmessages_proto_init() }
+func file_meshtastic_cannedmessages_proto_init() {
+ if File_meshtastic_cannedmessages_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_cannedmessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CannedMessageModuleConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_cannedmessages_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_cannedmessages_proto_goTypes,
+ DependencyIndexes: file_meshtastic_cannedmessages_proto_depIdxs,
+ MessageInfos: file_meshtastic_cannedmessages_proto_msgTypes,
+ }.Build()
+ File_meshtastic_cannedmessages_proto = out.File
+ file_meshtastic_cannedmessages_proto_rawDesc = nil
+ file_meshtastic_cannedmessages_proto_goTypes = nil
+ file_meshtastic_cannedmessages_proto_depIdxs = nil
+}
diff --git a/meshtastic/cannedmessages_vtproto.pb.go b/meshtastic/cannedmessages_vtproto.pb.go
new file mode 100644
index 0000000..00879f4
--- /dev/null
+++ b/meshtastic/cannedmessages_vtproto.pb.go
@@ -0,0 +1,322 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/cannedmessages.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *CannedMessageModuleConfig) CloneVT() *CannedMessageModuleConfig {
+ if m == nil {
+ return (*CannedMessageModuleConfig)(nil)
+ }
+ r := new(CannedMessageModuleConfig)
+ r.Messages = m.Messages
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *CannedMessageModuleConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *CannedMessageModuleConfig) EqualVT(that *CannedMessageModuleConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Messages != that.Messages {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *CannedMessageModuleConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*CannedMessageModuleConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *CannedMessageModuleConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *CannedMessageModuleConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *CannedMessageModuleConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Messages) > 0 {
+ i -= len(m.Messages)
+ copy(dAtA[i:], m.Messages)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *CannedMessageModuleConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *CannedMessageModuleConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *CannedMessageModuleConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Messages) > 0 {
+ i -= len(m.Messages)
+ copy(dAtA[i:], m.Messages)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Messages)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *CannedMessageModuleConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Messages)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *CannedMessageModuleConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: CannedMessageModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: CannedMessageModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Messages = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *CannedMessageModuleConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: CannedMessageModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: CannedMessageModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Messages = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/channel.pb.go b/meshtastic/channel.pb.go
new file mode 100644
index 0000000..6437ea0
--- /dev/null
+++ b/meshtastic/channel.pb.go
@@ -0,0 +1,408 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/channel.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 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)
+type Channel_Role int32
+
+const (
+ // This channel is not in use right now
+ Channel_DISABLED Channel_Role = 0
+ // This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
+ Channel_PRIMARY Channel_Role = 1
+ // Secondary channels are only used for encryption/decryption/authentication purposes.
+ // Their radio settings (freq etc) are ignored, only psk is used.
+ Channel_SECONDARY Channel_Role = 2
+)
+
+// Enum value maps for Channel_Role.
+var (
+ Channel_Role_name = map[int32]string{
+ 0: "DISABLED",
+ 1: "PRIMARY",
+ 2: "SECONDARY",
+ }
+ Channel_Role_value = map[string]int32{
+ "DISABLED": 0,
+ "PRIMARY": 1,
+ "SECONDARY": 2,
+ }
+)
+
+func (x Channel_Role) Enum() *Channel_Role {
+ p := new(Channel_Role)
+ *p = x
+ return p
+}
+
+func (x Channel_Role) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Channel_Role) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_channel_proto_enumTypes[0].Descriptor()
+}
+
+func (Channel_Role) Type() protoreflect.EnumType {
+ return &file_meshtastic_channel_proto_enumTypes[0]
+}
+
+func (x Channel_Role) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Channel_Role.Descriptor instead.
+func (Channel_Role) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_channel_proto_rawDescGZIP(), []int{1, 0}
+}
+
+// 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
+type ChannelSettings struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Deprecated in favor of LoraConfig.channel_num
+ //
+ // Deprecated: Marked as deprecated in meshtastic/channel.proto.
+ ChannelNum uint32 `protobuf:"varint,1,opt,name=channel_num,json=channelNum,proto3" json:"channel_num,omitempty"`
+ // 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
+ Psk []byte `protobuf:"bytes,2,opt,name=psk,proto3" json:"psk,omitempty"`
+ // 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
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+ // 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)
+ Id uint32 `protobuf:"fixed32,4,opt,name=id,proto3" json:"id,omitempty"`
+ // If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe
+ UplinkEnabled bool `protobuf:"varint,5,opt,name=uplink_enabled,json=uplinkEnabled,proto3" json:"uplink_enabled,omitempty"`
+ // If true, messages seen on the internet will be forwarded to the local mesh.
+ DownlinkEnabled bool `protobuf:"varint,6,opt,name=downlink_enabled,json=downlinkEnabled,proto3" json:"downlink_enabled,omitempty"`
+}
+
+func (x *ChannelSettings) Reset() {
+ *x = ChannelSettings{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_channel_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ChannelSettings) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChannelSettings) ProtoMessage() {}
+
+func (x *ChannelSettings) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_channel_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChannelSettings.ProtoReflect.Descriptor instead.
+func (*ChannelSettings) Descriptor() ([]byte, []int) {
+ return file_meshtastic_channel_proto_rawDescGZIP(), []int{0}
+}
+
+// Deprecated: Marked as deprecated in meshtastic/channel.proto.
+func (x *ChannelSettings) GetChannelNum() uint32 {
+ if x != nil {
+ return x.ChannelNum
+ }
+ return 0
+}
+
+func (x *ChannelSettings) GetPsk() []byte {
+ if x != nil {
+ return x.Psk
+ }
+ return nil
+}
+
+func (x *ChannelSettings) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ChannelSettings) GetId() uint32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (x *ChannelSettings) GetUplinkEnabled() bool {
+ if x != nil {
+ return x.UplinkEnabled
+ }
+ return false
+}
+
+func (x *ChannelSettings) GetDownlinkEnabled() bool {
+ if x != nil {
+ return x.DownlinkEnabled
+ }
+ return false
+}
+
+// A pair of a channel number, mode and the (sharable) settings for that channel
+type Channel struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // 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.
+ Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
+ // The new settings, or NULL to disable that channel
+ Settings *ChannelSettings `protobuf:"bytes,2,opt,name=settings,proto3" json:"settings,omitempty"`
+ // TODO: REPLACE
+ Role Channel_Role `protobuf:"varint,3,opt,name=role,proto3,enum=meshtastic.Channel_Role" json:"role,omitempty"`
+}
+
+func (x *Channel) Reset() {
+ *x = Channel{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_channel_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Channel) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Channel) ProtoMessage() {}
+
+func (x *Channel) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_channel_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Channel.ProtoReflect.Descriptor instead.
+func (*Channel) Descriptor() ([]byte, []int) {
+ return file_meshtastic_channel_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Channel) GetIndex() int32 {
+ if x != nil {
+ return x.Index
+ }
+ return 0
+}
+
+func (x *Channel) GetSettings() *ChannelSettings {
+ if x != nil {
+ return x.Settings
+ }
+ return nil
+}
+
+func (x *Channel) GetRole() Channel_Role {
+ if x != nil {
+ return x.Role
+ }
+ return Channel_DISABLED
+}
+
+var File_meshtastic_channel_proto protoreflect.FileDescriptor
+
+var file_meshtastic_channel_proto_rawDesc = []byte{
+ 0x0a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x68, 0x61,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xbe, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x63, 0x68,
+ 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42,
+ 0x02, 0x18, 0x01, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12,
+ 0x10, 0x0a, 0x03, 0x70, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x70, 0x73,
+ 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x07, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
+ 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75,
+ 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10,
+ 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e,
+ 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68,
+ 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
+ 0x22, 0x30, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41,
+ 0x42, 0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52,
+ 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59,
+ 0x10, 0x02, 0x42, 0x62, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76,
+ 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_channel_proto_rawDescOnce sync.Once
+ file_meshtastic_channel_proto_rawDescData = file_meshtastic_channel_proto_rawDesc
+)
+
+func file_meshtastic_channel_proto_rawDescGZIP() []byte {
+ file_meshtastic_channel_proto_rawDescOnce.Do(func() {
+ file_meshtastic_channel_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_channel_proto_rawDescData)
+ })
+ return file_meshtastic_channel_proto_rawDescData
+}
+
+var file_meshtastic_channel_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_channel_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_meshtastic_channel_proto_goTypes = []interface{}{
+ (Channel_Role)(0), // 0: meshtastic.Channel.Role
+ (*ChannelSettings)(nil), // 1: meshtastic.ChannelSettings
+ (*Channel)(nil), // 2: meshtastic.Channel
+}
+var file_meshtastic_channel_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.Channel.settings:type_name -> meshtastic.ChannelSettings
+ 0, // 1: meshtastic.Channel.role:type_name -> meshtastic.Channel.Role
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_channel_proto_init() }
+func file_meshtastic_channel_proto_init() {
+ if File_meshtastic_channel_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_channel_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ChannelSettings); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_channel_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Channel); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_channel_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_channel_proto_goTypes,
+ DependencyIndexes: file_meshtastic_channel_proto_depIdxs,
+ EnumInfos: file_meshtastic_channel_proto_enumTypes,
+ MessageInfos: file_meshtastic_channel_proto_msgTypes,
+ }.Build()
+ File_meshtastic_channel_proto = out.File
+ file_meshtastic_channel_proto_rawDesc = nil
+ file_meshtastic_channel_proto_goTypes = nil
+ file_meshtastic_channel_proto_depIdxs = nil
+}
diff --git a/meshtastic/channel_vtproto.pb.go b/meshtastic/channel_vtproto.pb.go
new file mode 100644
index 0000000..b01d469
--- /dev/null
+++ b/meshtastic/channel_vtproto.pb.go
@@ -0,0 +1,1062 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/channel.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *ChannelSettings) CloneVT() *ChannelSettings {
+ if m == nil {
+ return (*ChannelSettings)(nil)
+ }
+ r := new(ChannelSettings)
+ r.ChannelNum = m.ChannelNum
+ r.Name = m.Name
+ r.Id = m.Id
+ r.UplinkEnabled = m.UplinkEnabled
+ r.DownlinkEnabled = m.DownlinkEnabled
+ if rhs := m.Psk; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Psk = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ChannelSettings) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Channel) CloneVT() *Channel {
+ if m == nil {
+ return (*Channel)(nil)
+ }
+ r := new(Channel)
+ r.Index = m.Index
+ r.Settings = m.Settings.CloneVT()
+ r.Role = m.Role
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Channel) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *ChannelSettings) EqualVT(that *ChannelSettings) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.ChannelNum != that.ChannelNum {
+ return false
+ }
+ if string(this.Psk) != string(that.Psk) {
+ return false
+ }
+ if this.Name != that.Name {
+ return false
+ }
+ if this.Id != that.Id {
+ return false
+ }
+ if this.UplinkEnabled != that.UplinkEnabled {
+ return false
+ }
+ if this.DownlinkEnabled != that.DownlinkEnabled {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ChannelSettings) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ChannelSettings)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Channel) EqualVT(that *Channel) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Index != that.Index {
+ return false
+ }
+ if !this.Settings.EqualVT(that.Settings) {
+ return false
+ }
+ if this.Role != that.Role {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Channel) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Channel)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *ChannelSettings) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelSettings) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ChannelSettings) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DownlinkEnabled {
+ i--
+ if m.DownlinkEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.UplinkEnabled {
+ i--
+ if m.UplinkEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Id != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Id))
+ i--
+ dAtA[i] = 0x25
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Psk) > 0 {
+ i -= len(m.Psk)
+ copy(dAtA[i:], m.Psk)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Psk)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.ChannelNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ChannelNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Channel) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Channel) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Channel) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Settings != nil {
+ size, err := m.Settings.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Index != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Index))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelSettings) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelSettings) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ChannelSettings) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DownlinkEnabled {
+ i--
+ if m.DownlinkEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.UplinkEnabled {
+ i--
+ if m.UplinkEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Id != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Id))
+ i--
+ dAtA[i] = 0x25
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Psk) > 0 {
+ i -= len(m.Psk)
+ copy(dAtA[i:], m.Psk)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Psk)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.ChannelNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ChannelNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Channel) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Channel) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Settings != nil {
+ size, err := m.Settings.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Index != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Index))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelSettings) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ChannelNum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ChannelNum))
+ }
+ l = len(m.Psk)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Name)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Id != 0 {
+ n += 5
+ }
+ if m.UplinkEnabled {
+ n += 2
+ }
+ if m.DownlinkEnabled {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Channel) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Index != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Index))
+ }
+ if m.Settings != nil {
+ l = m.Settings.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Role != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Role))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ChannelSettings) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelSettings: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelSettings: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelNum", wireType)
+ }
+ m.ChannelNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ChannelNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Psk", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Psk = append(m.Psk[:0], dAtA[iNdEx:postIndex]...)
+ if m.Psk == nil {
+ m.Psk = []byte{}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UplinkEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UplinkEnabled = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DownlinkEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DownlinkEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Channel) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Channel: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Channel: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
+ }
+ m.Index = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Index |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Settings", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Settings == nil {
+ m.Settings = &ChannelSettings{}
+ }
+ if err := m.Settings.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Channel_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChannelSettings) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelSettings: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelSettings: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelNum", wireType)
+ }
+ m.ChannelNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ChannelNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Psk", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Psk = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Name = stringValue
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UplinkEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UplinkEnabled = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DownlinkEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DownlinkEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Channel) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Channel: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Channel: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
+ }
+ m.Index = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Index |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Settings", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Settings == nil {
+ m.Settings = &ChannelSettings{}
+ }
+ if err := m.Settings.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Channel_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/clientonly.pb.go b/meshtastic/clientonly.pb.go
new file mode 100644
index 0000000..a0f9a5f
--- /dev/null
+++ b/meshtastic/clientonly.pb.go
@@ -0,0 +1,213 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/clientonly.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// This abstraction is used to contain any configuration for provisioning a node on any client.
+// It is useful for importing and exporting configurations.
+type DeviceProfile struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Long name for the node
+ LongName *string `protobuf:"bytes,1,opt,name=long_name,json=longName,proto3,oneof" json:"long_name,omitempty"`
+ // Short name of the node
+ ShortName *string `protobuf:"bytes,2,opt,name=short_name,json=shortName,proto3,oneof" json:"short_name,omitempty"`
+ // The url of the channels from our node
+ ChannelUrl *string `protobuf:"bytes,3,opt,name=channel_url,json=channelUrl,proto3,oneof" json:"channel_url,omitempty"`
+ // The Config of the node
+ Config *LocalConfig `protobuf:"bytes,4,opt,name=config,proto3,oneof" json:"config,omitempty"`
+ // The ModuleConfig of the node
+ ModuleConfig *LocalModuleConfig `protobuf:"bytes,5,opt,name=module_config,json=moduleConfig,proto3,oneof" json:"module_config,omitempty"`
+}
+
+func (x *DeviceProfile) Reset() {
+ *x = DeviceProfile{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_clientonly_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceProfile) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceProfile) ProtoMessage() {}
+
+func (x *DeviceProfile) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_clientonly_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceProfile.ProtoReflect.Descriptor instead.
+func (*DeviceProfile) Descriptor() ([]byte, []int) {
+ return file_meshtastic_clientonly_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DeviceProfile) GetLongName() string {
+ if x != nil && x.LongName != nil {
+ return *x.LongName
+ }
+ return ""
+}
+
+func (x *DeviceProfile) GetShortName() string {
+ if x != nil && x.ShortName != nil {
+ return *x.ShortName
+ }
+ return ""
+}
+
+func (x *DeviceProfile) GetChannelUrl() string {
+ if x != nil && x.ChannelUrl != nil {
+ return *x.ChannelUrl
+ }
+ return ""
+}
+
+func (x *DeviceProfile) GetConfig() *LocalConfig {
+ if x != nil {
+ return x.Config
+ }
+ return nil
+}
+
+func (x *DeviceProfile) GetModuleConfig() *LocalModuleConfig {
+ if x != nil {
+ return x.ModuleConfig
+ }
+ return nil
+}
+
+var File_meshtastic_clientonly_proto protoreflect.FileDescriptor
+
+var file_meshtastic_clientonly_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6c, 0x69,
+ 0x65, 0x6e, 0x74, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x1a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f,
+ 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x68, 0x6f,
+ 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52,
+ 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a,
+ 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c,
+ 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x03, 0x52, 0x06,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4c, 0x6f,
+ 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
+ 0x04, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88,
+ 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42,
+ 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x42,
+ 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x65, 0x0a, 0x13,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x42, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x50,
+ 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f,
+ 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73,
+ 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_clientonly_proto_rawDescOnce sync.Once
+ file_meshtastic_clientonly_proto_rawDescData = file_meshtastic_clientonly_proto_rawDesc
+)
+
+func file_meshtastic_clientonly_proto_rawDescGZIP() []byte {
+ file_meshtastic_clientonly_proto_rawDescOnce.Do(func() {
+ file_meshtastic_clientonly_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_clientonly_proto_rawDescData)
+ })
+ return file_meshtastic_clientonly_proto_rawDescData
+}
+
+var file_meshtastic_clientonly_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_clientonly_proto_goTypes = []interface{}{
+ (*DeviceProfile)(nil), // 0: meshtastic.DeviceProfile
+ (*LocalConfig)(nil), // 1: meshtastic.LocalConfig
+ (*LocalModuleConfig)(nil), // 2: meshtastic.LocalModuleConfig
+}
+var file_meshtastic_clientonly_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.DeviceProfile.config:type_name -> meshtastic.LocalConfig
+ 2, // 1: meshtastic.DeviceProfile.module_config:type_name -> meshtastic.LocalModuleConfig
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_clientonly_proto_init() }
+func file_meshtastic_clientonly_proto_init() {
+ if File_meshtastic_clientonly_proto != nil {
+ return
+ }
+ file_meshtastic_localonly_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_clientonly_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceProfile); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_clientonly_proto_msgTypes[0].OneofWrappers = []interface{}{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_clientonly_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_clientonly_proto_goTypes,
+ DependencyIndexes: file_meshtastic_clientonly_proto_depIdxs,
+ MessageInfos: file_meshtastic_clientonly_proto_msgTypes,
+ }.Build()
+ File_meshtastic_clientonly_proto = out.File
+ file_meshtastic_clientonly_proto_rawDesc = nil
+ file_meshtastic_clientonly_proto_goTypes = nil
+ file_meshtastic_clientonly_proto_depIdxs = nil
+}
diff --git a/meshtastic/clientonly_vtproto.pb.go b/meshtastic/clientonly_vtproto.pb.go
new file mode 100644
index 0000000..3cde9a4
--- /dev/null
+++ b/meshtastic/clientonly_vtproto.pb.go
@@ -0,0 +1,717 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/clientonly.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *DeviceProfile) CloneVT() *DeviceProfile {
+ if m == nil {
+ return (*DeviceProfile)(nil)
+ }
+ r := new(DeviceProfile)
+ r.Config = m.Config.CloneVT()
+ r.ModuleConfig = m.ModuleConfig.CloneVT()
+ if rhs := m.LongName; rhs != nil {
+ tmpVal := *rhs
+ r.LongName = &tmpVal
+ }
+ if rhs := m.ShortName; rhs != nil {
+ tmpVal := *rhs
+ r.ShortName = &tmpVal
+ }
+ if rhs := m.ChannelUrl; rhs != nil {
+ tmpVal := *rhs
+ r.ChannelUrl = &tmpVal
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeviceProfile) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *DeviceProfile) EqualVT(that *DeviceProfile) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if p, q := this.LongName, that.LongName; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) {
+ return false
+ }
+ if p, q := this.ShortName, that.ShortName; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) {
+ return false
+ }
+ if p, q := this.ChannelUrl, that.ChannelUrl; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) {
+ return false
+ }
+ if !this.Config.EqualVT(that.Config) {
+ return false
+ }
+ if !this.ModuleConfig.EqualVT(that.ModuleConfig) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *DeviceProfile) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*DeviceProfile)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *DeviceProfile) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceProfile) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeviceProfile) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ModuleConfig != nil {
+ size, err := m.ModuleConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.Config != nil {
+ size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.ChannelUrl != nil {
+ i -= len(*m.ChannelUrl)
+ copy(dAtA[i:], *m.ChannelUrl)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ChannelUrl)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.ShortName != nil {
+ i -= len(*m.ShortName)
+ copy(dAtA[i:], *m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ShortName)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.LongName != nil {
+ i -= len(*m.LongName)
+ copy(dAtA[i:], *m.LongName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.LongName)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceProfile) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceProfile) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *DeviceProfile) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ModuleConfig != nil {
+ size, err := m.ModuleConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.Config != nil {
+ size, err := m.Config.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.ChannelUrl != nil {
+ i -= len(*m.ChannelUrl)
+ copy(dAtA[i:], *m.ChannelUrl)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ChannelUrl)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.ShortName != nil {
+ i -= len(*m.ShortName)
+ copy(dAtA[i:], *m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.ShortName)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.LongName != nil {
+ i -= len(*m.LongName)
+ copy(dAtA[i:], *m.LongName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.LongName)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceProfile) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LongName != nil {
+ l = len(*m.LongName)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.ShortName != nil {
+ l = len(*m.ShortName)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.ChannelUrl != nil {
+ l = len(*m.ChannelUrl)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Config != nil {
+ l = m.Config.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.ModuleConfig != nil {
+ l = m.ModuleConfig.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *DeviceProfile) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceProfile: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceProfile: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.LongName = &s
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.ShortName = &s
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelUrl", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.ChannelUrl = &s
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Config == nil {
+ m.Config = &LocalConfig{}
+ }
+ if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ModuleConfig == nil {
+ m.ModuleConfig = &LocalModuleConfig{}
+ }
+ if err := m.ModuleConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceProfile) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceProfile: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceProfile: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ s := stringValue
+ m.LongName = &s
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ s := stringValue
+ m.ShortName = &s
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelUrl", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ s := stringValue
+ m.ChannelUrl = &s
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Config == nil {
+ m.Config = &LocalConfig{}
+ }
+ if err := m.Config.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ModuleConfig == nil {
+ m.ModuleConfig = &LocalModuleConfig{}
+ }
+ if err := m.ModuleConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/config.pb.go b/meshtastic/config.pb.go
new file mode 100644
index 0000000..b004d48
--- /dev/null
+++ b/meshtastic/config.pb.go
@@ -0,0 +1,2612 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/config.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Defines the device's role on the Mesh network
+type Config_DeviceConfig_Role int32
+
+const (
+ // Description: App connected or stand alone messaging device.
+ // Technical Details: Default Role
+ Config_DeviceConfig_CLIENT Config_DeviceConfig_Role = 0
+ // Description: Device that does not forward packets from other devices.
+ Config_DeviceConfig_CLIENT_MUTE Config_DeviceConfig_Role = 1
+ // Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list.
+ // Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
+ //
+ // The wifi radio and the oled screen will be put to sleep.
+ // This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh.
+ Config_DeviceConfig_ROUTER Config_DeviceConfig_Role = 2
+ // Description: Combination of both ROUTER and CLIENT. Not for mobile devices.
+ Config_DeviceConfig_ROUTER_CLIENT Config_DeviceConfig_Role = 3
+ // Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.
+ // Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
+ //
+ // or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.
+ Config_DeviceConfig_REPEATER Config_DeviceConfig_Role = 4
+ // Description: Broadcasts GPS position packets as priority.
+ // Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default.
+ //
+ // When used in conjunction with power.is_power_saving = true, nodes will wake up,
+ // send position, and then sleep for position.position_broadcast_secs seconds.
+ Config_DeviceConfig_TRACKER Config_DeviceConfig_Role = 5
+ // Description: Broadcasts telemetry packets as priority.
+ // Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
+ //
+ // When used in conjunction with power.is_power_saving = true, nodes will wake up,
+ // send environment telemetry, and then sleep for telemetry.environment_update_interval seconds.
+ Config_DeviceConfig_SENSOR Config_DeviceConfig_Role = 6
+ // Description: Optimized for ATAK system communication and reduces routine broadcasts.
+ // Technical Details: Used for nodes dedicated for connection to an ATAK EUD.
+ //
+ // Turns off many of the routine broadcasts to favor CoT packet stream
+ // from the Meshtastic ATAK plugin -> IMeshService -> Node
+ Config_DeviceConfig_TAK Config_DeviceConfig_Role = 7
+ // Description: Device that only broadcasts as needed for stealth or power savings.
+ // Technical Details: Used for nodes that "only speak when spoken to"
+ //
+ // Turns all of the routine broadcasts but allows for ad-hoc communication
+ // Still rebroadcasts, but with local only rebroadcast mode (known meshes only)
+ // Can be used for clandestine operation or to dramatically reduce airtime / power consumption
+ Config_DeviceConfig_CLIENT_HIDDEN Config_DeviceConfig_Role = 8
+ // Description: Broadcasts location as message to default channel regularly for to assist with device recovery.
+ // Technical Details: Used to automatically send a text message to the mesh
+ //
+ // with the current position of the device on a frequent interval:
+ // "I'm lost! Position: lat / long"
+ Config_DeviceConfig_LOST_AND_FOUND Config_DeviceConfig_Role = 9
+ // Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts.
+ // Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream
+ //
+ // and automatic TAK PLI (position location information) broadcasts.
+ // Uses position module configuration to determine TAK PLI broadcast interval.
+ Config_DeviceConfig_TAK_TRACKER Config_DeviceConfig_Role = 10
+)
+
+// Enum value maps for Config_DeviceConfig_Role.
+var (
+ Config_DeviceConfig_Role_name = map[int32]string{
+ 0: "CLIENT",
+ 1: "CLIENT_MUTE",
+ 2: "ROUTER",
+ 3: "ROUTER_CLIENT",
+ 4: "REPEATER",
+ 5: "TRACKER",
+ 6: "SENSOR",
+ 7: "TAK",
+ 8: "CLIENT_HIDDEN",
+ 9: "LOST_AND_FOUND",
+ 10: "TAK_TRACKER",
+ }
+ Config_DeviceConfig_Role_value = map[string]int32{
+ "CLIENT": 0,
+ "CLIENT_MUTE": 1,
+ "ROUTER": 2,
+ "ROUTER_CLIENT": 3,
+ "REPEATER": 4,
+ "TRACKER": 5,
+ "SENSOR": 6,
+ "TAK": 7,
+ "CLIENT_HIDDEN": 8,
+ "LOST_AND_FOUND": 9,
+ "TAK_TRACKER": 10,
+ }
+)
+
+func (x Config_DeviceConfig_Role) Enum() *Config_DeviceConfig_Role {
+ p := new(Config_DeviceConfig_Role)
+ *p = x
+ return p
+}
+
+func (x Config_DeviceConfig_Role) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DeviceConfig_Role) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[0].Descriptor()
+}
+
+func (Config_DeviceConfig_Role) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[0]
+}
+
+func (x Config_DeviceConfig_Role) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DeviceConfig_Role.Descriptor instead.
+func (Config_DeviceConfig_Role) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 0, 0}
+}
+
+// Defines the device's behavior for how messages are rebroadcast
+type Config_DeviceConfig_RebroadcastMode int32
+
+const (
+ // Default behavior.
+ // Rebroadcast any observed message, if it was on our private channel or from another mesh with the same lora params.
+ Config_DeviceConfig_ALL Config_DeviceConfig_RebroadcastMode = 0
+ // Same as behavior as ALL but skips packet decoding and simply rebroadcasts them.
+ // Only available in Repeater role. Setting this on any other roles will result in ALL behavior.
+ Config_DeviceConfig_ALL_SKIP_DECODING Config_DeviceConfig_RebroadcastMode = 1
+ // Ignores observed messages from foreign meshes that are open or those which it cannot decrypt.
+ // Only rebroadcasts message on the nodes local primary / secondary channels.
+ Config_DeviceConfig_LOCAL_ONLY Config_DeviceConfig_RebroadcastMode = 2
+ // Ignores observed messages from foreign meshes like LOCAL_ONLY,
+ // but takes it step further by also ignoring messages from nodenums not in the node's known list (NodeDB)
+ Config_DeviceConfig_KNOWN_ONLY Config_DeviceConfig_RebroadcastMode = 3
+)
+
+// Enum value maps for Config_DeviceConfig_RebroadcastMode.
+var (
+ Config_DeviceConfig_RebroadcastMode_name = map[int32]string{
+ 0: "ALL",
+ 1: "ALL_SKIP_DECODING",
+ 2: "LOCAL_ONLY",
+ 3: "KNOWN_ONLY",
+ }
+ Config_DeviceConfig_RebroadcastMode_value = map[string]int32{
+ "ALL": 0,
+ "ALL_SKIP_DECODING": 1,
+ "LOCAL_ONLY": 2,
+ "KNOWN_ONLY": 3,
+ }
+)
+
+func (x Config_DeviceConfig_RebroadcastMode) Enum() *Config_DeviceConfig_RebroadcastMode {
+ p := new(Config_DeviceConfig_RebroadcastMode)
+ *p = x
+ return p
+}
+
+func (x Config_DeviceConfig_RebroadcastMode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DeviceConfig_RebroadcastMode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[1].Descriptor()
+}
+
+func (Config_DeviceConfig_RebroadcastMode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[1]
+}
+
+func (x Config_DeviceConfig_RebroadcastMode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DeviceConfig_RebroadcastMode.Descriptor instead.
+func (Config_DeviceConfig_RebroadcastMode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 0, 1}
+}
+
+// Bit field of boolean configuration options, indicating which optional
+// fields to include when assembling POSITION messages.
+// Longitude, latitude, altitude, speed, heading, and DOP
+// are always included (also time if GPS-synced)
+// NOTE: the more fields are included, the larger the message will be -
+//
+// leading to longer airtime and a higher risk of packet loss
+type Config_PositionConfig_PositionFlags int32
+
+const (
+ // Required for compilation
+ Config_PositionConfig_UNSET Config_PositionConfig_PositionFlags = 0
+ // Include an altitude value (if available)
+ Config_PositionConfig_ALTITUDE Config_PositionConfig_PositionFlags = 1
+ // Altitude value is MSL
+ Config_PositionConfig_ALTITUDE_MSL Config_PositionConfig_PositionFlags = 2
+ // Include geoidal separation
+ Config_PositionConfig_GEOIDAL_SEPARATION Config_PositionConfig_PositionFlags = 4
+ // Include the DOP value ; PDOP used by default, see below
+ Config_PositionConfig_DOP Config_PositionConfig_PositionFlags = 8
+ // If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
+ Config_PositionConfig_HVDOP Config_PositionConfig_PositionFlags = 16
+ // Include number of "satellites in view"
+ Config_PositionConfig_SATINVIEW Config_PositionConfig_PositionFlags = 32
+ // Include a sequence number incremented per packet
+ Config_PositionConfig_SEQ_NO Config_PositionConfig_PositionFlags = 64
+ // Include positional timestamp (from GPS solution)
+ Config_PositionConfig_TIMESTAMP Config_PositionConfig_PositionFlags = 128
+ // Include positional heading
+ // Intended for use with vehicle not walking speeds
+ // walking speeds are likely to be error prone like the compass
+ Config_PositionConfig_HEADING Config_PositionConfig_PositionFlags = 256
+ // Include positional speed
+ // Intended for use with vehicle not walking speeds
+ // walking speeds are likely to be error prone like the compass
+ Config_PositionConfig_SPEED Config_PositionConfig_PositionFlags = 512
+)
+
+// Enum value maps for Config_PositionConfig_PositionFlags.
+var (
+ Config_PositionConfig_PositionFlags_name = map[int32]string{
+ 0: "UNSET",
+ 1: "ALTITUDE",
+ 2: "ALTITUDE_MSL",
+ 4: "GEOIDAL_SEPARATION",
+ 8: "DOP",
+ 16: "HVDOP",
+ 32: "SATINVIEW",
+ 64: "SEQ_NO",
+ 128: "TIMESTAMP",
+ 256: "HEADING",
+ 512: "SPEED",
+ }
+ Config_PositionConfig_PositionFlags_value = map[string]int32{
+ "UNSET": 0,
+ "ALTITUDE": 1,
+ "ALTITUDE_MSL": 2,
+ "GEOIDAL_SEPARATION": 4,
+ "DOP": 8,
+ "HVDOP": 16,
+ "SATINVIEW": 32,
+ "SEQ_NO": 64,
+ "TIMESTAMP": 128,
+ "HEADING": 256,
+ "SPEED": 512,
+ }
+)
+
+func (x Config_PositionConfig_PositionFlags) Enum() *Config_PositionConfig_PositionFlags {
+ p := new(Config_PositionConfig_PositionFlags)
+ *p = x
+ return p
+}
+
+func (x Config_PositionConfig_PositionFlags) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_PositionConfig_PositionFlags) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[2].Descriptor()
+}
+
+func (Config_PositionConfig_PositionFlags) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[2]
+}
+
+func (x Config_PositionConfig_PositionFlags) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_PositionConfig_PositionFlags.Descriptor instead.
+func (Config_PositionConfig_PositionFlags) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 1, 0}
+}
+
+type Config_PositionConfig_GpsMode int32
+
+const (
+ // GPS is present but disabled
+ Config_PositionConfig_DISABLED Config_PositionConfig_GpsMode = 0
+ // GPS is present and enabled
+ Config_PositionConfig_ENABLED Config_PositionConfig_GpsMode = 1
+ // GPS is not present on the device
+ Config_PositionConfig_NOT_PRESENT Config_PositionConfig_GpsMode = 2
+)
+
+// Enum value maps for Config_PositionConfig_GpsMode.
+var (
+ Config_PositionConfig_GpsMode_name = map[int32]string{
+ 0: "DISABLED",
+ 1: "ENABLED",
+ 2: "NOT_PRESENT",
+ }
+ Config_PositionConfig_GpsMode_value = map[string]int32{
+ "DISABLED": 0,
+ "ENABLED": 1,
+ "NOT_PRESENT": 2,
+ }
+)
+
+func (x Config_PositionConfig_GpsMode) Enum() *Config_PositionConfig_GpsMode {
+ p := new(Config_PositionConfig_GpsMode)
+ *p = x
+ return p
+}
+
+func (x Config_PositionConfig_GpsMode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_PositionConfig_GpsMode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[3].Descriptor()
+}
+
+func (Config_PositionConfig_GpsMode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[3]
+}
+
+func (x Config_PositionConfig_GpsMode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_PositionConfig_GpsMode.Descriptor instead.
+func (Config_PositionConfig_GpsMode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 1, 1}
+}
+
+type Config_NetworkConfig_AddressMode int32
+
+const (
+ // obtain ip address via DHCP
+ Config_NetworkConfig_DHCP Config_NetworkConfig_AddressMode = 0
+ // use static ip address
+ Config_NetworkConfig_STATIC Config_NetworkConfig_AddressMode = 1
+)
+
+// Enum value maps for Config_NetworkConfig_AddressMode.
+var (
+ Config_NetworkConfig_AddressMode_name = map[int32]string{
+ 0: "DHCP",
+ 1: "STATIC",
+ }
+ Config_NetworkConfig_AddressMode_value = map[string]int32{
+ "DHCP": 0,
+ "STATIC": 1,
+ }
+)
+
+func (x Config_NetworkConfig_AddressMode) Enum() *Config_NetworkConfig_AddressMode {
+ p := new(Config_NetworkConfig_AddressMode)
+ *p = x
+ return p
+}
+
+func (x Config_NetworkConfig_AddressMode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_NetworkConfig_AddressMode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[4].Descriptor()
+}
+
+func (Config_NetworkConfig_AddressMode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[4]
+}
+
+func (x Config_NetworkConfig_AddressMode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_NetworkConfig_AddressMode.Descriptor instead.
+func (Config_NetworkConfig_AddressMode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 3, 0}
+}
+
+// How the GPS coordinates are displayed on the OLED screen.
+type Config_DisplayConfig_GpsCoordinateFormat int32
+
+const (
+ // GPS coordinates are displayed in the normal decimal degrees format:
+ // DD.DDDDDD DDD.DDDDDD
+ Config_DisplayConfig_DEC Config_DisplayConfig_GpsCoordinateFormat = 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
+ Config_DisplayConfig_DMS Config_DisplayConfig_GpsCoordinateFormat = 1
+ // Universal Transverse Mercator format:
+ // ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
+ Config_DisplayConfig_UTM Config_DisplayConfig_GpsCoordinateFormat = 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
+ Config_DisplayConfig_MGRS Config_DisplayConfig_GpsCoordinateFormat = 3
+ // Open Location Code (aka Plus Codes).
+ Config_DisplayConfig_OLC Config_DisplayConfig_GpsCoordinateFormat = 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
+ Config_DisplayConfig_OSGR Config_DisplayConfig_GpsCoordinateFormat = 5
+)
+
+// Enum value maps for Config_DisplayConfig_GpsCoordinateFormat.
+var (
+ Config_DisplayConfig_GpsCoordinateFormat_name = map[int32]string{
+ 0: "DEC",
+ 1: "DMS",
+ 2: "UTM",
+ 3: "MGRS",
+ 4: "OLC",
+ 5: "OSGR",
+ }
+ Config_DisplayConfig_GpsCoordinateFormat_value = map[string]int32{
+ "DEC": 0,
+ "DMS": 1,
+ "UTM": 2,
+ "MGRS": 3,
+ "OLC": 4,
+ "OSGR": 5,
+ }
+)
+
+func (x Config_DisplayConfig_GpsCoordinateFormat) Enum() *Config_DisplayConfig_GpsCoordinateFormat {
+ p := new(Config_DisplayConfig_GpsCoordinateFormat)
+ *p = x
+ return p
+}
+
+func (x Config_DisplayConfig_GpsCoordinateFormat) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DisplayConfig_GpsCoordinateFormat) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[5].Descriptor()
+}
+
+func (Config_DisplayConfig_GpsCoordinateFormat) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[5]
+}
+
+func (x Config_DisplayConfig_GpsCoordinateFormat) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DisplayConfig_GpsCoordinateFormat.Descriptor instead.
+func (Config_DisplayConfig_GpsCoordinateFormat) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 4, 0}
+}
+
+// Unit display preference
+type Config_DisplayConfig_DisplayUnits int32
+
+const (
+ // Metric (Default)
+ Config_DisplayConfig_METRIC Config_DisplayConfig_DisplayUnits = 0
+ // Imperial
+ Config_DisplayConfig_IMPERIAL Config_DisplayConfig_DisplayUnits = 1
+)
+
+// Enum value maps for Config_DisplayConfig_DisplayUnits.
+var (
+ Config_DisplayConfig_DisplayUnits_name = map[int32]string{
+ 0: "METRIC",
+ 1: "IMPERIAL",
+ }
+ Config_DisplayConfig_DisplayUnits_value = map[string]int32{
+ "METRIC": 0,
+ "IMPERIAL": 1,
+ }
+)
+
+func (x Config_DisplayConfig_DisplayUnits) Enum() *Config_DisplayConfig_DisplayUnits {
+ p := new(Config_DisplayConfig_DisplayUnits)
+ *p = x
+ return p
+}
+
+func (x Config_DisplayConfig_DisplayUnits) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DisplayConfig_DisplayUnits) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[6].Descriptor()
+}
+
+func (Config_DisplayConfig_DisplayUnits) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[6]
+}
+
+func (x Config_DisplayConfig_DisplayUnits) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DisplayConfig_DisplayUnits.Descriptor instead.
+func (Config_DisplayConfig_DisplayUnits) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 4, 1}
+}
+
+// Override OLED outo detect with this if it fails.
+type Config_DisplayConfig_OledType int32
+
+const (
+ // Default / Auto
+ Config_DisplayConfig_OLED_AUTO Config_DisplayConfig_OledType = 0
+ // Default / Auto
+ Config_DisplayConfig_OLED_SSD1306 Config_DisplayConfig_OledType = 1
+ // Default / Auto
+ Config_DisplayConfig_OLED_SH1106 Config_DisplayConfig_OledType = 2
+ // Can not be auto detected but set by proto. Used for 128x128 screens
+ Config_DisplayConfig_OLED_SH1107 Config_DisplayConfig_OledType = 3
+)
+
+// Enum value maps for Config_DisplayConfig_OledType.
+var (
+ Config_DisplayConfig_OledType_name = map[int32]string{
+ 0: "OLED_AUTO",
+ 1: "OLED_SSD1306",
+ 2: "OLED_SH1106",
+ 3: "OLED_SH1107",
+ }
+ Config_DisplayConfig_OledType_value = map[string]int32{
+ "OLED_AUTO": 0,
+ "OLED_SSD1306": 1,
+ "OLED_SH1106": 2,
+ "OLED_SH1107": 3,
+ }
+)
+
+func (x Config_DisplayConfig_OledType) Enum() *Config_DisplayConfig_OledType {
+ p := new(Config_DisplayConfig_OledType)
+ *p = x
+ return p
+}
+
+func (x Config_DisplayConfig_OledType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DisplayConfig_OledType) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[7].Descriptor()
+}
+
+func (Config_DisplayConfig_OledType) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[7]
+}
+
+func (x Config_DisplayConfig_OledType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DisplayConfig_OledType.Descriptor instead.
+func (Config_DisplayConfig_OledType) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 4, 2}
+}
+
+type Config_DisplayConfig_DisplayMode int32
+
+const (
+ // Default. The old style for the 128x64 OLED screen
+ Config_DisplayConfig_DEFAULT Config_DisplayConfig_DisplayMode = 0
+ // Rearrange display elements to cater for bicolor OLED displays
+ Config_DisplayConfig_TWOCOLOR Config_DisplayConfig_DisplayMode = 1
+ // Same as TwoColor, but with inverted top bar. Not so good for Epaper displays
+ Config_DisplayConfig_INVERTED Config_DisplayConfig_DisplayMode = 2
+ // TFT Full Color Displays (not implemented yet)
+ Config_DisplayConfig_COLOR Config_DisplayConfig_DisplayMode = 3
+)
+
+// Enum value maps for Config_DisplayConfig_DisplayMode.
+var (
+ Config_DisplayConfig_DisplayMode_name = map[int32]string{
+ 0: "DEFAULT",
+ 1: "TWOCOLOR",
+ 2: "INVERTED",
+ 3: "COLOR",
+ }
+ Config_DisplayConfig_DisplayMode_value = map[string]int32{
+ "DEFAULT": 0,
+ "TWOCOLOR": 1,
+ "INVERTED": 2,
+ "COLOR": 3,
+ }
+)
+
+func (x Config_DisplayConfig_DisplayMode) Enum() *Config_DisplayConfig_DisplayMode {
+ p := new(Config_DisplayConfig_DisplayMode)
+ *p = x
+ return p
+}
+
+func (x Config_DisplayConfig_DisplayMode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_DisplayConfig_DisplayMode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[8].Descriptor()
+}
+
+func (Config_DisplayConfig_DisplayMode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[8]
+}
+
+func (x Config_DisplayConfig_DisplayMode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_DisplayConfig_DisplayMode.Descriptor instead.
+func (Config_DisplayConfig_DisplayMode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 4, 3}
+}
+
+type Config_LoRaConfig_RegionCode int32
+
+const (
+ // Region is not set
+ Config_LoRaConfig_UNSET Config_LoRaConfig_RegionCode = 0
+ // United States
+ Config_LoRaConfig_US Config_LoRaConfig_RegionCode = 1
+ // European Union 433mhz
+ Config_LoRaConfig_EU_433 Config_LoRaConfig_RegionCode = 2
+ // European Union 868mhz
+ Config_LoRaConfig_EU_868 Config_LoRaConfig_RegionCode = 3
+ // China
+ Config_LoRaConfig_CN Config_LoRaConfig_RegionCode = 4
+ // Japan
+ Config_LoRaConfig_JP Config_LoRaConfig_RegionCode = 5
+ // Australia / New Zealand
+ Config_LoRaConfig_ANZ Config_LoRaConfig_RegionCode = 6
+ // Korea
+ Config_LoRaConfig_KR Config_LoRaConfig_RegionCode = 7
+ // Taiwan
+ Config_LoRaConfig_TW Config_LoRaConfig_RegionCode = 8
+ // Russia
+ Config_LoRaConfig_RU Config_LoRaConfig_RegionCode = 9
+ // India
+ Config_LoRaConfig_IN Config_LoRaConfig_RegionCode = 10
+ // New Zealand 865mhz
+ Config_LoRaConfig_NZ_865 Config_LoRaConfig_RegionCode = 11
+ // Thailand
+ Config_LoRaConfig_TH Config_LoRaConfig_RegionCode = 12
+ // WLAN Band
+ Config_LoRaConfig_LORA_24 Config_LoRaConfig_RegionCode = 13
+ // Ukraine 433mhz
+ Config_LoRaConfig_UA_433 Config_LoRaConfig_RegionCode = 14
+ // Ukraine 868mhz
+ Config_LoRaConfig_UA_868 Config_LoRaConfig_RegionCode = 15
+ // Malaysia 433mhz
+ Config_LoRaConfig_MY_433 Config_LoRaConfig_RegionCode = 16
+ // Malaysia 919mhz
+ Config_LoRaConfig_MY_919 Config_LoRaConfig_RegionCode = 17
+ // Singapore 923mhz
+ Config_LoRaConfig_SG_923 Config_LoRaConfig_RegionCode = 18
+)
+
+// Enum value maps for Config_LoRaConfig_RegionCode.
+var (
+ Config_LoRaConfig_RegionCode_name = map[int32]string{
+ 0: "UNSET",
+ 1: "US",
+ 2: "EU_433",
+ 3: "EU_868",
+ 4: "CN",
+ 5: "JP",
+ 6: "ANZ",
+ 7: "KR",
+ 8: "TW",
+ 9: "RU",
+ 10: "IN",
+ 11: "NZ_865",
+ 12: "TH",
+ 13: "LORA_24",
+ 14: "UA_433",
+ 15: "UA_868",
+ 16: "MY_433",
+ 17: "MY_919",
+ 18: "SG_923",
+ }
+ Config_LoRaConfig_RegionCode_value = map[string]int32{
+ "UNSET": 0,
+ "US": 1,
+ "EU_433": 2,
+ "EU_868": 3,
+ "CN": 4,
+ "JP": 5,
+ "ANZ": 6,
+ "KR": 7,
+ "TW": 8,
+ "RU": 9,
+ "IN": 10,
+ "NZ_865": 11,
+ "TH": 12,
+ "LORA_24": 13,
+ "UA_433": 14,
+ "UA_868": 15,
+ "MY_433": 16,
+ "MY_919": 17,
+ "SG_923": 18,
+ }
+)
+
+func (x Config_LoRaConfig_RegionCode) Enum() *Config_LoRaConfig_RegionCode {
+ p := new(Config_LoRaConfig_RegionCode)
+ *p = x
+ return p
+}
+
+func (x Config_LoRaConfig_RegionCode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_LoRaConfig_RegionCode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[9].Descriptor()
+}
+
+func (Config_LoRaConfig_RegionCode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[9]
+}
+
+func (x Config_LoRaConfig_RegionCode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_LoRaConfig_RegionCode.Descriptor instead.
+func (Config_LoRaConfig_RegionCode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 5, 0}
+}
+
+// Standard predefined channel settings
+// Note: these mappings must match ModemPreset Choice in the device code.
+type Config_LoRaConfig_ModemPreset int32
+
+const (
+ // Long Range - Fast
+ Config_LoRaConfig_LONG_FAST Config_LoRaConfig_ModemPreset = 0
+ // Long Range - Slow
+ Config_LoRaConfig_LONG_SLOW Config_LoRaConfig_ModemPreset = 1
+ // Very Long Range - Slow
+ Config_LoRaConfig_VERY_LONG_SLOW Config_LoRaConfig_ModemPreset = 2
+ // Medium Range - Slow
+ Config_LoRaConfig_MEDIUM_SLOW Config_LoRaConfig_ModemPreset = 3
+ // Medium Range - Fast
+ Config_LoRaConfig_MEDIUM_FAST Config_LoRaConfig_ModemPreset = 4
+ // Short Range - Slow
+ Config_LoRaConfig_SHORT_SLOW Config_LoRaConfig_ModemPreset = 5
+ // Short Range - Fast
+ Config_LoRaConfig_SHORT_FAST Config_LoRaConfig_ModemPreset = 6
+ // Long Range - Moderately Fast
+ Config_LoRaConfig_LONG_MODERATE Config_LoRaConfig_ModemPreset = 7
+)
+
+// Enum value maps for Config_LoRaConfig_ModemPreset.
+var (
+ Config_LoRaConfig_ModemPreset_name = map[int32]string{
+ 0: "LONG_FAST",
+ 1: "LONG_SLOW",
+ 2: "VERY_LONG_SLOW",
+ 3: "MEDIUM_SLOW",
+ 4: "MEDIUM_FAST",
+ 5: "SHORT_SLOW",
+ 6: "SHORT_FAST",
+ 7: "LONG_MODERATE",
+ }
+ Config_LoRaConfig_ModemPreset_value = map[string]int32{
+ "LONG_FAST": 0,
+ "LONG_SLOW": 1,
+ "VERY_LONG_SLOW": 2,
+ "MEDIUM_SLOW": 3,
+ "MEDIUM_FAST": 4,
+ "SHORT_SLOW": 5,
+ "SHORT_FAST": 6,
+ "LONG_MODERATE": 7,
+ }
+)
+
+func (x Config_LoRaConfig_ModemPreset) Enum() *Config_LoRaConfig_ModemPreset {
+ p := new(Config_LoRaConfig_ModemPreset)
+ *p = x
+ return p
+}
+
+func (x Config_LoRaConfig_ModemPreset) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_LoRaConfig_ModemPreset) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[10].Descriptor()
+}
+
+func (Config_LoRaConfig_ModemPreset) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[10]
+}
+
+func (x Config_LoRaConfig_ModemPreset) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_LoRaConfig_ModemPreset.Descriptor instead.
+func (Config_LoRaConfig_ModemPreset) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 5, 1}
+}
+
+type Config_BluetoothConfig_PairingMode int32
+
+const (
+ // Device generates a random PIN that will be shown on the screen of the device for pairing
+ Config_BluetoothConfig_RANDOM_PIN Config_BluetoothConfig_PairingMode = 0
+ // Device requires a specified fixed PIN for pairing
+ Config_BluetoothConfig_FIXED_PIN Config_BluetoothConfig_PairingMode = 1
+ // Device requires no PIN for pairing
+ Config_BluetoothConfig_NO_PIN Config_BluetoothConfig_PairingMode = 2
+)
+
+// Enum value maps for Config_BluetoothConfig_PairingMode.
+var (
+ Config_BluetoothConfig_PairingMode_name = map[int32]string{
+ 0: "RANDOM_PIN",
+ 1: "FIXED_PIN",
+ 2: "NO_PIN",
+ }
+ Config_BluetoothConfig_PairingMode_value = map[string]int32{
+ "RANDOM_PIN": 0,
+ "FIXED_PIN": 1,
+ "NO_PIN": 2,
+ }
+)
+
+func (x Config_BluetoothConfig_PairingMode) Enum() *Config_BluetoothConfig_PairingMode {
+ p := new(Config_BluetoothConfig_PairingMode)
+ *p = x
+ return p
+}
+
+func (x Config_BluetoothConfig_PairingMode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Config_BluetoothConfig_PairingMode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_config_proto_enumTypes[11].Descriptor()
+}
+
+func (Config_BluetoothConfig_PairingMode) Type() protoreflect.EnumType {
+ return &file_meshtastic_config_proto_enumTypes[11]
+}
+
+func (x Config_BluetoothConfig_PairingMode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Config_BluetoothConfig_PairingMode.Descriptor instead.
+func (Config_BluetoothConfig_PairingMode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 6, 0}
+}
+
+type Config struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Payload Variant
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *Config_Device
+ // *Config_Position
+ // *Config_Power
+ // *Config_Network
+ // *Config_Display
+ // *Config_Lora
+ // *Config_Bluetooth
+ PayloadVariant isConfig_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *Config) Reset() {
+ *x = Config{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config) ProtoMessage() {}
+
+func (x *Config) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config.ProtoReflect.Descriptor instead.
+func (*Config) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *Config) GetPayloadVariant() isConfig_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *Config) GetDevice() *Config_DeviceConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Device); ok {
+ return x.Device
+ }
+ return nil
+}
+
+func (x *Config) GetPosition() *Config_PositionConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Position); ok {
+ return x.Position
+ }
+ return nil
+}
+
+func (x *Config) GetPower() *Config_PowerConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Power); ok {
+ return x.Power
+ }
+ return nil
+}
+
+func (x *Config) GetNetwork() *Config_NetworkConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Network); ok {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *Config) GetDisplay() *Config_DisplayConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Display); ok {
+ return x.Display
+ }
+ return nil
+}
+
+func (x *Config) GetLora() *Config_LoRaConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Lora); ok {
+ return x.Lora
+ }
+ return nil
+}
+
+func (x *Config) GetBluetooth() *Config_BluetoothConfig {
+ if x, ok := x.GetPayloadVariant().(*Config_Bluetooth); ok {
+ return x.Bluetooth
+ }
+ return nil
+}
+
+type isConfig_PayloadVariant interface {
+ isConfig_PayloadVariant()
+}
+
+type Config_Device struct {
+ Device *Config_DeviceConfig `protobuf:"bytes,1,opt,name=device,proto3,oneof"`
+}
+
+type Config_Position struct {
+ Position *Config_PositionConfig `protobuf:"bytes,2,opt,name=position,proto3,oneof"`
+}
+
+type Config_Power struct {
+ Power *Config_PowerConfig `protobuf:"bytes,3,opt,name=power,proto3,oneof"`
+}
+
+type Config_Network struct {
+ Network *Config_NetworkConfig `protobuf:"bytes,4,opt,name=network,proto3,oneof"`
+}
+
+type Config_Display struct {
+ Display *Config_DisplayConfig `protobuf:"bytes,5,opt,name=display,proto3,oneof"`
+}
+
+type Config_Lora struct {
+ Lora *Config_LoRaConfig `protobuf:"bytes,6,opt,name=lora,proto3,oneof"`
+}
+
+type Config_Bluetooth struct {
+ Bluetooth *Config_BluetoothConfig `protobuf:"bytes,7,opt,name=bluetooth,proto3,oneof"`
+}
+
+func (*Config_Device) isConfig_PayloadVariant() {}
+
+func (*Config_Position) isConfig_PayloadVariant() {}
+
+func (*Config_Power) isConfig_PayloadVariant() {}
+
+func (*Config_Network) isConfig_PayloadVariant() {}
+
+func (*Config_Display) isConfig_PayloadVariant() {}
+
+func (*Config_Lora) isConfig_PayloadVariant() {}
+
+func (*Config_Bluetooth) isConfig_PayloadVariant() {}
+
+// Configuration
+type Config_DeviceConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Sets the role of node
+ Role Config_DeviceConfig_Role `protobuf:"varint,1,opt,name=role,proto3,enum=meshtastic.Config_DeviceConfig_Role" json:"role,omitempty"`
+ // Disabling this will disable the SerialConsole by not initilizing the StreamAPI
+ SerialEnabled bool `protobuf:"varint,2,opt,name=serial_enabled,json=serialEnabled,proto3" json:"serial_enabled,omitempty"`
+ // By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
+ // Set this to true to leave the debug log outputting even when API is active.
+ DebugLogEnabled bool `protobuf:"varint,3,opt,name=debug_log_enabled,json=debugLogEnabled,proto3" json:"debug_log_enabled,omitempty"`
+ // For boards without a hard wired button, this is the pin number that will be used
+ // Boards that have more than one button can swap the function with this one. defaults to BUTTON_PIN if defined.
+ ButtonGpio uint32 `protobuf:"varint,4,opt,name=button_gpio,json=buttonGpio,proto3" json:"button_gpio,omitempty"`
+ // For boards without a PWM buzzer, this is the pin number that will be used
+ // Defaults to PIN_BUZZER if defined.
+ BuzzerGpio uint32 `protobuf:"varint,5,opt,name=buzzer_gpio,json=buzzerGpio,proto3" json:"buzzer_gpio,omitempty"`
+ // Sets the role of node
+ RebroadcastMode Config_DeviceConfig_RebroadcastMode `protobuf:"varint,6,opt,name=rebroadcast_mode,json=rebroadcastMode,proto3,enum=meshtastic.Config_DeviceConfig_RebroadcastMode" json:"rebroadcast_mode,omitempty"`
+ // Send our nodeinfo this often
+ // Defaults to 900 Seconds (15 minutes)
+ NodeInfoBroadcastSecs uint32 `protobuf:"varint,7,opt,name=node_info_broadcast_secs,json=nodeInfoBroadcastSecs,proto3" json:"node_info_broadcast_secs,omitempty"`
+ // Treat double tap interrupt on supported accelerometers as a button press if set to true
+ DoubleTapAsButtonPress bool `protobuf:"varint,8,opt,name=double_tap_as_button_press,json=doubleTapAsButtonPress,proto3" json:"double_tap_as_button_press,omitempty"`
+ // If true, device is considered to be "managed" by a mesh administrator
+ // Clients should then limit available configuration and administrative options inside the user interface
+ IsManaged bool `protobuf:"varint,9,opt,name=is_managed,json=isManaged,proto3" json:"is_managed,omitempty"`
+ // Disables the triple-press of user button to enable or disable GPS
+ DisableTripleClick bool `protobuf:"varint,10,opt,name=disable_triple_click,json=disableTripleClick,proto3" json:"disable_triple_click,omitempty"`
+}
+
+func (x *Config_DeviceConfig) Reset() {
+ *x = Config_DeviceConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_DeviceConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_DeviceConfig) ProtoMessage() {}
+
+func (x *Config_DeviceConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_DeviceConfig.ProtoReflect.Descriptor instead.
+func (*Config_DeviceConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *Config_DeviceConfig) GetRole() Config_DeviceConfig_Role {
+ if x != nil {
+ return x.Role
+ }
+ return Config_DeviceConfig_CLIENT
+}
+
+func (x *Config_DeviceConfig) GetSerialEnabled() bool {
+ if x != nil {
+ return x.SerialEnabled
+ }
+ return false
+}
+
+func (x *Config_DeviceConfig) GetDebugLogEnabled() bool {
+ if x != nil {
+ return x.DebugLogEnabled
+ }
+ return false
+}
+
+func (x *Config_DeviceConfig) GetButtonGpio() uint32 {
+ if x != nil {
+ return x.ButtonGpio
+ }
+ return 0
+}
+
+func (x *Config_DeviceConfig) GetBuzzerGpio() uint32 {
+ if x != nil {
+ return x.BuzzerGpio
+ }
+ return 0
+}
+
+func (x *Config_DeviceConfig) GetRebroadcastMode() Config_DeviceConfig_RebroadcastMode {
+ if x != nil {
+ return x.RebroadcastMode
+ }
+ return Config_DeviceConfig_ALL
+}
+
+func (x *Config_DeviceConfig) GetNodeInfoBroadcastSecs() uint32 {
+ if x != nil {
+ return x.NodeInfoBroadcastSecs
+ }
+ return 0
+}
+
+func (x *Config_DeviceConfig) GetDoubleTapAsButtonPress() bool {
+ if x != nil {
+ return x.DoubleTapAsButtonPress
+ }
+ return false
+}
+
+func (x *Config_DeviceConfig) GetIsManaged() bool {
+ if x != nil {
+ return x.IsManaged
+ }
+ return false
+}
+
+func (x *Config_DeviceConfig) GetDisableTripleClick() bool {
+ if x != nil {
+ return x.DisableTripleClick
+ }
+ return false
+}
+
+// Position Config
+type Config_PositionConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // We should send our position this often (but only if it has changed significantly)
+ // Defaults to 15 minutes
+ PositionBroadcastSecs uint32 `protobuf:"varint,1,opt,name=position_broadcast_secs,json=positionBroadcastSecs,proto3" json:"position_broadcast_secs,omitempty"`
+ // Adaptive position braoadcast, which is now the default.
+ PositionBroadcastSmartEnabled bool `protobuf:"varint,2,opt,name=position_broadcast_smart_enabled,json=positionBroadcastSmartEnabled,proto3" json:"position_broadcast_smart_enabled,omitempty"`
+ // If set, this node is at a fixed position.
+ // We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node.
+ // The lat/lon/alt can be set by an internal GPS or with the help of the app.
+ FixedPosition bool `protobuf:"varint,3,opt,name=fixed_position,json=fixedPosition,proto3" json:"fixed_position,omitempty"`
+ // Is GPS enabled for this node?
+ //
+ // Deprecated: Marked as deprecated in meshtastic/config.proto.
+ GpsEnabled bool `protobuf:"varint,4,opt,name=gps_enabled,json=gpsEnabled,proto3" json:"gps_enabled,omitempty"`
+ // How often should we try to get GPS position (in seconds)
+ // or zero for the default of once every 30 seconds
+ // or a very large value (maxint) to update only once at boot.
+ GpsUpdateInterval uint32 `protobuf:"varint,5,opt,name=gps_update_interval,json=gpsUpdateInterval,proto3" json:"gps_update_interval,omitempty"`
+ // Deprecated in favor of using smart / regular broadcast intervals as implicit attempt time
+ //
+ // Deprecated: Marked as deprecated in meshtastic/config.proto.
+ GpsAttemptTime uint32 `protobuf:"varint,6,opt,name=gps_attempt_time,json=gpsAttemptTime,proto3" json:"gps_attempt_time,omitempty"`
+ // Bit field of boolean configuration options for POSITION messages
+ // (bitwise OR of PositionFlags)
+ PositionFlags uint32 `protobuf:"varint,7,opt,name=position_flags,json=positionFlags,proto3" json:"position_flags,omitempty"`
+ // (Re)define GPS_RX_PIN for your board.
+ RxGpio uint32 `protobuf:"varint,8,opt,name=rx_gpio,json=rxGpio,proto3" json:"rx_gpio,omitempty"`
+ // (Re)define GPS_TX_PIN for your board.
+ TxGpio uint32 `protobuf:"varint,9,opt,name=tx_gpio,json=txGpio,proto3" json:"tx_gpio,omitempty"`
+ // The minimum distance in meters traveled (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
+ BroadcastSmartMinimumDistance uint32 `protobuf:"varint,10,opt,name=broadcast_smart_minimum_distance,json=broadcastSmartMinimumDistance,proto3" json:"broadcast_smart_minimum_distance,omitempty"`
+ // The minimum number of seconds (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
+ BroadcastSmartMinimumIntervalSecs uint32 `protobuf:"varint,11,opt,name=broadcast_smart_minimum_interval_secs,json=broadcastSmartMinimumIntervalSecs,proto3" json:"broadcast_smart_minimum_interval_secs,omitempty"`
+ // (Re)define PIN_GPS_EN for your board.
+ GpsEnGpio uint32 `protobuf:"varint,12,opt,name=gps_en_gpio,json=gpsEnGpio,proto3" json:"gps_en_gpio,omitempty"`
+ // Set where GPS is enabled, disabled, or not present
+ GpsMode Config_PositionConfig_GpsMode `protobuf:"varint,13,opt,name=gps_mode,json=gpsMode,proto3,enum=meshtastic.Config_PositionConfig_GpsMode" json:"gps_mode,omitempty"`
+ // Set GPS precision in bits per channel, or 0 for disabled
+ ChannelPrecision []uint32 `protobuf:"varint,14,rep,packed,name=channel_precision,json=channelPrecision,proto3" json:"channel_precision,omitempty"`
+}
+
+func (x *Config_PositionConfig) Reset() {
+ *x = Config_PositionConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_PositionConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_PositionConfig) ProtoMessage() {}
+
+func (x *Config_PositionConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_PositionConfig.ProtoReflect.Descriptor instead.
+func (*Config_PositionConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *Config_PositionConfig) GetPositionBroadcastSecs() uint32 {
+ if x != nil {
+ return x.PositionBroadcastSecs
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetPositionBroadcastSmartEnabled() bool {
+ if x != nil {
+ return x.PositionBroadcastSmartEnabled
+ }
+ return false
+}
+
+func (x *Config_PositionConfig) GetFixedPosition() bool {
+ if x != nil {
+ return x.FixedPosition
+ }
+ return false
+}
+
+// Deprecated: Marked as deprecated in meshtastic/config.proto.
+func (x *Config_PositionConfig) GetGpsEnabled() bool {
+ if x != nil {
+ return x.GpsEnabled
+ }
+ return false
+}
+
+func (x *Config_PositionConfig) GetGpsUpdateInterval() uint32 {
+ if x != nil {
+ return x.GpsUpdateInterval
+ }
+ return 0
+}
+
+// Deprecated: Marked as deprecated in meshtastic/config.proto.
+func (x *Config_PositionConfig) GetGpsAttemptTime() uint32 {
+ if x != nil {
+ return x.GpsAttemptTime
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetPositionFlags() uint32 {
+ if x != nil {
+ return x.PositionFlags
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetRxGpio() uint32 {
+ if x != nil {
+ return x.RxGpio
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetTxGpio() uint32 {
+ if x != nil {
+ return x.TxGpio
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetBroadcastSmartMinimumDistance() uint32 {
+ if x != nil {
+ return x.BroadcastSmartMinimumDistance
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetBroadcastSmartMinimumIntervalSecs() uint32 {
+ if x != nil {
+ return x.BroadcastSmartMinimumIntervalSecs
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetGpsEnGpio() uint32 {
+ if x != nil {
+ return x.GpsEnGpio
+ }
+ return 0
+}
+
+func (x *Config_PositionConfig) GetGpsMode() Config_PositionConfig_GpsMode {
+ if x != nil {
+ return x.GpsMode
+ }
+ return Config_PositionConfig_DISABLED
+}
+
+func (x *Config_PositionConfig) GetChannelPrecision() []uint32 {
+ if x != nil {
+ return x.ChannelPrecision
+ }
+ return nil
+}
+
+// Power Config\
+// See [Power Config](/docs/settings/config/power) for additional power config details.
+type Config_PowerConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in
+ // we should try to minimize power consumption as much as possible.
+ // YOU DO NOT NEED TO SET THIS IF YOU'VE set is_router (it is implied in that case).
+ // Advanced Option
+ IsPowerSaving bool `protobuf:"varint,1,opt,name=is_power_saving,json=isPowerSaving,proto3" json:"is_power_saving,omitempty"`
+ // If non-zero, the device will fully power off this many seconds after external power is removed.
+ OnBatteryShutdownAfterSecs uint32 `protobuf:"varint,2,opt,name=on_battery_shutdown_after_secs,json=onBatteryShutdownAfterSecs,proto3" json:"on_battery_shutdown_after_secs,omitempty"`
+ // Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
+ // Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
+ // Should be set to floating point value between 2 and 4
+ // Fixes issues on Heltec v2
+ AdcMultiplierOverride float32 `protobuf:"fixed32,3,opt,name=adc_multiplier_override,json=adcMultiplierOverride,proto3" json:"adc_multiplier_override,omitempty"`
+ // Wait Bluetooth Seconds
+ // The number of seconds for to wait before turning off BLE in No Bluetooth states
+ // 0 for default of 1 minute
+ WaitBluetoothSecs uint32 `protobuf:"varint,4,opt,name=wait_bluetooth_secs,json=waitBluetoothSecs,proto3" json:"wait_bluetooth_secs,omitempty"`
+ // Super Deep Sleep Seconds
+ // While in Light Sleep if mesh_sds_timeout_secs is exceeded we will lower into super deep sleep
+ // for this value (default 1 year) or a button press
+ // 0 for default of one year
+ SdsSecs uint32 `protobuf:"varint,6,opt,name=sds_secs,json=sdsSecs,proto3" json:"sds_secs,omitempty"`
+ // Light Sleep Seconds
+ // In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
+ // ESP32 Only
+ // 0 for default of 300
+ LsSecs uint32 `protobuf:"varint,7,opt,name=ls_secs,json=lsSecs,proto3" json:"ls_secs,omitempty"`
+ // Minimum Wake Seconds
+ // While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
+ // 0 for default of 10 seconds
+ MinWakeSecs uint32 `protobuf:"varint,8,opt,name=min_wake_secs,json=minWakeSecs,proto3" json:"min_wake_secs,omitempty"`
+ // I2C address of INA_2XX to use for reading device battery voltage
+ DeviceBatteryInaAddress uint32 `protobuf:"varint,9,opt,name=device_battery_ina_address,json=deviceBatteryInaAddress,proto3" json:"device_battery_ina_address,omitempty"`
+}
+
+func (x *Config_PowerConfig) Reset() {
+ *x = Config_PowerConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_PowerConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_PowerConfig) ProtoMessage() {}
+
+func (x *Config_PowerConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_PowerConfig.ProtoReflect.Descriptor instead.
+func (*Config_PowerConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 2}
+}
+
+func (x *Config_PowerConfig) GetIsPowerSaving() bool {
+ if x != nil {
+ return x.IsPowerSaving
+ }
+ return false
+}
+
+func (x *Config_PowerConfig) GetOnBatteryShutdownAfterSecs() uint32 {
+ if x != nil {
+ return x.OnBatteryShutdownAfterSecs
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetAdcMultiplierOverride() float32 {
+ if x != nil {
+ return x.AdcMultiplierOverride
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetWaitBluetoothSecs() uint32 {
+ if x != nil {
+ return x.WaitBluetoothSecs
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetSdsSecs() uint32 {
+ if x != nil {
+ return x.SdsSecs
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetLsSecs() uint32 {
+ if x != nil {
+ return x.LsSecs
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetMinWakeSecs() uint32 {
+ if x != nil {
+ return x.MinWakeSecs
+ }
+ return 0
+}
+
+func (x *Config_PowerConfig) GetDeviceBatteryInaAddress() uint32 {
+ if x != nil {
+ return x.DeviceBatteryInaAddress
+ }
+ return 0
+}
+
+// Network Config
+type Config_NetworkConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable WiFi (disables Bluetooth)
+ WifiEnabled bool `protobuf:"varint,1,opt,name=wifi_enabled,json=wifiEnabled,proto3" json:"wifi_enabled,omitempty"`
+ // If set, this node will try to join the specified wifi network and
+ // acquire an address via DHCP
+ WifiSsid string `protobuf:"bytes,3,opt,name=wifi_ssid,json=wifiSsid,proto3" json:"wifi_ssid,omitempty"`
+ // If set, will be use to authenticate to the named wifi
+ WifiPsk string `protobuf:"bytes,4,opt,name=wifi_psk,json=wifiPsk,proto3" json:"wifi_psk,omitempty"`
+ // NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
+ NtpServer string `protobuf:"bytes,5,opt,name=ntp_server,json=ntpServer,proto3" json:"ntp_server,omitempty"`
+ // Enable Ethernet
+ EthEnabled bool `protobuf:"varint,6,opt,name=eth_enabled,json=ethEnabled,proto3" json:"eth_enabled,omitempty"`
+ // acquire an address via DHCP or assign static
+ AddressMode Config_NetworkConfig_AddressMode `protobuf:"varint,7,opt,name=address_mode,json=addressMode,proto3,enum=meshtastic.Config_NetworkConfig_AddressMode" json:"address_mode,omitempty"`
+ // struct to keep static address
+ Ipv4Config *Config_NetworkConfig_IpV4Config `protobuf:"bytes,8,opt,name=ipv4_config,json=ipv4Config,proto3" json:"ipv4_config,omitempty"`
+ // rsyslog Server and Port
+ RsyslogServer string `protobuf:"bytes,9,opt,name=rsyslog_server,json=rsyslogServer,proto3" json:"rsyslog_server,omitempty"`
+}
+
+func (x *Config_NetworkConfig) Reset() {
+ *x = Config_NetworkConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_NetworkConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_NetworkConfig) ProtoMessage() {}
+
+func (x *Config_NetworkConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_NetworkConfig.ProtoReflect.Descriptor instead.
+func (*Config_NetworkConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 3}
+}
+
+func (x *Config_NetworkConfig) GetWifiEnabled() bool {
+ if x != nil {
+ return x.WifiEnabled
+ }
+ return false
+}
+
+func (x *Config_NetworkConfig) GetWifiSsid() string {
+ if x != nil {
+ return x.WifiSsid
+ }
+ return ""
+}
+
+func (x *Config_NetworkConfig) GetWifiPsk() string {
+ if x != nil {
+ return x.WifiPsk
+ }
+ return ""
+}
+
+func (x *Config_NetworkConfig) GetNtpServer() string {
+ if x != nil {
+ return x.NtpServer
+ }
+ return ""
+}
+
+func (x *Config_NetworkConfig) GetEthEnabled() bool {
+ if x != nil {
+ return x.EthEnabled
+ }
+ return false
+}
+
+func (x *Config_NetworkConfig) GetAddressMode() Config_NetworkConfig_AddressMode {
+ if x != nil {
+ return x.AddressMode
+ }
+ return Config_NetworkConfig_DHCP
+}
+
+func (x *Config_NetworkConfig) GetIpv4Config() *Config_NetworkConfig_IpV4Config {
+ if x != nil {
+ return x.Ipv4Config
+ }
+ return nil
+}
+
+func (x *Config_NetworkConfig) GetRsyslogServer() string {
+ if x != nil {
+ return x.RsyslogServer
+ }
+ return ""
+}
+
+// Display Config
+type Config_DisplayConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of seconds the screen stays on after pressing the user button or receiving a message
+ // 0 for default of one minute MAXUINT for always on
+ ScreenOnSecs uint32 `protobuf:"varint,1,opt,name=screen_on_secs,json=screenOnSecs,proto3" json:"screen_on_secs,omitempty"`
+ // How the GPS coordinates are formatted on the OLED screen.
+ GpsFormat Config_DisplayConfig_GpsCoordinateFormat `protobuf:"varint,2,opt,name=gps_format,json=gpsFormat,proto3,enum=meshtastic.Config_DisplayConfig_GpsCoordinateFormat" json:"gps_format,omitempty"`
+ // Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
+ // Potentially useful for devices without user buttons.
+ AutoScreenCarouselSecs uint32 `protobuf:"varint,3,opt,name=auto_screen_carousel_secs,json=autoScreenCarouselSecs,proto3" json:"auto_screen_carousel_secs,omitempty"`
+ // If this is set, the displayed compass will always point north. if unset, the old behaviour
+ // (top of display is heading direction) is used.
+ CompassNorthTop bool `protobuf:"varint,4,opt,name=compass_north_top,json=compassNorthTop,proto3" json:"compass_north_top,omitempty"`
+ // Flip screen vertically, for cases that mount the screen upside down
+ FlipScreen bool `protobuf:"varint,5,opt,name=flip_screen,json=flipScreen,proto3" json:"flip_screen,omitempty"`
+ // Perferred display units
+ Units Config_DisplayConfig_DisplayUnits `protobuf:"varint,6,opt,name=units,proto3,enum=meshtastic.Config_DisplayConfig_DisplayUnits" json:"units,omitempty"`
+ // Override auto-detect in screen
+ Oled Config_DisplayConfig_OledType `protobuf:"varint,7,opt,name=oled,proto3,enum=meshtastic.Config_DisplayConfig_OledType" json:"oled,omitempty"`
+ // Display Mode
+ Displaymode Config_DisplayConfig_DisplayMode `protobuf:"varint,8,opt,name=displaymode,proto3,enum=meshtastic.Config_DisplayConfig_DisplayMode" json:"displaymode,omitempty"`
+ // Print first line in pseudo-bold? FALSE is original style, TRUE is bold
+ HeadingBold bool `protobuf:"varint,9,opt,name=heading_bold,json=headingBold,proto3" json:"heading_bold,omitempty"`
+ // Should we wake the screen up on accelerometer detected motion or tap
+ WakeOnTapOrMotion bool `protobuf:"varint,10,opt,name=wake_on_tap_or_motion,json=wakeOnTapOrMotion,proto3" json:"wake_on_tap_or_motion,omitempty"`
+}
+
+func (x *Config_DisplayConfig) Reset() {
+ *x = Config_DisplayConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_DisplayConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_DisplayConfig) ProtoMessage() {}
+
+func (x *Config_DisplayConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_DisplayConfig.ProtoReflect.Descriptor instead.
+func (*Config_DisplayConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 4}
+}
+
+func (x *Config_DisplayConfig) GetScreenOnSecs() uint32 {
+ if x != nil {
+ return x.ScreenOnSecs
+ }
+ return 0
+}
+
+func (x *Config_DisplayConfig) GetGpsFormat() Config_DisplayConfig_GpsCoordinateFormat {
+ if x != nil {
+ return x.GpsFormat
+ }
+ return Config_DisplayConfig_DEC
+}
+
+func (x *Config_DisplayConfig) GetAutoScreenCarouselSecs() uint32 {
+ if x != nil {
+ return x.AutoScreenCarouselSecs
+ }
+ return 0
+}
+
+func (x *Config_DisplayConfig) GetCompassNorthTop() bool {
+ if x != nil {
+ return x.CompassNorthTop
+ }
+ return false
+}
+
+func (x *Config_DisplayConfig) GetFlipScreen() bool {
+ if x != nil {
+ return x.FlipScreen
+ }
+ return false
+}
+
+func (x *Config_DisplayConfig) GetUnits() Config_DisplayConfig_DisplayUnits {
+ if x != nil {
+ return x.Units
+ }
+ return Config_DisplayConfig_METRIC
+}
+
+func (x *Config_DisplayConfig) GetOled() Config_DisplayConfig_OledType {
+ if x != nil {
+ return x.Oled
+ }
+ return Config_DisplayConfig_OLED_AUTO
+}
+
+func (x *Config_DisplayConfig) GetDisplaymode() Config_DisplayConfig_DisplayMode {
+ if x != nil {
+ return x.Displaymode
+ }
+ return Config_DisplayConfig_DEFAULT
+}
+
+func (x *Config_DisplayConfig) GetHeadingBold() bool {
+ if x != nil {
+ return x.HeadingBold
+ }
+ return false
+}
+
+func (x *Config_DisplayConfig) GetWakeOnTapOrMotion() bool {
+ if x != nil {
+ return x.WakeOnTapOrMotion
+ }
+ return false
+}
+
+// Lora Config
+type Config_LoRaConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
+ // will be taked from their respective manually defined fields
+ UsePreset bool `protobuf:"varint,1,opt,name=use_preset,json=usePreset,proto3" json:"use_preset,omitempty"`
+ // Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
+ // As a heuristic: If bandwidth is specified, do not use modem_config.
+ // Because protobufs take ZERO space when the value is zero this works out nicely.
+ // This value is replaced by bandwidth/spread_factor/coding_rate.
+ // If you'd like to experiment with other options add them to MeshRadio.cpp in the device code.
+ ModemPreset Config_LoRaConfig_ModemPreset `protobuf:"varint,2,opt,name=modem_preset,json=modemPreset,proto3,enum=meshtastic.Config_LoRaConfig_ModemPreset" json:"modem_preset,omitempty"`
+ // Bandwidth in MHz
+ // Certain bandwidth numbers are 'special' and will be converted to the
+ // appropriate floating point value: 31 -> 31.25MHz
+ Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
+ // A number from 7 to 12.
+ // Indicates number of chirps per symbol as 1<<spread_factor.
+ SpreadFactor uint32 `protobuf:"varint,4,opt,name=spread_factor,json=spreadFactor,proto3" json:"spread_factor,omitempty"`
+ // The denominator of the coding rate.
+ // ie for 4/5, the value is 5. 4/8 the value is 8.
+ CodingRate uint32 `protobuf:"varint,5,opt,name=coding_rate,json=codingRate,proto3" json:"coding_rate,omitempty"`
+ // This parameter is for advanced users with advanced test equipment, we do not recommend most users use it.
+ // A frequency offset that is added to to the calculated band center frequency.
+ // Used to correct for crystal calibration errors.
+ FrequencyOffset float32 `protobuf:"fixed32,6,opt,name=frequency_offset,json=frequencyOffset,proto3" json:"frequency_offset,omitempty"`
+ // The region code for the radio (US, CN, EU433, etc...)
+ Region Config_LoRaConfig_RegionCode `protobuf:"varint,7,opt,name=region,proto3,enum=meshtastic.Config_LoRaConfig_RegionCode" json:"region,omitempty"`
+ // Maximum number of hops. This can't be greater than 7.
+ // Default of 3
+ // Attempting to set a value > 7 results in the default
+ HopLimit uint32 `protobuf:"varint,8,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"`
+ // Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
+ // Defaults to false
+ TxEnabled bool `protobuf:"varint,9,opt,name=tx_enabled,json=txEnabled,proto3" json:"tx_enabled,omitempty"`
+ // If zero, then use default max legal continuous power (ie. something that won't
+ // burn out the radio hardware)
+ // In most cases you should use zero here.
+ // Units are in dBm.
+ TxPower int32 `protobuf:"varint,10,opt,name=tx_power,json=txPower,proto3" json:"tx_power,omitempty"`
+ // This controls the actual hardware frequency the radio transmits on.
+ // Most users should never need to be exposed to this field/concept.
+ // A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region).
+ // If ZERO then the rule is "use the old channel name hash based
+ // algorithm to derive the channel number")
+ // If using the hash algorithm the channel number will be: hash(channel_name) %
+ // NUM_CHANNELS (Where num channels depends on the regulatory region).
+ ChannelNum uint32 `protobuf:"varint,11,opt,name=channel_num,json=channelNum,proto3" json:"channel_num,omitempty"`
+ // If true, duty cycle limits will be exceeded and thus you're possibly not following
+ // the local regulations if you're not a HAM.
+ // Has no effect if the duty cycle of the used region is 100%.
+ OverrideDutyCycle bool `protobuf:"varint,12,opt,name=override_duty_cycle,json=overrideDutyCycle,proto3" json:"override_duty_cycle,omitempty"`
+ // If true, sets RX boosted gain mode on SX126X based radios
+ Sx126XRxBoostedGain bool `protobuf:"varint,13,opt,name=sx126x_rx_boosted_gain,json=sx126xRxBoostedGain,proto3" json:"sx126x_rx_boosted_gain,omitempty"`
+ // This parameter is for advanced users and licensed HAM radio operators.
+ // Ignore Channel Calculation and use this frequency instead. The frequency_offset
+ // will still be applied. This will allow you to use out-of-band frequencies.
+ // Please respect your local laws and regulations. If you are a HAM, make sure you
+ // enable HAM mode and turn off encryption.
+ OverrideFrequency float32 `protobuf:"fixed32,14,opt,name=override_frequency,json=overrideFrequency,proto3" json:"override_frequency,omitempty"`
+ // For testing it is useful sometimes to force a node to never listen to
+ // particular other nodes (simulating radio out of range). All nodenums listed
+ // in ignore_incoming will have packets they send dropped on receive (by router.cpp)
+ IgnoreIncoming []uint32 `protobuf:"varint,103,rep,packed,name=ignore_incoming,json=ignoreIncoming,proto3" json:"ignore_incoming,omitempty"`
+ // If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it.
+ IgnoreMqtt bool `protobuf:"varint,104,opt,name=ignore_mqtt,json=ignoreMqtt,proto3" json:"ignore_mqtt,omitempty"`
+}
+
+func (x *Config_LoRaConfig) Reset() {
+ *x = Config_LoRaConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_LoRaConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_LoRaConfig) ProtoMessage() {}
+
+func (x *Config_LoRaConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_LoRaConfig.ProtoReflect.Descriptor instead.
+func (*Config_LoRaConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 5}
+}
+
+func (x *Config_LoRaConfig) GetUsePreset() bool {
+ if x != nil {
+ return x.UsePreset
+ }
+ return false
+}
+
+func (x *Config_LoRaConfig) GetModemPreset() Config_LoRaConfig_ModemPreset {
+ if x != nil {
+ return x.ModemPreset
+ }
+ return Config_LoRaConfig_LONG_FAST
+}
+
+func (x *Config_LoRaConfig) GetBandwidth() uint32 {
+ if x != nil {
+ return x.Bandwidth
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetSpreadFactor() uint32 {
+ if x != nil {
+ return x.SpreadFactor
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetCodingRate() uint32 {
+ if x != nil {
+ return x.CodingRate
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetFrequencyOffset() float32 {
+ if x != nil {
+ return x.FrequencyOffset
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetRegion() Config_LoRaConfig_RegionCode {
+ if x != nil {
+ return x.Region
+ }
+ return Config_LoRaConfig_UNSET
+}
+
+func (x *Config_LoRaConfig) GetHopLimit() uint32 {
+ if x != nil {
+ return x.HopLimit
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetTxEnabled() bool {
+ if x != nil {
+ return x.TxEnabled
+ }
+ return false
+}
+
+func (x *Config_LoRaConfig) GetTxPower() int32 {
+ if x != nil {
+ return x.TxPower
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetChannelNum() uint32 {
+ if x != nil {
+ return x.ChannelNum
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetOverrideDutyCycle() bool {
+ if x != nil {
+ return x.OverrideDutyCycle
+ }
+ return false
+}
+
+func (x *Config_LoRaConfig) GetSx126XRxBoostedGain() bool {
+ if x != nil {
+ return x.Sx126XRxBoostedGain
+ }
+ return false
+}
+
+func (x *Config_LoRaConfig) GetOverrideFrequency() float32 {
+ if x != nil {
+ return x.OverrideFrequency
+ }
+ return 0
+}
+
+func (x *Config_LoRaConfig) GetIgnoreIncoming() []uint32 {
+ if x != nil {
+ return x.IgnoreIncoming
+ }
+ return nil
+}
+
+func (x *Config_LoRaConfig) GetIgnoreMqtt() bool {
+ if x != nil {
+ return x.IgnoreMqtt
+ }
+ return false
+}
+
+type Config_BluetoothConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable Bluetooth on the device
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Determines the pairing strategy for the device
+ Mode Config_BluetoothConfig_PairingMode `protobuf:"varint,2,opt,name=mode,proto3,enum=meshtastic.Config_BluetoothConfig_PairingMode" json:"mode,omitempty"`
+ // Specified PIN for PairingMode.FixedPin
+ FixedPin uint32 `protobuf:"varint,3,opt,name=fixed_pin,json=fixedPin,proto3" json:"fixed_pin,omitempty"`
+}
+
+func (x *Config_BluetoothConfig) Reset() {
+ *x = Config_BluetoothConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_BluetoothConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_BluetoothConfig) ProtoMessage() {}
+
+func (x *Config_BluetoothConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_BluetoothConfig.ProtoReflect.Descriptor instead.
+func (*Config_BluetoothConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 6}
+}
+
+func (x *Config_BluetoothConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *Config_BluetoothConfig) GetMode() Config_BluetoothConfig_PairingMode {
+ if x != nil {
+ return x.Mode
+ }
+ return Config_BluetoothConfig_RANDOM_PIN
+}
+
+func (x *Config_BluetoothConfig) GetFixedPin() uint32 {
+ if x != nil {
+ return x.FixedPin
+ }
+ return 0
+}
+
+type Config_NetworkConfig_IpV4Config struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Static IP address
+ Ip uint32 `protobuf:"fixed32,1,opt,name=ip,proto3" json:"ip,omitempty"`
+ // Static gateway address
+ Gateway uint32 `protobuf:"fixed32,2,opt,name=gateway,proto3" json:"gateway,omitempty"`
+ // Static subnet mask
+ Subnet uint32 `protobuf:"fixed32,3,opt,name=subnet,proto3" json:"subnet,omitempty"`
+ // Static DNS server address
+ Dns uint32 `protobuf:"fixed32,4,opt,name=dns,proto3" json:"dns,omitempty"`
+}
+
+func (x *Config_NetworkConfig_IpV4Config) Reset() {
+ *x = Config_NetworkConfig_IpV4Config{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Config_NetworkConfig_IpV4Config) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Config_NetworkConfig_IpV4Config) ProtoMessage() {}
+
+func (x *Config_NetworkConfig_IpV4Config) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Config_NetworkConfig_IpV4Config.ProtoReflect.Descriptor instead.
+func (*Config_NetworkConfig_IpV4Config) Descriptor() ([]byte, []int) {
+ return file_meshtastic_config_proto_rawDescGZIP(), []int{0, 3, 0}
+}
+
+func (x *Config_NetworkConfig_IpV4Config) GetIp() uint32 {
+ if x != nil {
+ return x.Ip
+ }
+ return 0
+}
+
+func (x *Config_NetworkConfig_IpV4Config) GetGateway() uint32 {
+ if x != nil {
+ return x.Gateway
+ }
+ return 0
+}
+
+func (x *Config_NetworkConfig_IpV4Config) GetSubnet() uint32 {
+ if x != nil {
+ return x.Subnet
+ }
+ return 0
+}
+
+func (x *Config_NetworkConfig_IpV4Config) GetDns() uint32 {
+ if x != nil {
+ return x.Dns
+ }
+ return 0
+}
+
+var File_meshtastic_config_proto protoreflect.FileDescriptor
+
+var file_meshtastic_config_proto_rawDesc = []byte{
+ 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xff, 0x27, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x05,
+ 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x70,
+ 0x6f, 0x77, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x12, 0x3c, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x12, 0x33, 0x0a, 0x04, 0x6c, 0x6f, 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
+ 0x04, 0x6c, 0x6f, 0x72, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f,
+ 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x75,
+ 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09,
+ 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x1a, 0xff, 0x05, 0x0a, 0x0c, 0x44, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x72, 0x6f,
+ 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04,
+ 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65,
+ 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64,
+ 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x6f, 0x67,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x7a, 0x7a,
+ 0x65, 0x72, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62,
+ 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x5a, 0x0a, 0x10, 0x72, 0x65, 0x62,
+ 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74,
+ 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
+ 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e,
+ 0x66, 0x6f, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63,
+ 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66,
+ 0x6f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x3a,
+ 0x0a, 0x1a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x70, 0x5f, 0x61, 0x73, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x16, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x54, 0x61, 0x70, 0x41, 0x73, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73,
+ 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
+ 0x69, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73,
+ 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63,
+ 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
+ 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0xaa, 0x01, 0x0a, 0x04,
+ 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x00,
+ 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x10,
+ 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a,
+ 0x0d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x03,
+ 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0b,
+ 0x0a, 0x07, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53,
+ 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x4b, 0x10, 0x07,
+ 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x48, 0x49, 0x44, 0x44, 0x45,
+ 0x4e, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f,
+ 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x4b, 0x5f, 0x54,
+ 0x52, 0x41, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x0a, 0x22, 0x51, 0x0a, 0x0f, 0x52, 0x65, 0x62, 0x72,
+ 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41,
+ 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x4b, 0x49, 0x50,
+ 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c,
+ 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4b,
+ 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x1a, 0xa7, 0x07, 0x0a, 0x0e,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36,
+ 0x0a, 0x17, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64,
+ 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x15, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61,
+ 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x47, 0x0a, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6d, 0x61,
+ 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x1d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63,
+ 0x61, 0x73, 0x74, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
+ 0x25, 0x0a, 0x0e, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0b, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52,
+ 0x0a, 0x67, 0x70, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x67,
+ 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
+ 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x70, 0x73, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x10, 0x67,
+ 0x70, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x67, 0x70, 0x73, 0x41, 0x74,
+ 0x74, 0x65, 0x6d, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73,
+ 0x12, 0x17, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x06, 0x72, 0x78, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f,
+ 0x67, 0x70, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x78, 0x47, 0x70,
+ 0x69, 0x6f, 0x12, 0x47, 0x0a, 0x20, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f,
+ 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x64, 0x69,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x62, 0x72,
+ 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x4d, 0x69, 0x6e, 0x69,
+ 0x6d, 0x75, 0x6d, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x25, 0x62,
+ 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x6d,
+ 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f,
+ 0x73, 0x65, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x21, 0x62, 0x72, 0x6f, 0x61,
+ 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x1e, 0x0a,
+ 0x0b, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x6e, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x0c, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x09, 0x67, 0x70, 0x73, 0x45, 0x6e, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x44, 0x0a,
+ 0x08, 0x67, 0x70, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x47, 0x70, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x67, 0x70, 0x73, 0x4d,
+ 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70,
+ 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10,
+ 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+ 0x22, 0xab, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61,
+ 0x67, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a,
+ 0x08, 0x41, 0x4c, 0x54, 0x49, 0x54, 0x55, 0x44, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41,
+ 0x4c, 0x54, 0x49, 0x54, 0x55, 0x44, 0x45, 0x5f, 0x4d, 0x53, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a,
+ 0x12, 0x47, 0x45, 0x4f, 0x49, 0x44, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x50, 0x41, 0x52, 0x41, 0x54,
+ 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x09,
+ 0x0a, 0x05, 0x48, 0x56, 0x44, 0x4f, 0x50, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x41, 0x54,
+ 0x49, 0x4e, 0x56, 0x49, 0x45, 0x57, 0x10, 0x20, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x51, 0x5f,
+ 0x4e, 0x4f, 0x10, 0x40, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d,
+ 0x50, 0x10, 0x80, 0x01, 0x12, 0x0c, 0x0a, 0x07, 0x48, 0x45, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10,
+ 0x80, 0x02, 0x12, 0x0a, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x80, 0x04, 0x22, 0x35,
+ 0x0a, 0x07, 0x47, 0x70, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53,
+ 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c,
+ 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53,
+ 0x45, 0x4e, 0x54, 0x10, 0x02, 0x1a, 0xf6, 0x02, 0x0a, 0x0b, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65,
+ 0x72, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+ 0x69, 0x73, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a,
+ 0x1e, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x68, 0x75, 0x74,
+ 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79,
+ 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63,
+ 0x73, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x64, 0x63, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,
+ 0x69, 0x65, 0x72, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x02, 0x52, 0x15, 0x61, 0x64, 0x63, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65,
+ 0x72, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x61, 0x69,
+ 0x74, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x73,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x61, 0x69, 0x74, 0x42, 0x6c, 0x75, 0x65,
+ 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x53, 0x65, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x64, 0x73,
+ 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x64, 0x73,
+ 0x53, 0x65, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x73, 0x12, 0x22, 0x0a,
+ 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x57, 0x61, 0x6b, 0x65, 0x53, 0x65, 0x63,
+ 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x74,
+ 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x74,
+ 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xf7,
+ 0x03, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x66, 0x69, 0x45, 0x6e, 0x61, 0x62,
+ 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x73, 0x69, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x73, 0x69, 0x64,
+ 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x70, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x66, 0x69, 0x50, 0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x6e,
+ 0x74, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x74,
+ 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0a, 0x65, 0x74, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x0c, 0x61,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52,
+ 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b,
+ 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x49, 0x70, 0x56, 0x34, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a,
+ 0x69, 0x70, 0x76, 0x34, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x73,
+ 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0d, 0x72, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x1a, 0x60, 0x0a, 0x0a, 0x49, 0x70, 0x56, 0x34, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, 0x12,
+ 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07,
+ 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62,
+ 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65,
+ 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03,
+ 0x64, 0x6e, 0x73, 0x22, 0x23, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f,
+ 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x48, 0x43, 0x50, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
+ 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x1a, 0xc6, 0x06, 0x0a, 0x0d, 0x44, 0x69, 0x73,
+ 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x63,
+ 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x6e, 0x53, 0x65, 0x63, 0x73,
+ 0x12, 0x53, 0x0a, 0x0a, 0x67, 0x70, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x70, 0x73, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69,
+ 0x6e, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x09, 0x67, 0x70, 0x73, 0x46,
+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63,
+ 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x5f, 0x73, 0x65,
+ 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x63,
+ 0x72, 0x65, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x53, 0x65, 0x63, 0x73,
+ 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x72, 0x74,
+ 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6d,
+ 0x70, 0x61, 0x73, 0x73, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0a, 0x66, 0x6c, 0x69, 0x70, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x43, 0x0a,
+ 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44,
+ 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x05, 0x75, 0x6e, 0x69,
+ 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x04, 0x6f, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x4f, 0x6c, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6f, 0x6c, 0x65,
+ 0x64, 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x6f, 0x64, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c,
+ 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x6f, 0x64,
+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x6c,
+ 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67,
+ 0x42, 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x15, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x6f, 0x6e, 0x5f,
+ 0x74, 0x61, 0x70, 0x5f, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x11, 0x77, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x54, 0x61, 0x70, 0x4f, 0x72,
+ 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x13, 0x47, 0x70, 0x73, 0x43, 0x6f, 0x6f,
+ 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x07, 0x0a,
+ 0x03, 0x44, 0x45, 0x43, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4d, 0x53, 0x10, 0x01, 0x12,
+ 0x07, 0x0a, 0x03, 0x55, 0x54, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x47, 0x52, 0x53,
+ 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4c, 0x43, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x4f,
+ 0x53, 0x47, 0x52, 0x10, 0x05, 0x22, 0x28, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10,
+ 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x45, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x22,
+ 0x4d, 0x0a, 0x08, 0x4f, 0x6c, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4f,
+ 0x4c, 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x4c,
+ 0x45, 0x44, 0x5f, 0x53, 0x53, 0x44, 0x31, 0x33, 0x30, 0x36, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b,
+ 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x53, 0x48, 0x31, 0x31, 0x30, 0x36, 0x10, 0x02, 0x12, 0x0f, 0x0a,
+ 0x0b, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x53, 0x48, 0x31, 0x31, 0x30, 0x37, 0x10, 0x03, 0x22, 0x41,
+ 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a,
+ 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x57,
+ 0x4f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x56, 0x45,
+ 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10,
+ 0x03, 0x1a, 0x87, 0x08, 0x0a, 0x0a, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12,
+ 0x4c, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74,
+ 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a,
+ 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73,
+ 0x70, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74,
+ 0x65, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6f,
+ 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x66, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x06,
+ 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x67, 0x69,
+ 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1b,
+ 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74,
+ 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x09, 0x74, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78,
+ 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x78,
+ 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69,
+ 0x64, 0x65, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x75, 0x74,
+ 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x78, 0x31, 0x32, 0x36, 0x78,
+ 0x5f, 0x72, 0x78, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x61, 0x69, 0x6e,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x78, 0x31, 0x32, 0x36, 0x78, 0x52, 0x78,
+ 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6f,
+ 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
+ 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
+ 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x67,
+ 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x67, 0x20,
+ 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
+ 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x71,
+ 0x74, 0x74, 0x18, 0x68, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65,
+ 0x4d, 0x71, 0x74, 0x74, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x06,
+ 0x0a, 0x02, 0x55, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x55, 0x5f, 0x34, 0x33, 0x33,
+ 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x55, 0x5f, 0x38, 0x36, 0x38, 0x10, 0x03, 0x12, 0x06,
+ 0x0a, 0x02, 0x43, 0x4e, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x50, 0x10, 0x05, 0x12, 0x07,
+ 0x0a, 0x03, 0x41, 0x4e, 0x5a, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x4b, 0x52, 0x10, 0x07, 0x12,
+ 0x06, 0x0a, 0x02, 0x54, 0x57, 0x10, 0x08, 0x12, 0x06, 0x0a, 0x02, 0x52, 0x55, 0x10, 0x09, 0x12,
+ 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x5a, 0x5f, 0x38, 0x36,
+ 0x35, 0x10, 0x0b, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x48, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x4c,
+ 0x4f, 0x52, 0x41, 0x5f, 0x32, 0x34, 0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x41, 0x5f, 0x34,
+ 0x33, 0x33, 0x10, 0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x41, 0x5f, 0x38, 0x36, 0x38, 0x10, 0x0f,
+ 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x59, 0x5f, 0x34, 0x33, 0x33, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06,
+ 0x4d, 0x59, 0x5f, 0x39, 0x31, 0x39, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x47, 0x5f, 0x39,
+ 0x32, 0x33, 0x10, 0x12, 0x22, 0x94, 0x01, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x72,
+ 0x65, 0x73, 0x65, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x53,
+ 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x53, 0x4c, 0x4f, 0x57,
+ 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x5f,
+ 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d,
+ 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x45, 0x44, 0x49, 0x55,
+ 0x4d, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x48, 0x4f, 0x52,
+ 0x54, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x48, 0x4f, 0x52,
+ 0x54, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x4e, 0x47,
+ 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x07, 0x1a, 0xc6, 0x01, 0x0a, 0x0f,
+ 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x75, 0x65,
+ 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x69, 0x72,
+ 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a,
+ 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x08, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x69, 0x6e, 0x22, 0x38, 0x0a, 0x0b, 0x50, 0x61,
+ 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x41, 0x4e,
+ 0x44, 0x4f, 0x4d, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x58,
+ 0x45, 0x44, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x50,
+ 0x49, 0x4e, 0x10, 0x02, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
+ 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
+ 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0c,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64,
+ 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_config_proto_rawDescOnce sync.Once
+ file_meshtastic_config_proto_rawDescData = file_meshtastic_config_proto_rawDesc
+)
+
+func file_meshtastic_config_proto_rawDescGZIP() []byte {
+ file_meshtastic_config_proto_rawDescOnce.Do(func() {
+ file_meshtastic_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_config_proto_rawDescData)
+ })
+ return file_meshtastic_config_proto_rawDescData
+}
+
+var file_meshtastic_config_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
+var file_meshtastic_config_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
+var file_meshtastic_config_proto_goTypes = []interface{}{
+ (Config_DeviceConfig_Role)(0), // 0: meshtastic.Config.DeviceConfig.Role
+ (Config_DeviceConfig_RebroadcastMode)(0), // 1: meshtastic.Config.DeviceConfig.RebroadcastMode
+ (Config_PositionConfig_PositionFlags)(0), // 2: meshtastic.Config.PositionConfig.PositionFlags
+ (Config_PositionConfig_GpsMode)(0), // 3: meshtastic.Config.PositionConfig.GpsMode
+ (Config_NetworkConfig_AddressMode)(0), // 4: meshtastic.Config.NetworkConfig.AddressMode
+ (Config_DisplayConfig_GpsCoordinateFormat)(0), // 5: meshtastic.Config.DisplayConfig.GpsCoordinateFormat
+ (Config_DisplayConfig_DisplayUnits)(0), // 6: meshtastic.Config.DisplayConfig.DisplayUnits
+ (Config_DisplayConfig_OledType)(0), // 7: meshtastic.Config.DisplayConfig.OledType
+ (Config_DisplayConfig_DisplayMode)(0), // 8: meshtastic.Config.DisplayConfig.DisplayMode
+ (Config_LoRaConfig_RegionCode)(0), // 9: meshtastic.Config.LoRaConfig.RegionCode
+ (Config_LoRaConfig_ModemPreset)(0), // 10: meshtastic.Config.LoRaConfig.ModemPreset
+ (Config_BluetoothConfig_PairingMode)(0), // 11: meshtastic.Config.BluetoothConfig.PairingMode
+ (*Config)(nil), // 12: meshtastic.Config
+ (*Config_DeviceConfig)(nil), // 13: meshtastic.Config.DeviceConfig
+ (*Config_PositionConfig)(nil), // 14: meshtastic.Config.PositionConfig
+ (*Config_PowerConfig)(nil), // 15: meshtastic.Config.PowerConfig
+ (*Config_NetworkConfig)(nil), // 16: meshtastic.Config.NetworkConfig
+ (*Config_DisplayConfig)(nil), // 17: meshtastic.Config.DisplayConfig
+ (*Config_LoRaConfig)(nil), // 18: meshtastic.Config.LoRaConfig
+ (*Config_BluetoothConfig)(nil), // 19: meshtastic.Config.BluetoothConfig
+ (*Config_NetworkConfig_IpV4Config)(nil), // 20: meshtastic.Config.NetworkConfig.IpV4Config
+}
+var file_meshtastic_config_proto_depIdxs = []int32{
+ 13, // 0: meshtastic.Config.device:type_name -> meshtastic.Config.DeviceConfig
+ 14, // 1: meshtastic.Config.position:type_name -> meshtastic.Config.PositionConfig
+ 15, // 2: meshtastic.Config.power:type_name -> meshtastic.Config.PowerConfig
+ 16, // 3: meshtastic.Config.network:type_name -> meshtastic.Config.NetworkConfig
+ 17, // 4: meshtastic.Config.display:type_name -> meshtastic.Config.DisplayConfig
+ 18, // 5: meshtastic.Config.lora:type_name -> meshtastic.Config.LoRaConfig
+ 19, // 6: meshtastic.Config.bluetooth:type_name -> meshtastic.Config.BluetoothConfig
+ 0, // 7: meshtastic.Config.DeviceConfig.role:type_name -> meshtastic.Config.DeviceConfig.Role
+ 1, // 8: meshtastic.Config.DeviceConfig.rebroadcast_mode:type_name -> meshtastic.Config.DeviceConfig.RebroadcastMode
+ 3, // 9: meshtastic.Config.PositionConfig.gps_mode:type_name -> meshtastic.Config.PositionConfig.GpsMode
+ 4, // 10: meshtastic.Config.NetworkConfig.address_mode:type_name -> meshtastic.Config.NetworkConfig.AddressMode
+ 20, // 11: meshtastic.Config.NetworkConfig.ipv4_config:type_name -> meshtastic.Config.NetworkConfig.IpV4Config
+ 5, // 12: meshtastic.Config.DisplayConfig.gps_format:type_name -> meshtastic.Config.DisplayConfig.GpsCoordinateFormat
+ 6, // 13: meshtastic.Config.DisplayConfig.units:type_name -> meshtastic.Config.DisplayConfig.DisplayUnits
+ 7, // 14: meshtastic.Config.DisplayConfig.oled:type_name -> meshtastic.Config.DisplayConfig.OledType
+ 8, // 15: meshtastic.Config.DisplayConfig.displaymode:type_name -> meshtastic.Config.DisplayConfig.DisplayMode
+ 10, // 16: meshtastic.Config.LoRaConfig.modem_preset:type_name -> meshtastic.Config.LoRaConfig.ModemPreset
+ 9, // 17: meshtastic.Config.LoRaConfig.region:type_name -> meshtastic.Config.LoRaConfig.RegionCode
+ 11, // 18: meshtastic.Config.BluetoothConfig.mode:type_name -> meshtastic.Config.BluetoothConfig.PairingMode
+ 19, // [19:19] is the sub-list for method output_type
+ 19, // [19:19] is the sub-list for method input_type
+ 19, // [19:19] is the sub-list for extension type_name
+ 19, // [19:19] is the sub-list for extension extendee
+ 0, // [0:19] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_config_proto_init() }
+func file_meshtastic_config_proto_init() {
+ if File_meshtastic_config_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_DeviceConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_PositionConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_PowerConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_NetworkConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_DisplayConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_LoRaConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_BluetoothConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Config_NetworkConfig_IpV4Config); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_config_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*Config_Device)(nil),
+ (*Config_Position)(nil),
+ (*Config_Power)(nil),
+ (*Config_Network)(nil),
+ (*Config_Display)(nil),
+ (*Config_Lora)(nil),
+ (*Config_Bluetooth)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_config_proto_rawDesc,
+ NumEnums: 12,
+ NumMessages: 9,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_config_proto_goTypes,
+ DependencyIndexes: file_meshtastic_config_proto_depIdxs,
+ EnumInfos: file_meshtastic_config_proto_enumTypes,
+ MessageInfos: file_meshtastic_config_proto_msgTypes,
+ }.Build()
+ File_meshtastic_config_proto = out.File
+ file_meshtastic_config_proto_rawDesc = nil
+ file_meshtastic_config_proto_goTypes = nil
+ file_meshtastic_config_proto_depIdxs = nil
+}
diff --git a/meshtastic/config_vtproto.pb.go b/meshtastic/config_vtproto.pb.go
new file mode 100644
index 0000000..1827ad9
--- /dev/null
+++ b/meshtastic/config_vtproto.pb.go
@@ -0,0 +1,7824 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/config.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ math "math"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *Config_DeviceConfig) CloneVT() *Config_DeviceConfig {
+ if m == nil {
+ return (*Config_DeviceConfig)(nil)
+ }
+ r := new(Config_DeviceConfig)
+ r.Role = m.Role
+ r.SerialEnabled = m.SerialEnabled
+ r.DebugLogEnabled = m.DebugLogEnabled
+ r.ButtonGpio = m.ButtonGpio
+ r.BuzzerGpio = m.BuzzerGpio
+ r.RebroadcastMode = m.RebroadcastMode
+ r.NodeInfoBroadcastSecs = m.NodeInfoBroadcastSecs
+ r.DoubleTapAsButtonPress = m.DoubleTapAsButtonPress
+ r.IsManaged = m.IsManaged
+ r.DisableTripleClick = m.DisableTripleClick
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_DeviceConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_PositionConfig) CloneVT() *Config_PositionConfig {
+ if m == nil {
+ return (*Config_PositionConfig)(nil)
+ }
+ r := new(Config_PositionConfig)
+ r.PositionBroadcastSecs = m.PositionBroadcastSecs
+ r.PositionBroadcastSmartEnabled = m.PositionBroadcastSmartEnabled
+ r.FixedPosition = m.FixedPosition
+ r.GpsEnabled = m.GpsEnabled
+ r.GpsUpdateInterval = m.GpsUpdateInterval
+ r.GpsAttemptTime = m.GpsAttemptTime
+ r.PositionFlags = m.PositionFlags
+ r.RxGpio = m.RxGpio
+ r.TxGpio = m.TxGpio
+ r.BroadcastSmartMinimumDistance = m.BroadcastSmartMinimumDistance
+ r.BroadcastSmartMinimumIntervalSecs = m.BroadcastSmartMinimumIntervalSecs
+ r.GpsEnGpio = m.GpsEnGpio
+ r.GpsMode = m.GpsMode
+ if rhs := m.ChannelPrecision; rhs != nil {
+ tmpContainer := make([]uint32, len(rhs))
+ copy(tmpContainer, rhs)
+ r.ChannelPrecision = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_PositionConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_PowerConfig) CloneVT() *Config_PowerConfig {
+ if m == nil {
+ return (*Config_PowerConfig)(nil)
+ }
+ r := new(Config_PowerConfig)
+ r.IsPowerSaving = m.IsPowerSaving
+ r.OnBatteryShutdownAfterSecs = m.OnBatteryShutdownAfterSecs
+ r.AdcMultiplierOverride = m.AdcMultiplierOverride
+ r.WaitBluetoothSecs = m.WaitBluetoothSecs
+ r.SdsSecs = m.SdsSecs
+ r.LsSecs = m.LsSecs
+ r.MinWakeSecs = m.MinWakeSecs
+ r.DeviceBatteryInaAddress = m.DeviceBatteryInaAddress
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_PowerConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_NetworkConfig_IpV4Config) CloneVT() *Config_NetworkConfig_IpV4Config {
+ if m == nil {
+ return (*Config_NetworkConfig_IpV4Config)(nil)
+ }
+ r := new(Config_NetworkConfig_IpV4Config)
+ r.Ip = m.Ip
+ r.Gateway = m.Gateway
+ r.Subnet = m.Subnet
+ r.Dns = m.Dns
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_NetworkConfig_IpV4Config) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_NetworkConfig) CloneVT() *Config_NetworkConfig {
+ if m == nil {
+ return (*Config_NetworkConfig)(nil)
+ }
+ r := new(Config_NetworkConfig)
+ r.WifiEnabled = m.WifiEnabled
+ r.WifiSsid = m.WifiSsid
+ r.WifiPsk = m.WifiPsk
+ r.NtpServer = m.NtpServer
+ r.EthEnabled = m.EthEnabled
+ r.AddressMode = m.AddressMode
+ r.Ipv4Config = m.Ipv4Config.CloneVT()
+ r.RsyslogServer = m.RsyslogServer
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_NetworkConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_DisplayConfig) CloneVT() *Config_DisplayConfig {
+ if m == nil {
+ return (*Config_DisplayConfig)(nil)
+ }
+ r := new(Config_DisplayConfig)
+ r.ScreenOnSecs = m.ScreenOnSecs
+ r.GpsFormat = m.GpsFormat
+ r.AutoScreenCarouselSecs = m.AutoScreenCarouselSecs
+ r.CompassNorthTop = m.CompassNorthTop
+ r.FlipScreen = m.FlipScreen
+ r.Units = m.Units
+ r.Oled = m.Oled
+ r.Displaymode = m.Displaymode
+ r.HeadingBold = m.HeadingBold
+ r.WakeOnTapOrMotion = m.WakeOnTapOrMotion
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_DisplayConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_LoRaConfig) CloneVT() *Config_LoRaConfig {
+ if m == nil {
+ return (*Config_LoRaConfig)(nil)
+ }
+ r := new(Config_LoRaConfig)
+ r.UsePreset = m.UsePreset
+ r.ModemPreset = m.ModemPreset
+ r.Bandwidth = m.Bandwidth
+ r.SpreadFactor = m.SpreadFactor
+ r.CodingRate = m.CodingRate
+ r.FrequencyOffset = m.FrequencyOffset
+ r.Region = m.Region
+ r.HopLimit = m.HopLimit
+ r.TxEnabled = m.TxEnabled
+ r.TxPower = m.TxPower
+ r.ChannelNum = m.ChannelNum
+ r.OverrideDutyCycle = m.OverrideDutyCycle
+ r.Sx126XRxBoostedGain = m.Sx126XRxBoostedGain
+ r.OverrideFrequency = m.OverrideFrequency
+ r.IgnoreMqtt = m.IgnoreMqtt
+ if rhs := m.IgnoreIncoming; rhs != nil {
+ tmpContainer := make([]uint32, len(rhs))
+ copy(tmpContainer, rhs)
+ r.IgnoreIncoming = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_LoRaConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_BluetoothConfig) CloneVT() *Config_BluetoothConfig {
+ if m == nil {
+ return (*Config_BluetoothConfig)(nil)
+ }
+ r := new(Config_BluetoothConfig)
+ r.Enabled = m.Enabled
+ r.Mode = m.Mode
+ r.FixedPin = m.FixedPin
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config_BluetoothConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config) CloneVT() *Config {
+ if m == nil {
+ return (*Config)(nil)
+ }
+ r := new(Config)
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isConfig_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Config) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Config_Device) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Device)(nil)
+ }
+ r := new(Config_Device)
+ r.Device = m.Device.CloneVT()
+ return r
+}
+
+func (m *Config_Position) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Position)(nil)
+ }
+ r := new(Config_Position)
+ r.Position = m.Position.CloneVT()
+ return r
+}
+
+func (m *Config_Power) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Power)(nil)
+ }
+ r := new(Config_Power)
+ r.Power = m.Power.CloneVT()
+ return r
+}
+
+func (m *Config_Network) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Network)(nil)
+ }
+ r := new(Config_Network)
+ r.Network = m.Network.CloneVT()
+ return r
+}
+
+func (m *Config_Display) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Display)(nil)
+ }
+ r := new(Config_Display)
+ r.Display = m.Display.CloneVT()
+ return r
+}
+
+func (m *Config_Lora) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Lora)(nil)
+ }
+ r := new(Config_Lora)
+ r.Lora = m.Lora.CloneVT()
+ return r
+}
+
+func (m *Config_Bluetooth) CloneVT() isConfig_PayloadVariant {
+ if m == nil {
+ return (*Config_Bluetooth)(nil)
+ }
+ r := new(Config_Bluetooth)
+ r.Bluetooth = m.Bluetooth.CloneVT()
+ return r
+}
+
+func (this *Config_DeviceConfig) EqualVT(that *Config_DeviceConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Role != that.Role {
+ return false
+ }
+ if this.SerialEnabled != that.SerialEnabled {
+ return false
+ }
+ if this.DebugLogEnabled != that.DebugLogEnabled {
+ return false
+ }
+ if this.ButtonGpio != that.ButtonGpio {
+ return false
+ }
+ if this.BuzzerGpio != that.BuzzerGpio {
+ return false
+ }
+ if this.RebroadcastMode != that.RebroadcastMode {
+ return false
+ }
+ if this.NodeInfoBroadcastSecs != that.NodeInfoBroadcastSecs {
+ return false
+ }
+ if this.DoubleTapAsButtonPress != that.DoubleTapAsButtonPress {
+ return false
+ }
+ if this.IsManaged != that.IsManaged {
+ return false
+ }
+ if this.DisableTripleClick != that.DisableTripleClick {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_DeviceConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_DeviceConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_PositionConfig) EqualVT(that *Config_PositionConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PositionBroadcastSecs != that.PositionBroadcastSecs {
+ return false
+ }
+ if this.PositionBroadcastSmartEnabled != that.PositionBroadcastSmartEnabled {
+ return false
+ }
+ if this.FixedPosition != that.FixedPosition {
+ return false
+ }
+ if this.GpsEnabled != that.GpsEnabled {
+ return false
+ }
+ if this.GpsUpdateInterval != that.GpsUpdateInterval {
+ return false
+ }
+ if this.GpsAttemptTime != that.GpsAttemptTime {
+ return false
+ }
+ if this.PositionFlags != that.PositionFlags {
+ return false
+ }
+ if this.RxGpio != that.RxGpio {
+ return false
+ }
+ if this.TxGpio != that.TxGpio {
+ return false
+ }
+ if this.BroadcastSmartMinimumDistance != that.BroadcastSmartMinimumDistance {
+ return false
+ }
+ if this.BroadcastSmartMinimumIntervalSecs != that.BroadcastSmartMinimumIntervalSecs {
+ return false
+ }
+ if this.GpsEnGpio != that.GpsEnGpio {
+ return false
+ }
+ if this.GpsMode != that.GpsMode {
+ return false
+ }
+ if len(this.ChannelPrecision) != len(that.ChannelPrecision) {
+ return false
+ }
+ for i, vx := range this.ChannelPrecision {
+ vy := that.ChannelPrecision[i]
+ if vx != vy {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_PositionConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_PositionConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_PowerConfig) EqualVT(that *Config_PowerConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.IsPowerSaving != that.IsPowerSaving {
+ return false
+ }
+ if this.OnBatteryShutdownAfterSecs != that.OnBatteryShutdownAfterSecs {
+ return false
+ }
+ if this.AdcMultiplierOverride != that.AdcMultiplierOverride {
+ return false
+ }
+ if this.WaitBluetoothSecs != that.WaitBluetoothSecs {
+ return false
+ }
+ if this.SdsSecs != that.SdsSecs {
+ return false
+ }
+ if this.LsSecs != that.LsSecs {
+ return false
+ }
+ if this.MinWakeSecs != that.MinWakeSecs {
+ return false
+ }
+ if this.DeviceBatteryInaAddress != that.DeviceBatteryInaAddress {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_PowerConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_PowerConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_NetworkConfig_IpV4Config) EqualVT(that *Config_NetworkConfig_IpV4Config) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Ip != that.Ip {
+ return false
+ }
+ if this.Gateway != that.Gateway {
+ return false
+ }
+ if this.Subnet != that.Subnet {
+ return false
+ }
+ if this.Dns != that.Dns {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_NetworkConfig_IpV4Config) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_NetworkConfig_IpV4Config)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_NetworkConfig) EqualVT(that *Config_NetworkConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.WifiEnabled != that.WifiEnabled {
+ return false
+ }
+ if this.WifiSsid != that.WifiSsid {
+ return false
+ }
+ if this.WifiPsk != that.WifiPsk {
+ return false
+ }
+ if this.NtpServer != that.NtpServer {
+ return false
+ }
+ if this.EthEnabled != that.EthEnabled {
+ return false
+ }
+ if this.AddressMode != that.AddressMode {
+ return false
+ }
+ if !this.Ipv4Config.EqualVT(that.Ipv4Config) {
+ return false
+ }
+ if this.RsyslogServer != that.RsyslogServer {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_NetworkConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_NetworkConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_DisplayConfig) EqualVT(that *Config_DisplayConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.ScreenOnSecs != that.ScreenOnSecs {
+ return false
+ }
+ if this.GpsFormat != that.GpsFormat {
+ return false
+ }
+ if this.AutoScreenCarouselSecs != that.AutoScreenCarouselSecs {
+ return false
+ }
+ if this.CompassNorthTop != that.CompassNorthTop {
+ return false
+ }
+ if this.FlipScreen != that.FlipScreen {
+ return false
+ }
+ if this.Units != that.Units {
+ return false
+ }
+ if this.Oled != that.Oled {
+ return false
+ }
+ if this.Displaymode != that.Displaymode {
+ return false
+ }
+ if this.HeadingBold != that.HeadingBold {
+ return false
+ }
+ if this.WakeOnTapOrMotion != that.WakeOnTapOrMotion {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_DisplayConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_DisplayConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_LoRaConfig) EqualVT(that *Config_LoRaConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.UsePreset != that.UsePreset {
+ return false
+ }
+ if this.ModemPreset != that.ModemPreset {
+ return false
+ }
+ if this.Bandwidth != that.Bandwidth {
+ return false
+ }
+ if this.SpreadFactor != that.SpreadFactor {
+ return false
+ }
+ if this.CodingRate != that.CodingRate {
+ return false
+ }
+ if this.FrequencyOffset != that.FrequencyOffset {
+ return false
+ }
+ if this.Region != that.Region {
+ return false
+ }
+ if this.HopLimit != that.HopLimit {
+ return false
+ }
+ if this.TxEnabled != that.TxEnabled {
+ return false
+ }
+ if this.TxPower != that.TxPower {
+ return false
+ }
+ if this.ChannelNum != that.ChannelNum {
+ return false
+ }
+ if this.OverrideDutyCycle != that.OverrideDutyCycle {
+ return false
+ }
+ if this.Sx126XRxBoostedGain != that.Sx126XRxBoostedGain {
+ return false
+ }
+ if this.OverrideFrequency != that.OverrideFrequency {
+ return false
+ }
+ if len(this.IgnoreIncoming) != len(that.IgnoreIncoming) {
+ return false
+ }
+ for i, vx := range this.IgnoreIncoming {
+ vy := that.IgnoreIncoming[i]
+ if vx != vy {
+ return false
+ }
+ }
+ if this.IgnoreMqtt != that.IgnoreMqtt {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_LoRaConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_LoRaConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_BluetoothConfig) EqualVT(that *Config_BluetoothConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.Mode != that.Mode {
+ return false
+ }
+ if this.FixedPin != that.FixedPin {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config_BluetoothConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config_BluetoothConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config) EqualVT(that *Config) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isConfig_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Config) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Config)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Config_Device) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Device)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Device, that.Device; p != q {
+ if p == nil {
+ p = &Config_DeviceConfig{}
+ }
+ if q == nil {
+ q = &Config_DeviceConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Position) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Position)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Position, that.Position; p != q {
+ if p == nil {
+ p = &Config_PositionConfig{}
+ }
+ if q == nil {
+ q = &Config_PositionConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Power) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Power)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Power, that.Power; p != q {
+ if p == nil {
+ p = &Config_PowerConfig{}
+ }
+ if q == nil {
+ q = &Config_PowerConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Network) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Network)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Network, that.Network; p != q {
+ if p == nil {
+ p = &Config_NetworkConfig{}
+ }
+ if q == nil {
+ q = &Config_NetworkConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Display) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Display)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Display, that.Display; p != q {
+ if p == nil {
+ p = &Config_DisplayConfig{}
+ }
+ if q == nil {
+ q = &Config_DisplayConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Lora) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Lora)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Lora, that.Lora; p != q {
+ if p == nil {
+ p = &Config_LoRaConfig{}
+ }
+ if q == nil {
+ q = &Config_LoRaConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Config_Bluetooth) EqualVT(thatIface isConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*Config_Bluetooth)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Bluetooth, that.Bluetooth; p != q {
+ if p == nil {
+ p = &Config_BluetoothConfig{}
+ }
+ if q == nil {
+ q = &Config_BluetoothConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (m *Config_DeviceConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_DeviceConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_DeviceConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DisableTripleClick {
+ i--
+ if m.DisableTripleClick {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.IsManaged {
+ i--
+ if m.IsManaged {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.DoubleTapAsButtonPress {
+ i--
+ if m.DoubleTapAsButtonPress {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.NodeInfoBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeInfoBroadcastSecs))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.RebroadcastMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebroadcastMode))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.BuzzerGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BuzzerGpio))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.ButtonGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ButtonGpio))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.DebugLogEnabled {
+ i--
+ if m.DebugLogEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.SerialEnabled {
+ i--
+ if m.SerialEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_PositionConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_PositionConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_PositionConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.ChannelPrecision) > 0 {
+ var pksize2 int
+ for _, num := range m.ChannelPrecision {
+ pksize2 += protohelpers.SizeOfVarint(uint64(num))
+ }
+ i -= pksize2
+ j1 := i
+ for _, num := range m.ChannelPrecision {
+ for num >= 1<<7 {
+ dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j1++
+ }
+ dAtA[j1] = uint8(num)
+ j1++
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
+ i--
+ dAtA[i] = 0x72
+ }
+ if m.GpsMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsMode))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.GpsEnGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsEnGpio))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.BroadcastSmartMinimumIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BroadcastSmartMinimumIntervalSecs))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.BroadcastSmartMinimumDistance != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BroadcastSmartMinimumDistance))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.TxGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxGpio))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.RxGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RxGpio))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.PositionFlags != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionFlags))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.GpsAttemptTime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsAttemptTime))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.GpsUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsUpdateInterval))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.GpsEnabled {
+ i--
+ if m.GpsEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.FixedPosition {
+ i--
+ if m.FixedPosition {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.PositionBroadcastSmartEnabled {
+ i--
+ if m.PositionBroadcastSmartEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.PositionBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionBroadcastSecs))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_PowerConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_PowerConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_PowerConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DeviceBatteryInaAddress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceBatteryInaAddress))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.MinWakeSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinWakeSecs))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.LsSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LsSecs))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.SdsSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SdsSecs))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.WaitBluetoothSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WaitBluetoothSecs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.AdcMultiplierOverride != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.AdcMultiplierOverride))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.OnBatteryShutdownAfterSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OnBatteryShutdownAfterSecs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.IsPowerSaving {
+ i--
+ if m.IsPowerSaving {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Dns != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Dns))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Subnet != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Subnet))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Gateway != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gateway))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Ip != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Ip))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_NetworkConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_NetworkConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_NetworkConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.RsyslogServer) > 0 {
+ i -= len(m.RsyslogServer)
+ copy(dAtA[i:], m.RsyslogServer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RsyslogServer)))
+ i--
+ dAtA[i] = 0x4a
+ }
+ if m.Ipv4Config != nil {
+ size, err := m.Ipv4Config.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.AddressMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AddressMode))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.EthEnabled {
+ i--
+ if m.EthEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if len(m.NtpServer) > 0 {
+ i -= len(m.NtpServer)
+ copy(dAtA[i:], m.NtpServer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NtpServer)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if len(m.WifiPsk) > 0 {
+ i -= len(m.WifiPsk)
+ copy(dAtA[i:], m.WifiPsk)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WifiPsk)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.WifiSsid) > 0 {
+ i -= len(m.WifiSsid)
+ copy(dAtA[i:], m.WifiSsid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WifiSsid)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.WifiEnabled {
+ i--
+ if m.WifiEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_DisplayConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_DisplayConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_DisplayConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.WakeOnTapOrMotion {
+ i--
+ if m.WakeOnTapOrMotion {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HeadingBold {
+ i--
+ if m.HeadingBold {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Displaymode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Displaymode))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Oled != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Oled))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Units != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Units))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.FlipScreen {
+ i--
+ if m.FlipScreen {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.CompassNorthTop {
+ i--
+ if m.CompassNorthTop {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.AutoScreenCarouselSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AutoScreenCarouselSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.GpsFormat != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsFormat))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.ScreenOnSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ScreenOnSecs))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_LoRaConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_LoRaConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_LoRaConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IgnoreMqtt {
+ i--
+ if m.IgnoreMqtt {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xc0
+ }
+ if len(m.IgnoreIncoming) > 0 {
+ var pksize2 int
+ for _, num := range m.IgnoreIncoming {
+ pksize2 += protohelpers.SizeOfVarint(uint64(num))
+ }
+ i -= pksize2
+ j1 := i
+ for _, num := range m.IgnoreIncoming {
+ for num >= 1<<7 {
+ dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j1++
+ }
+ dAtA[j1] = uint8(num)
+ j1++
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xba
+ }
+ if m.OverrideFrequency != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.OverrideFrequency))))
+ i--
+ dAtA[i] = 0x75
+ }
+ if m.Sx126XRxBoostedGain {
+ i--
+ if m.Sx126XRxBoostedGain {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.OverrideDutyCycle {
+ i--
+ if m.OverrideDutyCycle {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.ChannelNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ChannelNum))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.TxPower != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxPower))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.TxEnabled {
+ i--
+ if m.TxEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.HopLimit != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HopLimit))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Region != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Region))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.FrequencyOffset != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.FrequencyOffset))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.CodingRate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CodingRate))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.SpreadFactor != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SpreadFactor))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Bandwidth != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bandwidth))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.ModemPreset != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ModemPreset))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.UsePreset {
+ i--
+ if m.UsePreset {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_BluetoothConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_BluetoothConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_BluetoothConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.FixedPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixedPin))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Mode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Mode))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_Device) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Device) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Device != nil {
+ size, err := m.Device.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Position) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Position) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Power) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Power) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Power != nil {
+ size, err := m.Power.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Network) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Network) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Network != nil {
+ size, err := m.Network.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Display) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Display) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Display != nil {
+ size, err := m.Display.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Lora) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Lora) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Lora != nil {
+ size, err := m.Lora.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Bluetooth) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Config_Bluetooth) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_DeviceConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_DeviceConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_DeviceConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DisableTripleClick {
+ i--
+ if m.DisableTripleClick {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.IsManaged {
+ i--
+ if m.IsManaged {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.DoubleTapAsButtonPress {
+ i--
+ if m.DoubleTapAsButtonPress {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.NodeInfoBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeInfoBroadcastSecs))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.RebroadcastMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebroadcastMode))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.BuzzerGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BuzzerGpio))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.ButtonGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ButtonGpio))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.DebugLogEnabled {
+ i--
+ if m.DebugLogEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.SerialEnabled {
+ i--
+ if m.SerialEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_PositionConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_PositionConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_PositionConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.ChannelPrecision) > 0 {
+ var pksize2 int
+ for _, num := range m.ChannelPrecision {
+ pksize2 += protohelpers.SizeOfVarint(uint64(num))
+ }
+ i -= pksize2
+ j1 := i
+ for _, num := range m.ChannelPrecision {
+ for num >= 1<<7 {
+ dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j1++
+ }
+ dAtA[j1] = uint8(num)
+ j1++
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
+ i--
+ dAtA[i] = 0x72
+ }
+ if m.GpsMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsMode))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.GpsEnGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsEnGpio))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.BroadcastSmartMinimumIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BroadcastSmartMinimumIntervalSecs))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.BroadcastSmartMinimumDistance != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BroadcastSmartMinimumDistance))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.TxGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxGpio))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.RxGpio != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RxGpio))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.PositionFlags != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionFlags))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.GpsAttemptTime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsAttemptTime))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.GpsUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsUpdateInterval))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.GpsEnabled {
+ i--
+ if m.GpsEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.FixedPosition {
+ i--
+ if m.FixedPosition {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.PositionBroadcastSmartEnabled {
+ i--
+ if m.PositionBroadcastSmartEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.PositionBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionBroadcastSecs))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_PowerConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_PowerConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_PowerConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.DeviceBatteryInaAddress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceBatteryInaAddress))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.MinWakeSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinWakeSecs))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.LsSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LsSecs))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.SdsSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SdsSecs))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.WaitBluetoothSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WaitBluetoothSecs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.AdcMultiplierOverride != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.AdcMultiplierOverride))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.OnBatteryShutdownAfterSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OnBatteryShutdownAfterSecs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.IsPowerSaving {
+ i--
+ if m.IsPowerSaving {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_NetworkConfig_IpV4Config) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Dns != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Dns))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Subnet != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Subnet))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Gateway != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Gateway))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Ip != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Ip))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_NetworkConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_NetworkConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_NetworkConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.RsyslogServer) > 0 {
+ i -= len(m.RsyslogServer)
+ copy(dAtA[i:], m.RsyslogServer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RsyslogServer)))
+ i--
+ dAtA[i] = 0x4a
+ }
+ if m.Ipv4Config != nil {
+ size, err := m.Ipv4Config.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.AddressMode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AddressMode))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.EthEnabled {
+ i--
+ if m.EthEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if len(m.NtpServer) > 0 {
+ i -= len(m.NtpServer)
+ copy(dAtA[i:], m.NtpServer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NtpServer)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if len(m.WifiPsk) > 0 {
+ i -= len(m.WifiPsk)
+ copy(dAtA[i:], m.WifiPsk)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WifiPsk)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.WifiSsid) > 0 {
+ i -= len(m.WifiSsid)
+ copy(dAtA[i:], m.WifiSsid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.WifiSsid)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.WifiEnabled {
+ i--
+ if m.WifiEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_DisplayConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_DisplayConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_DisplayConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.WakeOnTapOrMotion {
+ i--
+ if m.WakeOnTapOrMotion {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HeadingBold {
+ i--
+ if m.HeadingBold {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Displaymode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Displaymode))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Oled != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Oled))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Units != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Units))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.FlipScreen {
+ i--
+ if m.FlipScreen {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.CompassNorthTop {
+ i--
+ if m.CompassNorthTop {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.AutoScreenCarouselSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AutoScreenCarouselSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.GpsFormat != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsFormat))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.ScreenOnSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ScreenOnSecs))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_LoRaConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_LoRaConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_LoRaConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IgnoreMqtt {
+ i--
+ if m.IgnoreMqtt {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xc0
+ }
+ if len(m.IgnoreIncoming) > 0 {
+ var pksize2 int
+ for _, num := range m.IgnoreIncoming {
+ pksize2 += protohelpers.SizeOfVarint(uint64(num))
+ }
+ i -= pksize2
+ j1 := i
+ for _, num := range m.IgnoreIncoming {
+ for num >= 1<<7 {
+ dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j1++
+ }
+ dAtA[j1] = uint8(num)
+ j1++
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
+ i--
+ dAtA[i] = 0x6
+ i--
+ dAtA[i] = 0xba
+ }
+ if m.OverrideFrequency != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.OverrideFrequency))))
+ i--
+ dAtA[i] = 0x75
+ }
+ if m.Sx126XRxBoostedGain {
+ i--
+ if m.Sx126XRxBoostedGain {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.OverrideDutyCycle {
+ i--
+ if m.OverrideDutyCycle {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.ChannelNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ChannelNum))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.TxPower != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TxPower))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.TxEnabled {
+ i--
+ if m.TxEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.HopLimit != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HopLimit))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Region != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Region))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.FrequencyOffset != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.FrequencyOffset))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.CodingRate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CodingRate))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.SpreadFactor != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SpreadFactor))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Bandwidth != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bandwidth))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.ModemPreset != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ModemPreset))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.UsePreset {
+ i--
+ if m.UsePreset {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_BluetoothConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config_BluetoothConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_BluetoothConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.FixedPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixedPin))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Mode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Mode))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Config) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Bluetooth); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Lora); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Display); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Network); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Power); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Position); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*Config_Device); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Config_Device) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Device) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Device != nil {
+ size, err := m.Device.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Position) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Position) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Power) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Power) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Power != nil {
+ size, err := m.Power.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Network) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Network) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Network != nil {
+ size, err := m.Network.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Display) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Display) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Display != nil {
+ size, err := m.Display.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Lora) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Lora) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Lora != nil {
+ size, err := m.Lora.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_Bluetooth) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Config_Bluetooth) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Config_DeviceConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Role != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Role))
+ }
+ if m.SerialEnabled {
+ n += 2
+ }
+ if m.DebugLogEnabled {
+ n += 2
+ }
+ if m.ButtonGpio != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ButtonGpio))
+ }
+ if m.BuzzerGpio != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.BuzzerGpio))
+ }
+ if m.RebroadcastMode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.RebroadcastMode))
+ }
+ if m.NodeInfoBroadcastSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeInfoBroadcastSecs))
+ }
+ if m.DoubleTapAsButtonPress {
+ n += 2
+ }
+ if m.IsManaged {
+ n += 2
+ }
+ if m.DisableTripleClick {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_PositionConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.PositionBroadcastSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PositionBroadcastSecs))
+ }
+ if m.PositionBroadcastSmartEnabled {
+ n += 2
+ }
+ if m.FixedPosition {
+ n += 2
+ }
+ if m.GpsEnabled {
+ n += 2
+ }
+ if m.GpsUpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsUpdateInterval))
+ }
+ if m.GpsAttemptTime != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsAttemptTime))
+ }
+ if m.PositionFlags != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PositionFlags))
+ }
+ if m.RxGpio != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.RxGpio))
+ }
+ if m.TxGpio != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TxGpio))
+ }
+ if m.BroadcastSmartMinimumDistance != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.BroadcastSmartMinimumDistance))
+ }
+ if m.BroadcastSmartMinimumIntervalSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.BroadcastSmartMinimumIntervalSecs))
+ }
+ if m.GpsEnGpio != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsEnGpio))
+ }
+ if m.GpsMode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsMode))
+ }
+ if len(m.ChannelPrecision) > 0 {
+ l = 0
+ for _, e := range m.ChannelPrecision {
+ l += protohelpers.SizeOfVarint(uint64(e))
+ }
+ n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_PowerConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.IsPowerSaving {
+ n += 2
+ }
+ if m.OnBatteryShutdownAfterSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OnBatteryShutdownAfterSecs))
+ }
+ if m.AdcMultiplierOverride != 0 {
+ n += 5
+ }
+ if m.WaitBluetoothSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.WaitBluetoothSecs))
+ }
+ if m.SdsSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.SdsSecs))
+ }
+ if m.LsSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LsSecs))
+ }
+ if m.MinWakeSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MinWakeSecs))
+ }
+ if m.DeviceBatteryInaAddress != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.DeviceBatteryInaAddress))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_NetworkConfig_IpV4Config) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Ip != 0 {
+ n += 5
+ }
+ if m.Gateway != 0 {
+ n += 5
+ }
+ if m.Subnet != 0 {
+ n += 5
+ }
+ if m.Dns != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_NetworkConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.WifiEnabled {
+ n += 2
+ }
+ l = len(m.WifiSsid)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.WifiPsk)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.NtpServer)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.EthEnabled {
+ n += 2
+ }
+ if m.AddressMode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.AddressMode))
+ }
+ if m.Ipv4Config != nil {
+ l = m.Ipv4Config.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.RsyslogServer)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_DisplayConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ScreenOnSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ScreenOnSecs))
+ }
+ if m.GpsFormat != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsFormat))
+ }
+ if m.AutoScreenCarouselSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.AutoScreenCarouselSecs))
+ }
+ if m.CompassNorthTop {
+ n += 2
+ }
+ if m.FlipScreen {
+ n += 2
+ }
+ if m.Units != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Units))
+ }
+ if m.Oled != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Oled))
+ }
+ if m.Displaymode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Displaymode))
+ }
+ if m.HeadingBold {
+ n += 2
+ }
+ if m.WakeOnTapOrMotion {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_LoRaConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.UsePreset {
+ n += 2
+ }
+ if m.ModemPreset != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ModemPreset))
+ }
+ if m.Bandwidth != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Bandwidth))
+ }
+ if m.SpreadFactor != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.SpreadFactor))
+ }
+ if m.CodingRate != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.CodingRate))
+ }
+ if m.FrequencyOffset != 0 {
+ n += 5
+ }
+ if m.Region != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Region))
+ }
+ if m.HopLimit != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HopLimit))
+ }
+ if m.TxEnabled {
+ n += 2
+ }
+ if m.TxPower != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TxPower))
+ }
+ if m.ChannelNum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ChannelNum))
+ }
+ if m.OverrideDutyCycle {
+ n += 2
+ }
+ if m.Sx126XRxBoostedGain {
+ n += 2
+ }
+ if m.OverrideFrequency != 0 {
+ n += 5
+ }
+ if len(m.IgnoreIncoming) > 0 {
+ l = 0
+ for _, e := range m.IgnoreIncoming {
+ l += protohelpers.SizeOfVarint(uint64(e))
+ }
+ n += 2 + protohelpers.SizeOfVarint(uint64(l)) + l
+ }
+ if m.IgnoreMqtt {
+ n += 3
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_BluetoothConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.Mode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Mode))
+ }
+ if m.FixedPin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.FixedPin))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Config_Device) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Device != nil {
+ l = m.Device.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Position) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Position != nil {
+ l = m.Position.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Power) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Power != nil {
+ l = m.Power.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Network) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Network != nil {
+ l = m.Network.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Display) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Display != nil {
+ l = m.Display.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Lora) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Lora != nil {
+ l = m.Lora.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_Bluetooth) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Bluetooth != nil {
+ l = m.Bluetooth.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Config_DeviceConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_DeviceConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_DeviceConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SerialEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SerialEnabled = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DebugLogEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DebugLogEnabled = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ButtonGpio", wireType)
+ }
+ m.ButtonGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ButtonGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BuzzerGpio", wireType)
+ }
+ m.BuzzerGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BuzzerGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebroadcastMode", wireType)
+ }
+ m.RebroadcastMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RebroadcastMode |= Config_DeviceConfig_RebroadcastMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeInfoBroadcastSecs", wireType)
+ }
+ m.NodeInfoBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeInfoBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DoubleTapAsButtonPress", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DoubleTapAsButtonPress = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsManaged", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsManaged = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DisableTripleClick", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DisableTripleClick = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_PositionConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_PositionConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_PositionConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionBroadcastSecs", wireType)
+ }
+ m.PositionBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionBroadcastSmartEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PositionBroadcastSmartEnabled = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixedPosition", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.FixedPosition = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.GpsEnabled = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsUpdateInterval", wireType)
+ }
+ m.GpsUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsAttemptTime", wireType)
+ }
+ m.GpsAttemptTime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsAttemptTime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionFlags", wireType)
+ }
+ m.PositionFlags = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionFlags |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxGpio", wireType)
+ }
+ m.RxGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RxGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxGpio", wireType)
+ }
+ m.TxGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BroadcastSmartMinimumDistance", wireType)
+ }
+ m.BroadcastSmartMinimumDistance = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BroadcastSmartMinimumDistance |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BroadcastSmartMinimumIntervalSecs", wireType)
+ }
+ m.BroadcastSmartMinimumIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BroadcastSmartMinimumIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsEnGpio", wireType)
+ }
+ m.GpsEnGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsEnGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsMode", wireType)
+ }
+ m.GpsMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsMode |= Config_PositionConfig_GpsMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType == 0 {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ChannelPrecision = append(m.ChannelPrecision, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.ChannelPrecision) == 0 {
+ m.ChannelPrecision = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ChannelPrecision = append(m.ChannelPrecision, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelPrecision", wireType)
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_PowerConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_PowerConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_PowerConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsPowerSaving", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsPowerSaving = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OnBatteryShutdownAfterSecs", wireType)
+ }
+ m.OnBatteryShutdownAfterSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OnBatteryShutdownAfterSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AdcMultiplierOverride", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.AdcMultiplierOverride = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WaitBluetoothSecs", wireType)
+ }
+ m.WaitBluetoothSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.WaitBluetoothSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SdsSecs", wireType)
+ }
+ m.SdsSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SdsSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LsSecs", wireType)
+ }
+ m.LsSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LsSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinWakeSecs", wireType)
+ }
+ m.MinWakeSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinWakeSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceBatteryInaAddress", wireType)
+ }
+ m.DeviceBatteryInaAddress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceBatteryInaAddress |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_NetworkConfig_IpV4Config) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_NetworkConfig_IpV4Config: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_NetworkConfig_IpV4Config: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
+ }
+ m.Ip = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Ip = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Gateway", wireType)
+ }
+ m.Gateway = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Gateway = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Subnet", wireType)
+ }
+ m.Subnet = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Subnet = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dns", wireType)
+ }
+ m.Dns = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dns = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_NetworkConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_NetworkConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_NetworkConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WifiEnabled = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiSsid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.WifiSsid = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiPsk", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.WifiPsk = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NtpServer", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NtpServer = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EthEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EthEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AddressMode", wireType)
+ }
+ m.AddressMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AddressMode |= Config_NetworkConfig_AddressMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ipv4Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Ipv4Config == nil {
+ m.Ipv4Config = &Config_NetworkConfig_IpV4Config{}
+ }
+ if err := m.Ipv4Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RsyslogServer", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RsyslogServer = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_DisplayConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_DisplayConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_DisplayConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ScreenOnSecs", wireType)
+ }
+ m.ScreenOnSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ScreenOnSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsFormat", wireType)
+ }
+ m.GpsFormat = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsFormat |= Config_DisplayConfig_GpsCoordinateFormat(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AutoScreenCarouselSecs", wireType)
+ }
+ m.AutoScreenCarouselSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AutoScreenCarouselSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CompassNorthTop", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.CompassNorthTop = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FlipScreen", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.FlipScreen = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Units", wireType)
+ }
+ m.Units = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Units |= Config_DisplayConfig_DisplayUnits(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Oled", wireType)
+ }
+ m.Oled = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Oled |= Config_DisplayConfig_OledType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Displaymode", wireType)
+ }
+ m.Displaymode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Displaymode |= Config_DisplayConfig_DisplayMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HeadingBold", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HeadingBold = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WakeOnTapOrMotion", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WakeOnTapOrMotion = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_LoRaConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_LoRaConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_LoRaConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePreset", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePreset = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModemPreset", wireType)
+ }
+ m.ModemPreset = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ModemPreset |= Config_LoRaConfig_ModemPreset(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bandwidth", wireType)
+ }
+ m.Bandwidth = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Bandwidth |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SpreadFactor", wireType)
+ }
+ m.SpreadFactor = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SpreadFactor |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CodingRate", wireType)
+ }
+ m.CodingRate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.CodingRate |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FrequencyOffset", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.FrequencyOffset = float32(math.Float32frombits(v))
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType)
+ }
+ m.Region = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Region |= Config_LoRaConfig_RegionCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HopLimit", wireType)
+ }
+ m.HopLimit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HopLimit |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.TxEnabled = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxPower", wireType)
+ }
+ m.TxPower = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxPower |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelNum", wireType)
+ }
+ m.ChannelNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ChannelNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideDutyCycle", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.OverrideDutyCycle = bool(v != 0)
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Sx126XRxBoostedGain", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Sx126XRxBoostedGain = bool(v != 0)
+ case 14:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideFrequency", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.OverrideFrequency = float32(math.Float32frombits(v))
+ case 103:
+ if wireType == 0 {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreIncoming = append(m.IgnoreIncoming, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.IgnoreIncoming) == 0 {
+ m.IgnoreIncoming = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreIncoming = append(m.IgnoreIncoming, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreIncoming", wireType)
+ }
+ case 104:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreMqtt", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreMqtt = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_BluetoothConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_BluetoothConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_BluetoothConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
+ }
+ m.Mode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Mode |= Config_BluetoothConfig_PairingMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixedPin", wireType)
+ }
+ m.FixedPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixedPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Device); ok {
+ if err := oneof.Device.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_DeviceConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Device{Device: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Position); ok {
+ if err := oneof.Position.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_PositionConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Position{Position: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Power); ok {
+ if err := oneof.Power.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_PowerConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Power{Power: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Network); ok {
+ if err := oneof.Network.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_NetworkConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Network{Network: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Display); ok {
+ if err := oneof.Display.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_DisplayConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Display{Display: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lora", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Lora); ok {
+ if err := oneof.Lora.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_LoRaConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Lora{Lora: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Bluetooth); ok {
+ if err := oneof.Bluetooth.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_BluetoothConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Bluetooth{Bluetooth: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_DeviceConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_DeviceConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_DeviceConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SerialEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SerialEnabled = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DebugLogEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DebugLogEnabled = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ButtonGpio", wireType)
+ }
+ m.ButtonGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ButtonGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BuzzerGpio", wireType)
+ }
+ m.BuzzerGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BuzzerGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebroadcastMode", wireType)
+ }
+ m.RebroadcastMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RebroadcastMode |= Config_DeviceConfig_RebroadcastMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeInfoBroadcastSecs", wireType)
+ }
+ m.NodeInfoBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeInfoBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DoubleTapAsButtonPress", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DoubleTapAsButtonPress = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsManaged", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsManaged = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DisableTripleClick", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DisableTripleClick = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_PositionConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_PositionConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_PositionConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionBroadcastSecs", wireType)
+ }
+ m.PositionBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionBroadcastSmartEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PositionBroadcastSmartEnabled = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixedPosition", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.FixedPosition = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.GpsEnabled = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsUpdateInterval", wireType)
+ }
+ m.GpsUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsAttemptTime", wireType)
+ }
+ m.GpsAttemptTime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsAttemptTime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionFlags", wireType)
+ }
+ m.PositionFlags = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionFlags |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxGpio", wireType)
+ }
+ m.RxGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RxGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxGpio", wireType)
+ }
+ m.TxGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BroadcastSmartMinimumDistance", wireType)
+ }
+ m.BroadcastSmartMinimumDistance = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BroadcastSmartMinimumDistance |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BroadcastSmartMinimumIntervalSecs", wireType)
+ }
+ m.BroadcastSmartMinimumIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BroadcastSmartMinimumIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsEnGpio", wireType)
+ }
+ m.GpsEnGpio = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsEnGpio |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsMode", wireType)
+ }
+ m.GpsMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsMode |= Config_PositionConfig_GpsMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType == 0 {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ChannelPrecision = append(m.ChannelPrecision, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.ChannelPrecision) == 0 {
+ m.ChannelPrecision = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ChannelPrecision = append(m.ChannelPrecision, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelPrecision", wireType)
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_PowerConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_PowerConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_PowerConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsPowerSaving", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsPowerSaving = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OnBatteryShutdownAfterSecs", wireType)
+ }
+ m.OnBatteryShutdownAfterSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OnBatteryShutdownAfterSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AdcMultiplierOverride", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.AdcMultiplierOverride = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WaitBluetoothSecs", wireType)
+ }
+ m.WaitBluetoothSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.WaitBluetoothSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SdsSecs", wireType)
+ }
+ m.SdsSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SdsSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LsSecs", wireType)
+ }
+ m.LsSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LsSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinWakeSecs", wireType)
+ }
+ m.MinWakeSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinWakeSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceBatteryInaAddress", wireType)
+ }
+ m.DeviceBatteryInaAddress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceBatteryInaAddress |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_NetworkConfig_IpV4Config) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_NetworkConfig_IpV4Config: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_NetworkConfig_IpV4Config: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
+ }
+ m.Ip = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Ip = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Gateway", wireType)
+ }
+ m.Gateway = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Gateway = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Subnet", wireType)
+ }
+ m.Subnet = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Subnet = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dns", wireType)
+ }
+ m.Dns = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dns = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_NetworkConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_NetworkConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_NetworkConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WifiEnabled = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiSsid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.WifiSsid = stringValue
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WifiPsk", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.WifiPsk = stringValue
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NtpServer", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.NtpServer = stringValue
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EthEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EthEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AddressMode", wireType)
+ }
+ m.AddressMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AddressMode |= Config_NetworkConfig_AddressMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ipv4Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Ipv4Config == nil {
+ m.Ipv4Config = &Config_NetworkConfig_IpV4Config{}
+ }
+ if err := m.Ipv4Config.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RsyslogServer", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.RsyslogServer = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_DisplayConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_DisplayConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_DisplayConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ScreenOnSecs", wireType)
+ }
+ m.ScreenOnSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ScreenOnSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsFormat", wireType)
+ }
+ m.GpsFormat = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsFormat |= Config_DisplayConfig_GpsCoordinateFormat(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AutoScreenCarouselSecs", wireType)
+ }
+ m.AutoScreenCarouselSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AutoScreenCarouselSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CompassNorthTop", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.CompassNorthTop = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FlipScreen", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.FlipScreen = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Units", wireType)
+ }
+ m.Units = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Units |= Config_DisplayConfig_DisplayUnits(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Oled", wireType)
+ }
+ m.Oled = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Oled |= Config_DisplayConfig_OledType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Displaymode", wireType)
+ }
+ m.Displaymode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Displaymode |= Config_DisplayConfig_DisplayMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HeadingBold", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HeadingBold = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WakeOnTapOrMotion", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WakeOnTapOrMotion = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_LoRaConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_LoRaConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_LoRaConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePreset", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePreset = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModemPreset", wireType)
+ }
+ m.ModemPreset = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ModemPreset |= Config_LoRaConfig_ModemPreset(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bandwidth", wireType)
+ }
+ m.Bandwidth = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Bandwidth |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SpreadFactor", wireType)
+ }
+ m.SpreadFactor = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SpreadFactor |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CodingRate", wireType)
+ }
+ m.CodingRate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.CodingRate |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FrequencyOffset", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.FrequencyOffset = float32(math.Float32frombits(v))
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType)
+ }
+ m.Region = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Region |= Config_LoRaConfig_RegionCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HopLimit", wireType)
+ }
+ m.HopLimit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HopLimit |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.TxEnabled = bool(v != 0)
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TxPower", wireType)
+ }
+ m.TxPower = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TxPower |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelNum", wireType)
+ }
+ m.ChannelNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ChannelNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideDutyCycle", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.OverrideDutyCycle = bool(v != 0)
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Sx126XRxBoostedGain", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Sx126XRxBoostedGain = bool(v != 0)
+ case 14:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideFrequency", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.OverrideFrequency = float32(math.Float32frombits(v))
+ case 103:
+ if wireType == 0 {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreIncoming = append(m.IgnoreIncoming, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.IgnoreIncoming) == 0 {
+ m.IgnoreIncoming = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreIncoming = append(m.IgnoreIncoming, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreIncoming", wireType)
+ }
+ case 104:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreMqtt", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IgnoreMqtt = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config_BluetoothConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config_BluetoothConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config_BluetoothConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
+ }
+ m.Mode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Mode |= Config_BluetoothConfig_PairingMode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixedPin", wireType)
+ }
+ m.FixedPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixedPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Config) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Config: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Config: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Device); ok {
+ if err := oneof.Device.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_DeviceConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Device{Device: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Position); ok {
+ if err := oneof.Position.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_PositionConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Position{Position: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Power); ok {
+ if err := oneof.Power.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_PowerConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Power{Power: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Network); ok {
+ if err := oneof.Network.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_NetworkConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Network{Network: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Display); ok {
+ if err := oneof.Display.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_DisplayConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Display{Display: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lora", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Lora); ok {
+ if err := oneof.Lora.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_LoRaConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Lora{Lora: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*Config_Bluetooth); ok {
+ if err := oneof.Bluetooth.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config_BluetoothConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &Config_Bluetooth{Bluetooth: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/connection_status.pb.go b/meshtastic/connection_status.pb.go
new file mode 100644
index 0000000..abe4d5b
--- /dev/null
+++ b/meshtastic/connection_status.pb.go
@@ -0,0 +1,621 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/connection_status.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type DeviceConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // WiFi Status
+ Wifi *WifiConnectionStatus `protobuf:"bytes,1,opt,name=wifi,proto3,oneof" json:"wifi,omitempty"`
+ // WiFi Status
+ Ethernet *EthernetConnectionStatus `protobuf:"bytes,2,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"`
+ // Bluetooth Status
+ Bluetooth *BluetoothConnectionStatus `protobuf:"bytes,3,opt,name=bluetooth,proto3,oneof" json:"bluetooth,omitempty"`
+ // Serial Status
+ Serial *SerialConnectionStatus `protobuf:"bytes,4,opt,name=serial,proto3,oneof" json:"serial,omitempty"`
+}
+
+func (x *DeviceConnectionStatus) Reset() {
+ *x = DeviceConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceConnectionStatus) ProtoMessage() {}
+
+func (x *DeviceConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceConnectionStatus.ProtoReflect.Descriptor instead.
+func (*DeviceConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DeviceConnectionStatus) GetWifi() *WifiConnectionStatus {
+ if x != nil {
+ return x.Wifi
+ }
+ return nil
+}
+
+func (x *DeviceConnectionStatus) GetEthernet() *EthernetConnectionStatus {
+ if x != nil {
+ return x.Ethernet
+ }
+ return nil
+}
+
+func (x *DeviceConnectionStatus) GetBluetooth() *BluetoothConnectionStatus {
+ if x != nil {
+ return x.Bluetooth
+ }
+ return nil
+}
+
+func (x *DeviceConnectionStatus) GetSerial() *SerialConnectionStatus {
+ if x != nil {
+ return x.Serial
+ }
+ return nil
+}
+
+// WiFi connection status
+type WifiConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Connection status
+ Status *NetworkConnectionStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+ // WiFi access point SSID
+ Ssid string `protobuf:"bytes,2,opt,name=ssid,proto3" json:"ssid,omitempty"`
+ // RSSI of wireless connection
+ Rssi int32 `protobuf:"varint,3,opt,name=rssi,proto3" json:"rssi,omitempty"`
+}
+
+func (x *WifiConnectionStatus) Reset() {
+ *x = WifiConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WifiConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WifiConnectionStatus) ProtoMessage() {}
+
+func (x *WifiConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WifiConnectionStatus.ProtoReflect.Descriptor instead.
+func (*WifiConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *WifiConnectionStatus) GetStatus() *NetworkConnectionStatus {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
+func (x *WifiConnectionStatus) GetSsid() string {
+ if x != nil {
+ return x.Ssid
+ }
+ return ""
+}
+
+func (x *WifiConnectionStatus) GetRssi() int32 {
+ if x != nil {
+ return x.Rssi
+ }
+ return 0
+}
+
+// Ethernet connection status
+type EthernetConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Connection status
+ Status *NetworkConnectionStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+}
+
+func (x *EthernetConnectionStatus) Reset() {
+ *x = EthernetConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EthernetConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EthernetConnectionStatus) ProtoMessage() {}
+
+func (x *EthernetConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EthernetConnectionStatus.ProtoReflect.Descriptor instead.
+func (*EthernetConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *EthernetConnectionStatus) GetStatus() *NetworkConnectionStatus {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
+// Ethernet or WiFi connection status
+type NetworkConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // IP address of device
+ IpAddress uint32 `protobuf:"fixed32,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
+ // Whether the device has an active connection or not
+ IsConnected bool `protobuf:"varint,2,opt,name=is_connected,json=isConnected,proto3" json:"is_connected,omitempty"`
+ // Whether the device has an active connection to an MQTT broker or not
+ IsMqttConnected bool `protobuf:"varint,3,opt,name=is_mqtt_connected,json=isMqttConnected,proto3" json:"is_mqtt_connected,omitempty"`
+ // Whether the device is actively remote syslogging or not
+ IsSyslogConnected bool `protobuf:"varint,4,opt,name=is_syslog_connected,json=isSyslogConnected,proto3" json:"is_syslog_connected,omitempty"`
+}
+
+func (x *NetworkConnectionStatus) Reset() {
+ *x = NetworkConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NetworkConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NetworkConnectionStatus) ProtoMessage() {}
+
+func (x *NetworkConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NetworkConnectionStatus.ProtoReflect.Descriptor instead.
+func (*NetworkConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *NetworkConnectionStatus) GetIpAddress() uint32 {
+ if x != nil {
+ return x.IpAddress
+ }
+ return 0
+}
+
+func (x *NetworkConnectionStatus) GetIsConnected() bool {
+ if x != nil {
+ return x.IsConnected
+ }
+ return false
+}
+
+func (x *NetworkConnectionStatus) GetIsMqttConnected() bool {
+ if x != nil {
+ return x.IsMqttConnected
+ }
+ return false
+}
+
+func (x *NetworkConnectionStatus) GetIsSyslogConnected() bool {
+ if x != nil {
+ return x.IsSyslogConnected
+ }
+ return false
+}
+
+// Bluetooth connection status
+type BluetoothConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The pairing PIN for bluetooth
+ Pin uint32 `protobuf:"varint,1,opt,name=pin,proto3" json:"pin,omitempty"`
+ // RSSI of bluetooth connection
+ Rssi int32 `protobuf:"varint,2,opt,name=rssi,proto3" json:"rssi,omitempty"`
+ // Whether the device has an active connection or not
+ IsConnected bool `protobuf:"varint,3,opt,name=is_connected,json=isConnected,proto3" json:"is_connected,omitempty"`
+}
+
+func (x *BluetoothConnectionStatus) Reset() {
+ *x = BluetoothConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BluetoothConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BluetoothConnectionStatus) ProtoMessage() {}
+
+func (x *BluetoothConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BluetoothConnectionStatus.ProtoReflect.Descriptor instead.
+func (*BluetoothConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *BluetoothConnectionStatus) GetPin() uint32 {
+ if x != nil {
+ return x.Pin
+ }
+ return 0
+}
+
+func (x *BluetoothConnectionStatus) GetRssi() int32 {
+ if x != nil {
+ return x.Rssi
+ }
+ return 0
+}
+
+func (x *BluetoothConnectionStatus) GetIsConnected() bool {
+ if x != nil {
+ return x.IsConnected
+ }
+ return false
+}
+
+// Serial connection status
+type SerialConnectionStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Serial baud rate
+ Baud uint32 `protobuf:"varint,1,opt,name=baud,proto3" json:"baud,omitempty"`
+ // Whether the device has an active connection or not
+ IsConnected bool `protobuf:"varint,2,opt,name=is_connected,json=isConnected,proto3" json:"is_connected,omitempty"`
+}
+
+func (x *SerialConnectionStatus) Reset() {
+ *x = SerialConnectionStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SerialConnectionStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SerialConnectionStatus) ProtoMessage() {}
+
+func (x *SerialConnectionStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_connection_status_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SerialConnectionStatus.ProtoReflect.Descriptor instead.
+func (*SerialConnectionStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_connection_status_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *SerialConnectionStatus) GetBaud() uint32 {
+ if x != nil {
+ return x.Baud
+ }
+ return 0
+}
+
+func (x *SerialConnectionStatus) GetIsConnected() bool {
+ if x != nil {
+ return x.IsConnected
+ }
+ return false
+}
+
+var File_meshtastic_connection_status_proto protoreflect.FileDescriptor
+
+var file_meshtastic_connection_status_proto_rawDesc = []byte{
+ 0x0a, 0x22, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x22, 0xd4, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x77,
+ 0x69, 0x66, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x04, 0x77,
+ 0x69, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e,
+ 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f,
+ 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x01,
+ 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a,
+ 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x42, 0x6c,
+ 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x02, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74,
+ 0x6f, 0x6f, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61,
+ 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x03, 0x52, 0x06, 0x73,
+ 0x65, 0x72, 0x69, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x69, 0x66,
+ 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x0c,
+ 0x0a, 0x0a, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07,
+ 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x22, 0x7b, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x43,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x23, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04,
+ 0x73, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64,
+ 0x12, 0x12, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x72, 0x73, 0x73, 0x69, 0x22, 0x57, 0x0a, 0x18, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74,
+ 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb7, 0x01,
+ 0x0a, 0x17, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x69,
+ 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
+ 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69,
+ 0x73, 0x5f, 0x6d, 0x71, 0x74, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x4d, 0x71, 0x74, 0x74, 0x43, 0x6f,
+ 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x73, 0x79,
+ 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x43, 0x6f,
+ 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x64, 0x0a, 0x19, 0x42, 0x6c, 0x75, 0x65, 0x74,
+ 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x73, 0x73, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x4f, 0x0a,
+ 0x16, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x75, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, 0x61, 0x75, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69,
+ 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x65,
+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67,
+ 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_connection_status_proto_rawDescOnce sync.Once
+ file_meshtastic_connection_status_proto_rawDescData = file_meshtastic_connection_status_proto_rawDesc
+)
+
+func file_meshtastic_connection_status_proto_rawDescGZIP() []byte {
+ file_meshtastic_connection_status_proto_rawDescOnce.Do(func() {
+ file_meshtastic_connection_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_connection_status_proto_rawDescData)
+ })
+ return file_meshtastic_connection_status_proto_rawDescData
+}
+
+var file_meshtastic_connection_status_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_meshtastic_connection_status_proto_goTypes = []interface{}{
+ (*DeviceConnectionStatus)(nil), // 0: meshtastic.DeviceConnectionStatus
+ (*WifiConnectionStatus)(nil), // 1: meshtastic.WifiConnectionStatus
+ (*EthernetConnectionStatus)(nil), // 2: meshtastic.EthernetConnectionStatus
+ (*NetworkConnectionStatus)(nil), // 3: meshtastic.NetworkConnectionStatus
+ (*BluetoothConnectionStatus)(nil), // 4: meshtastic.BluetoothConnectionStatus
+ (*SerialConnectionStatus)(nil), // 5: meshtastic.SerialConnectionStatus
+}
+var file_meshtastic_connection_status_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.DeviceConnectionStatus.wifi:type_name -> meshtastic.WifiConnectionStatus
+ 2, // 1: meshtastic.DeviceConnectionStatus.ethernet:type_name -> meshtastic.EthernetConnectionStatus
+ 4, // 2: meshtastic.DeviceConnectionStatus.bluetooth:type_name -> meshtastic.BluetoothConnectionStatus
+ 5, // 3: meshtastic.DeviceConnectionStatus.serial:type_name -> meshtastic.SerialConnectionStatus
+ 3, // 4: meshtastic.WifiConnectionStatus.status:type_name -> meshtastic.NetworkConnectionStatus
+ 3, // 5: meshtastic.EthernetConnectionStatus.status:type_name -> meshtastic.NetworkConnectionStatus
+ 6, // [6:6] is the sub-list for method output_type
+ 6, // [6:6] is the sub-list for method input_type
+ 6, // [6:6] is the sub-list for extension type_name
+ 6, // [6:6] is the sub-list for extension extendee
+ 0, // [0:6] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_connection_status_proto_init() }
+func file_meshtastic_connection_status_proto_init() {
+ if File_meshtastic_connection_status_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_connection_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WifiConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EthernetConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NetworkConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BluetoothConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SerialConnectionStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_connection_status_proto_msgTypes[0].OneofWrappers = []interface{}{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_connection_status_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_connection_status_proto_goTypes,
+ DependencyIndexes: file_meshtastic_connection_status_proto_depIdxs,
+ MessageInfos: file_meshtastic_connection_status_proto_msgTypes,
+ }.Build()
+ File_meshtastic_connection_status_proto = out.File
+ file_meshtastic_connection_status_proto_rawDesc = nil
+ file_meshtastic_connection_status_proto_goTypes = nil
+ file_meshtastic_connection_status_proto_depIdxs = nil
+}
diff --git a/meshtastic/connection_status_vtproto.pb.go b/meshtastic/connection_status_vtproto.pb.go
new file mode 100644
index 0000000..a3918ea
--- /dev/null
+++ b/meshtastic/connection_status_vtproto.pb.go
@@ -0,0 +1,2567 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/connection_status.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *DeviceConnectionStatus) CloneVT() *DeviceConnectionStatus {
+ if m == nil {
+ return (*DeviceConnectionStatus)(nil)
+ }
+ r := new(DeviceConnectionStatus)
+ r.Wifi = m.Wifi.CloneVT()
+ r.Ethernet = m.Ethernet.CloneVT()
+ r.Bluetooth = m.Bluetooth.CloneVT()
+ r.Serial = m.Serial.CloneVT()
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeviceConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *WifiConnectionStatus) CloneVT() *WifiConnectionStatus {
+ if m == nil {
+ return (*WifiConnectionStatus)(nil)
+ }
+ r := new(WifiConnectionStatus)
+ r.Status = m.Status.CloneVT()
+ r.Ssid = m.Ssid
+ r.Rssi = m.Rssi
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *WifiConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *EthernetConnectionStatus) CloneVT() *EthernetConnectionStatus {
+ if m == nil {
+ return (*EthernetConnectionStatus)(nil)
+ }
+ r := new(EthernetConnectionStatus)
+ r.Status = m.Status.CloneVT()
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *EthernetConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *NetworkConnectionStatus) CloneVT() *NetworkConnectionStatus {
+ if m == nil {
+ return (*NetworkConnectionStatus)(nil)
+ }
+ r := new(NetworkConnectionStatus)
+ r.IpAddress = m.IpAddress
+ r.IsConnected = m.IsConnected
+ r.IsMqttConnected = m.IsMqttConnected
+ r.IsSyslogConnected = m.IsSyslogConnected
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NetworkConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *BluetoothConnectionStatus) CloneVT() *BluetoothConnectionStatus {
+ if m == nil {
+ return (*BluetoothConnectionStatus)(nil)
+ }
+ r := new(BluetoothConnectionStatus)
+ r.Pin = m.Pin
+ r.Rssi = m.Rssi
+ r.IsConnected = m.IsConnected
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *BluetoothConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *SerialConnectionStatus) CloneVT() *SerialConnectionStatus {
+ if m == nil {
+ return (*SerialConnectionStatus)(nil)
+ }
+ r := new(SerialConnectionStatus)
+ r.Baud = m.Baud
+ r.IsConnected = m.IsConnected
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *SerialConnectionStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *DeviceConnectionStatus) EqualVT(that *DeviceConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Wifi.EqualVT(that.Wifi) {
+ return false
+ }
+ if !this.Ethernet.EqualVT(that.Ethernet) {
+ return false
+ }
+ if !this.Bluetooth.EqualVT(that.Bluetooth) {
+ return false
+ }
+ if !this.Serial.EqualVT(that.Serial) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *DeviceConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*DeviceConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *WifiConnectionStatus) EqualVT(that *WifiConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Status.EqualVT(that.Status) {
+ return false
+ }
+ if this.Ssid != that.Ssid {
+ return false
+ }
+ if this.Rssi != that.Rssi {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *WifiConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*WifiConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *EthernetConnectionStatus) EqualVT(that *EthernetConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Status.EqualVT(that.Status) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *EthernetConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*EthernetConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *NetworkConnectionStatus) EqualVT(that *NetworkConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.IpAddress != that.IpAddress {
+ return false
+ }
+ if this.IsConnected != that.IsConnected {
+ return false
+ }
+ if this.IsMqttConnected != that.IsMqttConnected {
+ return false
+ }
+ if this.IsSyslogConnected != that.IsSyslogConnected {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NetworkConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NetworkConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *BluetoothConnectionStatus) EqualVT(that *BluetoothConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Pin != that.Pin {
+ return false
+ }
+ if this.Rssi != that.Rssi {
+ return false
+ }
+ if this.IsConnected != that.IsConnected {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *BluetoothConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*BluetoothConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *SerialConnectionStatus) EqualVT(that *SerialConnectionStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Baud != that.Baud {
+ return false
+ }
+ if this.IsConnected != that.IsConnected {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *SerialConnectionStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*SerialConnectionStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *DeviceConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeviceConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Ethernet != nil {
+ size, err := m.Ethernet.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Wifi != nil {
+ size, err := m.Wifi.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *WifiConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *WifiConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *WifiConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Rssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rssi))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Ssid) > 0 {
+ i -= len(m.Ssid)
+ copy(dAtA[i:], m.Ssid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Ssid)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EthernetConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EthernetConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *EthernetConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NetworkConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NetworkConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NetworkConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsSyslogConnected {
+ i--
+ if m.IsSyslogConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.IsMqttConnected {
+ i--
+ if m.IsMqttConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.IpAddress != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.IpAddress))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *BluetoothConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *BluetoothConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *BluetoothConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Rssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rssi))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Pin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pin))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *SerialConnectionStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *SerialConnectionStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *SerialConnectionStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Baud != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Baud))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *DeviceConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Ethernet != nil {
+ size, err := m.Ethernet.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Wifi != nil {
+ size, err := m.Wifi.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *WifiConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *WifiConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *WifiConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Rssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rssi))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Ssid) > 0 {
+ i -= len(m.Ssid)
+ copy(dAtA[i:], m.Ssid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Ssid)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EthernetConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EthernetConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *EthernetConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Status != nil {
+ size, err := m.Status.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NetworkConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NetworkConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NetworkConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsSyslogConnected {
+ i--
+ if m.IsSyslogConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.IsMqttConnected {
+ i--
+ if m.IsMqttConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.IpAddress != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.IpAddress))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *BluetoothConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *BluetoothConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *BluetoothConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Rssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rssi))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Pin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pin))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *SerialConnectionStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *SerialConnectionStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *SerialConnectionStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.IsConnected {
+ i--
+ if m.IsConnected {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Baud != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Baud))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Wifi != nil {
+ l = m.Wifi.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Ethernet != nil {
+ l = m.Ethernet.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Bluetooth != nil {
+ l = m.Bluetooth.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Serial != nil {
+ l = m.Serial.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *WifiConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Status != nil {
+ l = m.Status.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Ssid)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Rssi != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Rssi))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *EthernetConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Status != nil {
+ l = m.Status.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *NetworkConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.IpAddress != 0 {
+ n += 5
+ }
+ if m.IsConnected {
+ n += 2
+ }
+ if m.IsMqttConnected {
+ n += 2
+ }
+ if m.IsSyslogConnected {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *BluetoothConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Pin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pin))
+ }
+ if m.Rssi != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Rssi))
+ }
+ if m.IsConnected {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *SerialConnectionStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Baud != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Baud))
+ }
+ if m.IsConnected {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *DeviceConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Wifi", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Wifi == nil {
+ m.Wifi = &WifiConnectionStatus{}
+ }
+ if err := m.Wifi.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ethernet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Ethernet == nil {
+ m.Ethernet = &EthernetConnectionStatus{}
+ }
+ if err := m.Ethernet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Bluetooth == nil {
+ m.Bluetooth = &BluetoothConnectionStatus{}
+ }
+ if err := m.Bluetooth.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Serial == nil {
+ m.Serial = &SerialConnectionStatus{}
+ }
+ if err := m.Serial.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *WifiConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: WifiConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: WifiConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &NetworkConnectionStatus{}
+ }
+ if err := m.Status.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ssid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Ssid = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rssi", wireType)
+ }
+ m.Rssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EthernetConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EthernetConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EthernetConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &NetworkConnectionStatus{}
+ }
+ if err := m.Status.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NetworkConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NetworkConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NetworkConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IpAddress", wireType)
+ }
+ m.IpAddress = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.IpAddress = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsMqttConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsMqttConnected = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsSyslogConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsSyslogConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *BluetoothConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: BluetoothConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: BluetoothConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pin", wireType)
+ }
+ m.Pin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rssi", wireType)
+ }
+ m.Rssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *SerialConnectionStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SerialConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SerialConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Baud", wireType)
+ }
+ m.Baud = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Baud |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Wifi", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Wifi == nil {
+ m.Wifi = &WifiConnectionStatus{}
+ }
+ if err := m.Wifi.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ethernet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Ethernet == nil {
+ m.Ethernet = &EthernetConnectionStatus{}
+ }
+ if err := m.Ethernet.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Bluetooth == nil {
+ m.Bluetooth = &BluetoothConnectionStatus{}
+ }
+ if err := m.Bluetooth.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Serial == nil {
+ m.Serial = &SerialConnectionStatus{}
+ }
+ if err := m.Serial.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *WifiConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: WifiConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: WifiConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &NetworkConnectionStatus{}
+ }
+ if err := m.Status.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ssid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Ssid = stringValue
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rssi", wireType)
+ }
+ m.Rssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EthernetConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EthernetConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EthernetConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Status == nil {
+ m.Status = &NetworkConnectionStatus{}
+ }
+ if err := m.Status.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NetworkConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NetworkConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NetworkConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IpAddress", wireType)
+ }
+ m.IpAddress = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.IpAddress = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsMqttConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsMqttConnected = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsSyslogConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsSyslogConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *BluetoothConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: BluetoothConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: BluetoothConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pin", wireType)
+ }
+ m.Pin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rssi", wireType)
+ }
+ m.Rssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *SerialConnectionStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SerialConnectionStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SerialConnectionStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Baud", wireType)
+ }
+ m.Baud = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Baud |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsConnected", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsConnected = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/deviceonly.pb.go b/meshtastic/deviceonly.pb.go
new file mode 100644
index 0000000..fe7bdc6
--- /dev/null
+++ b/meshtastic/deviceonly.pb.go
@@ -0,0 +1,927 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/deviceonly.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// TODO: REPLACE
+type ScreenFonts int32
+
+const (
+ // TODO: REPLACE
+ ScreenFonts_FONT_SMALL ScreenFonts = 0
+ // TODO: REPLACE
+ ScreenFonts_FONT_MEDIUM ScreenFonts = 1
+ // TODO: REPLACE
+ ScreenFonts_FONT_LARGE ScreenFonts = 2
+)
+
+// Enum value maps for ScreenFonts.
+var (
+ ScreenFonts_name = map[int32]string{
+ 0: "FONT_SMALL",
+ 1: "FONT_MEDIUM",
+ 2: "FONT_LARGE",
+ }
+ ScreenFonts_value = map[string]int32{
+ "FONT_SMALL": 0,
+ "FONT_MEDIUM": 1,
+ "FONT_LARGE": 2,
+ }
+)
+
+func (x ScreenFonts) Enum() *ScreenFonts {
+ p := new(ScreenFonts)
+ *p = x
+ return p
+}
+
+func (x ScreenFonts) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ScreenFonts) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_deviceonly_proto_enumTypes[0].Descriptor()
+}
+
+func (ScreenFonts) Type() protoreflect.EnumType {
+ return &file_meshtastic_deviceonly_proto_enumTypes[0]
+}
+
+func (x ScreenFonts) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ScreenFonts.Descriptor instead.
+func (ScreenFonts) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{0}
+}
+
+// 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
+type DeviceState struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Read only settings/info about this node
+ MyNode *MyNodeInfo `protobuf:"bytes,2,opt,name=my_node,json=myNode,proto3" json:"my_node,omitempty"`
+ // My owner info
+ Owner *User `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"`
+ // Received packets saved for delivery to the phone
+ ReceiveQueue []*MeshPacket `protobuf:"bytes,5,rep,name=receive_queue,json=receiveQueue,proto3" json:"receive_queue,omitempty"`
+ // 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.
+ Version uint32 `protobuf:"varint,8,opt,name=version,proto3" json:"version,omitempty"`
+ // We keep the last received text message (only) stored in the device flash,
+ // so we can show it on the screen.
+ // Might be null
+ RxTextMessage *MeshPacket `protobuf:"bytes,7,opt,name=rx_text_message,json=rxTextMessage,proto3" json:"rx_text_message,omitempty"`
+ // Used only during development.
+ // Indicates developer is testing and changes should never be saved to flash.
+ NoSave bool `protobuf:"varint,9,opt,name=no_save,json=noSave,proto3" json:"no_save,omitempty"`
+ // Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
+ DidGpsReset bool `protobuf:"varint,11,opt,name=did_gps_reset,json=didGpsReset,proto3" json:"did_gps_reset,omitempty"`
+ // We keep the last received waypoint stored in the device flash,
+ // so we can show it on the screen.
+ // Might be null
+ RxWaypoint *MeshPacket `protobuf:"bytes,12,opt,name=rx_waypoint,json=rxWaypoint,proto3" json:"rx_waypoint,omitempty"`
+ // The mesh's nodes with their available gpio pins for RemoteHardware module
+ NodeRemoteHardwarePins []*NodeRemoteHardwarePin `protobuf:"bytes,13,rep,name=node_remote_hardware_pins,json=nodeRemoteHardwarePins,proto3" json:"node_remote_hardware_pins,omitempty"`
+ // New lite version of NodeDB to decrease memory footprint
+ NodeDbLite []*NodeInfoLite `protobuf:"bytes,14,rep,name=node_db_lite,json=nodeDbLite,proto3" json:"node_db_lite,omitempty"`
+}
+
+func (x *DeviceState) Reset() {
+ *x = DeviceState{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceState) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceState) ProtoMessage() {}
+
+func (x *DeviceState) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceState.ProtoReflect.Descriptor instead.
+func (*DeviceState) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DeviceState) GetMyNode() *MyNodeInfo {
+ if x != nil {
+ return x.MyNode
+ }
+ return nil
+}
+
+func (x *DeviceState) GetOwner() *User {
+ if x != nil {
+ return x.Owner
+ }
+ return nil
+}
+
+func (x *DeviceState) GetReceiveQueue() []*MeshPacket {
+ if x != nil {
+ return x.ReceiveQueue
+ }
+ return nil
+}
+
+func (x *DeviceState) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+func (x *DeviceState) GetRxTextMessage() *MeshPacket {
+ if x != nil {
+ return x.RxTextMessage
+ }
+ return nil
+}
+
+func (x *DeviceState) GetNoSave() bool {
+ if x != nil {
+ return x.NoSave
+ }
+ return false
+}
+
+func (x *DeviceState) GetDidGpsReset() bool {
+ if x != nil {
+ return x.DidGpsReset
+ }
+ return false
+}
+
+func (x *DeviceState) GetRxWaypoint() *MeshPacket {
+ if x != nil {
+ return x.RxWaypoint
+ }
+ return nil
+}
+
+func (x *DeviceState) GetNodeRemoteHardwarePins() []*NodeRemoteHardwarePin {
+ if x != nil {
+ return x.NodeRemoteHardwarePins
+ }
+ return nil
+}
+
+func (x *DeviceState) GetNodeDbLite() []*NodeInfoLite {
+ if x != nil {
+ return x.NodeDbLite
+ }
+ return nil
+}
+
+type NodeInfoLite struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The node number
+ Num uint32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"`
+ // The user info for this node
+ User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
+ // 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.
+ Position *PositionLite `protobuf:"bytes,3,opt,name=position,proto3" json:"position,omitempty"`
+ // 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
+ Snr float32 `protobuf:"fixed32,4,opt,name=snr,proto3" json:"snr,omitempty"`
+ // Set to indicate the last time we received a packet from this node
+ LastHeard uint32 `protobuf:"fixed32,5,opt,name=last_heard,json=lastHeard,proto3" json:"last_heard,omitempty"`
+ // The latest device metrics for the node.
+ DeviceMetrics *DeviceMetrics `protobuf:"bytes,6,opt,name=device_metrics,json=deviceMetrics,proto3" json:"device_metrics,omitempty"`
+ // local channel index we heard that node on. Only populated if its not the default channel.
+ Channel uint32 `protobuf:"varint,7,opt,name=channel,proto3" json:"channel,omitempty"`
+}
+
+func (x *NodeInfoLite) Reset() {
+ *x = NodeInfoLite{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NodeInfoLite) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NodeInfoLite) ProtoMessage() {}
+
+func (x *NodeInfoLite) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NodeInfoLite.ProtoReflect.Descriptor instead.
+func (*NodeInfoLite) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *NodeInfoLite) GetNum() uint32 {
+ if x != nil {
+ return x.Num
+ }
+ return 0
+}
+
+func (x *NodeInfoLite) GetUser() *User {
+ if x != nil {
+ return x.User
+ }
+ return nil
+}
+
+func (x *NodeInfoLite) GetPosition() *PositionLite {
+ if x != nil {
+ return x.Position
+ }
+ return nil
+}
+
+func (x *NodeInfoLite) GetSnr() float32 {
+ if x != nil {
+ return x.Snr
+ }
+ return 0
+}
+
+func (x *NodeInfoLite) GetLastHeard() uint32 {
+ if x != nil {
+ return x.LastHeard
+ }
+ return 0
+}
+
+func (x *NodeInfoLite) GetDeviceMetrics() *DeviceMetrics {
+ if x != nil {
+ return x.DeviceMetrics
+ }
+ return nil
+}
+
+func (x *NodeInfoLite) GetChannel() uint32 {
+ if x != nil {
+ return x.Channel
+ }
+ return 0
+}
+
+// Position with static location information only for NodeDBLite
+type PositionLite struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The new preferred location encoding, multiply by 1e-7 to get degrees
+ // in floating point
+ LatitudeI int32 `protobuf:"fixed32,1,opt,name=latitude_i,json=latitudeI,proto3" json:"latitude_i,omitempty"`
+ // TODO: REPLACE
+ LongitudeI int32 `protobuf:"fixed32,2,opt,name=longitude_i,json=longitudeI,proto3" json:"longitude_i,omitempty"`
+ // In meters above MSL (but see issue #359)
+ Altitude int32 `protobuf:"varint,3,opt,name=altitude,proto3" json:"altitude,omitempty"`
+ // 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
+ Time uint32 `protobuf:"fixed32,4,opt,name=time,proto3" json:"time,omitempty"`
+ // TODO: REPLACE
+ LocationSource Position_LocSource `protobuf:"varint,5,opt,name=location_source,json=locationSource,proto3,enum=meshtastic.Position_LocSource" json:"location_source,omitempty"`
+}
+
+func (x *PositionLite) Reset() {
+ *x = PositionLite{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PositionLite) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PositionLite) ProtoMessage() {}
+
+func (x *PositionLite) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PositionLite.ProtoReflect.Descriptor instead.
+func (*PositionLite) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PositionLite) GetLatitudeI() int32 {
+ if x != nil {
+ return x.LatitudeI
+ }
+ return 0
+}
+
+func (x *PositionLite) GetLongitudeI() int32 {
+ if x != nil {
+ return x.LongitudeI
+ }
+ return 0
+}
+
+func (x *PositionLite) GetAltitude() int32 {
+ if x != nil {
+ return x.Altitude
+ }
+ return 0
+}
+
+func (x *PositionLite) GetTime() uint32 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *PositionLite) GetLocationSource() Position_LocSource {
+ if x != nil {
+ return x.LocationSource
+ }
+ return Position_LOC_UNSET
+}
+
+// The on-disk saved channels
+type ChannelFile struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The channels our node knows about
+ Channels []*Channel `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"`
+ // 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.
+ Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *ChannelFile) Reset() {
+ *x = ChannelFile{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ChannelFile) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChannelFile) ProtoMessage() {}
+
+func (x *ChannelFile) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChannelFile.ProtoReflect.Descriptor instead.
+func (*ChannelFile) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ChannelFile) GetChannels() []*Channel {
+ if x != nil {
+ return x.Channels
+ }
+ return nil
+}
+
+func (x *ChannelFile) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+// This can be used for customizing the firmware distribution. If populated,
+// show a secondary bootup screen with custom logo and text for 2.5 seconds.
+type OEMStore struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The Logo width in Px
+ OemIconWidth uint32 `protobuf:"varint,1,opt,name=oem_icon_width,json=oemIconWidth,proto3" json:"oem_icon_width,omitempty"`
+ // The Logo height in Px
+ OemIconHeight uint32 `protobuf:"varint,2,opt,name=oem_icon_height,json=oemIconHeight,proto3" json:"oem_icon_height,omitempty"`
+ // The Logo in XBM bytechar format
+ OemIconBits []byte `protobuf:"bytes,3,opt,name=oem_icon_bits,json=oemIconBits,proto3" json:"oem_icon_bits,omitempty"`
+ // Use this font for the OEM text.
+ OemFont ScreenFonts `protobuf:"varint,4,opt,name=oem_font,json=oemFont,proto3,enum=meshtastic.ScreenFonts" json:"oem_font,omitempty"`
+ // Use this font for the OEM text.
+ OemText string `protobuf:"bytes,5,opt,name=oem_text,json=oemText,proto3" json:"oem_text,omitempty"`
+ // The default device encryption key, 16 or 32 byte
+ OemAesKey []byte `protobuf:"bytes,6,opt,name=oem_aes_key,json=oemAesKey,proto3" json:"oem_aes_key,omitempty"`
+ // A Preset LocalConfig to apply during factory reset
+ OemLocalConfig *LocalConfig `protobuf:"bytes,7,opt,name=oem_local_config,json=oemLocalConfig,proto3" json:"oem_local_config,omitempty"`
+ // A Preset LocalModuleConfig to apply during factory reset
+ OemLocalModuleConfig *LocalModuleConfig `protobuf:"bytes,8,opt,name=oem_local_module_config,json=oemLocalModuleConfig,proto3" json:"oem_local_module_config,omitempty"`
+}
+
+func (x *OEMStore) Reset() {
+ *x = OEMStore{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OEMStore) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OEMStore) ProtoMessage() {}
+
+func (x *OEMStore) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OEMStore.ProtoReflect.Descriptor instead.
+func (*OEMStore) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *OEMStore) GetOemIconWidth() uint32 {
+ if x != nil {
+ return x.OemIconWidth
+ }
+ return 0
+}
+
+func (x *OEMStore) GetOemIconHeight() uint32 {
+ if x != nil {
+ return x.OemIconHeight
+ }
+ return 0
+}
+
+func (x *OEMStore) GetOemIconBits() []byte {
+ if x != nil {
+ return x.OemIconBits
+ }
+ return nil
+}
+
+func (x *OEMStore) GetOemFont() ScreenFonts {
+ if x != nil {
+ return x.OemFont
+ }
+ return ScreenFonts_FONT_SMALL
+}
+
+func (x *OEMStore) GetOemText() string {
+ if x != nil {
+ return x.OemText
+ }
+ return ""
+}
+
+func (x *OEMStore) GetOemAesKey() []byte {
+ if x != nil {
+ return x.OemAesKey
+ }
+ return nil
+}
+
+func (x *OEMStore) GetOemLocalConfig() *LocalConfig {
+ if x != nil {
+ return x.OemLocalConfig
+ }
+ return nil
+}
+
+func (x *OEMStore) GetOemLocalModuleConfig() *LocalModuleConfig {
+ if x != nil {
+ return x.OemLocalModuleConfig
+ }
+ return nil
+}
+
+// RemoteHardwarePins associated with a node
+type NodeRemoteHardwarePin struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The node_num exposing the available gpio pin
+ NodeNum uint32 `protobuf:"varint,1,opt,name=node_num,json=nodeNum,proto3" json:"node_num,omitempty"`
+ // The the available gpio pin for usage with RemoteHardware module
+ Pin *RemoteHardwarePin `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
+}
+
+func (x *NodeRemoteHardwarePin) Reset() {
+ *x = NodeRemoteHardwarePin{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NodeRemoteHardwarePin) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NodeRemoteHardwarePin) ProtoMessage() {}
+
+func (x *NodeRemoteHardwarePin) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_deviceonly_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NodeRemoteHardwarePin.ProtoReflect.Descriptor instead.
+func (*NodeRemoteHardwarePin) Descriptor() ([]byte, []int) {
+ return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *NodeRemoteHardwarePin) GetNodeNum() uint32 {
+ if x != nil {
+ return x.NodeNum
+ }
+ return 0
+}
+
+func (x *NodeRemoteHardwarePin) GetPin() *RemoteHardwarePin {
+ if x != nil {
+ return x.Pin
+ }
+ return nil
+}
+
+var File_meshtastic_deviceonly_proto protoreflect.FileDescriptor
+
+var file_meshtastic_deviceonly_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x1a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x65, 0x73, 0x68,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x1a, 0x1e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0x8d, 0x04, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x79, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x4d, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x79, 0x4e,
+ 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0d, 0x72,
+ 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x05, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x72, 0x78, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63,
+ 0x6b, 0x65, 0x74, 0x52, 0x0d, 0x72, 0x78, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x64,
+ 0x69, 0x64, 0x5f, 0x67, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x64, 0x47, 0x70, 0x73, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12,
+ 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x78,
+ 0x57, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x19, 0x6e, 0x6f, 0x64, 0x65,
+ 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65,
+ 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x52, 0x16,
+ 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61,
+ 0x72, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x64,
+ 0x62, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x44, 0x62, 0x4c, 0x69,
+ 0x74, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4c,
+ 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03,
+ 0x73, 0x6e, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72,
+ 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61,
+ 0x72, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xc7,
+ 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0f, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x49, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x49, 0x12,
+ 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12,
+ 0x47, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c,
+ 0x6f, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x08,
+ 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x22, 0x84, 0x03, 0x0a, 0x08, 0x4f, 0x45, 0x4d, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12,
+ 0x24, 0x0a, 0x0e, 0x6f, 0x65, 0x6d, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x64, 0x74,
+ 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x65, 0x6d, 0x49, 0x63, 0x6f, 0x6e,
+ 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x65, 0x6d, 0x5f, 0x69, 0x63, 0x6f,
+ 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
+ 0x6f, 0x65, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a,
+ 0x0d, 0x6f, 0x65, 0x6d, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6f, 0x65, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x42, 0x69, 0x74,
+ 0x73, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x65, 0x6d, 0x5f, 0x66, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x65,
+ 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x65, 0x6d, 0x5f, 0x74, 0x65, 0x78,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x65, 0x6d, 0x54, 0x65, 0x78, 0x74,
+ 0x12, 0x1e, 0x0a, 0x0b, 0x6f, 0x65, 0x6d, 0x5f, 0x61, 0x65, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x65, 0x6d, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79,
+ 0x12, 0x41, 0x0a, 0x10, 0x6f, 0x65, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x52, 0x0e, 0x6f, 0x65, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x17, 0x6f, 0x65, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
+ 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x52, 0x14, 0x6f, 0x65, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x63, 0x0a, 0x15, 0x4e, 0x6f, 0x64,
+ 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50,
+ 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a,
+ 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61,
+ 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x2a, 0x3e,
+ 0x0a, 0x0b, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x12, 0x0e, 0x0a,
+ 0x0a, 0x46, 0x4f, 0x4e, 0x54, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0f, 0x0a,
+ 0x0b, 0x46, 0x4f, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x0e,
+ 0x0a, 0x0a, 0x46, 0x4f, 0x4e, 0x54, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x02, 0x42, 0x5f,
+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c,
+ 0x79, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65,
+ 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62,
+ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_deviceonly_proto_rawDescOnce sync.Once
+ file_meshtastic_deviceonly_proto_rawDescData = file_meshtastic_deviceonly_proto_rawDesc
+)
+
+func file_meshtastic_deviceonly_proto_rawDescGZIP() []byte {
+ file_meshtastic_deviceonly_proto_rawDescOnce.Do(func() {
+ file_meshtastic_deviceonly_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_deviceonly_proto_rawDescData)
+ })
+ return file_meshtastic_deviceonly_proto_rawDescData
+}
+
+var file_meshtastic_deviceonly_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_deviceonly_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_meshtastic_deviceonly_proto_goTypes = []interface{}{
+ (ScreenFonts)(0), // 0: meshtastic.ScreenFonts
+ (*DeviceState)(nil), // 1: meshtastic.DeviceState
+ (*NodeInfoLite)(nil), // 2: meshtastic.NodeInfoLite
+ (*PositionLite)(nil), // 3: meshtastic.PositionLite
+ (*ChannelFile)(nil), // 4: meshtastic.ChannelFile
+ (*OEMStore)(nil), // 5: meshtastic.OEMStore
+ (*NodeRemoteHardwarePin)(nil), // 6: meshtastic.NodeRemoteHardwarePin
+ (*MyNodeInfo)(nil), // 7: meshtastic.MyNodeInfo
+ (*User)(nil), // 8: meshtastic.User
+ (*MeshPacket)(nil), // 9: meshtastic.MeshPacket
+ (*DeviceMetrics)(nil), // 10: meshtastic.DeviceMetrics
+ (Position_LocSource)(0), // 11: meshtastic.Position.LocSource
+ (*Channel)(nil), // 12: meshtastic.Channel
+ (*LocalConfig)(nil), // 13: meshtastic.LocalConfig
+ (*LocalModuleConfig)(nil), // 14: meshtastic.LocalModuleConfig
+ (*RemoteHardwarePin)(nil), // 15: meshtastic.RemoteHardwarePin
+}
+var file_meshtastic_deviceonly_proto_depIdxs = []int32{
+ 7, // 0: meshtastic.DeviceState.my_node:type_name -> meshtastic.MyNodeInfo
+ 8, // 1: meshtastic.DeviceState.owner:type_name -> meshtastic.User
+ 9, // 2: meshtastic.DeviceState.receive_queue:type_name -> meshtastic.MeshPacket
+ 9, // 3: meshtastic.DeviceState.rx_text_message:type_name -> meshtastic.MeshPacket
+ 9, // 4: meshtastic.DeviceState.rx_waypoint:type_name -> meshtastic.MeshPacket
+ 6, // 5: meshtastic.DeviceState.node_remote_hardware_pins:type_name -> meshtastic.NodeRemoteHardwarePin
+ 2, // 6: meshtastic.DeviceState.node_db_lite:type_name -> meshtastic.NodeInfoLite
+ 8, // 7: meshtastic.NodeInfoLite.user:type_name -> meshtastic.User
+ 3, // 8: meshtastic.NodeInfoLite.position:type_name -> meshtastic.PositionLite
+ 10, // 9: meshtastic.NodeInfoLite.device_metrics:type_name -> meshtastic.DeviceMetrics
+ 11, // 10: meshtastic.PositionLite.location_source:type_name -> meshtastic.Position.LocSource
+ 12, // 11: meshtastic.ChannelFile.channels:type_name -> meshtastic.Channel
+ 0, // 12: meshtastic.OEMStore.oem_font:type_name -> meshtastic.ScreenFonts
+ 13, // 13: meshtastic.OEMStore.oem_local_config:type_name -> meshtastic.LocalConfig
+ 14, // 14: meshtastic.OEMStore.oem_local_module_config:type_name -> meshtastic.LocalModuleConfig
+ 15, // 15: meshtastic.NodeRemoteHardwarePin.pin:type_name -> meshtastic.RemoteHardwarePin
+ 16, // [16:16] is the sub-list for method output_type
+ 16, // [16:16] is the sub-list for method input_type
+ 16, // [16:16] is the sub-list for extension type_name
+ 16, // [16:16] is the sub-list for extension extendee
+ 0, // [0:16] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_deviceonly_proto_init() }
+func file_meshtastic_deviceonly_proto_init() {
+ if File_meshtastic_deviceonly_proto != nil {
+ return
+ }
+ file_meshtastic_channel_proto_init()
+ file_meshtastic_localonly_proto_init()
+ file_meshtastic_mesh_proto_init()
+ file_meshtastic_telemetry_proto_init()
+ file_meshtastic_module_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_deviceonly_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceState); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_deviceonly_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NodeInfoLite); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_deviceonly_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PositionLite); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_deviceonly_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ChannelFile); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_deviceonly_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OEMStore); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_deviceonly_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NodeRemoteHardwarePin); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_deviceonly_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_deviceonly_proto_goTypes,
+ DependencyIndexes: file_meshtastic_deviceonly_proto_depIdxs,
+ EnumInfos: file_meshtastic_deviceonly_proto_enumTypes,
+ MessageInfos: file_meshtastic_deviceonly_proto_msgTypes,
+ }.Build()
+ File_meshtastic_deviceonly_proto = out.File
+ file_meshtastic_deviceonly_proto_rawDesc = nil
+ file_meshtastic_deviceonly_proto_goTypes = nil
+ file_meshtastic_deviceonly_proto_depIdxs = nil
+}
diff --git a/meshtastic/deviceonly_vtproto.pb.go b/meshtastic/deviceonly_vtproto.pb.go
new file mode 100644
index 0000000..b54d608
--- /dev/null
+++ b/meshtastic/deviceonly_vtproto.pb.go
@@ -0,0 +1,3925 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/deviceonly.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ math "math"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *DeviceState) CloneVT() *DeviceState {
+ if m == nil {
+ return (*DeviceState)(nil)
+ }
+ r := new(DeviceState)
+ r.MyNode = m.MyNode.CloneVT()
+ r.Owner = m.Owner.CloneVT()
+ r.Version = m.Version
+ r.RxTextMessage = m.RxTextMessage.CloneVT()
+ r.NoSave = m.NoSave
+ r.DidGpsReset = m.DidGpsReset
+ r.RxWaypoint = m.RxWaypoint.CloneVT()
+ if rhs := m.ReceiveQueue; rhs != nil {
+ tmpContainer := make([]*MeshPacket, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.ReceiveQueue = tmpContainer
+ }
+ if rhs := m.NodeRemoteHardwarePins; rhs != nil {
+ tmpContainer := make([]*NodeRemoteHardwarePin, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.NodeRemoteHardwarePins = tmpContainer
+ }
+ if rhs := m.NodeDbLite; rhs != nil {
+ tmpContainer := make([]*NodeInfoLite, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.NodeDbLite = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeviceState) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *NodeInfoLite) CloneVT() *NodeInfoLite {
+ if m == nil {
+ return (*NodeInfoLite)(nil)
+ }
+ r := new(NodeInfoLite)
+ r.Num = m.Num
+ r.User = m.User.CloneVT()
+ r.Position = m.Position.CloneVT()
+ r.Snr = m.Snr
+ r.LastHeard = m.LastHeard
+ r.DeviceMetrics = m.DeviceMetrics.CloneVT()
+ r.Channel = m.Channel
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NodeInfoLite) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *PositionLite) CloneVT() *PositionLite {
+ if m == nil {
+ return (*PositionLite)(nil)
+ }
+ r := new(PositionLite)
+ r.LatitudeI = m.LatitudeI
+ r.LongitudeI = m.LongitudeI
+ r.Altitude = m.Altitude
+ r.Time = m.Time
+ r.LocationSource = m.LocationSource
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *PositionLite) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ChannelFile) CloneVT() *ChannelFile {
+ if m == nil {
+ return (*ChannelFile)(nil)
+ }
+ r := new(ChannelFile)
+ r.Version = m.Version
+ if rhs := m.Channels; rhs != nil {
+ tmpContainer := make([]*Channel, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.Channels = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ChannelFile) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *OEMStore) CloneVT() *OEMStore {
+ if m == nil {
+ return (*OEMStore)(nil)
+ }
+ r := new(OEMStore)
+ r.OemIconWidth = m.OemIconWidth
+ r.OemIconHeight = m.OemIconHeight
+ r.OemFont = m.OemFont
+ r.OemText = m.OemText
+ r.OemLocalConfig = m.OemLocalConfig.CloneVT()
+ r.OemLocalModuleConfig = m.OemLocalModuleConfig.CloneVT()
+ if rhs := m.OemIconBits; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.OemIconBits = tmpBytes
+ }
+ if rhs := m.OemAesKey; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.OemAesKey = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *OEMStore) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *NodeRemoteHardwarePin) CloneVT() *NodeRemoteHardwarePin {
+ if m == nil {
+ return (*NodeRemoteHardwarePin)(nil)
+ }
+ r := new(NodeRemoteHardwarePin)
+ r.NodeNum = m.NodeNum
+ r.Pin = m.Pin.CloneVT()
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NodeRemoteHardwarePin) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *DeviceState) EqualVT(that *DeviceState) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.MyNode.EqualVT(that.MyNode) {
+ return false
+ }
+ if !this.Owner.EqualVT(that.Owner) {
+ return false
+ }
+ if len(this.ReceiveQueue) != len(that.ReceiveQueue) {
+ return false
+ }
+ for i, vx := range this.ReceiveQueue {
+ vy := that.ReceiveQueue[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &MeshPacket{}
+ }
+ if q == nil {
+ q = &MeshPacket{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ if !this.RxTextMessage.EqualVT(that.RxTextMessage) {
+ return false
+ }
+ if this.Version != that.Version {
+ return false
+ }
+ if this.NoSave != that.NoSave {
+ return false
+ }
+ if this.DidGpsReset != that.DidGpsReset {
+ return false
+ }
+ if !this.RxWaypoint.EqualVT(that.RxWaypoint) {
+ return false
+ }
+ if len(this.NodeRemoteHardwarePins) != len(that.NodeRemoteHardwarePins) {
+ return false
+ }
+ for i, vx := range this.NodeRemoteHardwarePins {
+ vy := that.NodeRemoteHardwarePins[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &NodeRemoteHardwarePin{}
+ }
+ if q == nil {
+ q = &NodeRemoteHardwarePin{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ if len(this.NodeDbLite) != len(that.NodeDbLite) {
+ return false
+ }
+ for i, vx := range this.NodeDbLite {
+ vy := that.NodeDbLite[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &NodeInfoLite{}
+ }
+ if q == nil {
+ q = &NodeInfoLite{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *DeviceState) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*DeviceState)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *NodeInfoLite) EqualVT(that *NodeInfoLite) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Num != that.Num {
+ return false
+ }
+ if !this.User.EqualVT(that.User) {
+ return false
+ }
+ if !this.Position.EqualVT(that.Position) {
+ return false
+ }
+ if this.Snr != that.Snr {
+ return false
+ }
+ if this.LastHeard != that.LastHeard {
+ return false
+ }
+ if !this.DeviceMetrics.EqualVT(that.DeviceMetrics) {
+ return false
+ }
+ if this.Channel != that.Channel {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NodeInfoLite) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NodeInfoLite)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *PositionLite) EqualVT(that *PositionLite) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.LatitudeI != that.LatitudeI {
+ return false
+ }
+ if this.LongitudeI != that.LongitudeI {
+ return false
+ }
+ if this.Altitude != that.Altitude {
+ return false
+ }
+ if this.Time != that.Time {
+ return false
+ }
+ if this.LocationSource != that.LocationSource {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *PositionLite) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*PositionLite)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ChannelFile) EqualVT(that *ChannelFile) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if len(this.Channels) != len(that.Channels) {
+ return false
+ }
+ for i, vx := range this.Channels {
+ vy := that.Channels[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &Channel{}
+ }
+ if q == nil {
+ q = &Channel{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ if this.Version != that.Version {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ChannelFile) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ChannelFile)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *OEMStore) EqualVT(that *OEMStore) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.OemIconWidth != that.OemIconWidth {
+ return false
+ }
+ if this.OemIconHeight != that.OemIconHeight {
+ return false
+ }
+ if string(this.OemIconBits) != string(that.OemIconBits) {
+ return false
+ }
+ if this.OemFont != that.OemFont {
+ return false
+ }
+ if this.OemText != that.OemText {
+ return false
+ }
+ if string(this.OemAesKey) != string(that.OemAesKey) {
+ return false
+ }
+ if !this.OemLocalConfig.EqualVT(that.OemLocalConfig) {
+ return false
+ }
+ if !this.OemLocalModuleConfig.EqualVT(that.OemLocalModuleConfig) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *OEMStore) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*OEMStore)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *NodeRemoteHardwarePin) EqualVT(that *NodeRemoteHardwarePin) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.NodeNum != that.NodeNum {
+ return false
+ }
+ if !this.Pin.EqualVT(that.Pin) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NodeRemoteHardwarePin) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NodeRemoteHardwarePin)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *DeviceState) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceState) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeviceState) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.NodeDbLite) > 0 {
+ for iNdEx := len(m.NodeDbLite) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeDbLite[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ }
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for iNdEx := len(m.NodeRemoteHardwarePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeRemoteHardwarePins[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ }
+ if m.RxWaypoint != nil {
+ size, err := m.RxWaypoint.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ if m.DidGpsReset {
+ i--
+ if m.DidGpsReset {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.NoSave {
+ i--
+ if m.NoSave {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.RxTextMessage != nil {
+ size, err := m.RxTextMessage.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.ReceiveQueue) > 0 {
+ for iNdEx := len(m.ReceiveQueue) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.ReceiveQueue[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ }
+ if m.Owner != nil {
+ size, err := m.Owner.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.MyNode != nil {
+ size, err := m.MyNode.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeInfoLite) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeInfoLite) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NodeInfoLite) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LastHeard != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastHeard))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.User != nil {
+ size, err := m.User.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Num != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Num))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PositionLite) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PositionLite) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *PositionLite) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LocationSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LocationSource))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelFile) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelFile) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ChannelFile) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.Channels) > 0 {
+ for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Channels[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *OEMStore) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *OEMStore) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *OEMStore) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.OemLocalModuleConfig != nil {
+ size, err := m.OemLocalModuleConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.OemLocalConfig != nil {
+ size, err := m.OemLocalConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.OemAesKey) > 0 {
+ i -= len(m.OemAesKey)
+ copy(dAtA[i:], m.OemAesKey)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemAesKey)))
+ i--
+ dAtA[i] = 0x32
+ }
+ if len(m.OemText) > 0 {
+ i -= len(m.OemText)
+ copy(dAtA[i:], m.OemText)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemText)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.OemFont != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemFont))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.OemIconBits) > 0 {
+ i -= len(m.OemIconBits)
+ copy(dAtA[i:], m.OemIconBits)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemIconBits)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.OemIconHeight != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemIconHeight))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.OemIconWidth != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemIconWidth))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeRemoteHardwarePin) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeRemoteHardwarePin) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NodeRemoteHardwarePin) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Pin != nil {
+ size, err := m.Pin.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.NodeNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceState) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceState) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *DeviceState) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.NodeDbLite) > 0 {
+ for iNdEx := len(m.NodeDbLite) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeDbLite[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ }
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for iNdEx := len(m.NodeRemoteHardwarePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.NodeRemoteHardwarePins[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ }
+ if m.RxWaypoint != nil {
+ size, err := m.RxWaypoint.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ if m.DidGpsReset {
+ i--
+ if m.DidGpsReset {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.NoSave {
+ i--
+ if m.NoSave {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.RxTextMessage != nil {
+ size, err := m.RxTextMessage.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.ReceiveQueue) > 0 {
+ for iNdEx := len(m.ReceiveQueue) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.ReceiveQueue[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ }
+ if m.Owner != nil {
+ size, err := m.Owner.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.MyNode != nil {
+ size, err := m.MyNode.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeInfoLite) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeInfoLite) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NodeInfoLite) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LastHeard != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastHeard))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.User != nil {
+ size, err := m.User.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Num != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Num))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PositionLite) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PositionLite) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *PositionLite) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LocationSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LocationSource))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChannelFile) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChannelFile) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ChannelFile) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.Channels) > 0 {
+ for iNdEx := len(m.Channels) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Channels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *OEMStore) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *OEMStore) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *OEMStore) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.OemLocalModuleConfig != nil {
+ size, err := m.OemLocalModuleConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.OemLocalConfig != nil {
+ size, err := m.OemLocalConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.OemAesKey) > 0 {
+ i -= len(m.OemAesKey)
+ copy(dAtA[i:], m.OemAesKey)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemAesKey)))
+ i--
+ dAtA[i] = 0x32
+ }
+ if len(m.OemText) > 0 {
+ i -= len(m.OemText)
+ copy(dAtA[i:], m.OemText)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemText)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.OemFont != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemFont))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.OemIconBits) > 0 {
+ i -= len(m.OemIconBits)
+ copy(dAtA[i:], m.OemIconBits)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OemIconBits)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.OemIconHeight != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemIconHeight))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.OemIconWidth != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OemIconWidth))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NodeRemoteHardwarePin) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeRemoteHardwarePin) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NodeRemoteHardwarePin) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Pin != nil {
+ size, err := m.Pin.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.NodeNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceState) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MyNode != nil {
+ l = m.MyNode.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Owner != nil {
+ l = m.Owner.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if len(m.ReceiveQueue) > 0 {
+ for _, e := range m.ReceiveQueue {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ if m.RxTextMessage != nil {
+ l = m.RxTextMessage.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Version != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Version))
+ }
+ if m.NoSave {
+ n += 2
+ }
+ if m.DidGpsReset {
+ n += 2
+ }
+ if m.RxWaypoint != nil {
+ l = m.RxWaypoint.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if len(m.NodeRemoteHardwarePins) > 0 {
+ for _, e := range m.NodeRemoteHardwarePins {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ if len(m.NodeDbLite) > 0 {
+ for _, e := range m.NodeDbLite {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *NodeInfoLite) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Num != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Num))
+ }
+ if m.User != nil {
+ l = m.User.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Position != nil {
+ l = m.Position.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Snr != 0 {
+ n += 5
+ }
+ if m.LastHeard != 0 {
+ n += 5
+ }
+ if m.DeviceMetrics != nil {
+ l = m.DeviceMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Channel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Channel))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *PositionLite) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LatitudeI != 0 {
+ n += 5
+ }
+ if m.LongitudeI != 0 {
+ n += 5
+ }
+ if m.Altitude != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Altitude))
+ }
+ if m.Time != 0 {
+ n += 5
+ }
+ if m.LocationSource != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LocationSource))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ChannelFile) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Channels) > 0 {
+ for _, e := range m.Channels {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ if m.Version != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Version))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *OEMStore) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.OemIconWidth != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OemIconWidth))
+ }
+ if m.OemIconHeight != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OemIconHeight))
+ }
+ l = len(m.OemIconBits)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.OemFont != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OemFont))
+ }
+ l = len(m.OemText)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.OemAesKey)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.OemLocalConfig != nil {
+ l = m.OemLocalConfig.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.OemLocalModuleConfig != nil {
+ l = m.OemLocalModuleConfig.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *NodeRemoteHardwarePin) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.NodeNum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeNum))
+ }
+ if m.Pin != nil {
+ l = m.Pin.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *DeviceState) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceState: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceState: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyNode", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.MyNode == nil {
+ m.MyNode = &MyNodeInfo{}
+ }
+ if err := m.MyNode.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Owner == nil {
+ m.Owner = &User{}
+ }
+ if err := m.Owner.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReceiveQueue", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ReceiveQueue = append(m.ReceiveQueue, &MeshPacket{})
+ if err := m.ReceiveQueue[len(m.ReceiveQueue)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxTextMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RxTextMessage == nil {
+ m.RxTextMessage = &MeshPacket{}
+ }
+ if err := m.RxTextMessage.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NoSave", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.NoSave = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DidGpsReset", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DidGpsReset = bool(v != 0)
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxWaypoint", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RxWaypoint == nil {
+ m.RxWaypoint = &MeshPacket{}
+ }
+ if err := m.RxWaypoint.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeRemoteHardwarePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeRemoteHardwarePins = append(m.NodeRemoteHardwarePins, &NodeRemoteHardwarePin{})
+ if err := m.NodeRemoteHardwarePins[len(m.NodeRemoteHardwarePins)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeDbLite", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeDbLite = append(m.NodeDbLite, &NodeInfoLite{})
+ if err := m.NodeDbLite[len(m.NodeDbLite)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeInfoLite) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeInfoLite: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeInfoLite: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num", wireType)
+ }
+ m.Num = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Num |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.User == nil {
+ m.User = &User{}
+ }
+ if err := m.User.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &PositionLite{}
+ }
+ if err := m.Position.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastHeard", wireType)
+ }
+ m.LastHeard = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastHeard = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DeviceMetrics == nil {
+ m.DeviceMetrics = &DeviceMetrics{}
+ }
+ if err := m.DeviceMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PositionLite) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PositionLite: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PositionLite: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LocationSource", wireType)
+ }
+ m.LocationSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LocationSource |= Position_LocSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChannelFile) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelFile: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelFile: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Channels = append(m.Channels, &Channel{})
+ if err := m.Channels[len(m.Channels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *OEMStore) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: OEMStore: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: OEMStore: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconWidth", wireType)
+ }
+ m.OemIconWidth = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemIconWidth |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconHeight", wireType)
+ }
+ m.OemIconHeight = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemIconHeight |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconBits", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OemIconBits = append(m.OemIconBits[:0], dAtA[iNdEx:postIndex]...)
+ if m.OemIconBits == nil {
+ m.OemIconBits = []byte{}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemFont", wireType)
+ }
+ m.OemFont = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemFont |= ScreenFonts(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemText", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OemText = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemAesKey", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OemAesKey = append(m.OemAesKey[:0], dAtA[iNdEx:postIndex]...)
+ if m.OemAesKey == nil {
+ m.OemAesKey = []byte{}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemLocalConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.OemLocalConfig == nil {
+ m.OemLocalConfig = &LocalConfig{}
+ }
+ if err := m.OemLocalConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemLocalModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.OemLocalModuleConfig == nil {
+ m.OemLocalModuleConfig = &LocalModuleConfig{}
+ }
+ if err := m.OemLocalModuleConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeRemoteHardwarePin) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePin: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePin: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeNum", wireType)
+ }
+ m.NodeNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pin", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Pin == nil {
+ m.Pin = &RemoteHardwarePin{}
+ }
+ if err := m.Pin.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceState) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceState: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceState: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyNode", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.MyNode == nil {
+ m.MyNode = &MyNodeInfo{}
+ }
+ if err := m.MyNode.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Owner == nil {
+ m.Owner = &User{}
+ }
+ if err := m.Owner.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReceiveQueue", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ReceiveQueue = append(m.ReceiveQueue, &MeshPacket{})
+ if err := m.ReceiveQueue[len(m.ReceiveQueue)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxTextMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RxTextMessage == nil {
+ m.RxTextMessage = &MeshPacket{}
+ }
+ if err := m.RxTextMessage.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NoSave", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.NoSave = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DidGpsReset", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DidGpsReset = bool(v != 0)
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxWaypoint", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RxWaypoint == nil {
+ m.RxWaypoint = &MeshPacket{}
+ }
+ if err := m.RxWaypoint.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeRemoteHardwarePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeRemoteHardwarePins = append(m.NodeRemoteHardwarePins, &NodeRemoteHardwarePin{})
+ if err := m.NodeRemoteHardwarePins[len(m.NodeRemoteHardwarePins)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeDbLite", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.NodeDbLite = append(m.NodeDbLite, &NodeInfoLite{})
+ if err := m.NodeDbLite[len(m.NodeDbLite)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeInfoLite) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeInfoLite: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeInfoLite: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num", wireType)
+ }
+ m.Num = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Num |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.User == nil {
+ m.User = &User{}
+ }
+ if err := m.User.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &PositionLite{}
+ }
+ if err := m.Position.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastHeard", wireType)
+ }
+ m.LastHeard = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastHeard = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DeviceMetrics == nil {
+ m.DeviceMetrics = &DeviceMetrics{}
+ }
+ if err := m.DeviceMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PositionLite) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PositionLite: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PositionLite: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LocationSource", wireType)
+ }
+ m.LocationSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LocationSource |= Position_LocSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChannelFile) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChannelFile: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChannelFile: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channels", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Channels = append(m.Channels, &Channel{})
+ if err := m.Channels[len(m.Channels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *OEMStore) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: OEMStore: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: OEMStore: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconWidth", wireType)
+ }
+ m.OemIconWidth = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemIconWidth |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconHeight", wireType)
+ }
+ m.OemIconHeight = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemIconHeight |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemIconBits", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OemIconBits = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemFont", wireType)
+ }
+ m.OemFont = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OemFont |= ScreenFonts(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemText", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.OemText = stringValue
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemAesKey", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OemAesKey = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemLocalConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.OemLocalConfig == nil {
+ m.OemLocalConfig = &LocalConfig{}
+ }
+ if err := m.OemLocalConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OemLocalModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.OemLocalModuleConfig == nil {
+ m.OemLocalModuleConfig = &LocalModuleConfig{}
+ }
+ if err := m.OemLocalModuleConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeRemoteHardwarePin) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePin: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeRemoteHardwarePin: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeNum", wireType)
+ }
+ m.NodeNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pin", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Pin == nil {
+ m.Pin = &RemoteHardwarePin{}
+ }
+ if err := m.Pin.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/localonly.pb.go b/meshtastic/localonly.pb.go
new file mode 100644
index 0000000..9cf211c
--- /dev/null
+++ b/meshtastic/localonly.pb.go
@@ -0,0 +1,533 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/localonly.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type LocalConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The part of the config that is specific to the Device
+ Device *Config_DeviceConfig `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+ // The part of the config that is specific to the GPS Position
+ Position *Config_PositionConfig `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"`
+ // The part of the config that is specific to the Power settings
+ Power *Config_PowerConfig `protobuf:"bytes,3,opt,name=power,proto3" json:"power,omitempty"`
+ // The part of the config that is specific to the Wifi Settings
+ Network *Config_NetworkConfig `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"`
+ // The part of the config that is specific to the Display
+ Display *Config_DisplayConfig `protobuf:"bytes,5,opt,name=display,proto3" json:"display,omitempty"`
+ // The part of the config that is specific to the Lora Radio
+ Lora *Config_LoRaConfig `protobuf:"bytes,6,opt,name=lora,proto3" json:"lora,omitempty"`
+ // The part of the config that is specific to the Bluetooth settings
+ Bluetooth *Config_BluetoothConfig `protobuf:"bytes,7,opt,name=bluetooth,proto3" json:"bluetooth,omitempty"`
+ // 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.
+ Version uint32 `protobuf:"varint,8,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *LocalConfig) Reset() {
+ *x = LocalConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_localonly_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LocalConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LocalConfig) ProtoMessage() {}
+
+func (x *LocalConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_localonly_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LocalConfig.ProtoReflect.Descriptor instead.
+func (*LocalConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_localonly_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *LocalConfig) GetDevice() *Config_DeviceConfig {
+ if x != nil {
+ return x.Device
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetPosition() *Config_PositionConfig {
+ if x != nil {
+ return x.Position
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetPower() *Config_PowerConfig {
+ if x != nil {
+ return x.Power
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetNetwork() *Config_NetworkConfig {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetDisplay() *Config_DisplayConfig {
+ if x != nil {
+ return x.Display
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetLora() *Config_LoRaConfig {
+ if x != nil {
+ return x.Lora
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetBluetooth() *Config_BluetoothConfig {
+ if x != nil {
+ return x.Bluetooth
+ }
+ return nil
+}
+
+func (x *LocalConfig) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+type LocalModuleConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The part of the config that is specific to the MQTT module
+ Mqtt *ModuleConfig_MQTTConfig `protobuf:"bytes,1,opt,name=mqtt,proto3" json:"mqtt,omitempty"`
+ // The part of the config that is specific to the Serial module
+ Serial *ModuleConfig_SerialConfig `protobuf:"bytes,2,opt,name=serial,proto3" json:"serial,omitempty"`
+ // The part of the config that is specific to the ExternalNotification module
+ ExternalNotification *ModuleConfig_ExternalNotificationConfig `protobuf:"bytes,3,opt,name=external_notification,json=externalNotification,proto3" json:"external_notification,omitempty"`
+ // The part of the config that is specific to the Store & Forward module
+ StoreForward *ModuleConfig_StoreForwardConfig `protobuf:"bytes,4,opt,name=store_forward,json=storeForward,proto3" json:"store_forward,omitempty"`
+ // The part of the config that is specific to the RangeTest module
+ RangeTest *ModuleConfig_RangeTestConfig `protobuf:"bytes,5,opt,name=range_test,json=rangeTest,proto3" json:"range_test,omitempty"`
+ // The part of the config that is specific to the Telemetry module
+ Telemetry *ModuleConfig_TelemetryConfig `protobuf:"bytes,6,opt,name=telemetry,proto3" json:"telemetry,omitempty"`
+ // The part of the config that is specific to the Canned Message module
+ CannedMessage *ModuleConfig_CannedMessageConfig `protobuf:"bytes,7,opt,name=canned_message,json=cannedMessage,proto3" json:"canned_message,omitempty"`
+ // The part of the config that is specific to the Audio module
+ Audio *ModuleConfig_AudioConfig `protobuf:"bytes,9,opt,name=audio,proto3" json:"audio,omitempty"`
+ // The part of the config that is specific to the Remote Hardware module
+ RemoteHardware *ModuleConfig_RemoteHardwareConfig `protobuf:"bytes,10,opt,name=remote_hardware,json=remoteHardware,proto3" json:"remote_hardware,omitempty"`
+ // The part of the config that is specific to the Neighbor Info module
+ NeighborInfo *ModuleConfig_NeighborInfoConfig `protobuf:"bytes,11,opt,name=neighbor_info,json=neighborInfo,proto3" json:"neighbor_info,omitempty"`
+ // The part of the config that is specific to the Ambient Lighting module
+ AmbientLighting *ModuleConfig_AmbientLightingConfig `protobuf:"bytes,12,opt,name=ambient_lighting,json=ambientLighting,proto3" json:"ambient_lighting,omitempty"`
+ // The part of the config that is specific to the Detection Sensor module
+ DetectionSensor *ModuleConfig_DetectionSensorConfig `protobuf:"bytes,13,opt,name=detection_sensor,json=detectionSensor,proto3" json:"detection_sensor,omitempty"`
+ // Paxcounter Config
+ Paxcounter *ModuleConfig_PaxcounterConfig `protobuf:"bytes,14,opt,name=paxcounter,proto3" json:"paxcounter,omitempty"`
+ // 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.
+ Version uint32 `protobuf:"varint,8,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *LocalModuleConfig) Reset() {
+ *x = LocalModuleConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_localonly_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LocalModuleConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LocalModuleConfig) ProtoMessage() {}
+
+func (x *LocalModuleConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_localonly_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LocalModuleConfig.ProtoReflect.Descriptor instead.
+func (*LocalModuleConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_localonly_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *LocalModuleConfig) GetMqtt() *ModuleConfig_MQTTConfig {
+ if x != nil {
+ return x.Mqtt
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetSerial() *ModuleConfig_SerialConfig {
+ if x != nil {
+ return x.Serial
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetExternalNotification() *ModuleConfig_ExternalNotificationConfig {
+ if x != nil {
+ return x.ExternalNotification
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetStoreForward() *ModuleConfig_StoreForwardConfig {
+ if x != nil {
+ return x.StoreForward
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetRangeTest() *ModuleConfig_RangeTestConfig {
+ if x != nil {
+ return x.RangeTest
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetTelemetry() *ModuleConfig_TelemetryConfig {
+ if x != nil {
+ return x.Telemetry
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetCannedMessage() *ModuleConfig_CannedMessageConfig {
+ if x != nil {
+ return x.CannedMessage
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetAudio() *ModuleConfig_AudioConfig {
+ if x != nil {
+ return x.Audio
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetRemoteHardware() *ModuleConfig_RemoteHardwareConfig {
+ if x != nil {
+ return x.RemoteHardware
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetNeighborInfo() *ModuleConfig_NeighborInfoConfig {
+ if x != nil {
+ return x.NeighborInfo
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetAmbientLighting() *ModuleConfig_AmbientLightingConfig {
+ if x != nil {
+ return x.AmbientLighting
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetDetectionSensor() *ModuleConfig_DetectionSensorConfig {
+ if x != nil {
+ return x.DetectionSensor
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetPaxcounter() *ModuleConfig_PaxcounterConfig {
+ if x != nil {
+ return x.Paxcounter
+ }
+ return nil
+}
+
+func (x *LocalModuleConfig) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+var File_meshtastic_localonly_proto protoreflect.FileDescriptor
+
+var file_meshtastic_localonly_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x1a, 0x17, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x22, 0xc2, 0x03, 0x0a, 0x0b, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x37, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x6f, 0x77,
+ 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x77,
+ 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12,
+ 0x3a, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x07, 0x64,
+ 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07,
+ 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x6f, 0x72, 0x61, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x72, 0x61, 0x12, 0x40, 0x0a, 0x09, 0x62, 0x6c,
+ 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07,
+ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x08, 0x0a, 0x11, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
+ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x04,
+ 0x6d, 0x71, 0x74, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x51, 0x54, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x73, 0x65,
+ 0x72, 0x69, 0x61, 0x6c, 0x12, 0x68, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+ 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,
+ 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50,
+ 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64,
+ 0x12, 0x47, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52,
+ 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09,
+ 0x72, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x74, 0x65, 0x6c,
+ 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
+ 0x79, 0x12, 0x53, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x61, 0x75, 0x64,
+ 0x69, 0x6f, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72,
+ 0x64, 0x77, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64,
+ 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x6e, 0x65,
+ 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67,
+ 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c,
+ 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x10,
+ 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c,
+ 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x59, 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x74, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73,
+ 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x0a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a,
+ 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
+ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x64, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
+ 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0f,
+ 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x6e, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a,
+ 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
+ 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_localonly_proto_rawDescOnce sync.Once
+ file_meshtastic_localonly_proto_rawDescData = file_meshtastic_localonly_proto_rawDesc
+)
+
+func file_meshtastic_localonly_proto_rawDescGZIP() []byte {
+ file_meshtastic_localonly_proto_rawDescOnce.Do(func() {
+ file_meshtastic_localonly_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_localonly_proto_rawDescData)
+ })
+ return file_meshtastic_localonly_proto_rawDescData
+}
+
+var file_meshtastic_localonly_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_meshtastic_localonly_proto_goTypes = []interface{}{
+ (*LocalConfig)(nil), // 0: meshtastic.LocalConfig
+ (*LocalModuleConfig)(nil), // 1: meshtastic.LocalModuleConfig
+ (*Config_DeviceConfig)(nil), // 2: meshtastic.Config.DeviceConfig
+ (*Config_PositionConfig)(nil), // 3: meshtastic.Config.PositionConfig
+ (*Config_PowerConfig)(nil), // 4: meshtastic.Config.PowerConfig
+ (*Config_NetworkConfig)(nil), // 5: meshtastic.Config.NetworkConfig
+ (*Config_DisplayConfig)(nil), // 6: meshtastic.Config.DisplayConfig
+ (*Config_LoRaConfig)(nil), // 7: meshtastic.Config.LoRaConfig
+ (*Config_BluetoothConfig)(nil), // 8: meshtastic.Config.BluetoothConfig
+ (*ModuleConfig_MQTTConfig)(nil), // 9: meshtastic.ModuleConfig.MQTTConfig
+ (*ModuleConfig_SerialConfig)(nil), // 10: meshtastic.ModuleConfig.SerialConfig
+ (*ModuleConfig_ExternalNotificationConfig)(nil), // 11: meshtastic.ModuleConfig.ExternalNotificationConfig
+ (*ModuleConfig_StoreForwardConfig)(nil), // 12: meshtastic.ModuleConfig.StoreForwardConfig
+ (*ModuleConfig_RangeTestConfig)(nil), // 13: meshtastic.ModuleConfig.RangeTestConfig
+ (*ModuleConfig_TelemetryConfig)(nil), // 14: meshtastic.ModuleConfig.TelemetryConfig
+ (*ModuleConfig_CannedMessageConfig)(nil), // 15: meshtastic.ModuleConfig.CannedMessageConfig
+ (*ModuleConfig_AudioConfig)(nil), // 16: meshtastic.ModuleConfig.AudioConfig
+ (*ModuleConfig_RemoteHardwareConfig)(nil), // 17: meshtastic.ModuleConfig.RemoteHardwareConfig
+ (*ModuleConfig_NeighborInfoConfig)(nil), // 18: meshtastic.ModuleConfig.NeighborInfoConfig
+ (*ModuleConfig_AmbientLightingConfig)(nil), // 19: meshtastic.ModuleConfig.AmbientLightingConfig
+ (*ModuleConfig_DetectionSensorConfig)(nil), // 20: meshtastic.ModuleConfig.DetectionSensorConfig
+ (*ModuleConfig_PaxcounterConfig)(nil), // 21: meshtastic.ModuleConfig.PaxcounterConfig
+}
+var file_meshtastic_localonly_proto_depIdxs = []int32{
+ 2, // 0: meshtastic.LocalConfig.device:type_name -> meshtastic.Config.DeviceConfig
+ 3, // 1: meshtastic.LocalConfig.position:type_name -> meshtastic.Config.PositionConfig
+ 4, // 2: meshtastic.LocalConfig.power:type_name -> meshtastic.Config.PowerConfig
+ 5, // 3: meshtastic.LocalConfig.network:type_name -> meshtastic.Config.NetworkConfig
+ 6, // 4: meshtastic.LocalConfig.display:type_name -> meshtastic.Config.DisplayConfig
+ 7, // 5: meshtastic.LocalConfig.lora:type_name -> meshtastic.Config.LoRaConfig
+ 8, // 6: meshtastic.LocalConfig.bluetooth:type_name -> meshtastic.Config.BluetoothConfig
+ 9, // 7: meshtastic.LocalModuleConfig.mqtt:type_name -> meshtastic.ModuleConfig.MQTTConfig
+ 10, // 8: meshtastic.LocalModuleConfig.serial:type_name -> meshtastic.ModuleConfig.SerialConfig
+ 11, // 9: meshtastic.LocalModuleConfig.external_notification:type_name -> meshtastic.ModuleConfig.ExternalNotificationConfig
+ 12, // 10: meshtastic.LocalModuleConfig.store_forward:type_name -> meshtastic.ModuleConfig.StoreForwardConfig
+ 13, // 11: meshtastic.LocalModuleConfig.range_test:type_name -> meshtastic.ModuleConfig.RangeTestConfig
+ 14, // 12: meshtastic.LocalModuleConfig.telemetry:type_name -> meshtastic.ModuleConfig.TelemetryConfig
+ 15, // 13: meshtastic.LocalModuleConfig.canned_message:type_name -> meshtastic.ModuleConfig.CannedMessageConfig
+ 16, // 14: meshtastic.LocalModuleConfig.audio:type_name -> meshtastic.ModuleConfig.AudioConfig
+ 17, // 15: meshtastic.LocalModuleConfig.remote_hardware:type_name -> meshtastic.ModuleConfig.RemoteHardwareConfig
+ 18, // 16: meshtastic.LocalModuleConfig.neighbor_info:type_name -> meshtastic.ModuleConfig.NeighborInfoConfig
+ 19, // 17: meshtastic.LocalModuleConfig.ambient_lighting:type_name -> meshtastic.ModuleConfig.AmbientLightingConfig
+ 20, // 18: meshtastic.LocalModuleConfig.detection_sensor:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig
+ 21, // 19: meshtastic.LocalModuleConfig.paxcounter:type_name -> meshtastic.ModuleConfig.PaxcounterConfig
+ 20, // [20:20] is the sub-list for method output_type
+ 20, // [20:20] is the sub-list for method input_type
+ 20, // [20:20] is the sub-list for extension type_name
+ 20, // [20:20] is the sub-list for extension extendee
+ 0, // [0:20] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_localonly_proto_init() }
+func file_meshtastic_localonly_proto_init() {
+ if File_meshtastic_localonly_proto != nil {
+ return
+ }
+ file_meshtastic_config_proto_init()
+ file_meshtastic_module_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_localonly_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LocalConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_localonly_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LocalModuleConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_localonly_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_localonly_proto_goTypes,
+ DependencyIndexes: file_meshtastic_localonly_proto_depIdxs,
+ MessageInfos: file_meshtastic_localonly_proto_msgTypes,
+ }.Build()
+ File_meshtastic_localonly_proto = out.File
+ file_meshtastic_localonly_proto_rawDesc = nil
+ file_meshtastic_localonly_proto_goTypes = nil
+ file_meshtastic_localonly_proto_depIdxs = nil
+}
diff --git a/meshtastic/localonly_vtproto.pb.go b/meshtastic/localonly_vtproto.pb.go
new file mode 100644
index 0000000..a682c0b
--- /dev/null
+++ b/meshtastic/localonly_vtproto.pb.go
@@ -0,0 +1,2551 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/localonly.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *LocalConfig) CloneVT() *LocalConfig {
+ if m == nil {
+ return (*LocalConfig)(nil)
+ }
+ r := new(LocalConfig)
+ r.Device = m.Device.CloneVT()
+ r.Position = m.Position.CloneVT()
+ r.Power = m.Power.CloneVT()
+ r.Network = m.Network.CloneVT()
+ r.Display = m.Display.CloneVT()
+ r.Lora = m.Lora.CloneVT()
+ r.Bluetooth = m.Bluetooth.CloneVT()
+ r.Version = m.Version
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *LocalConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *LocalModuleConfig) CloneVT() *LocalModuleConfig {
+ if m == nil {
+ return (*LocalModuleConfig)(nil)
+ }
+ r := new(LocalModuleConfig)
+ r.Mqtt = m.Mqtt.CloneVT()
+ r.Serial = m.Serial.CloneVT()
+ r.ExternalNotification = m.ExternalNotification.CloneVT()
+ r.StoreForward = m.StoreForward.CloneVT()
+ r.RangeTest = m.RangeTest.CloneVT()
+ r.Telemetry = m.Telemetry.CloneVT()
+ r.CannedMessage = m.CannedMessage.CloneVT()
+ r.Audio = m.Audio.CloneVT()
+ r.RemoteHardware = m.RemoteHardware.CloneVT()
+ r.NeighborInfo = m.NeighborInfo.CloneVT()
+ r.AmbientLighting = m.AmbientLighting.CloneVT()
+ r.DetectionSensor = m.DetectionSensor.CloneVT()
+ r.Paxcounter = m.Paxcounter.CloneVT()
+ r.Version = m.Version
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *LocalModuleConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *LocalConfig) EqualVT(that *LocalConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Device.EqualVT(that.Device) {
+ return false
+ }
+ if !this.Position.EqualVT(that.Position) {
+ return false
+ }
+ if !this.Power.EqualVT(that.Power) {
+ return false
+ }
+ if !this.Network.EqualVT(that.Network) {
+ return false
+ }
+ if !this.Display.EqualVT(that.Display) {
+ return false
+ }
+ if !this.Lora.EqualVT(that.Lora) {
+ return false
+ }
+ if !this.Bluetooth.EqualVT(that.Bluetooth) {
+ return false
+ }
+ if this.Version != that.Version {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *LocalConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*LocalConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *LocalModuleConfig) EqualVT(that *LocalModuleConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Mqtt.EqualVT(that.Mqtt) {
+ return false
+ }
+ if !this.Serial.EqualVT(that.Serial) {
+ return false
+ }
+ if !this.ExternalNotification.EqualVT(that.ExternalNotification) {
+ return false
+ }
+ if !this.StoreForward.EqualVT(that.StoreForward) {
+ return false
+ }
+ if !this.RangeTest.EqualVT(that.RangeTest) {
+ return false
+ }
+ if !this.Telemetry.EqualVT(that.Telemetry) {
+ return false
+ }
+ if !this.CannedMessage.EqualVT(that.CannedMessage) {
+ return false
+ }
+ if this.Version != that.Version {
+ return false
+ }
+ if !this.Audio.EqualVT(that.Audio) {
+ return false
+ }
+ if !this.RemoteHardware.EqualVT(that.RemoteHardware) {
+ return false
+ }
+ if !this.NeighborInfo.EqualVT(that.NeighborInfo) {
+ return false
+ }
+ if !this.AmbientLighting.EqualVT(that.AmbientLighting) {
+ return false
+ }
+ if !this.DetectionSensor.EqualVT(that.DetectionSensor) {
+ return false
+ }
+ if !this.Paxcounter.EqualVT(that.Paxcounter) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *LocalModuleConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*LocalModuleConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *LocalConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LocalConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *LocalConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if m.Lora != nil {
+ size, err := m.Lora.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.Display != nil {
+ size, err := m.Display.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.Network != nil {
+ size, err := m.Network.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Power != nil {
+ size, err := m.Power.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Device != nil {
+ size, err := m.Device.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LocalModuleConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LocalModuleConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *LocalModuleConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Paxcounter != nil {
+ size, err := m.Paxcounter.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ if m.DetectionSensor != nil {
+ size, err := m.DetectionSensor.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ if m.AmbientLighting != nil {
+ size, err := m.AmbientLighting.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ if m.NeighborInfo != nil {
+ size, err := m.NeighborInfo.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ if m.RemoteHardware != nil {
+ size, err := m.RemoteHardware.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ if m.Audio != nil {
+ size, err := m.Audio.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.CannedMessage != nil {
+ size, err := m.CannedMessage.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if m.Telemetry != nil {
+ size, err := m.Telemetry.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.RangeTest != nil {
+ size, err := m.RangeTest.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.StoreForward != nil {
+ size, err := m.StoreForward.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.ExternalNotification != nil {
+ size, err := m.ExternalNotification.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Mqtt != nil {
+ size, err := m.Mqtt.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LocalConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LocalConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *LocalConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Bluetooth != nil {
+ size, err := m.Bluetooth.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if m.Lora != nil {
+ size, err := m.Lora.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.Display != nil {
+ size, err := m.Display.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.Network != nil {
+ size, err := m.Network.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Power != nil {
+ size, err := m.Power.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Device != nil {
+ size, err := m.Device.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LocalModuleConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LocalModuleConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *LocalModuleConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Paxcounter != nil {
+ size, err := m.Paxcounter.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ if m.DetectionSensor != nil {
+ size, err := m.DetectionSensor.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ if m.AmbientLighting != nil {
+ size, err := m.AmbientLighting.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ if m.NeighborInfo != nil {
+ size, err := m.NeighborInfo.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ if m.RemoteHardware != nil {
+ size, err := m.RemoteHardware.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ if m.Audio != nil {
+ size, err := m.Audio.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ if m.Version != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.CannedMessage != nil {
+ size, err := m.CannedMessage.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if m.Telemetry != nil {
+ size, err := m.Telemetry.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.RangeTest != nil {
+ size, err := m.RangeTest.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.StoreForward != nil {
+ size, err := m.StoreForward.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.ExternalNotification != nil {
+ size, err := m.ExternalNotification.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Mqtt != nil {
+ size, err := m.Mqtt.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LocalConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Device != nil {
+ l = m.Device.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Position != nil {
+ l = m.Position.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Power != nil {
+ l = m.Power.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Network != nil {
+ l = m.Network.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Display != nil {
+ l = m.Display.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Lora != nil {
+ l = m.Lora.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Bluetooth != nil {
+ l = m.Bluetooth.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Version != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Version))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *LocalModuleConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Mqtt != nil {
+ l = m.Mqtt.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Serial != nil {
+ l = m.Serial.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.ExternalNotification != nil {
+ l = m.ExternalNotification.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.StoreForward != nil {
+ l = m.StoreForward.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.RangeTest != nil {
+ l = m.RangeTest.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Telemetry != nil {
+ l = m.Telemetry.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.CannedMessage != nil {
+ l = m.CannedMessage.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Version != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Version))
+ }
+ if m.Audio != nil {
+ l = m.Audio.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.RemoteHardware != nil {
+ l = m.RemoteHardware.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.NeighborInfo != nil {
+ l = m.NeighborInfo.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.AmbientLighting != nil {
+ l = m.AmbientLighting.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.DetectionSensor != nil {
+ l = m.DetectionSensor.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Paxcounter != nil {
+ l = m.Paxcounter.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *LocalConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LocalConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LocalConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Device == nil {
+ m.Device = &Config_DeviceConfig{}
+ }
+ if err := m.Device.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &Config_PositionConfig{}
+ }
+ if err := m.Position.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Power == nil {
+ m.Power = &Config_PowerConfig{}
+ }
+ if err := m.Power.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Network == nil {
+ m.Network = &Config_NetworkConfig{}
+ }
+ if err := m.Network.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Display == nil {
+ m.Display = &Config_DisplayConfig{}
+ }
+ if err := m.Display.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lora", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Lora == nil {
+ m.Lora = &Config_LoRaConfig{}
+ }
+ if err := m.Lora.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Bluetooth == nil {
+ m.Bluetooth = &Config_BluetoothConfig{}
+ }
+ if err := m.Bluetooth.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *LocalModuleConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LocalModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LocalModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mqtt", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Mqtt == nil {
+ m.Mqtt = &ModuleConfig_MQTTConfig{}
+ }
+ if err := m.Mqtt.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Serial == nil {
+ m.Serial = &ModuleConfig_SerialConfig{}
+ }
+ if err := m.Serial.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExternalNotification", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ExternalNotification == nil {
+ m.ExternalNotification = &ModuleConfig_ExternalNotificationConfig{}
+ }
+ if err := m.ExternalNotification.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StoreForward", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.StoreForward == nil {
+ m.StoreForward = &ModuleConfig_StoreForwardConfig{}
+ }
+ if err := m.StoreForward.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RangeTest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RangeTest == nil {
+ m.RangeTest = &ModuleConfig_RangeTestConfig{}
+ }
+ if err := m.RangeTest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Telemetry", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Telemetry == nil {
+ m.Telemetry = &ModuleConfig_TelemetryConfig{}
+ }
+ if err := m.Telemetry.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CannedMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.CannedMessage == nil {
+ m.CannedMessage = &ModuleConfig_CannedMessageConfig{}
+ }
+ if err := m.CannedMessage.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Audio", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Audio == nil {
+ m.Audio = &ModuleConfig_AudioConfig{}
+ }
+ if err := m.Audio.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoteHardware", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RemoteHardware == nil {
+ m.RemoteHardware = &ModuleConfig_RemoteHardwareConfig{}
+ }
+ if err := m.RemoteHardware.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NeighborInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.NeighborInfo == nil {
+ m.NeighborInfo = &ModuleConfig_NeighborInfoConfig{}
+ }
+ if err := m.NeighborInfo.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AmbientLighting", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.AmbientLighting == nil {
+ m.AmbientLighting = &ModuleConfig_AmbientLightingConfig{}
+ }
+ if err := m.AmbientLighting.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionSensor", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DetectionSensor == nil {
+ m.DetectionSensor = &ModuleConfig_DetectionSensorConfig{}
+ }
+ if err := m.DetectionSensor.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Paxcounter", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Paxcounter == nil {
+ m.Paxcounter = &ModuleConfig_PaxcounterConfig{}
+ }
+ if err := m.Paxcounter.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *LocalConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LocalConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LocalConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Device == nil {
+ m.Device = &Config_DeviceConfig{}
+ }
+ if err := m.Device.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &Config_PositionConfig{}
+ }
+ if err := m.Position.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Power == nil {
+ m.Power = &Config_PowerConfig{}
+ }
+ if err := m.Power.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Network == nil {
+ m.Network = &Config_NetworkConfig{}
+ }
+ if err := m.Network.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Display == nil {
+ m.Display = &Config_DisplayConfig{}
+ }
+ if err := m.Display.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lora", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Lora == nil {
+ m.Lora = &Config_LoRaConfig{}
+ }
+ if err := m.Lora.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bluetooth", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Bluetooth == nil {
+ m.Bluetooth = &Config_BluetoothConfig{}
+ }
+ if err := m.Bluetooth.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *LocalModuleConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LocalModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LocalModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mqtt", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Mqtt == nil {
+ m.Mqtt = &ModuleConfig_MQTTConfig{}
+ }
+ if err := m.Mqtt.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Serial == nil {
+ m.Serial = &ModuleConfig_SerialConfig{}
+ }
+ if err := m.Serial.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExternalNotification", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ExternalNotification == nil {
+ m.ExternalNotification = &ModuleConfig_ExternalNotificationConfig{}
+ }
+ if err := m.ExternalNotification.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StoreForward", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.StoreForward == nil {
+ m.StoreForward = &ModuleConfig_StoreForwardConfig{}
+ }
+ if err := m.StoreForward.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RangeTest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RangeTest == nil {
+ m.RangeTest = &ModuleConfig_RangeTestConfig{}
+ }
+ if err := m.RangeTest.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Telemetry", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Telemetry == nil {
+ m.Telemetry = &ModuleConfig_TelemetryConfig{}
+ }
+ if err := m.Telemetry.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CannedMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.CannedMessage == nil {
+ m.CannedMessage = &ModuleConfig_CannedMessageConfig{}
+ }
+ if err := m.CannedMessage.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Audio", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Audio == nil {
+ m.Audio = &ModuleConfig_AudioConfig{}
+ }
+ if err := m.Audio.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoteHardware", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.RemoteHardware == nil {
+ m.RemoteHardware = &ModuleConfig_RemoteHardwareConfig{}
+ }
+ if err := m.RemoteHardware.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NeighborInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.NeighborInfo == nil {
+ m.NeighborInfo = &ModuleConfig_NeighborInfoConfig{}
+ }
+ if err := m.NeighborInfo.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AmbientLighting", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.AmbientLighting == nil {
+ m.AmbientLighting = &ModuleConfig_AmbientLightingConfig{}
+ }
+ if err := m.AmbientLighting.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionSensor", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DetectionSensor == nil {
+ m.DetectionSensor = &ModuleConfig_DetectionSensorConfig{}
+ }
+ if err := m.DetectionSensor.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Paxcounter", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Paxcounter == nil {
+ m.Paxcounter = &ModuleConfig_PaxcounterConfig{}
+ }
+ if err := m.Paxcounter.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/mesh.pb.go b/meshtastic/mesh.pb.go
new file mode 100644
index 0000000..d0284bb
--- /dev/null
+++ b/meshtastic/mesh.pb.go
@@ -0,0 +1,3914 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/mesh.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Note: these enum names must EXACTLY match the string used in the device
+// bin/build-all.sh script.
+// Because they will be used to find firmware filenames in the android app for OTA updates.
+// To match the old style filenames, _ is converted to -, p is converted to .
+type HardwareModel int32
+
+const (
+ // TODO: REPLACE
+ HardwareModel_UNSET HardwareModel = 0
+ // TODO: REPLACE
+ HardwareModel_TLORA_V2 HardwareModel = 1
+ // TODO: REPLACE
+ HardwareModel_TLORA_V1 HardwareModel = 2
+ // TODO: REPLACE
+ HardwareModel_TLORA_V2_1_1P6 HardwareModel = 3
+ // TODO: REPLACE
+ HardwareModel_TBEAM HardwareModel = 4
+ // The original heltec WiFi_Lora_32_V2, which had battery voltage sensing hooked to GPIO 13
+ // (see HELTEC_V2 for the new version).
+ HardwareModel_HELTEC_V2_0 HardwareModel = 5
+ // TODO: REPLACE
+ HardwareModel_TBEAM_V0P7 HardwareModel = 6
+ // TODO: REPLACE
+ HardwareModel_T_ECHO HardwareModel = 7
+ // TODO: REPLACE
+ HardwareModel_TLORA_V1_1P3 HardwareModel = 8
+ // TODO: REPLACE
+ HardwareModel_RAK4631 HardwareModel = 9
+ // The new version of the heltec WiFi_Lora_32_V2 board that has battery sensing hooked to GPIO 37.
+ // Sadly they did not update anything on the silkscreen to identify this board
+ HardwareModel_HELTEC_V2_1 HardwareModel = 10
+ // Ancient heltec WiFi_Lora_32 board
+ HardwareModel_HELTEC_V1 HardwareModel = 11
+ // New T-BEAM with ESP32-S3 CPU
+ HardwareModel_LILYGO_TBEAM_S3_CORE HardwareModel = 12
+ // RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/
+ HardwareModel_RAK11200 HardwareModel = 13
+ // B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano
+ HardwareModel_NANO_G1 HardwareModel = 14
+ // TODO: REPLACE
+ HardwareModel_TLORA_V2_1_1P8 HardwareModel = 15
+ // TODO: REPLACE
+ HardwareModel_TLORA_T3_S3 HardwareModel = 16
+ // B&Q Consulting Nano G1 Explorer: https://wiki.uniteng.com/en/meshtastic/nano-g1-explorer
+ HardwareModel_NANO_G1_EXPLORER HardwareModel = 17
+ // B&Q Consulting Nano G2 Ultra: https://wiki.uniteng.com/en/meshtastic/nano-g2-ultra
+ HardwareModel_NANO_G2_ULTRA HardwareModel = 18
+ // LoRAType device: https://loratype.org/
+ HardwareModel_LORA_TYPE HardwareModel = 19
+ // B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
+ HardwareModel_STATION_G1 HardwareModel = 25
+ // RAK11310 (RP2040 + SX1262)
+ HardwareModel_RAK11310 HardwareModel = 26
+ // Makerfabs SenseLoRA Receiver (RP2040 + RFM96)
+ HardwareModel_SENSELORA_RP2040 HardwareModel = 27
+ // Makerfabs SenseLoRA Industrial Monitor (ESP32-S3 + RFM96)
+ HardwareModel_SENSELORA_S3 HardwareModel = 28
+ // Canary Radio Company - CanaryOne: https://canaryradio.io/products/canaryone
+ HardwareModel_CANARYONE HardwareModel = 29
+ // Waveshare RP2040 LoRa - https://www.waveshare.com/rp2040-lora.htm
+ HardwareModel_RP2040_LORA HardwareModel = 30
+ // ---------------------------------------------------------------------------
+ // Less common/prototype boards listed here (needs one more byte over the air)
+ // ---------------------------------------------------------------------------
+ HardwareModel_LORA_RELAY_V1 HardwareModel = 32
+ // TODO: REPLACE
+ HardwareModel_NRF52840DK HardwareModel = 33
+ // TODO: REPLACE
+ HardwareModel_PPR HardwareModel = 34
+ // TODO: REPLACE
+ HardwareModel_GENIEBLOCKS HardwareModel = 35
+ // TODO: REPLACE
+ HardwareModel_NRF52_UNKNOWN HardwareModel = 36
+ // TODO: REPLACE
+ HardwareModel_PORTDUINO HardwareModel = 37
+ // The simulator built into the android app
+ HardwareModel_ANDROID_SIM HardwareModel = 38
+ // Custom DIY device based on @NanoVHF schematics: https://github.com/NanoVHF/Meshtastic-DIY/tree/main/Schematics
+ HardwareModel_DIY_V1 HardwareModel = 39
+ // nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/
+ HardwareModel_NRF52840_PCA10059 HardwareModel = 40
+ // Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3
+ HardwareModel_DR_DEV HardwareModel = 41
+ // M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/
+ HardwareModel_M5STACK HardwareModel = 42
+ // New Heltec LoRA32 with ESP32-S3 CPU
+ HardwareModel_HELTEC_V3 HardwareModel = 43
+ // New Heltec Wireless Stick Lite with ESP32-S3 CPU
+ HardwareModel_HELTEC_WSL_V3 HardwareModel = 44
+ // New BETAFPV ELRS Micro TX Module 2.4G with ESP32 CPU
+ HardwareModel_BETAFPV_2400_TX HardwareModel = 45
+ // BetaFPV ExpressLRS "Nano" TX Module 900MHz with ESP32 CPU
+ HardwareModel_BETAFPV_900_NANO_TX HardwareModel = 46
+ // Raspberry Pi Pico (W) with Waveshare SX1262 LoRa Node Module
+ HardwareModel_RPI_PICO HardwareModel = 47
+ // Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
+ // Newer V1.1, version is written on the PCB near the display.
+ HardwareModel_HELTEC_WIRELESS_TRACKER HardwareModel = 48
+ // Heltec Wireless Paper with ESP32-S3 CPU and E-Ink display
+ HardwareModel_HELTEC_WIRELESS_PAPER HardwareModel = 49
+ // LilyGo T-Deck with ESP32-S3 CPU, Keyboard and IPS display
+ HardwareModel_T_DECK HardwareModel = 50
+ // LilyGo T-Watch S3 with ESP32-S3 CPU and IPS display
+ HardwareModel_T_WATCH_S3 HardwareModel = 51
+ // Bobricius Picomputer with ESP32-S3 CPU, Keyboard and IPS display
+ HardwareModel_PICOMPUTER_S3 HardwareModel = 52
+ // Heltec HT-CT62 with ESP32-C3 CPU and SX1262 LoRa
+ HardwareModel_HELTEC_HT62 HardwareModel = 53
+ // EBYTE SPI LoRa module and ESP32-S3
+ HardwareModel_EBYTE_ESP32_S3 HardwareModel = 54
+ // Waveshare ESP32-S3-PICO with PICO LoRa HAT and 2.9inch e-Ink
+ HardwareModel_ESP32_S3_PICO HardwareModel = 55
+ // CircuitMess Chatter 2 LLCC68 Lora Module and ESP32 Wroom
+ // Lora module can be swapped out for a Heltec RA-62 which is "almost" pin compatible
+ // with one cut and one jumper Meshtastic works
+ HardwareModel_CHATTER_2 HardwareModel = 56
+ // Heltec Wireless Paper, With ESP32-S3 CPU and E-Ink display
+ // Older "V1.0" Variant, has no "version sticker"
+ // E-Ink model is DEPG0213BNS800
+ // Tab on the screen protector is RED
+ // Flex connector marking is FPC-7528B
+ HardwareModel_HELTEC_WIRELESS_PAPER_V1_0 HardwareModel = 57
+ // Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT
+ // Older "V1.0" Variant
+ HardwareModel_HELTEC_WIRELESS_TRACKER_V1_0 HardwareModel = 58
+ // ------------------------------------------------------------------------------------------------------------------------------------------
+ // 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.
+ // ------------------------------------------------------------------------------------------------------------------------------------------
+ HardwareModel_PRIVATE_HW HardwareModel = 255
+)
+
+// Enum value maps for HardwareModel.
+var (
+ HardwareModel_name = map[int32]string{
+ 0: "UNSET",
+ 1: "TLORA_V2",
+ 2: "TLORA_V1",
+ 3: "TLORA_V2_1_1P6",
+ 4: "TBEAM",
+ 5: "HELTEC_V2_0",
+ 6: "TBEAM_V0P7",
+ 7: "T_ECHO",
+ 8: "TLORA_V1_1P3",
+ 9: "RAK4631",
+ 10: "HELTEC_V2_1",
+ 11: "HELTEC_V1",
+ 12: "LILYGO_TBEAM_S3_CORE",
+ 13: "RAK11200",
+ 14: "NANO_G1",
+ 15: "TLORA_V2_1_1P8",
+ 16: "TLORA_T3_S3",
+ 17: "NANO_G1_EXPLORER",
+ 18: "NANO_G2_ULTRA",
+ 19: "LORA_TYPE",
+ 25: "STATION_G1",
+ 26: "RAK11310",
+ 27: "SENSELORA_RP2040",
+ 28: "SENSELORA_S3",
+ 29: "CANARYONE",
+ 30: "RP2040_LORA",
+ 32: "LORA_RELAY_V1",
+ 33: "NRF52840DK",
+ 34: "PPR",
+ 35: "GENIEBLOCKS",
+ 36: "NRF52_UNKNOWN",
+ 37: "PORTDUINO",
+ 38: "ANDROID_SIM",
+ 39: "DIY_V1",
+ 40: "NRF52840_PCA10059",
+ 41: "DR_DEV",
+ 42: "M5STACK",
+ 43: "HELTEC_V3",
+ 44: "HELTEC_WSL_V3",
+ 45: "BETAFPV_2400_TX",
+ 46: "BETAFPV_900_NANO_TX",
+ 47: "RPI_PICO",
+ 48: "HELTEC_WIRELESS_TRACKER",
+ 49: "HELTEC_WIRELESS_PAPER",
+ 50: "T_DECK",
+ 51: "T_WATCH_S3",
+ 52: "PICOMPUTER_S3",
+ 53: "HELTEC_HT62",
+ 54: "EBYTE_ESP32_S3",
+ 55: "ESP32_S3_PICO",
+ 56: "CHATTER_2",
+ 57: "HELTEC_WIRELESS_PAPER_V1_0",
+ 58: "HELTEC_WIRELESS_TRACKER_V1_0",
+ 255: "PRIVATE_HW",
+ }
+ HardwareModel_value = map[string]int32{
+ "UNSET": 0,
+ "TLORA_V2": 1,
+ "TLORA_V1": 2,
+ "TLORA_V2_1_1P6": 3,
+ "TBEAM": 4,
+ "HELTEC_V2_0": 5,
+ "TBEAM_V0P7": 6,
+ "T_ECHO": 7,
+ "TLORA_V1_1P3": 8,
+ "RAK4631": 9,
+ "HELTEC_V2_1": 10,
+ "HELTEC_V1": 11,
+ "LILYGO_TBEAM_S3_CORE": 12,
+ "RAK11200": 13,
+ "NANO_G1": 14,
+ "TLORA_V2_1_1P8": 15,
+ "TLORA_T3_S3": 16,
+ "NANO_G1_EXPLORER": 17,
+ "NANO_G2_ULTRA": 18,
+ "LORA_TYPE": 19,
+ "STATION_G1": 25,
+ "RAK11310": 26,
+ "SENSELORA_RP2040": 27,
+ "SENSELORA_S3": 28,
+ "CANARYONE": 29,
+ "RP2040_LORA": 30,
+ "LORA_RELAY_V1": 32,
+ "NRF52840DK": 33,
+ "PPR": 34,
+ "GENIEBLOCKS": 35,
+ "NRF52_UNKNOWN": 36,
+ "PORTDUINO": 37,
+ "ANDROID_SIM": 38,
+ "DIY_V1": 39,
+ "NRF52840_PCA10059": 40,
+ "DR_DEV": 41,
+ "M5STACK": 42,
+ "HELTEC_V3": 43,
+ "HELTEC_WSL_V3": 44,
+ "BETAFPV_2400_TX": 45,
+ "BETAFPV_900_NANO_TX": 46,
+ "RPI_PICO": 47,
+ "HELTEC_WIRELESS_TRACKER": 48,
+ "HELTEC_WIRELESS_PAPER": 49,
+ "T_DECK": 50,
+ "T_WATCH_S3": 51,
+ "PICOMPUTER_S3": 52,
+ "HELTEC_HT62": 53,
+ "EBYTE_ESP32_S3": 54,
+ "ESP32_S3_PICO": 55,
+ "CHATTER_2": 56,
+ "HELTEC_WIRELESS_PAPER_V1_0": 57,
+ "HELTEC_WIRELESS_TRACKER_V1_0": 58,
+ "PRIVATE_HW": 255,
+ }
+)
+
+func (x HardwareModel) Enum() *HardwareModel {
+ p := new(HardwareModel)
+ *p = x
+ return p
+}
+
+func (x HardwareModel) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (HardwareModel) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[0].Descriptor()
+}
+
+func (HardwareModel) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[0]
+}
+
+func (x HardwareModel) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use HardwareModel.Descriptor instead.
+func (HardwareModel) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{0}
+}
+
+// Shared constants between device and phone
+type Constants int32
+
+const (
+ // First enum must be zero, and we are just using this enum to
+ // pass int constants between two very different environments
+ Constants_ZERO Constants = 0
+ // From mesh.options
+ // note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is
+ // outside of this envelope
+ Constants_DATA_PAYLOAD_LEN Constants = 237
+)
+
+// Enum value maps for Constants.
+var (
+ Constants_name = map[int32]string{
+ 0: "ZERO",
+ 237: "DATA_PAYLOAD_LEN",
+ }
+ Constants_value = map[string]int32{
+ "ZERO": 0,
+ "DATA_PAYLOAD_LEN": 237,
+ }
+)
+
+func (x Constants) Enum() *Constants {
+ p := new(Constants)
+ *p = x
+ return p
+}
+
+func (x Constants) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Constants) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[1].Descriptor()
+}
+
+func (Constants) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[1]
+}
+
+func (x Constants) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Constants.Descriptor instead.
+func (Constants) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{1}
+}
+
+// Error codes for critical errors
+// The device might report these fault codes on the screen.
+// If you encounter a fault code, please post on the meshtastic.discourse.group
+// and we'll try to help.
+type CriticalErrorCode int32
+
+const (
+ // TODO: REPLACE
+ CriticalErrorCode_NONE CriticalErrorCode = 0
+ // A software bug was detected while trying to send lora
+ CriticalErrorCode_TX_WATCHDOG CriticalErrorCode = 1
+ // A software bug was detected on entry to sleep
+ CriticalErrorCode_SLEEP_ENTER_WAIT CriticalErrorCode = 2
+ // No Lora radio hardware could be found
+ CriticalErrorCode_NO_RADIO CriticalErrorCode = 3
+ // Not normally used
+ CriticalErrorCode_UNSPECIFIED CriticalErrorCode = 4
+ // We failed while configuring a UBlox GPS
+ CriticalErrorCode_UBLOX_UNIT_FAILED CriticalErrorCode = 5
+ // This board was expected to have a power management chip and it is missing or broken
+ CriticalErrorCode_NO_AXP192 CriticalErrorCode = 6
+ // The channel tried to set a radio setting which is not supported by this chipset,
+ // radio comms settings are now undefined.
+ CriticalErrorCode_INVALID_RADIO_SETTING CriticalErrorCode = 7
+ // Radio transmit hardware failure. We sent data to the radio chip, but it didn't
+ // reply with an interrupt.
+ CriticalErrorCode_TRANSMIT_FAILED CriticalErrorCode = 8
+ // We detected that the main CPU voltage dropped below the minimum acceptable value
+ CriticalErrorCode_BROWNOUT CriticalErrorCode = 9
+ // Selftest of SX1262 radio chip failed
+ CriticalErrorCode_SX1262_FAILURE CriticalErrorCode = 10
+ // A (likely software but possibly hardware) failure was detected while trying to send packets.
+ // If this occurs on your board, please post in the forum so that we can ask you to collect some information to allow fixing this bug
+ CriticalErrorCode_RADIO_SPI_BUG CriticalErrorCode = 11
+)
+
+// Enum value maps for CriticalErrorCode.
+var (
+ CriticalErrorCode_name = map[int32]string{
+ 0: "NONE",
+ 1: "TX_WATCHDOG",
+ 2: "SLEEP_ENTER_WAIT",
+ 3: "NO_RADIO",
+ 4: "UNSPECIFIED",
+ 5: "UBLOX_UNIT_FAILED",
+ 6: "NO_AXP192",
+ 7: "INVALID_RADIO_SETTING",
+ 8: "TRANSMIT_FAILED",
+ 9: "BROWNOUT",
+ 10: "SX1262_FAILURE",
+ 11: "RADIO_SPI_BUG",
+ }
+ CriticalErrorCode_value = map[string]int32{
+ "NONE": 0,
+ "TX_WATCHDOG": 1,
+ "SLEEP_ENTER_WAIT": 2,
+ "NO_RADIO": 3,
+ "UNSPECIFIED": 4,
+ "UBLOX_UNIT_FAILED": 5,
+ "NO_AXP192": 6,
+ "INVALID_RADIO_SETTING": 7,
+ "TRANSMIT_FAILED": 8,
+ "BROWNOUT": 9,
+ "SX1262_FAILURE": 10,
+ "RADIO_SPI_BUG": 11,
+ }
+)
+
+func (x CriticalErrorCode) Enum() *CriticalErrorCode {
+ p := new(CriticalErrorCode)
+ *p = x
+ return p
+}
+
+func (x CriticalErrorCode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (CriticalErrorCode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[2].Descriptor()
+}
+
+func (CriticalErrorCode) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[2]
+}
+
+func (x CriticalErrorCode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use CriticalErrorCode.Descriptor instead.
+func (CriticalErrorCode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{2}
+}
+
+// How the location was acquired: manual, onboard GPS, external (EUD) GPS
+type Position_LocSource int32
+
+const (
+ // TODO: REPLACE
+ Position_LOC_UNSET Position_LocSource = 0
+ // TODO: REPLACE
+ Position_LOC_MANUAL Position_LocSource = 1
+ // TODO: REPLACE
+ Position_LOC_INTERNAL Position_LocSource = 2
+ // TODO: REPLACE
+ Position_LOC_EXTERNAL Position_LocSource = 3
+)
+
+// Enum value maps for Position_LocSource.
+var (
+ Position_LocSource_name = map[int32]string{
+ 0: "LOC_UNSET",
+ 1: "LOC_MANUAL",
+ 2: "LOC_INTERNAL",
+ 3: "LOC_EXTERNAL",
+ }
+ Position_LocSource_value = map[string]int32{
+ "LOC_UNSET": 0,
+ "LOC_MANUAL": 1,
+ "LOC_INTERNAL": 2,
+ "LOC_EXTERNAL": 3,
+ }
+)
+
+func (x Position_LocSource) Enum() *Position_LocSource {
+ p := new(Position_LocSource)
+ *p = x
+ return p
+}
+
+func (x Position_LocSource) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Position_LocSource) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[3].Descriptor()
+}
+
+func (Position_LocSource) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[3]
+}
+
+func (x Position_LocSource) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Position_LocSource.Descriptor instead.
+func (Position_LocSource) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// How the altitude was acquired: manual, GPS int/ext, etc
+// Default: same as location_source if present
+type Position_AltSource int32
+
+const (
+ // TODO: REPLACE
+ Position_ALT_UNSET Position_AltSource = 0
+ // TODO: REPLACE
+ Position_ALT_MANUAL Position_AltSource = 1
+ // TODO: REPLACE
+ Position_ALT_INTERNAL Position_AltSource = 2
+ // TODO: REPLACE
+ Position_ALT_EXTERNAL Position_AltSource = 3
+ // TODO: REPLACE
+ Position_ALT_BAROMETRIC Position_AltSource = 4
+)
+
+// Enum value maps for Position_AltSource.
+var (
+ Position_AltSource_name = map[int32]string{
+ 0: "ALT_UNSET",
+ 1: "ALT_MANUAL",
+ 2: "ALT_INTERNAL",
+ 3: "ALT_EXTERNAL",
+ 4: "ALT_BAROMETRIC",
+ }
+ Position_AltSource_value = map[string]int32{
+ "ALT_UNSET": 0,
+ "ALT_MANUAL": 1,
+ "ALT_INTERNAL": 2,
+ "ALT_EXTERNAL": 3,
+ "ALT_BAROMETRIC": 4,
+ }
+)
+
+func (x Position_AltSource) Enum() *Position_AltSource {
+ p := new(Position_AltSource)
+ *p = x
+ return p
+}
+
+func (x Position_AltSource) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Position_AltSource) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[4].Descriptor()
+}
+
+func (Position_AltSource) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[4]
+}
+
+func (x Position_AltSource) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Position_AltSource.Descriptor instead.
+func (Position_AltSource) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{0, 1}
+}
+
+// A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide
+// details on the type of failure).
+type Routing_Error int32
+
+const (
+ // This message is not a failure
+ Routing_NONE Routing_Error = 0
+ // Our node doesn't have a route to the requested destination anymore.
+ Routing_NO_ROUTE Routing_Error = 1
+ // We received a nak while trying to forward on your behalf
+ Routing_GOT_NAK Routing_Error = 2
+ // TODO: REPLACE
+ Routing_TIMEOUT Routing_Error = 3
+ // No suitable interface could be found for delivering this packet
+ Routing_NO_INTERFACE Routing_Error = 4
+ // We reached the max retransmission count (typically for naive flood routing)
+ Routing_MAX_RETRANSMIT Routing_Error = 5
+ // No suitable channel was found for sending this packet (i.e. was requested channel index disabled?)
+ Routing_NO_CHANNEL Routing_Error = 6
+ // The packet was too big for sending (exceeds interface MTU after encoding)
+ Routing_TOO_LARGE Routing_Error = 7
+ // The request had want_response set, the request reached the destination node, but no service on that node wants to send a response
+ // (possibly due to bad channel permissions)
+ Routing_NO_RESPONSE Routing_Error = 8
+ // Cannot send currently because duty cycle regulations will be violated.
+ Routing_DUTY_CYCLE_LIMIT Routing_Error = 9
+ // The application layer service on the remote node received your request, but considered your request somehow invalid
+ Routing_BAD_REQUEST Routing_Error = 32
+ // The application layer service on the remote node received your request, but considered your request not authorized
+ // (i.e you did not send the request on the required bound channel)
+ Routing_NOT_AUTHORIZED Routing_Error = 33
+)
+
+// Enum value maps for Routing_Error.
+var (
+ Routing_Error_name = map[int32]string{
+ 0: "NONE",
+ 1: "NO_ROUTE",
+ 2: "GOT_NAK",
+ 3: "TIMEOUT",
+ 4: "NO_INTERFACE",
+ 5: "MAX_RETRANSMIT",
+ 6: "NO_CHANNEL",
+ 7: "TOO_LARGE",
+ 8: "NO_RESPONSE",
+ 9: "DUTY_CYCLE_LIMIT",
+ 32: "BAD_REQUEST",
+ 33: "NOT_AUTHORIZED",
+ }
+ Routing_Error_value = map[string]int32{
+ "NONE": 0,
+ "NO_ROUTE": 1,
+ "GOT_NAK": 2,
+ "TIMEOUT": 3,
+ "NO_INTERFACE": 4,
+ "MAX_RETRANSMIT": 5,
+ "NO_CHANNEL": 6,
+ "TOO_LARGE": 7,
+ "NO_RESPONSE": 8,
+ "DUTY_CYCLE_LIMIT": 9,
+ "BAD_REQUEST": 32,
+ "NOT_AUTHORIZED": 33,
+ }
+)
+
+func (x Routing_Error) Enum() *Routing_Error {
+ p := new(Routing_Error)
+ *p = x
+ return p
+}
+
+func (x Routing_Error) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Routing_Error) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[5].Descriptor()
+}
+
+func (Routing_Error) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[5]
+}
+
+func (x Routing_Error) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Routing_Error.Descriptor instead.
+func (Routing_Error) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{3, 0}
+}
+
+// The priority of this message for sending.
+// Higher priorities are sent first (when managing the transmit queue).
+// This field is never sent over the air, it is only used internally inside of a local device node.
+// API clients (either on the local node or connected directly to the node)
+// can set this parameter if necessary.
+// (values must be <= 127 to keep protobuf field to one byte in size.
+// Detailed background on this field:
+// I noticed a funny side effect of lora being so slow: Usually when making
+// a protocol there isn’t much need to use message priority to change the order
+// of transmission (because interfaces are fairly fast).
+// But for lora where packets can take a few seconds each, it is very important
+// to make sure that critical packets are sent ASAP.
+// In the case of meshtastic that means we want to send protocol acks as soon as possible
+// (to prevent unneeded retransmissions), we want routing messages to be sent next,
+// then messages marked as reliable and finally 'background' packets like periodic position updates.
+// So I bit the bullet and implemented a new (internal - not sent over the air)
+// field in MeshPacket called 'priority'.
+// And the transmission queue in the router object is now a priority queue.
+type MeshPacket_Priority int32
+
+const (
+ // Treated as Priority.DEFAULT
+ MeshPacket_UNSET MeshPacket_Priority = 0
+ // TODO: REPLACE
+ MeshPacket_MIN MeshPacket_Priority = 1
+ // Background position updates are sent with very low priority -
+ // if the link is super congested they might not go out at all
+ MeshPacket_BACKGROUND MeshPacket_Priority = 10
+ // This priority is used for most messages that don't have a priority set
+ MeshPacket_DEFAULT MeshPacket_Priority = 64
+ // If priority is unset but the message is marked as want_ack,
+ // assume it is important and use a slightly higher priority
+ MeshPacket_RELIABLE MeshPacket_Priority = 70
+ // Ack/naks are sent with very high priority to ensure that retransmission
+ // stops as soon as possible
+ MeshPacket_ACK MeshPacket_Priority = 120
+ // TODO: REPLACE
+ MeshPacket_MAX MeshPacket_Priority = 127
+)
+
+// Enum value maps for MeshPacket_Priority.
+var (
+ MeshPacket_Priority_name = map[int32]string{
+ 0: "UNSET",
+ 1: "MIN",
+ 10: "BACKGROUND",
+ 64: "DEFAULT",
+ 70: "RELIABLE",
+ 120: "ACK",
+ 127: "MAX",
+ }
+ MeshPacket_Priority_value = map[string]int32{
+ "UNSET": 0,
+ "MIN": 1,
+ "BACKGROUND": 10,
+ "DEFAULT": 64,
+ "RELIABLE": 70,
+ "ACK": 120,
+ "MAX": 127,
+ }
+)
+
+func (x MeshPacket_Priority) Enum() *MeshPacket_Priority {
+ p := new(MeshPacket_Priority)
+ *p = x
+ return p
+}
+
+func (x MeshPacket_Priority) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (MeshPacket_Priority) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[6].Descriptor()
+}
+
+func (MeshPacket_Priority) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[6]
+}
+
+func (x MeshPacket_Priority) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use MeshPacket_Priority.Descriptor instead.
+func (MeshPacket_Priority) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{7, 0}
+}
+
+// Identify if this is a delayed packet
+type MeshPacket_Delayed int32
+
+const (
+ // If unset, the message is being sent in real time.
+ MeshPacket_NO_DELAY MeshPacket_Delayed = 0
+ // The message is delayed and was originally a broadcast
+ MeshPacket_DELAYED_BROADCAST MeshPacket_Delayed = 1
+ // The message is delayed and was originally a direct message
+ MeshPacket_DELAYED_DIRECT MeshPacket_Delayed = 2
+)
+
+// Enum value maps for MeshPacket_Delayed.
+var (
+ MeshPacket_Delayed_name = map[int32]string{
+ 0: "NO_DELAY",
+ 1: "DELAYED_BROADCAST",
+ 2: "DELAYED_DIRECT",
+ }
+ MeshPacket_Delayed_value = map[string]int32{
+ "NO_DELAY": 0,
+ "DELAYED_BROADCAST": 1,
+ "DELAYED_DIRECT": 2,
+ }
+)
+
+func (x MeshPacket_Delayed) Enum() *MeshPacket_Delayed {
+ p := new(MeshPacket_Delayed)
+ *p = x
+ return p
+}
+
+func (x MeshPacket_Delayed) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (MeshPacket_Delayed) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[7].Descriptor()
+}
+
+func (MeshPacket_Delayed) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[7]
+}
+
+func (x MeshPacket_Delayed) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use MeshPacket_Delayed.Descriptor instead.
+func (MeshPacket_Delayed) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{7, 1}
+}
+
+// Log levels, chosen to match python logging conventions.
+type LogRecord_Level int32
+
+const (
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_UNSET LogRecord_Level = 0
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_CRITICAL LogRecord_Level = 50
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_ERROR LogRecord_Level = 40
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_WARNING LogRecord_Level = 30
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_INFO LogRecord_Level = 20
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_DEBUG LogRecord_Level = 10
+ // Log levels, chosen to match python logging conventions.
+ LogRecord_TRACE LogRecord_Level = 5
+)
+
+// Enum value maps for LogRecord_Level.
+var (
+ LogRecord_Level_name = map[int32]string{
+ 0: "UNSET",
+ 50: "CRITICAL",
+ 40: "ERROR",
+ 30: "WARNING",
+ 20: "INFO",
+ 10: "DEBUG",
+ 5: "TRACE",
+ }
+ LogRecord_Level_value = map[string]int32{
+ "UNSET": 0,
+ "CRITICAL": 50,
+ "ERROR": 40,
+ "WARNING": 30,
+ "INFO": 20,
+ "DEBUG": 10,
+ "TRACE": 5,
+ }
+)
+
+func (x LogRecord_Level) Enum() *LogRecord_Level {
+ p := new(LogRecord_Level)
+ *p = x
+ return p
+}
+
+func (x LogRecord_Level) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (LogRecord_Level) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_mesh_proto_enumTypes[8].Descriptor()
+}
+
+func (LogRecord_Level) Type() protoreflect.EnumType {
+ return &file_meshtastic_mesh_proto_enumTypes[8]
+}
+
+func (x LogRecord_Level) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use LogRecord_Level.Descriptor instead.
+func (LogRecord_Level) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{10, 0}
+}
+
+// a gps position
+type Position struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The new preferred location encoding, multiply by 1e-7 to get degrees
+ // in floating point
+ LatitudeI int32 `protobuf:"fixed32,1,opt,name=latitude_i,json=latitudeI,proto3" json:"latitude_i,omitempty"`
+ // TODO: REPLACE
+ LongitudeI int32 `protobuf:"fixed32,2,opt,name=longitude_i,json=longitudeI,proto3" json:"longitude_i,omitempty"`
+ // In meters above MSL (but see issue #359)
+ Altitude int32 `protobuf:"varint,3,opt,name=altitude,proto3" json:"altitude,omitempty"`
+ // 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 time if it is sent over
+ // the mesh (because there are devices on the mesh without GPS or RTC).
+ // seconds since 1970
+ Time uint32 `protobuf:"fixed32,4,opt,name=time,proto3" json:"time,omitempty"`
+ // TODO: REPLACE
+ LocationSource Position_LocSource `protobuf:"varint,5,opt,name=location_source,json=locationSource,proto3,enum=meshtastic.Position_LocSource" json:"location_source,omitempty"`
+ // TODO: REPLACE
+ AltitudeSource Position_AltSource `protobuf:"varint,6,opt,name=altitude_source,json=altitudeSource,proto3,enum=meshtastic.Position_AltSource" json:"altitude_source,omitempty"`
+ // Positional timestamp (actual timestamp of GPS solution) in integer epoch seconds
+ Timestamp uint32 `protobuf:"fixed32,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ // Pos. timestamp milliseconds adjustment (rarely available or required)
+ TimestampMillisAdjust int32 `protobuf:"varint,8,opt,name=timestamp_millis_adjust,json=timestampMillisAdjust,proto3" json:"timestamp_millis_adjust,omitempty"`
+ // HAE altitude in meters - can be used instead of MSL altitude
+ AltitudeHae int32 `protobuf:"zigzag32,9,opt,name=altitude_hae,json=altitudeHae,proto3" json:"altitude_hae,omitempty"`
+ // Geoidal separation in meters
+ AltitudeGeoidalSeparation int32 `protobuf:"zigzag32,10,opt,name=altitude_geoidal_separation,json=altitudeGeoidalSeparation,proto3" json:"altitude_geoidal_separation,omitempty"`
+ // Horizontal, Vertical and Position Dilution of Precision, in 1/100 units
+ // - PDOP is sufficient for most cases
+ // - for higher precision scenarios, HDOP and VDOP can be used instead,
+ // in which case PDOP becomes redundant (PDOP=sqrt(HDOP^2 + VDOP^2))
+ //
+ // TODO: REMOVE/INTEGRATE
+ PDOP uint32 `protobuf:"varint,11,opt,name=PDOP,proto3" json:"PDOP,omitempty"`
+ // TODO: REPLACE
+ HDOP uint32 `protobuf:"varint,12,opt,name=HDOP,proto3" json:"HDOP,omitempty"`
+ // TODO: REPLACE
+ VDOP uint32 `protobuf:"varint,13,opt,name=VDOP,proto3" json:"VDOP,omitempty"`
+ // GPS accuracy (a hardware specific constant) in mm
+ //
+ // multiplied with DOP to calculate positional accuracy
+ //
+ // Default: "'bout three meters-ish" :)
+ GpsAccuracy uint32 `protobuf:"varint,14,opt,name=gps_accuracy,json=gpsAccuracy,proto3" json:"gps_accuracy,omitempty"`
+ // Ground speed in m/s and True North TRACK in 1/100 degrees
+ // Clarification of terms:
+ // - "track" is the direction of motion (measured in horizontal plane)
+ // - "heading" is where the fuselage points (measured in horizontal plane)
+ // - "yaw" indicates a relative rotation about the vertical axis
+ // TODO: REMOVE/INTEGRATE
+ GroundSpeed uint32 `protobuf:"varint,15,opt,name=ground_speed,json=groundSpeed,proto3" json:"ground_speed,omitempty"`
+ // TODO: REPLACE
+ GroundTrack uint32 `protobuf:"varint,16,opt,name=ground_track,json=groundTrack,proto3" json:"ground_track,omitempty"`
+ // GPS fix quality (from NMEA GxGGA statement or similar)
+ FixQuality uint32 `protobuf:"varint,17,opt,name=fix_quality,json=fixQuality,proto3" json:"fix_quality,omitempty"`
+ // GPS fix type 2D/3D (from NMEA GxGSA statement)
+ FixType uint32 `protobuf:"varint,18,opt,name=fix_type,json=fixType,proto3" json:"fix_type,omitempty"`
+ // GPS "Satellites in View" number
+ SatsInView uint32 `protobuf:"varint,19,opt,name=sats_in_view,json=satsInView,proto3" json:"sats_in_view,omitempty"`
+ // Sensor ID - in case multiple positioning sensors are being used
+ SensorId uint32 `protobuf:"varint,20,opt,name=sensor_id,json=sensorId,proto3" json:"sensor_id,omitempty"`
+ // Estimated/expected time (in seconds) until next update:
+ // - if we update at fixed intervals of X seconds, use X
+ // - if we update at dynamic intervals (based on relative movement etc),
+ // but "AT LEAST every Y seconds", use Y
+ NextUpdate uint32 `protobuf:"varint,21,opt,name=next_update,json=nextUpdate,proto3" json:"next_update,omitempty"`
+ // A sequence number, incremented with each Position message to help
+ //
+ // detect lost updates if needed
+ SeqNumber uint32 `protobuf:"varint,22,opt,name=seq_number,json=seqNumber,proto3" json:"seq_number,omitempty"`
+}
+
+func (x *Position) Reset() {
+ *x = Position{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Position) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Position) ProtoMessage() {}
+
+func (x *Position) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Position.ProtoReflect.Descriptor instead.
+func (*Position) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Position) GetLatitudeI() int32 {
+ if x != nil {
+ return x.LatitudeI
+ }
+ return 0
+}
+
+func (x *Position) GetLongitudeI() int32 {
+ if x != nil {
+ return x.LongitudeI
+ }
+ return 0
+}
+
+func (x *Position) GetAltitude() int32 {
+ if x != nil {
+ return x.Altitude
+ }
+ return 0
+}
+
+func (x *Position) GetTime() uint32 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *Position) GetLocationSource() Position_LocSource {
+ if x != nil {
+ return x.LocationSource
+ }
+ return Position_LOC_UNSET
+}
+
+func (x *Position) GetAltitudeSource() Position_AltSource {
+ if x != nil {
+ return x.AltitudeSource
+ }
+ return Position_ALT_UNSET
+}
+
+func (x *Position) GetTimestamp() uint32 {
+ if x != nil {
+ return x.Timestamp
+ }
+ return 0
+}
+
+func (x *Position) GetTimestampMillisAdjust() int32 {
+ if x != nil {
+ return x.TimestampMillisAdjust
+ }
+ return 0
+}
+
+func (x *Position) GetAltitudeHae() int32 {
+ if x != nil {
+ return x.AltitudeHae
+ }
+ return 0
+}
+
+func (x *Position) GetAltitudeGeoidalSeparation() int32 {
+ if x != nil {
+ return x.AltitudeGeoidalSeparation
+ }
+ return 0
+}
+
+func (x *Position) GetPDOP() uint32 {
+ if x != nil {
+ return x.PDOP
+ }
+ return 0
+}
+
+func (x *Position) GetHDOP() uint32 {
+ if x != nil {
+ return x.HDOP
+ }
+ return 0
+}
+
+func (x *Position) GetVDOP() uint32 {
+ if x != nil {
+ return x.VDOP
+ }
+ return 0
+}
+
+func (x *Position) GetGpsAccuracy() uint32 {
+ if x != nil {
+ return x.GpsAccuracy
+ }
+ return 0
+}
+
+func (x *Position) GetGroundSpeed() uint32 {
+ if x != nil {
+ return x.GroundSpeed
+ }
+ return 0
+}
+
+func (x *Position) GetGroundTrack() uint32 {
+ if x != nil {
+ return x.GroundTrack
+ }
+ return 0
+}
+
+func (x *Position) GetFixQuality() uint32 {
+ if x != nil {
+ return x.FixQuality
+ }
+ return 0
+}
+
+func (x *Position) GetFixType() uint32 {
+ if x != nil {
+ return x.FixType
+ }
+ return 0
+}
+
+func (x *Position) GetSatsInView() uint32 {
+ if x != nil {
+ return x.SatsInView
+ }
+ return 0
+}
+
+func (x *Position) GetSensorId() uint32 {
+ if x != nil {
+ return x.SensorId
+ }
+ return 0
+}
+
+func (x *Position) GetNextUpdate() uint32 {
+ if x != nil {
+ return x.NextUpdate
+ }
+ return 0
+}
+
+func (x *Position) GetSeqNumber() uint32 {
+ if x != nil {
+ return x.SeqNumber
+ }
+ return 0
+}
+
+// Broadcast when a newly powered mesh node wants to find a node num it can use
+// Sent from the phone over bluetooth to set the user id for the owner of this node.
+// Also sent from nodes to each other when a new node signs on (so all clients can have this info)
+// The algorithm is as follows:
+// when a node starts up, it broadcasts their user and the normal flow is for all
+// other nodes to reply with their User as well (so the new node can build its nodedb)
+// If a node ever receives a User (not just the first broadcast) message where
+// the sender node number equals our node number, that indicates a collision has
+// occurred and the following steps should happen:
+// If the receiving node (that was already in the mesh)'s macaddr is LOWER than the
+// new User who just tried to sign in: it gets to keep its nodenum.
+// We send a broadcast message of OUR User (we use a broadcast so that the other node can
+// receive our message, considering we have the same id - it also serves to let
+// observers correct their nodedb) - this case is rare so it should be okay.
+// If any node receives a User where the macaddr is GTE than their local macaddr,
+// they have been vetoed and should pick a new random nodenum (filtering against
+// whatever it knows about the nodedb) and rebroadcast their User.
+// A few nodenums are reserved and will never be requested:
+// 0xff - broadcast
+// 0 through 3 - for future use
+type User struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A globally unique ID string for this user.
+ // In the case of Signal that would mean +16504442323, for the default macaddr derived id it would be !<8 hexidecimal bytes>.
+ // Note: app developers are encouraged to also use the following standard
+ // node IDs "^all" (for broadcast), "^local" (for the locally connected node)
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // A full name for this user, i.e. "Kevin Hester"
+ LongName string `protobuf:"bytes,2,opt,name=long_name,json=longName,proto3" json:"long_name,omitempty"`
+ // A VERY short name, ideally two characters.
+ // Suitable for a tiny OLED screen
+ ShortName string `protobuf:"bytes,3,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"`
+ // Deprecated in Meshtastic 2.1.x
+ // This is the addr of the radio.
+ // Not populated by the phone, but added by the esp32 when broadcasting
+ //
+ // Deprecated: Marked as deprecated in meshtastic/mesh.proto.
+ Macaddr []byte `protobuf:"bytes,4,opt,name=macaddr,proto3" json:"macaddr,omitempty"`
+ // 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.
+ HwModel HardwareModel `protobuf:"varint,5,opt,name=hw_model,json=hwModel,proto3,enum=meshtastic.HardwareModel" json:"hw_model,omitempty"`
+ // 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.
+ IsLicensed bool `protobuf:"varint,6,opt,name=is_licensed,json=isLicensed,proto3" json:"is_licensed,omitempty"`
+ // Indicates that the user's role in the mesh
+ Role Config_DeviceConfig_Role `protobuf:"varint,7,opt,name=role,proto3,enum=meshtastic.Config_DeviceConfig_Role" json:"role,omitempty"`
+}
+
+func (x *User) Reset() {
+ *x = User{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *User) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*User) ProtoMessage() {}
+
+func (x *User) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use User.ProtoReflect.Descriptor instead.
+func (*User) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *User) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *User) GetLongName() string {
+ if x != nil {
+ return x.LongName
+ }
+ return ""
+}
+
+func (x *User) GetShortName() string {
+ if x != nil {
+ return x.ShortName
+ }
+ return ""
+}
+
+// Deprecated: Marked as deprecated in meshtastic/mesh.proto.
+func (x *User) GetMacaddr() []byte {
+ if x != nil {
+ return x.Macaddr
+ }
+ return nil
+}
+
+func (x *User) GetHwModel() HardwareModel {
+ if x != nil {
+ return x.HwModel
+ }
+ return HardwareModel_UNSET
+}
+
+func (x *User) GetIsLicensed() bool {
+ if x != nil {
+ return x.IsLicensed
+ }
+ return false
+}
+
+func (x *User) GetRole() Config_DeviceConfig_Role {
+ if x != nil {
+ return x.Role
+ }
+ return Config_DeviceConfig_CLIENT
+}
+
+// A message used in our Dynamic Source Routing protocol (RFC 4728 based)
+type RouteDiscovery struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The list of nodenums this packet has visited so far
+ Route []uint32 `protobuf:"fixed32,1,rep,packed,name=route,proto3" json:"route,omitempty"`
+}
+
+func (x *RouteDiscovery) Reset() {
+ *x = RouteDiscovery{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RouteDiscovery) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RouteDiscovery) ProtoMessage() {}
+
+func (x *RouteDiscovery) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RouteDiscovery.ProtoReflect.Descriptor instead.
+func (*RouteDiscovery) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RouteDiscovery) GetRoute() []uint32 {
+ if x != nil {
+ return x.Route
+ }
+ return nil
+}
+
+// A Routing control Data packet handled by the routing module
+type Routing struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Variant:
+ //
+ // *Routing_RouteRequest
+ // *Routing_RouteReply
+ // *Routing_ErrorReason
+ Variant isRouting_Variant `protobuf_oneof:"variant"`
+}
+
+func (x *Routing) Reset() {
+ *x = Routing{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Routing) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Routing) ProtoMessage() {}
+
+func (x *Routing) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Routing.ProtoReflect.Descriptor instead.
+func (*Routing) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{3}
+}
+
+func (m *Routing) GetVariant() isRouting_Variant {
+ if m != nil {
+ return m.Variant
+ }
+ return nil
+}
+
+func (x *Routing) GetRouteRequest() *RouteDiscovery {
+ if x, ok := x.GetVariant().(*Routing_RouteRequest); ok {
+ return x.RouteRequest
+ }
+ return nil
+}
+
+func (x *Routing) GetRouteReply() *RouteDiscovery {
+ if x, ok := x.GetVariant().(*Routing_RouteReply); ok {
+ return x.RouteReply
+ }
+ return nil
+}
+
+func (x *Routing) GetErrorReason() Routing_Error {
+ if x, ok := x.GetVariant().(*Routing_ErrorReason); ok {
+ return x.ErrorReason
+ }
+ return Routing_NONE
+}
+
+type isRouting_Variant interface {
+ isRouting_Variant()
+}
+
+type Routing_RouteRequest struct {
+ // A route request going from the requester
+ RouteRequest *RouteDiscovery `protobuf:"bytes,1,opt,name=route_request,json=routeRequest,proto3,oneof"`
+}
+
+type Routing_RouteReply struct {
+ // A route reply
+ RouteReply *RouteDiscovery `protobuf:"bytes,2,opt,name=route_reply,json=routeReply,proto3,oneof"`
+}
+
+type Routing_ErrorReason struct {
+ // A failure in delivering a message (usually used for routing control messages, but might be provided
+ // in addition to ack.fail_id to provide details on the type of failure).
+ ErrorReason Routing_Error `protobuf:"varint,3,opt,name=error_reason,json=errorReason,proto3,enum=meshtastic.Routing_Error,oneof"`
+}
+
+func (*Routing_RouteRequest) isRouting_Variant() {}
+
+func (*Routing_RouteReply) isRouting_Variant() {}
+
+func (*Routing_ErrorReason) isRouting_Variant() {}
+
+// (Formerly called SubPacket)
+// The payload portion fo a packet, this is the actual bytes that are sent
+// inside a radio packet (because from/to are broken out by the comms library)
+type Data struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Formerly named typ and of type Type
+ Portnum PortNum `protobuf:"varint,1,opt,name=portnum,proto3,enum=meshtastic.PortNum" json:"portnum,omitempty"`
+ // TODO: REPLACE
+ Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+ // Not normally used, but for testing a sender can request that recipient
+ // responds in kind (i.e. if it received a position, it should unicast back it's position).
+ // Note: that if you set this on a broadcast you will receive many replies.
+ WantResponse bool `protobuf:"varint,3,opt,name=want_response,json=wantResponse,proto3" json:"want_response,omitempty"`
+ // The address of the destination node.
+ // This field is is filled in by the mesh radio device software, application
+ // layer software should never need it.
+ // RouteDiscovery messages _must_ populate this.
+ // Other message types might need to if they are doing multihop routing.
+ Dest uint32 `protobuf:"fixed32,4,opt,name=dest,proto3" json:"dest,omitempty"`
+ // The address of the original sender for this message.
+ // This field should _only_ be populated for reliable multihop packets (to keep
+ // packets small).
+ Source uint32 `protobuf:"fixed32,5,opt,name=source,proto3" json:"source,omitempty"`
+ // Only used in routing or response messages.
+ // Indicates the original message ID that this message is reporting failure on. (formerly called original_id)
+ RequestId uint32 `protobuf:"fixed32,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // If set, this message is intened to be a reply to a previously sent message with the defined id.
+ ReplyId uint32 `protobuf:"fixed32,7,opt,name=reply_id,json=replyId,proto3" json:"reply_id,omitempty"`
+ // Defaults to false. If true, then what is in the payload should be treated as an emoji like giving
+ // a message a heart or poop emoji.
+ Emoji uint32 `protobuf:"fixed32,8,opt,name=emoji,proto3" json:"emoji,omitempty"`
+}
+
+func (x *Data) Reset() {
+ *x = Data{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Data) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Data) ProtoMessage() {}
+
+func (x *Data) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Data.ProtoReflect.Descriptor instead.
+func (*Data) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Data) GetPortnum() PortNum {
+ if x != nil {
+ return x.Portnum
+ }
+ return PortNum_UNKNOWN_APP
+}
+
+func (x *Data) GetPayload() []byte {
+ if x != nil {
+ return x.Payload
+ }
+ return nil
+}
+
+func (x *Data) GetWantResponse() bool {
+ if x != nil {
+ return x.WantResponse
+ }
+ return false
+}
+
+func (x *Data) GetDest() uint32 {
+ if x != nil {
+ return x.Dest
+ }
+ return 0
+}
+
+func (x *Data) GetSource() uint32 {
+ if x != nil {
+ return x.Source
+ }
+ return 0
+}
+
+func (x *Data) GetRequestId() uint32 {
+ if x != nil {
+ return x.RequestId
+ }
+ return 0
+}
+
+func (x *Data) GetReplyId() uint32 {
+ if x != nil {
+ return x.ReplyId
+ }
+ return 0
+}
+
+func (x *Data) GetEmoji() uint32 {
+ if x != nil {
+ return x.Emoji
+ }
+ return 0
+}
+
+// Waypoint message, used to share arbitrary locations across the mesh
+type Waypoint struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Id of the waypoint
+ Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ // latitude_i
+ LatitudeI int32 `protobuf:"fixed32,2,opt,name=latitude_i,json=latitudeI,proto3" json:"latitude_i,omitempty"`
+ // longitude_i
+ LongitudeI int32 `protobuf:"fixed32,3,opt,name=longitude_i,json=longitudeI,proto3" json:"longitude_i,omitempty"`
+ // Time the waypoint is to expire (epoch)
+ Expire uint32 `protobuf:"varint,4,opt,name=expire,proto3" json:"expire,omitempty"`
+ // If greater than zero, treat the value as a nodenum only allowing them to update the waypoint.
+ // If zero, the waypoint is open to be edited by any member of the mesh.
+ LockedTo uint32 `protobuf:"varint,5,opt,name=locked_to,json=lockedTo,proto3" json:"locked_to,omitempty"`
+ // Name of the waypoint - max 30 chars
+ Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
+ // Description of the waypoint - max 100 chars
+ Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
+ // Designator icon for the waypoint in the form of a unicode emoji
+ Icon uint32 `protobuf:"fixed32,8,opt,name=icon,proto3" json:"icon,omitempty"`
+}
+
+func (x *Waypoint) Reset() {
+ *x = Waypoint{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Waypoint) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Waypoint) ProtoMessage() {}
+
+func (x *Waypoint) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Waypoint.ProtoReflect.Descriptor instead.
+func (*Waypoint) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *Waypoint) GetId() uint32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (x *Waypoint) GetLatitudeI() int32 {
+ if x != nil {
+ return x.LatitudeI
+ }
+ return 0
+}
+
+func (x *Waypoint) GetLongitudeI() int32 {
+ if x != nil {
+ return x.LongitudeI
+ }
+ return 0
+}
+
+func (x *Waypoint) GetExpire() uint32 {
+ if x != nil {
+ return x.Expire
+ }
+ return 0
+}
+
+func (x *Waypoint) GetLockedTo() uint32 {
+ if x != nil {
+ return x.LockedTo
+ }
+ return 0
+}
+
+func (x *Waypoint) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Waypoint) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Waypoint) GetIcon() uint32 {
+ if x != nil {
+ return x.Icon
+ }
+ return 0
+}
+
+// This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server
+type MqttClientProxyMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The MQTT topic this message will be sent /received on
+ Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
+ // The actual service envelope payload or text for mqtt pub / sub
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *MqttClientProxyMessage_Data
+ // *MqttClientProxyMessage_Text
+ PayloadVariant isMqttClientProxyMessage_PayloadVariant `protobuf_oneof:"payload_variant"`
+ // Whether the message should be retained (or not)
+ Retained bool `protobuf:"varint,4,opt,name=retained,proto3" json:"retained,omitempty"`
+}
+
+func (x *MqttClientProxyMessage) Reset() {
+ *x = MqttClientProxyMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MqttClientProxyMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MqttClientProxyMessage) ProtoMessage() {}
+
+func (x *MqttClientProxyMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MqttClientProxyMessage.ProtoReflect.Descriptor instead.
+func (*MqttClientProxyMessage) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *MqttClientProxyMessage) GetTopic() string {
+ if x != nil {
+ return x.Topic
+ }
+ return ""
+}
+
+func (m *MqttClientProxyMessage) GetPayloadVariant() isMqttClientProxyMessage_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *MqttClientProxyMessage) GetData() []byte {
+ if x, ok := x.GetPayloadVariant().(*MqttClientProxyMessage_Data); ok {
+ return x.Data
+ }
+ return nil
+}
+
+func (x *MqttClientProxyMessage) GetText() string {
+ if x, ok := x.GetPayloadVariant().(*MqttClientProxyMessage_Text); ok {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *MqttClientProxyMessage) GetRetained() bool {
+ if x != nil {
+ return x.Retained
+ }
+ return false
+}
+
+type isMqttClientProxyMessage_PayloadVariant interface {
+ isMqttClientProxyMessage_PayloadVariant()
+}
+
+type MqttClientProxyMessage_Data struct {
+ // Bytes
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
+}
+
+type MqttClientProxyMessage_Text struct {
+ // Text
+ Text string `protobuf:"bytes,3,opt,name=text,proto3,oneof"`
+}
+
+func (*MqttClientProxyMessage_Data) isMqttClientProxyMessage_PayloadVariant() {}
+
+func (*MqttClientProxyMessage_Text) isMqttClientProxyMessage_PayloadVariant() {}
+
+// A packet envelope sent/received over the mesh
+// only payload_variant is sent in the payload portion of the LORA packet.
+// The other fields are either not sent at all, or sent in the special 16 byte LORA header.
+type MeshPacket struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The sending node number.
+ // Note: Our crypto implementation uses this field as well.
+ // See [crypto](/docs/overview/encryption) for details.
+ // FIXME - really should be fixed32 instead, this encoding only hurts the ble link though.
+ From uint32 `protobuf:"fixed32,1,opt,name=from,proto3" json:"from,omitempty"`
+ // The (immediatSee Priority description for more details.y should be fixed32 instead, this encoding only
+ // hurts the ble link though.
+ To uint32 `protobuf:"fixed32,2,opt,name=to,proto3" json:"to,omitempty"`
+ // (Usually) If set, this indicates the index in the secondary_channels table that this packet was sent/received on.
+ // If unset, packet was on the primary channel.
+ // A particular node might know only a subset of channels in use on the mesh.
+ // Therefore channel_index is inherently a local concept and meaningless to send between nodes.
+ // Very briefly, while sending and receiving deep inside the device Router code, this field instead
+ // contains the 'channel hash' instead of the index.
+ // This 'trick' is only used while the payload_variant is an 'encrypted'.
+ Channel uint32 `protobuf:"varint,3,opt,name=channel,proto3" json:"channel,omitempty"`
+ // Types that are assignable to PayloadVariant:
+ //
+ // *MeshPacket_Decoded
+ // *MeshPacket_Encrypted
+ PayloadVariant isMeshPacket_PayloadVariant `protobuf_oneof:"payload_variant"`
+ // A unique ID for this packet.
+ // Always 0 for no-ack packets or non broadcast packets (and therefore take zero bytes of space).
+ // Otherwise a unique ID for this packet, useful for flooding algorithms.
+ // ID only needs to be unique on a _per sender_ basis, and it only
+ // needs to be unique for a few minutes (long enough to last for the length of
+ // any ACK or the completion of a mesh broadcast flood).
+ // Note: Our crypto implementation uses this id as well.
+ // See [crypto](/docs/overview/encryption) for details.
+ // FIXME - really should be fixed32 instead, this encoding only
+ // hurts the ble link though.
+ Id uint32 `protobuf:"fixed32,6,opt,name=id,proto3" json:"id,omitempty"`
+ // The time this message was received by the esp32 (secs since 1970).
+ // Note: this field is _never_ sent on the radio link itself (to save space) Times
+ // are typically not sent over the mesh, but they will be added to any Packet
+ // (chain of SubPacket) sent to the phone (so the phone can know exact time of reception)
+ RxTime uint32 `protobuf:"fixed32,7,opt,name=rx_time,json=rxTime,proto3" json:"rx_time,omitempty"`
+ // *Never* sent over the radio links.
+ // Set during reception to indicate the SNR of this packet.
+ // Used to collect statistics on current link quality.
+ RxSnr float32 `protobuf:"fixed32,8,opt,name=rx_snr,json=rxSnr,proto3" json:"rx_snr,omitempty"`
+ // If unset treated as zero (no forwarding, send to adjacent nodes only)
+ // if 1, allow hopping through one node, etc...
+ // For our usecase real world topologies probably have a max of about 3.
+ // This field is normally placed into a few of bits in the header.
+ HopLimit uint32 `protobuf:"varint,9,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"`
+ // This packet is being sent as a reliable message, we would prefer it to arrive at the destination.
+ // We would like to receive a ack packet in response.
+ // Broadcasts messages treat this flag specially: Since acks for broadcasts would
+ // rapidly flood the channel, the normal ack behavior is suppressed.
+ // Instead, the original sender listens to see if at least one node is rebroadcasting this packet (because naive flooding algorithm).
+ // If it hears that the odds (given typical LoRa topologies) the odds are very high that every node should eventually receive the message.
+ // So FloodingRouter.cpp generates an implicit ack which is delivered to the original sender.
+ // If after some time we don't hear anyone rebroadcast our packet, we will timeout and retransmit, using the regular resend logic.
+ // Note: This flag is normally sent in a flag bit in the header when sent over the wire
+ WantAck bool `protobuf:"varint,10,opt,name=want_ack,json=wantAck,proto3" json:"want_ack,omitempty"`
+ // The priority of this message for sending.
+ // See MeshPacket.Priority description for more details.
+ Priority MeshPacket_Priority `protobuf:"varint,11,opt,name=priority,proto3,enum=meshtastic.MeshPacket_Priority" json:"priority,omitempty"`
+ // rssi of received packet. Only sent to phone for dispay purposes.
+ RxRssi int32 `protobuf:"varint,12,opt,name=rx_rssi,json=rxRssi,proto3" json:"rx_rssi,omitempty"`
+ // Describe if this message is delayed
+ //
+ // Deprecated: Marked as deprecated in meshtastic/mesh.proto.
+ Delayed MeshPacket_Delayed `protobuf:"varint,13,opt,name=delayed,proto3,enum=meshtastic.MeshPacket_Delayed" json:"delayed,omitempty"`
+ // Describes whether this packet passed via MQTT somewhere along the path it currently took.
+ ViaMqtt bool `protobuf:"varint,14,opt,name=via_mqtt,json=viaMqtt,proto3" json:"via_mqtt,omitempty"`
+}
+
+func (x *MeshPacket) Reset() {
+ *x = MeshPacket{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeshPacket) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeshPacket) ProtoMessage() {}
+
+func (x *MeshPacket) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MeshPacket.ProtoReflect.Descriptor instead.
+func (*MeshPacket) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *MeshPacket) GetFrom() uint32 {
+ if x != nil {
+ return x.From
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetTo() uint32 {
+ if x != nil {
+ return x.To
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetChannel() uint32 {
+ if x != nil {
+ return x.Channel
+ }
+ return 0
+}
+
+func (m *MeshPacket) GetPayloadVariant() isMeshPacket_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *MeshPacket) GetDecoded() *Data {
+ if x, ok := x.GetPayloadVariant().(*MeshPacket_Decoded); ok {
+ return x.Decoded
+ }
+ return nil
+}
+
+func (x *MeshPacket) GetEncrypted() []byte {
+ if x, ok := x.GetPayloadVariant().(*MeshPacket_Encrypted); ok {
+ return x.Encrypted
+ }
+ return nil
+}
+
+func (x *MeshPacket) GetId() uint32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetRxTime() uint32 {
+ if x != nil {
+ return x.RxTime
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetRxSnr() float32 {
+ if x != nil {
+ return x.RxSnr
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetHopLimit() uint32 {
+ if x != nil {
+ return x.HopLimit
+ }
+ return 0
+}
+
+func (x *MeshPacket) GetWantAck() bool {
+ if x != nil {
+ return x.WantAck
+ }
+ return false
+}
+
+func (x *MeshPacket) GetPriority() MeshPacket_Priority {
+ if x != nil {
+ return x.Priority
+ }
+ return MeshPacket_UNSET
+}
+
+func (x *MeshPacket) GetRxRssi() int32 {
+ if x != nil {
+ return x.RxRssi
+ }
+ return 0
+}
+
+// Deprecated: Marked as deprecated in meshtastic/mesh.proto.
+func (x *MeshPacket) GetDelayed() MeshPacket_Delayed {
+ if x != nil {
+ return x.Delayed
+ }
+ return MeshPacket_NO_DELAY
+}
+
+func (x *MeshPacket) GetViaMqtt() bool {
+ if x != nil {
+ return x.ViaMqtt
+ }
+ return false
+}
+
+type isMeshPacket_PayloadVariant interface {
+ isMeshPacket_PayloadVariant()
+}
+
+type MeshPacket_Decoded struct {
+ // TODO: REPLACE
+ Decoded *Data `protobuf:"bytes,4,opt,name=decoded,proto3,oneof"`
+}
+
+type MeshPacket_Encrypted struct {
+ // TODO: REPLACE
+ Encrypted []byte `protobuf:"bytes,5,opt,name=encrypted,proto3,oneof"`
+}
+
+func (*MeshPacket_Decoded) isMeshPacket_PayloadVariant() {}
+
+func (*MeshPacket_Encrypted) isMeshPacket_PayloadVariant() {}
+
+// The bluetooth to device link:
+// Old BTLE protocol docs from TODO, merge in above and make real docs...
+// use protocol buffers, and NanoPB
+// messages from device to phone:
+// POSITION_UPDATE (..., time)
+// TEXT_RECEIVED(from, text, time)
+// OPAQUE_RECEIVED(from, payload, time) (for signal messages or other applications)
+// messages from phone to device:
+// SET_MYID(id, human readable long, human readable short) (send down the unique ID
+// string used for this node, a human readable string shown for that id, and a very
+// short human readable string suitable for oled screen) SEND_OPAQUE(dest, payload)
+// (for signal messages or other applications) SEND_TEXT(dest, text) Get all
+// nodes() (returns list of nodes, with full info, last time seen, loc, battery
+// level etc) SET_CONFIG (switches device to a new set of radio params and
+// preshared key, drops all existing nodes, force our node to rejoin this new group)
+// Full information about a node on the mesh
+type NodeInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The node number
+ Num uint32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"`
+ // The user info for this node
+ User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
+ // 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.
+ Position *Position `protobuf:"bytes,3,opt,name=position,proto3" json:"position,omitempty"`
+ // 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
+ Snr float32 `protobuf:"fixed32,4,opt,name=snr,proto3" json:"snr,omitempty"`
+ // Set to indicate the last time we received a packet from this node
+ LastHeard uint32 `protobuf:"fixed32,5,opt,name=last_heard,json=lastHeard,proto3" json:"last_heard,omitempty"`
+ // The latest device metrics for the node.
+ DeviceMetrics *DeviceMetrics `protobuf:"bytes,6,opt,name=device_metrics,json=deviceMetrics,proto3" json:"device_metrics,omitempty"`
+ // local channel index we heard that node on. Only populated if its not the default channel.
+ Channel uint32 `protobuf:"varint,7,opt,name=channel,proto3" json:"channel,omitempty"`
+}
+
+func (x *NodeInfo) Reset() {
+ *x = NodeInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NodeInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NodeInfo) ProtoMessage() {}
+
+func (x *NodeInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead.
+func (*NodeInfo) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *NodeInfo) GetNum() uint32 {
+ if x != nil {
+ return x.Num
+ }
+ return 0
+}
+
+func (x *NodeInfo) GetUser() *User {
+ if x != nil {
+ return x.User
+ }
+ return nil
+}
+
+func (x *NodeInfo) GetPosition() *Position {
+ if x != nil {
+ return x.Position
+ }
+ return nil
+}
+
+func (x *NodeInfo) GetSnr() float32 {
+ if x != nil {
+ return x.Snr
+ }
+ return 0
+}
+
+func (x *NodeInfo) GetLastHeard() uint32 {
+ if x != nil {
+ return x.LastHeard
+ }
+ return 0
+}
+
+func (x *NodeInfo) GetDeviceMetrics() *DeviceMetrics {
+ if x != nil {
+ return x.DeviceMetrics
+ }
+ return nil
+}
+
+func (x *NodeInfo) GetChannel() uint32 {
+ if x != nil {
+ return x.Channel
+ }
+ return 0
+}
+
+// Unique local debugging info for this node
+// Note: we don't include position or the user info, because that will come in the
+// Sent to the phone in response to WantNodes.
+type MyNodeInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Tells the phone what our node number is, default starting value is
+ // lowbyte of macaddr, but it will be fixed if that is already in use
+ MyNodeNum uint32 `protobuf:"varint,1,opt,name=my_node_num,json=myNodeNum,proto3" json:"my_node_num,omitempty"`
+ // The total number of reboots this node has ever encountered
+ // (well - since the last time we discarded preferences)
+ RebootCount uint32 `protobuf:"varint,8,opt,name=reboot_count,json=rebootCount,proto3" json:"reboot_count,omitempty"`
+ // The minimum app version that can talk to this device.
+ // Phone/PC apps should compare this to their build number and if too low tell the user they must update their app
+ MinAppVersion uint32 `protobuf:"varint,11,opt,name=min_app_version,json=minAppVersion,proto3" json:"min_app_version,omitempty"`
+}
+
+func (x *MyNodeInfo) Reset() {
+ *x = MyNodeInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MyNodeInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MyNodeInfo) ProtoMessage() {}
+
+func (x *MyNodeInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MyNodeInfo.ProtoReflect.Descriptor instead.
+func (*MyNodeInfo) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *MyNodeInfo) GetMyNodeNum() uint32 {
+ if x != nil {
+ return x.MyNodeNum
+ }
+ return 0
+}
+
+func (x *MyNodeInfo) GetRebootCount() uint32 {
+ if x != nil {
+ return x.RebootCount
+ }
+ return 0
+}
+
+func (x *MyNodeInfo) GetMinAppVersion() uint32 {
+ if x != nil {
+ return x.MinAppVersion
+ }
+ return 0
+}
+
+// Debug output from the device.
+// To minimize the size of records inside the device code, if a time/source/level is not set
+// on the message it is assumed to be a continuation of the previously sent message.
+// This allows the device code to use fixed maxlen 64 byte strings for messages,
+// and then extend as needed by emitting multiple records.
+type LogRecord struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Log levels, chosen to match python logging conventions.
+ Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+ // Seconds since 1970 - or 0 for unknown/unset
+ Time uint32 `protobuf:"fixed32,2,opt,name=time,proto3" json:"time,omitempty"`
+ // Usually based on thread name - if known
+ Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
+ // Not yet set
+ Level LogRecord_Level `protobuf:"varint,4,opt,name=level,proto3,enum=meshtastic.LogRecord_Level" json:"level,omitempty"`
+}
+
+func (x *LogRecord) Reset() {
+ *x = LogRecord{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LogRecord) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogRecord) ProtoMessage() {}
+
+func (x *LogRecord) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogRecord.ProtoReflect.Descriptor instead.
+func (*LogRecord) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *LogRecord) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *LogRecord) GetTime() uint32 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *LogRecord) GetSource() string {
+ if x != nil {
+ return x.Source
+ }
+ return ""
+}
+
+func (x *LogRecord) GetLevel() LogRecord_Level {
+ if x != nil {
+ return x.Level
+ }
+ return LogRecord_UNSET
+}
+
+type QueueStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Last attempt to queue status, ErrorCode
+ Res int32 `protobuf:"varint,1,opt,name=res,proto3" json:"res,omitempty"`
+ // Free entries in the outgoing queue
+ Free uint32 `protobuf:"varint,2,opt,name=free,proto3" json:"free,omitempty"`
+ // Maximum entries in the outgoing queue
+ Maxlen uint32 `protobuf:"varint,3,opt,name=maxlen,proto3" json:"maxlen,omitempty"`
+ // What was mesh packet id that generated this response?
+ MeshPacketId uint32 `protobuf:"varint,4,opt,name=mesh_packet_id,json=meshPacketId,proto3" json:"mesh_packet_id,omitempty"`
+}
+
+func (x *QueueStatus) Reset() {
+ *x = QueueStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *QueueStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*QueueStatus) ProtoMessage() {}
+
+func (x *QueueStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use QueueStatus.ProtoReflect.Descriptor instead.
+func (*QueueStatus) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *QueueStatus) GetRes() int32 {
+ if x != nil {
+ return x.Res
+ }
+ return 0
+}
+
+func (x *QueueStatus) GetFree() uint32 {
+ if x != nil {
+ return x.Free
+ }
+ return 0
+}
+
+func (x *QueueStatus) GetMaxlen() uint32 {
+ if x != nil {
+ return x.Maxlen
+ }
+ return 0
+}
+
+func (x *QueueStatus) GetMeshPacketId() uint32 {
+ if x != nil {
+ return x.MeshPacketId
+ }
+ return 0
+}
+
+// Packets from the radio to the phone will appear on the fromRadio characteristic.
+// It will support READ and NOTIFY. When a new packet arrives the device will BLE notify?
+// It will sit in that descriptor until consumed by the phone,
+// at which point the next item in the FIFO will be populated.
+type FromRadio struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The packet id, used to allow the phone to request missing read packets from the FIFO,
+ // see our bluetooth docs
+ Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Log levels, chosen to match python logging conventions.
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *FromRadio_Packet
+ // *FromRadio_MyInfo
+ // *FromRadio_NodeInfo
+ // *FromRadio_Config
+ // *FromRadio_LogRecord
+ // *FromRadio_ConfigCompleteId
+ // *FromRadio_Rebooted
+ // *FromRadio_ModuleConfig
+ // *FromRadio_Channel
+ // *FromRadio_QueueStatus
+ // *FromRadio_XmodemPacket
+ // *FromRadio_Metadata
+ // *FromRadio_MqttClientProxyMessage
+ PayloadVariant isFromRadio_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *FromRadio) Reset() {
+ *x = FromRadio{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FromRadio) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FromRadio) ProtoMessage() {}
+
+func (x *FromRadio) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FromRadio.ProtoReflect.Descriptor instead.
+func (*FromRadio) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *FromRadio) GetId() uint32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (m *FromRadio) GetPayloadVariant() isFromRadio_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *FromRadio) GetPacket() *MeshPacket {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_Packet); ok {
+ return x.Packet
+ }
+ return nil
+}
+
+func (x *FromRadio) GetMyInfo() *MyNodeInfo {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_MyInfo); ok {
+ return x.MyInfo
+ }
+ return nil
+}
+
+func (x *FromRadio) GetNodeInfo() *NodeInfo {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_NodeInfo); ok {
+ return x.NodeInfo
+ }
+ return nil
+}
+
+func (x *FromRadio) GetConfig() *Config {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_Config); ok {
+ return x.Config
+ }
+ return nil
+}
+
+func (x *FromRadio) GetLogRecord() *LogRecord {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_LogRecord); ok {
+ return x.LogRecord
+ }
+ return nil
+}
+
+func (x *FromRadio) GetConfigCompleteId() uint32 {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_ConfigCompleteId); ok {
+ return x.ConfigCompleteId
+ }
+ return 0
+}
+
+func (x *FromRadio) GetRebooted() bool {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_Rebooted); ok {
+ return x.Rebooted
+ }
+ return false
+}
+
+func (x *FromRadio) GetModuleConfig() *ModuleConfig {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_ModuleConfig); ok {
+ return x.ModuleConfig
+ }
+ return nil
+}
+
+func (x *FromRadio) GetChannel() *Channel {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_Channel); ok {
+ return x.Channel
+ }
+ return nil
+}
+
+func (x *FromRadio) GetQueueStatus() *QueueStatus {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_QueueStatus); ok {
+ return x.QueueStatus
+ }
+ return nil
+}
+
+func (x *FromRadio) GetXmodemPacket() *XModem {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_XmodemPacket); ok {
+ return x.XmodemPacket
+ }
+ return nil
+}
+
+func (x *FromRadio) GetMetadata() *DeviceMetadata {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_Metadata); ok {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *FromRadio) GetMqttClientProxyMessage() *MqttClientProxyMessage {
+ if x, ok := x.GetPayloadVariant().(*FromRadio_MqttClientProxyMessage); ok {
+ return x.MqttClientProxyMessage
+ }
+ return nil
+}
+
+type isFromRadio_PayloadVariant interface {
+ isFromRadio_PayloadVariant()
+}
+
+type FromRadio_Packet struct {
+ // Log levels, chosen to match python logging conventions.
+ Packet *MeshPacket `protobuf:"bytes,2,opt,name=packet,proto3,oneof"`
+}
+
+type FromRadio_MyInfo struct {
+ // Tells the phone what our node number is, can be -1 if we've not yet joined a mesh.
+ // NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
+ MyInfo *MyNodeInfo `protobuf:"bytes,3,opt,name=my_info,json=myInfo,proto3,oneof"`
+}
+
+type FromRadio_NodeInfo struct {
+ // One packet is sent for each node in the on radio DB
+ // starts over with the first node in our DB
+ NodeInfo *NodeInfo `protobuf:"bytes,4,opt,name=node_info,json=nodeInfo,proto3,oneof"`
+}
+
+type FromRadio_Config struct {
+ // Include a part of the config (was: RadioConfig radio)
+ Config *Config `protobuf:"bytes,5,opt,name=config,proto3,oneof"`
+}
+
+type FromRadio_LogRecord struct {
+ // Set to send debug console output over our protobuf stream
+ LogRecord *LogRecord `protobuf:"bytes,6,opt,name=log_record,json=logRecord,proto3,oneof"`
+}
+
+type FromRadio_ConfigCompleteId struct {
+ // Sent as true once the device has finished sending all of the responses to want_config
+ // recipient should check if this ID matches our original request nonce, if
+ // not, it means your config responses haven't started yet.
+ // NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
+ ConfigCompleteId uint32 `protobuf:"varint,7,opt,name=config_complete_id,json=configCompleteId,proto3,oneof"`
+}
+
+type FromRadio_Rebooted struct {
+ // Sent to tell clients the radio has just rebooted.
+ // Set to true if present.
+ // Not used on all transports, currently just used for the serial console.
+ // NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
+ Rebooted bool `protobuf:"varint,8,opt,name=rebooted,proto3,oneof"`
+}
+
+type FromRadio_ModuleConfig struct {
+ // Include module config
+ ModuleConfig *ModuleConfig `protobuf:"bytes,9,opt,name=moduleConfig,proto3,oneof"`
+}
+
+type FromRadio_Channel struct {
+ // One packet is sent for each channel
+ Channel *Channel `protobuf:"bytes,10,opt,name=channel,proto3,oneof"`
+}
+
+type FromRadio_QueueStatus struct {
+ // Queue status info
+ QueueStatus *QueueStatus `protobuf:"bytes,11,opt,name=queueStatus,proto3,oneof"`
+}
+
+type FromRadio_XmodemPacket struct {
+ // File Transfer Chunk
+ XmodemPacket *XModem `protobuf:"bytes,12,opt,name=xmodemPacket,proto3,oneof"`
+}
+
+type FromRadio_Metadata struct {
+ // Device metadata message
+ Metadata *DeviceMetadata `protobuf:"bytes,13,opt,name=metadata,proto3,oneof"`
+}
+
+type FromRadio_MqttClientProxyMessage struct {
+ // MQTT Client Proxy Message (device sending to client / phone for publishing to MQTT)
+ MqttClientProxyMessage *MqttClientProxyMessage `protobuf:"bytes,14,opt,name=mqttClientProxyMessage,proto3,oneof"`
+}
+
+func (*FromRadio_Packet) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_MyInfo) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_NodeInfo) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_Config) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_LogRecord) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_ConfigCompleteId) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_Rebooted) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_ModuleConfig) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_Channel) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_QueueStatus) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_XmodemPacket) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_Metadata) isFromRadio_PayloadVariant() {}
+
+func (*FromRadio_MqttClientProxyMessage) isFromRadio_PayloadVariant() {}
+
+// Packets/commands to the radio will be written (reliably) to the toRadio characteristic.
+// Once the write completes the phone can assume it is handled.
+type ToRadio struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Log levels, chosen to match python logging conventions.
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *ToRadio_Packet
+ // *ToRadio_WantConfigId
+ // *ToRadio_Disconnect
+ // *ToRadio_XmodemPacket
+ // *ToRadio_MqttClientProxyMessage
+ PayloadVariant isToRadio_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *ToRadio) Reset() {
+ *x = ToRadio{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ToRadio) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ToRadio) ProtoMessage() {}
+
+func (x *ToRadio) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ToRadio.ProtoReflect.Descriptor instead.
+func (*ToRadio) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{13}
+}
+
+func (m *ToRadio) GetPayloadVariant() isToRadio_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *ToRadio) GetPacket() *MeshPacket {
+ if x, ok := x.GetPayloadVariant().(*ToRadio_Packet); ok {
+ return x.Packet
+ }
+ return nil
+}
+
+func (x *ToRadio) GetWantConfigId() uint32 {
+ if x, ok := x.GetPayloadVariant().(*ToRadio_WantConfigId); ok {
+ return x.WantConfigId
+ }
+ return 0
+}
+
+func (x *ToRadio) GetDisconnect() bool {
+ if x, ok := x.GetPayloadVariant().(*ToRadio_Disconnect); ok {
+ return x.Disconnect
+ }
+ return false
+}
+
+func (x *ToRadio) GetXmodemPacket() *XModem {
+ if x, ok := x.GetPayloadVariant().(*ToRadio_XmodemPacket); ok {
+ return x.XmodemPacket
+ }
+ return nil
+}
+
+func (x *ToRadio) GetMqttClientProxyMessage() *MqttClientProxyMessage {
+ if x, ok := x.GetPayloadVariant().(*ToRadio_MqttClientProxyMessage); ok {
+ return x.MqttClientProxyMessage
+ }
+ return nil
+}
+
+type isToRadio_PayloadVariant interface {
+ isToRadio_PayloadVariant()
+}
+
+type ToRadio_Packet struct {
+ // Send this packet on the mesh
+ Packet *MeshPacket `protobuf:"bytes,1,opt,name=packet,proto3,oneof"`
+}
+
+type ToRadio_WantConfigId struct {
+ // Phone wants radio to send full node db to the phone, This is
+ // typically the first packet sent to the radio when the phone gets a
+ // bluetooth connection. The radio will respond by sending back a
+ // MyNodeInfo, a owner, a radio config and a series of
+ // FromRadio.node_infos, and config_complete
+ // the integer you write into this field will be reported back in the
+ // config_complete_id response this allows clients to never be confused by
+ // a stale old partially sent config.
+ WantConfigId uint32 `protobuf:"varint,3,opt,name=want_config_id,json=wantConfigId,proto3,oneof"`
+}
+
+type ToRadio_Disconnect struct {
+ // Tell API server we are disconnecting now.
+ // This is useful for serial links where there is no hardware/protocol based notification that the client has dropped the link.
+ // (Sending this message is optional for clients)
+ Disconnect bool `protobuf:"varint,4,opt,name=disconnect,proto3,oneof"`
+}
+
+type ToRadio_XmodemPacket struct {
+ XmodemPacket *XModem `protobuf:"bytes,5,opt,name=xmodemPacket,proto3,oneof"`
+}
+
+type ToRadio_MqttClientProxyMessage struct {
+ // MQTT Client Proxy Message (for client / phone subscribed to MQTT sending to device)
+ MqttClientProxyMessage *MqttClientProxyMessage `protobuf:"bytes,6,opt,name=mqttClientProxyMessage,proto3,oneof"`
+}
+
+func (*ToRadio_Packet) isToRadio_PayloadVariant() {}
+
+func (*ToRadio_WantConfigId) isToRadio_PayloadVariant() {}
+
+func (*ToRadio_Disconnect) isToRadio_PayloadVariant() {}
+
+func (*ToRadio_XmodemPacket) isToRadio_PayloadVariant() {}
+
+func (*ToRadio_MqttClientProxyMessage) isToRadio_PayloadVariant() {}
+
+// Compressed message payload
+type Compressed struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // PortNum to determine the how to handle the compressed payload.
+ Portnum PortNum `protobuf:"varint,1,opt,name=portnum,proto3,enum=meshtastic.PortNum" json:"portnum,omitempty"`
+ // Compressed data.
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *Compressed) Reset() {
+ *x = Compressed{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Compressed) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Compressed) ProtoMessage() {}
+
+func (x *Compressed) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Compressed.ProtoReflect.Descriptor instead.
+func (*Compressed) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *Compressed) GetPortnum() PortNum {
+ if x != nil {
+ return x.Portnum
+ }
+ return PortNum_UNKNOWN_APP
+}
+
+func (x *Compressed) GetData() []byte {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+// Full info on edges for a single node
+type NeighborInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The node ID of the node sending info on its neighbors
+ NodeId uint32 `protobuf:"varint,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
+ // Field to pass neighbor info for the next sending cycle
+ LastSentById uint32 `protobuf:"varint,2,opt,name=last_sent_by_id,json=lastSentById,proto3" json:"last_sent_by_id,omitempty"`
+ // Broadcast interval of the represented node (in seconds)
+ NodeBroadcastIntervalSecs uint32 `protobuf:"varint,3,opt,name=node_broadcast_interval_secs,json=nodeBroadcastIntervalSecs,proto3" json:"node_broadcast_interval_secs,omitempty"`
+ // The list of out edges from this node
+ Neighbors []*Neighbor `protobuf:"bytes,4,rep,name=neighbors,proto3" json:"neighbors,omitempty"`
+}
+
+func (x *NeighborInfo) Reset() {
+ *x = NeighborInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NeighborInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NeighborInfo) ProtoMessage() {}
+
+func (x *NeighborInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NeighborInfo.ProtoReflect.Descriptor instead.
+func (*NeighborInfo) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *NeighborInfo) GetNodeId() uint32 {
+ if x != nil {
+ return x.NodeId
+ }
+ return 0
+}
+
+func (x *NeighborInfo) GetLastSentById() uint32 {
+ if x != nil {
+ return x.LastSentById
+ }
+ return 0
+}
+
+func (x *NeighborInfo) GetNodeBroadcastIntervalSecs() uint32 {
+ if x != nil {
+ return x.NodeBroadcastIntervalSecs
+ }
+ return 0
+}
+
+func (x *NeighborInfo) GetNeighbors() []*Neighbor {
+ if x != nil {
+ return x.Neighbors
+ }
+ return nil
+}
+
+// A single edge in the mesh
+type Neighbor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Node ID of neighbor
+ NodeId uint32 `protobuf:"varint,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
+ // SNR of last heard message
+ Snr float32 `protobuf:"fixed32,2,opt,name=snr,proto3" json:"snr,omitempty"`
+ // Reception time (in secs since 1970) of last message that was last sent by this ID.
+ // Note: this is for local storage only and will not be sent out over the mesh.
+ LastRxTime uint32 `protobuf:"fixed32,3,opt,name=last_rx_time,json=lastRxTime,proto3" json:"last_rx_time,omitempty"`
+ // Broadcast interval of this neighbor (in seconds).
+ // Note: this is for local storage only and will not be sent out over the mesh.
+ NodeBroadcastIntervalSecs uint32 `protobuf:"varint,4,opt,name=node_broadcast_interval_secs,json=nodeBroadcastIntervalSecs,proto3" json:"node_broadcast_interval_secs,omitempty"`
+}
+
+func (x *Neighbor) Reset() {
+ *x = Neighbor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Neighbor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Neighbor) ProtoMessage() {}
+
+func (x *Neighbor) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Neighbor.ProtoReflect.Descriptor instead.
+func (*Neighbor) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *Neighbor) GetNodeId() uint32 {
+ if x != nil {
+ return x.NodeId
+ }
+ return 0
+}
+
+func (x *Neighbor) GetSnr() float32 {
+ if x != nil {
+ return x.Snr
+ }
+ return 0
+}
+
+func (x *Neighbor) GetLastRxTime() uint32 {
+ if x != nil {
+ return x.LastRxTime
+ }
+ return 0
+}
+
+func (x *Neighbor) GetNodeBroadcastIntervalSecs() uint32 {
+ if x != nil {
+ return x.NodeBroadcastIntervalSecs
+ }
+ return 0
+}
+
+// Device metadata response
+type DeviceMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Device firmware version string
+ FirmwareVersion string `protobuf:"bytes,1,opt,name=firmware_version,json=firmwareVersion,proto3" json:"firmware_version,omitempty"`
+ // Device state version
+ DeviceStateVersion uint32 `protobuf:"varint,2,opt,name=device_state_version,json=deviceStateVersion,proto3" json:"device_state_version,omitempty"`
+ // Indicates whether the device can shutdown CPU natively or via power management chip
+ CanShutdown bool `protobuf:"varint,3,opt,name=canShutdown,proto3" json:"canShutdown,omitempty"`
+ // Indicates that the device has native wifi capability
+ HasWifi bool `protobuf:"varint,4,opt,name=hasWifi,proto3" json:"hasWifi,omitempty"`
+ // Indicates that the device has native bluetooth capability
+ HasBluetooth bool `protobuf:"varint,5,opt,name=hasBluetooth,proto3" json:"hasBluetooth,omitempty"`
+ // Indicates that the device has an ethernet peripheral
+ HasEthernet bool `protobuf:"varint,6,opt,name=hasEthernet,proto3" json:"hasEthernet,omitempty"`
+ // Indicates that the device's role in the mesh
+ Role Config_DeviceConfig_Role `protobuf:"varint,7,opt,name=role,proto3,enum=meshtastic.Config_DeviceConfig_Role" json:"role,omitempty"`
+ // Indicates the device's current enabled position flags
+ PositionFlags uint32 `protobuf:"varint,8,opt,name=position_flags,json=positionFlags,proto3" json:"position_flags,omitempty"`
+ // Device hardware model
+ HwModel HardwareModel `protobuf:"varint,9,opt,name=hw_model,json=hwModel,proto3,enum=meshtastic.HardwareModel" json:"hw_model,omitempty"`
+ // Has Remote Hardware enabled
+ HasRemoteHardware bool `protobuf:"varint,10,opt,name=hasRemoteHardware,proto3" json:"hasRemoteHardware,omitempty"`
+}
+
+func (x *DeviceMetadata) Reset() {
+ *x = DeviceMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mesh_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceMetadata) ProtoMessage() {}
+
+func (x *DeviceMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mesh_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceMetadata.ProtoReflect.Descriptor instead.
+func (*DeviceMetadata) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mesh_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *DeviceMetadata) GetFirmwareVersion() string {
+ if x != nil {
+ return x.FirmwareVersion
+ }
+ return ""
+}
+
+func (x *DeviceMetadata) GetDeviceStateVersion() uint32 {
+ if x != nil {
+ return x.DeviceStateVersion
+ }
+ return 0
+}
+
+func (x *DeviceMetadata) GetCanShutdown() bool {
+ if x != nil {
+ return x.CanShutdown
+ }
+ return false
+}
+
+func (x *DeviceMetadata) GetHasWifi() bool {
+ if x != nil {
+ return x.HasWifi
+ }
+ return false
+}
+
+func (x *DeviceMetadata) GetHasBluetooth() bool {
+ if x != nil {
+ return x.HasBluetooth
+ }
+ return false
+}
+
+func (x *DeviceMetadata) GetHasEthernet() bool {
+ if x != nil {
+ return x.HasEthernet
+ }
+ return false
+}
+
+func (x *DeviceMetadata) GetRole() Config_DeviceConfig_Role {
+ if x != nil {
+ return x.Role
+ }
+ return Config_DeviceConfig_CLIENT
+}
+
+func (x *DeviceMetadata) GetPositionFlags() uint32 {
+ if x != nil {
+ return x.PositionFlags
+ }
+ return 0
+}
+
+func (x *DeviceMetadata) GetHwModel() HardwareModel {
+ if x != nil {
+ return x.HwModel
+ }
+ return HardwareModel_UNSET
+}
+
+func (x *DeviceMetadata) GetHasRemoteHardware() bool {
+ if x != nil {
+ return x.HasRemoteHardware
+ }
+ return false
+}
+
+var File_meshtastic_mesh_proto protoreflect.FileDescriptor
+
+var file_meshtastic_mesh_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x65, 0x73,
+ 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x1a, 0x18, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x74, 0x65,
+ 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x78, 0x6d, 0x6f, 0x64, 0x65, 0x6d,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x07, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f,
+ 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x49, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f,
+ 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75,
+ 0x64, 0x65, 0x49, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12,
+ 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x74,
+ 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x6c, 0x6f,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0f,
+ 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x74, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d,
+ 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61,
+ 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x61, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x11, 0x52, 0x0b, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x48, 0x61, 0x65, 0x12, 0x3e,
+ 0x0a, 0x1b, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x69, 0x64,
+ 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x11, 0x52, 0x19, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x47, 0x65, 0x6f,
+ 0x69, 0x64, 0x61, 0x6c, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
+ 0x0a, 0x04, 0x50, 0x44, 0x4f, 0x50, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x50, 0x44,
+ 0x4f, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x44, 0x4f, 0x50, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x04, 0x48, 0x44, 0x4f, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x56, 0x44, 0x4f, 0x50, 0x18, 0x0d,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x56, 0x44, 0x4f, 0x50, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x70,
+ 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0b, 0x67, 0x70, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x21, 0x0a,
+ 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64,
+ 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b,
+ 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72,
+ 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x78, 0x51, 0x75, 0x61,
+ 0x6c, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x69, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x20, 0x0a, 0x0c, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18,
+ 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x56, 0x69, 0x65,
+ 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x14,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x16, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x4e,
+ 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4c,
+ 0x4f, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f,
+ 0x43, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f,
+ 0x43, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c,
+ 0x4c, 0x4f, 0x43, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x22, 0x62,
+ 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x41,
+ 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4c,
+ 0x54, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x4c,
+ 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c,
+ 0x41, 0x4c, 0x54, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x12,
+ 0x0a, 0x0e, 0x41, 0x4c, 0x54, 0x5f, 0x42, 0x41, 0x52, 0x4f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43,
+ 0x10, 0x04, 0x22, 0x81, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c,
+ 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x6c, 0x6f, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72,
+ 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68,
+ 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x61, 0x64,
+ 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6d, 0x61,
+ 0x63, 0x61, 0x64, 0x64, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x68, 0x77, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x52, 0x07, 0x68, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69,
+ 0x73, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0a, 0x69, 0x73, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x04,
+ 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
+ 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44,
+ 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74,
+ 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xa3,
+ 0x03, 0x0a, 0x07, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0d, 0x72, 0x6f,
+ 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52,
+ 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52,
+ 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a,
+ 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x48, 0x00,
+ 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3e, 0x0a, 0x0c,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52,
+ 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xca, 0x01, 0x0a,
+ 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
+ 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0b,
+ 0x0a, 0x07, 0x47, 0x4f, 0x54, 0x5f, 0x4e, 0x41, 0x4b, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54,
+ 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x5f, 0x49,
+ 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x41,
+ 0x58, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x54, 0x10, 0x05, 0x12, 0x0e,
+ 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x06, 0x12, 0x0d,
+ 0x0a, 0x09, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x07, 0x12, 0x0f, 0x0a,
+ 0x0b, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x08, 0x12, 0x14,
+ 0x0a, 0x10, 0x44, 0x55, 0x54, 0x59, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x4d,
+ 0x49, 0x54, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55,
+ 0x45, 0x53, 0x54, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x55, 0x54,
+ 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x21, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72,
+ 0x69, 0x61, 0x6e, 0x74, 0x22, 0xf0, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a,
+ 0x07, 0x70, 0x6f, 0x72, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74,
+ 0x4e, 0x75, 0x6d, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07,
+ 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70,
+ 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x6e, 0x74, 0x5f, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77,
+ 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64,
+ 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52,
+ 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f,
+ 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x49,
+ 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07,
+ 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0xd9, 0x01, 0x0a, 0x08, 0x57, 0x61, 0x79, 0x70,
+ 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65,
+ 0x5f, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75,
+ 0x64, 0x65, 0x49, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65,
+ 0x5f, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74,
+ 0x75, 0x64, 0x65, 0x49, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
+ 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x69,
+ 0x63, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x16, 0x4d, 0x71, 0x74, 0x74, 0x43, 0x6c, 0x69, 0x65,
+ 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
+ 0x6f, 0x70, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65,
+ 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f,
+ 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22,
+ 0xf3, 0x04, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12,
+ 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x66, 0x72,
+ 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02,
+ 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x07,
+ 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48,
+ 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x09, 0x65, 0x6e,
+ 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52,
+ 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x78,
+ 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x72, 0x78, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x78, 0x5f, 0x73, 0x6e, 0x72, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x02, 0x52, 0x05, 0x72, 0x78, 0x53, 0x6e, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f,
+ 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68,
+ 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x61, 0x6e, 0x74, 0x5f,
+ 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x61, 0x6e, 0x74, 0x41,
+ 0x63, 0x6b, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x50, 0x72, 0x69,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12,
+ 0x17, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x06, 0x72, 0x78, 0x52, 0x73, 0x73, 0x69, 0x12, 0x3c, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61,
+ 0x79, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65,
+ 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x64,
+ 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x69, 0x61, 0x5f, 0x6d, 0x71,
+ 0x74, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x61, 0x4d, 0x71, 0x74,
+ 0x74, 0x22, 0x5b, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a,
+ 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x49, 0x4e, 0x10,
+ 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x10,
+ 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x40, 0x12, 0x0c,
+ 0x0a, 0x08, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x46, 0x12, 0x07, 0x0a, 0x03,
+ 0x41, 0x43, 0x4b, 0x10, 0x78, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, 0x7f, 0x22, 0x42,
+ 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x5f,
+ 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x4c, 0x41, 0x59,
+ 0x45, 0x44, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x10, 0x01, 0x12, 0x12,
+ 0x0a, 0x0e, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54,
+ 0x10, 0x02, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61,
+ 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x81, 0x02, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03,
+ 0x73, 0x6e, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x07, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a,
+ 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
+ 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x0a, 0x4d, 0x79, 0x4e,
+ 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x79, 0x5f, 0x6e, 0x6f,
+ 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x79,
+ 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x62, 0x6f, 0x6f,
+ 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72,
+ 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69,
+ 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
+ 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x4c, 0x65, 0x76,
+ 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x58, 0x0a, 0x05, 0x4c, 0x65, 0x76,
+ 0x65, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a,
+ 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x32, 0x12, 0x09, 0x0a, 0x05, 0x45,
+ 0x52, 0x52, 0x4f, 0x52, 0x10, 0x28, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e,
+ 0x47, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x14, 0x12, 0x09, 0x0a,
+ 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43,
+ 0x45, 0x10, 0x05, 0x22, 0x71, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x03, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x6c,
+ 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e,
+ 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
+ 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x68, 0x50, 0x61,
+ 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0xfc, 0x05, 0x0a, 0x09, 0x46, 0x72, 0x6f, 0x6d, 0x52,
+ 0x61, 0x64, 0x69, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x6d, 0x79, 0x5f, 0x69, 0x6e, 0x66,
+ 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48,
+ 0x00, 0x52, 0x06, 0x6d, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x6e, 0x6f, 0x64,
+ 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c,
+ 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x0a,
+ 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4c, 0x6f,
+ 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x52, 0x65,
+ 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63,
+ 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
+ 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
+ 0x74, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x65, 0x64,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+ 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x48, 0x00, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x12, 0x38, 0x0a, 0x0c, 0x78, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x58, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x0c, 0x78, 0x6d,
+ 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
+ 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x16, 0x6d, 0x71, 0x74, 0x74, 0x43, 0x6c, 0x69, 0x65,
+ 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x71, 0x74, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78,
+ 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x6d, 0x71, 0x74, 0x74,
+ 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61,
+ 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xb0, 0x02, 0x0a, 0x07, 0x54, 0x6f, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d,
+ 0x65, 0x73, 0x68, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x77,
+ 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0a, 0x64,
+ 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48,
+ 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a,
+ 0x0c, 0x78, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x58, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x0c, 0x78, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x5c, 0x0a, 0x16, 0x6d, 0x71, 0x74, 0x74, 0x43,
+ 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x71, 0x74, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50,
+ 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x6d,
+ 0x71, 0x74, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
+ 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70,
+ 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x6e, 0x75,
+ 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x07, 0x70, 0x6f,
+ 0x72, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x4e, 0x65,
+ 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f,
+ 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x6f, 0x64,
+ 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74,
+ 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x61,
+ 0x73, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x6e, 0x6f,
+ 0x64, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x19, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x6e,
+ 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
+ 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4e, 0x65, 0x69, 0x67,
+ 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22,
+ 0x98, 0x01, 0x0a, 0x08, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07,
+ 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e,
+ 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f,
+ 0x72, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x6c,
+ 0x61, 0x73, 0x74, 0x52, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6e, 0x6f, 0x64,
+ 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x19, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x22, 0xb4, 0x03, 0x0a, 0x0e, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a,
+ 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72,
+ 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61,
+ 0x6e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0b, 0x63, 0x61, 0x6e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x18, 0x0a, 0x07,
+ 0x68, 0x61, 0x73, 0x57, 0x69, 0x66, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68,
+ 0x61, 0x73, 0x57, 0x69, 0x66, 0x69, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x42, 0x6c, 0x75,
+ 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61,
+ 0x73, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61,
+ 0x73, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0b, 0x68, 0x61, 0x73, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x04,
+ 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
+ 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a,
+ 0x08, 0x68, 0x77, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x48, 0x61, 0x72,
+ 0x64, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x07, 0x68, 0x77, 0x4d, 0x6f,
+ 0x64, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+ 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11,
+ 0x68, 0x61, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72,
+ 0x65, 0x2a, 0xc4, 0x07, 0x0a, 0x0d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x6f,
+ 0x64, 0x65, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c,
+ 0x0a, 0x08, 0x54, 0x4c, 0x4f, 0x52, 0x41, 0x5f, 0x56, 0x32, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
+ 0x54, 0x4c, 0x4f, 0x52, 0x41, 0x5f, 0x56, 0x31, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x4c,
+ 0x4f, 0x52, 0x41, 0x5f, 0x56, 0x32, 0x5f, 0x31, 0x5f, 0x31, 0x50, 0x36, 0x10, 0x03, 0x12, 0x09,
+ 0x0a, 0x05, 0x54, 0x42, 0x45, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x45, 0x4c,
+ 0x54, 0x45, 0x43, 0x5f, 0x56, 0x32, 0x5f, 0x30, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x42,
+ 0x45, 0x41, 0x4d, 0x5f, 0x56, 0x30, 0x50, 0x37, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x5f,
+ 0x45, 0x43, 0x48, 0x4f, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x4c, 0x4f, 0x52, 0x41, 0x5f,
+ 0x56, 0x31, 0x5f, 0x31, 0x50, 0x33, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x41, 0x4b, 0x34,
+ 0x36, 0x33, 0x31, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43, 0x5f,
+ 0x56, 0x32, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43,
+ 0x5f, 0x56, 0x31, 0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x4c, 0x59, 0x47, 0x4f, 0x5f,
+ 0x54, 0x42, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x33, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x0c, 0x12,
+ 0x0c, 0x0a, 0x08, 0x52, 0x41, 0x4b, 0x31, 0x31, 0x32, 0x30, 0x30, 0x10, 0x0d, 0x12, 0x0b, 0x0a,
+ 0x07, 0x4e, 0x41, 0x4e, 0x4f, 0x5f, 0x47, 0x31, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x4c,
+ 0x4f, 0x52, 0x41, 0x5f, 0x56, 0x32, 0x5f, 0x31, 0x5f, 0x31, 0x50, 0x38, 0x10, 0x0f, 0x12, 0x0f,
+ 0x0a, 0x0b, 0x54, 0x4c, 0x4f, 0x52, 0x41, 0x5f, 0x54, 0x33, 0x5f, 0x53, 0x33, 0x10, 0x10, 0x12,
+ 0x14, 0x0a, 0x10, 0x4e, 0x41, 0x4e, 0x4f, 0x5f, 0x47, 0x31, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x4f,
+ 0x52, 0x45, 0x52, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x41, 0x4e, 0x4f, 0x5f, 0x47, 0x32,
+ 0x5f, 0x55, 0x4c, 0x54, 0x52, 0x41, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x52, 0x41,
+ 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x13, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x47, 0x31, 0x10, 0x19, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x41, 0x4b, 0x31, 0x31,
+ 0x33, 0x31, 0x30, 0x10, 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x4e, 0x53, 0x45, 0x4c, 0x4f,
+ 0x52, 0x41, 0x5f, 0x52, 0x50, 0x32, 0x30, 0x34, 0x30, 0x10, 0x1b, 0x12, 0x10, 0x0a, 0x0c, 0x53,
+ 0x45, 0x4e, 0x53, 0x45, 0x4c, 0x4f, 0x52, 0x41, 0x5f, 0x53, 0x33, 0x10, 0x1c, 0x12, 0x0d, 0x0a,
+ 0x09, 0x43, 0x41, 0x4e, 0x41, 0x52, 0x59, 0x4f, 0x4e, 0x45, 0x10, 0x1d, 0x12, 0x0f, 0x0a, 0x0b,
+ 0x52, 0x50, 0x32, 0x30, 0x34, 0x30, 0x5f, 0x4c, 0x4f, 0x52, 0x41, 0x10, 0x1e, 0x12, 0x11, 0x0a,
+ 0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x31, 0x10, 0x20,
+ 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x52, 0x46, 0x35, 0x32, 0x38, 0x34, 0x30, 0x44, 0x4b, 0x10, 0x21,
+ 0x12, 0x07, 0x0a, 0x03, 0x50, 0x50, 0x52, 0x10, 0x22, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x4e,
+ 0x49, 0x45, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x10, 0x23, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x52,
+ 0x46, 0x35, 0x32, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x24, 0x12, 0x0d, 0x0a,
+ 0x09, 0x50, 0x4f, 0x52, 0x54, 0x44, 0x55, 0x49, 0x4e, 0x4f, 0x10, 0x25, 0x12, 0x0f, 0x0a, 0x0b,
+ 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x53, 0x49, 0x4d, 0x10, 0x26, 0x12, 0x0a, 0x0a,
+ 0x06, 0x44, 0x49, 0x59, 0x5f, 0x56, 0x31, 0x10, 0x27, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x52, 0x46,
+ 0x35, 0x32, 0x38, 0x34, 0x30, 0x5f, 0x50, 0x43, 0x41, 0x31, 0x30, 0x30, 0x35, 0x39, 0x10, 0x28,
+ 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x52, 0x5f, 0x44, 0x45, 0x56, 0x10, 0x29, 0x12, 0x0b, 0x0a, 0x07,
+ 0x4d, 0x35, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x10, 0x2a, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x45, 0x4c,
+ 0x54, 0x45, 0x43, 0x5f, 0x56, 0x33, 0x10, 0x2b, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x45, 0x4c, 0x54,
+ 0x45, 0x43, 0x5f, 0x57, 0x53, 0x4c, 0x5f, 0x56, 0x33, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x42,
+ 0x45, 0x54, 0x41, 0x46, 0x50, 0x56, 0x5f, 0x32, 0x34, 0x30, 0x30, 0x5f, 0x54, 0x58, 0x10, 0x2d,
+ 0x12, 0x17, 0x0a, 0x13, 0x42, 0x45, 0x54, 0x41, 0x46, 0x50, 0x56, 0x5f, 0x39, 0x30, 0x30, 0x5f,
+ 0x4e, 0x41, 0x4e, 0x4f, 0x5f, 0x54, 0x58, 0x10, 0x2e, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x50, 0x49,
+ 0x5f, 0x50, 0x49, 0x43, 0x4f, 0x10, 0x2f, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x45, 0x4c, 0x54, 0x45,
+ 0x43, 0x5f, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b,
+ 0x45, 0x52, 0x10, 0x30, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43, 0x5f, 0x57,
+ 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x50, 0x45, 0x52, 0x10, 0x31, 0x12,
+ 0x0a, 0x0a, 0x06, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4b, 0x10, 0x32, 0x12, 0x0e, 0x0a, 0x0a, 0x54,
+ 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x33, 0x10, 0x33, 0x12, 0x11, 0x0a, 0x0d, 0x50,
+ 0x49, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x33, 0x10, 0x34, 0x12, 0x0f,
+ 0x0a, 0x0b, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43, 0x5f, 0x48, 0x54, 0x36, 0x32, 0x10, 0x35, 0x12,
+ 0x12, 0x0a, 0x0e, 0x45, 0x42, 0x59, 0x54, 0x45, 0x5f, 0x45, 0x53, 0x50, 0x33, 0x32, 0x5f, 0x53,
+ 0x33, 0x10, 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x53, 0x50, 0x33, 0x32, 0x5f, 0x53, 0x33, 0x5f,
+ 0x50, 0x49, 0x43, 0x4f, 0x10, 0x37, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x48, 0x41, 0x54, 0x54, 0x45,
+ 0x52, 0x5f, 0x32, 0x10, 0x38, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43, 0x5f,
+ 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x50, 0x45, 0x52, 0x5f, 0x56,
+ 0x31, 0x5f, 0x30, 0x10, 0x39, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x45, 0x4c, 0x54, 0x45, 0x43, 0x5f,
+ 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x45, 0x52,
+ 0x5f, 0x56, 0x31, 0x5f, 0x30, 0x10, 0x3a, 0x12, 0x0f, 0x0a, 0x0a, 0x50, 0x52, 0x49, 0x56, 0x41,
+ 0x54, 0x45, 0x5f, 0x48, 0x57, 0x10, 0xff, 0x01, 0x2a, 0x2c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12,
+ 0x15, 0x0a, 0x10, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f,
+ 0x4c, 0x45, 0x4e, 0x10, 0xed, 0x01, 0x2a, 0xee, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x69, 0x74, 0x69,
+ 0x63, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04,
+ 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x58, 0x5f, 0x57, 0x41, 0x54,
+ 0x43, 0x48, 0x44, 0x4f, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4c, 0x45, 0x45, 0x50,
+ 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a,
+ 0x08, 0x4e, 0x4f, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55,
+ 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11,
+ 0x55, 0x42, 0x4c, 0x4f, 0x58, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45,
+ 0x44, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x58, 0x50, 0x31, 0x39, 0x32,
+ 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x52, 0x41,
+ 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x13, 0x0a,
+ 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
+ 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x52, 0x4f, 0x57, 0x4e, 0x4f, 0x55, 0x54, 0x10, 0x09,
+ 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x58, 0x31, 0x32, 0x36, 0x32, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55,
+ 0x52, 0x45, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x50,
+ 0x49, 0x5f, 0x42, 0x55, 0x47, 0x10, 0x0b, 0x42, 0x5f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
+ 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0a,
+ 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68,
+ 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02,
+ 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_mesh_proto_rawDescOnce sync.Once
+ file_meshtastic_mesh_proto_rawDescData = file_meshtastic_mesh_proto_rawDesc
+)
+
+func file_meshtastic_mesh_proto_rawDescGZIP() []byte {
+ file_meshtastic_mesh_proto_rawDescOnce.Do(func() {
+ file_meshtastic_mesh_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_mesh_proto_rawDescData)
+ })
+ return file_meshtastic_mesh_proto_rawDescData
+}
+
+var file_meshtastic_mesh_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
+var file_meshtastic_mesh_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
+var file_meshtastic_mesh_proto_goTypes = []interface{}{
+ (HardwareModel)(0), // 0: meshtastic.HardwareModel
+ (Constants)(0), // 1: meshtastic.Constants
+ (CriticalErrorCode)(0), // 2: meshtastic.CriticalErrorCode
+ (Position_LocSource)(0), // 3: meshtastic.Position.LocSource
+ (Position_AltSource)(0), // 4: meshtastic.Position.AltSource
+ (Routing_Error)(0), // 5: meshtastic.Routing.Error
+ (MeshPacket_Priority)(0), // 6: meshtastic.MeshPacket.Priority
+ (MeshPacket_Delayed)(0), // 7: meshtastic.MeshPacket.Delayed
+ (LogRecord_Level)(0), // 8: meshtastic.LogRecord.Level
+ (*Position)(nil), // 9: meshtastic.Position
+ (*User)(nil), // 10: meshtastic.User
+ (*RouteDiscovery)(nil), // 11: meshtastic.RouteDiscovery
+ (*Routing)(nil), // 12: meshtastic.Routing
+ (*Data)(nil), // 13: meshtastic.Data
+ (*Waypoint)(nil), // 14: meshtastic.Waypoint
+ (*MqttClientProxyMessage)(nil), // 15: meshtastic.MqttClientProxyMessage
+ (*MeshPacket)(nil), // 16: meshtastic.MeshPacket
+ (*NodeInfo)(nil), // 17: meshtastic.NodeInfo
+ (*MyNodeInfo)(nil), // 18: meshtastic.MyNodeInfo
+ (*LogRecord)(nil), // 19: meshtastic.LogRecord
+ (*QueueStatus)(nil), // 20: meshtastic.QueueStatus
+ (*FromRadio)(nil), // 21: meshtastic.FromRadio
+ (*ToRadio)(nil), // 22: meshtastic.ToRadio
+ (*Compressed)(nil), // 23: meshtastic.Compressed
+ (*NeighborInfo)(nil), // 24: meshtastic.NeighborInfo
+ (*Neighbor)(nil), // 25: meshtastic.Neighbor
+ (*DeviceMetadata)(nil), // 26: meshtastic.DeviceMetadata
+ (Config_DeviceConfig_Role)(0), // 27: meshtastic.Config.DeviceConfig.Role
+ (PortNum)(0), // 28: meshtastic.PortNum
+ (*DeviceMetrics)(nil), // 29: meshtastic.DeviceMetrics
+ (*Config)(nil), // 30: meshtastic.Config
+ (*ModuleConfig)(nil), // 31: meshtastic.ModuleConfig
+ (*Channel)(nil), // 32: meshtastic.Channel
+ (*XModem)(nil), // 33: meshtastic.XModem
+}
+var file_meshtastic_mesh_proto_depIdxs = []int32{
+ 3, // 0: meshtastic.Position.location_source:type_name -> meshtastic.Position.LocSource
+ 4, // 1: meshtastic.Position.altitude_source:type_name -> meshtastic.Position.AltSource
+ 0, // 2: meshtastic.User.hw_model:type_name -> meshtastic.HardwareModel
+ 27, // 3: meshtastic.User.role:type_name -> meshtastic.Config.DeviceConfig.Role
+ 11, // 4: meshtastic.Routing.route_request:type_name -> meshtastic.RouteDiscovery
+ 11, // 5: meshtastic.Routing.route_reply:type_name -> meshtastic.RouteDiscovery
+ 5, // 6: meshtastic.Routing.error_reason:type_name -> meshtastic.Routing.Error
+ 28, // 7: meshtastic.Data.portnum:type_name -> meshtastic.PortNum
+ 13, // 8: meshtastic.MeshPacket.decoded:type_name -> meshtastic.Data
+ 6, // 9: meshtastic.MeshPacket.priority:type_name -> meshtastic.MeshPacket.Priority
+ 7, // 10: meshtastic.MeshPacket.delayed:type_name -> meshtastic.MeshPacket.Delayed
+ 10, // 11: meshtastic.NodeInfo.user:type_name -> meshtastic.User
+ 9, // 12: meshtastic.NodeInfo.position:type_name -> meshtastic.Position
+ 29, // 13: meshtastic.NodeInfo.device_metrics:type_name -> meshtastic.DeviceMetrics
+ 8, // 14: meshtastic.LogRecord.level:type_name -> meshtastic.LogRecord.Level
+ 16, // 15: meshtastic.FromRadio.packet:type_name -> meshtastic.MeshPacket
+ 18, // 16: meshtastic.FromRadio.my_info:type_name -> meshtastic.MyNodeInfo
+ 17, // 17: meshtastic.FromRadio.node_info:type_name -> meshtastic.NodeInfo
+ 30, // 18: meshtastic.FromRadio.config:type_name -> meshtastic.Config
+ 19, // 19: meshtastic.FromRadio.log_record:type_name -> meshtastic.LogRecord
+ 31, // 20: meshtastic.FromRadio.moduleConfig:type_name -> meshtastic.ModuleConfig
+ 32, // 21: meshtastic.FromRadio.channel:type_name -> meshtastic.Channel
+ 20, // 22: meshtastic.FromRadio.queueStatus:type_name -> meshtastic.QueueStatus
+ 33, // 23: meshtastic.FromRadio.xmodemPacket:type_name -> meshtastic.XModem
+ 26, // 24: meshtastic.FromRadio.metadata:type_name -> meshtastic.DeviceMetadata
+ 15, // 25: meshtastic.FromRadio.mqttClientProxyMessage:type_name -> meshtastic.MqttClientProxyMessage
+ 16, // 26: meshtastic.ToRadio.packet:type_name -> meshtastic.MeshPacket
+ 33, // 27: meshtastic.ToRadio.xmodemPacket:type_name -> meshtastic.XModem
+ 15, // 28: meshtastic.ToRadio.mqttClientProxyMessage:type_name -> meshtastic.MqttClientProxyMessage
+ 28, // 29: meshtastic.Compressed.portnum:type_name -> meshtastic.PortNum
+ 25, // 30: meshtastic.NeighborInfo.neighbors:type_name -> meshtastic.Neighbor
+ 27, // 31: meshtastic.DeviceMetadata.role:type_name -> meshtastic.Config.DeviceConfig.Role
+ 0, // 32: meshtastic.DeviceMetadata.hw_model:type_name -> meshtastic.HardwareModel
+ 33, // [33:33] is the sub-list for method output_type
+ 33, // [33:33] is the sub-list for method input_type
+ 33, // [33:33] is the sub-list for extension type_name
+ 33, // [33:33] is the sub-list for extension extendee
+ 0, // [0:33] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_mesh_proto_init() }
+func file_meshtastic_mesh_proto_init() {
+ if File_meshtastic_mesh_proto != nil {
+ return
+ }
+ file_meshtastic_channel_proto_init()
+ file_meshtastic_config_proto_init()
+ file_meshtastic_module_config_proto_init()
+ file_meshtastic_portnums_proto_init()
+ file_meshtastic_telemetry_proto_init()
+ file_meshtastic_xmodem_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_mesh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Position); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*User); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RouteDiscovery); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Routing); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Data); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Waypoint); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MqttClientProxyMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeshPacket); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NodeInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MyNodeInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LogRecord); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*QueueStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FromRadio); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ToRadio); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Compressed); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NeighborInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Neighbor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_mesh_proto_msgTypes[3].OneofWrappers = []interface{}{
+ (*Routing_RouteRequest)(nil),
+ (*Routing_RouteReply)(nil),
+ (*Routing_ErrorReason)(nil),
+ }
+ file_meshtastic_mesh_proto_msgTypes[6].OneofWrappers = []interface{}{
+ (*MqttClientProxyMessage_Data)(nil),
+ (*MqttClientProxyMessage_Text)(nil),
+ }
+ file_meshtastic_mesh_proto_msgTypes[7].OneofWrappers = []interface{}{
+ (*MeshPacket_Decoded)(nil),
+ (*MeshPacket_Encrypted)(nil),
+ }
+ file_meshtastic_mesh_proto_msgTypes[12].OneofWrappers = []interface{}{
+ (*FromRadio_Packet)(nil),
+ (*FromRadio_MyInfo)(nil),
+ (*FromRadio_NodeInfo)(nil),
+ (*FromRadio_Config)(nil),
+ (*FromRadio_LogRecord)(nil),
+ (*FromRadio_ConfigCompleteId)(nil),
+ (*FromRadio_Rebooted)(nil),
+ (*FromRadio_ModuleConfig)(nil),
+ (*FromRadio_Channel)(nil),
+ (*FromRadio_QueueStatus)(nil),
+ (*FromRadio_XmodemPacket)(nil),
+ (*FromRadio_Metadata)(nil),
+ (*FromRadio_MqttClientProxyMessage)(nil),
+ }
+ file_meshtastic_mesh_proto_msgTypes[13].OneofWrappers = []interface{}{
+ (*ToRadio_Packet)(nil),
+ (*ToRadio_WantConfigId)(nil),
+ (*ToRadio_Disconnect)(nil),
+ (*ToRadio_XmodemPacket)(nil),
+ (*ToRadio_MqttClientProxyMessage)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_mesh_proto_rawDesc,
+ NumEnums: 9,
+ NumMessages: 18,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_mesh_proto_goTypes,
+ DependencyIndexes: file_meshtastic_mesh_proto_depIdxs,
+ EnumInfos: file_meshtastic_mesh_proto_enumTypes,
+ MessageInfos: file_meshtastic_mesh_proto_msgTypes,
+ }.Build()
+ File_meshtastic_mesh_proto = out.File
+ file_meshtastic_mesh_proto_rawDesc = nil
+ file_meshtastic_mesh_proto_goTypes = nil
+ file_meshtastic_mesh_proto_depIdxs = nil
+}
diff --git a/meshtastic/mesh_vtproto.pb.go b/meshtastic/mesh_vtproto.pb.go
new file mode 100644
index 0000000..82c920f
--- /dev/null
+++ b/meshtastic/mesh_vtproto.pb.go
@@ -0,0 +1,13823 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/mesh.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ math "math"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *Position) CloneVT() *Position {
+ if m == nil {
+ return (*Position)(nil)
+ }
+ r := new(Position)
+ r.LatitudeI = m.LatitudeI
+ r.LongitudeI = m.LongitudeI
+ r.Altitude = m.Altitude
+ r.Time = m.Time
+ r.LocationSource = m.LocationSource
+ r.AltitudeSource = m.AltitudeSource
+ r.Timestamp = m.Timestamp
+ r.TimestampMillisAdjust = m.TimestampMillisAdjust
+ r.AltitudeHae = m.AltitudeHae
+ r.AltitudeGeoidalSeparation = m.AltitudeGeoidalSeparation
+ r.PDOP = m.PDOP
+ r.HDOP = m.HDOP
+ r.VDOP = m.VDOP
+ r.GpsAccuracy = m.GpsAccuracy
+ r.GroundSpeed = m.GroundSpeed
+ r.GroundTrack = m.GroundTrack
+ r.FixQuality = m.FixQuality
+ r.FixType = m.FixType
+ r.SatsInView = m.SatsInView
+ r.SensorId = m.SensorId
+ r.NextUpdate = m.NextUpdate
+ r.SeqNumber = m.SeqNumber
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Position) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *User) CloneVT() *User {
+ if m == nil {
+ return (*User)(nil)
+ }
+ r := new(User)
+ r.Id = m.Id
+ r.LongName = m.LongName
+ r.ShortName = m.ShortName
+ r.HwModel = m.HwModel
+ r.IsLicensed = m.IsLicensed
+ r.Role = m.Role
+ if rhs := m.Macaddr; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Macaddr = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *User) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *RouteDiscovery) CloneVT() *RouteDiscovery {
+ if m == nil {
+ return (*RouteDiscovery)(nil)
+ }
+ r := new(RouteDiscovery)
+ if rhs := m.Route; rhs != nil {
+ tmpContainer := make([]uint32, len(rhs))
+ copy(tmpContainer, rhs)
+ r.Route = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *RouteDiscovery) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Routing) CloneVT() *Routing {
+ if m == nil {
+ return (*Routing)(nil)
+ }
+ r := new(Routing)
+ if m.Variant != nil {
+ r.Variant = m.Variant.(interface{ CloneVT() isRouting_Variant }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Routing) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Routing_RouteRequest) CloneVT() isRouting_Variant {
+ if m == nil {
+ return (*Routing_RouteRequest)(nil)
+ }
+ r := new(Routing_RouteRequest)
+ r.RouteRequest = m.RouteRequest.CloneVT()
+ return r
+}
+
+func (m *Routing_RouteReply) CloneVT() isRouting_Variant {
+ if m == nil {
+ return (*Routing_RouteReply)(nil)
+ }
+ r := new(Routing_RouteReply)
+ r.RouteReply = m.RouteReply.CloneVT()
+ return r
+}
+
+func (m *Routing_ErrorReason) CloneVT() isRouting_Variant {
+ if m == nil {
+ return (*Routing_ErrorReason)(nil)
+ }
+ r := new(Routing_ErrorReason)
+ r.ErrorReason = m.ErrorReason
+ return r
+}
+
+func (m *Data) CloneVT() *Data {
+ if m == nil {
+ return (*Data)(nil)
+ }
+ r := new(Data)
+ r.Portnum = m.Portnum
+ r.WantResponse = m.WantResponse
+ r.Dest = m.Dest
+ r.Source = m.Source
+ r.RequestId = m.RequestId
+ r.ReplyId = m.ReplyId
+ r.Emoji = m.Emoji
+ if rhs := m.Payload; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Payload = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Data) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Waypoint) CloneVT() *Waypoint {
+ if m == nil {
+ return (*Waypoint)(nil)
+ }
+ r := new(Waypoint)
+ r.Id = m.Id
+ r.LatitudeI = m.LatitudeI
+ r.LongitudeI = m.LongitudeI
+ r.Expire = m.Expire
+ r.LockedTo = m.LockedTo
+ r.Name = m.Name
+ r.Description = m.Description
+ r.Icon = m.Icon
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Waypoint) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *MqttClientProxyMessage) CloneVT() *MqttClientProxyMessage {
+ if m == nil {
+ return (*MqttClientProxyMessage)(nil)
+ }
+ r := new(MqttClientProxyMessage)
+ r.Topic = m.Topic
+ r.Retained = m.Retained
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isMqttClientProxyMessage_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *MqttClientProxyMessage) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *MqttClientProxyMessage_Data) CloneVT() isMqttClientProxyMessage_PayloadVariant {
+ if m == nil {
+ return (*MqttClientProxyMessage_Data)(nil)
+ }
+ r := new(MqttClientProxyMessage_Data)
+ if rhs := m.Data; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Data = tmpBytes
+ }
+ return r
+}
+
+func (m *MqttClientProxyMessage_Text) CloneVT() isMqttClientProxyMessage_PayloadVariant {
+ if m == nil {
+ return (*MqttClientProxyMessage_Text)(nil)
+ }
+ r := new(MqttClientProxyMessage_Text)
+ r.Text = m.Text
+ return r
+}
+
+func (m *MeshPacket) CloneVT() *MeshPacket {
+ if m == nil {
+ return (*MeshPacket)(nil)
+ }
+ r := new(MeshPacket)
+ r.From = m.From
+ r.To = m.To
+ r.Channel = m.Channel
+ r.Id = m.Id
+ r.RxTime = m.RxTime
+ r.RxSnr = m.RxSnr
+ r.HopLimit = m.HopLimit
+ r.WantAck = m.WantAck
+ r.Priority = m.Priority
+ r.RxRssi = m.RxRssi
+ r.Delayed = m.Delayed
+ r.ViaMqtt = m.ViaMqtt
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isMeshPacket_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *MeshPacket) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *MeshPacket_Decoded) CloneVT() isMeshPacket_PayloadVariant {
+ if m == nil {
+ return (*MeshPacket_Decoded)(nil)
+ }
+ r := new(MeshPacket_Decoded)
+ r.Decoded = m.Decoded.CloneVT()
+ return r
+}
+
+func (m *MeshPacket_Encrypted) CloneVT() isMeshPacket_PayloadVariant {
+ if m == nil {
+ return (*MeshPacket_Encrypted)(nil)
+ }
+ r := new(MeshPacket_Encrypted)
+ if rhs := m.Encrypted; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Encrypted = tmpBytes
+ }
+ return r
+}
+
+func (m *NodeInfo) CloneVT() *NodeInfo {
+ if m == nil {
+ return (*NodeInfo)(nil)
+ }
+ r := new(NodeInfo)
+ r.Num = m.Num
+ r.User = m.User.CloneVT()
+ r.Position = m.Position.CloneVT()
+ r.Snr = m.Snr
+ r.LastHeard = m.LastHeard
+ r.DeviceMetrics = m.DeviceMetrics.CloneVT()
+ r.Channel = m.Channel
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NodeInfo) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *MyNodeInfo) CloneVT() *MyNodeInfo {
+ if m == nil {
+ return (*MyNodeInfo)(nil)
+ }
+ r := new(MyNodeInfo)
+ r.MyNodeNum = m.MyNodeNum
+ r.RebootCount = m.RebootCount
+ r.MinAppVersion = m.MinAppVersion
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *MyNodeInfo) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *LogRecord) CloneVT() *LogRecord {
+ if m == nil {
+ return (*LogRecord)(nil)
+ }
+ r := new(LogRecord)
+ r.Message = m.Message
+ r.Time = m.Time
+ r.Source = m.Source
+ r.Level = m.Level
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *LogRecord) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *QueueStatus) CloneVT() *QueueStatus {
+ if m == nil {
+ return (*QueueStatus)(nil)
+ }
+ r := new(QueueStatus)
+ r.Res = m.Res
+ r.Free = m.Free
+ r.Maxlen = m.Maxlen
+ r.MeshPacketId = m.MeshPacketId
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *QueueStatus) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *FromRadio) CloneVT() *FromRadio {
+ if m == nil {
+ return (*FromRadio)(nil)
+ }
+ r := new(FromRadio)
+ r.Id = m.Id
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isFromRadio_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *FromRadio) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *FromRadio_Packet) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_Packet)(nil)
+ }
+ r := new(FromRadio_Packet)
+ r.Packet = m.Packet.CloneVT()
+ return r
+}
+
+func (m *FromRadio_MyInfo) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_MyInfo)(nil)
+ }
+ r := new(FromRadio_MyInfo)
+ r.MyInfo = m.MyInfo.CloneVT()
+ return r
+}
+
+func (m *FromRadio_NodeInfo) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_NodeInfo)(nil)
+ }
+ r := new(FromRadio_NodeInfo)
+ r.NodeInfo = m.NodeInfo.CloneVT()
+ return r
+}
+
+func (m *FromRadio_Config) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_Config)(nil)
+ }
+ r := new(FromRadio_Config)
+ r.Config = m.Config.CloneVT()
+ return r
+}
+
+func (m *FromRadio_LogRecord) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_LogRecord)(nil)
+ }
+ r := new(FromRadio_LogRecord)
+ r.LogRecord = m.LogRecord.CloneVT()
+ return r
+}
+
+func (m *FromRadio_ConfigCompleteId) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_ConfigCompleteId)(nil)
+ }
+ r := new(FromRadio_ConfigCompleteId)
+ r.ConfigCompleteId = m.ConfigCompleteId
+ return r
+}
+
+func (m *FromRadio_Rebooted) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_Rebooted)(nil)
+ }
+ r := new(FromRadio_Rebooted)
+ r.Rebooted = m.Rebooted
+ return r
+}
+
+func (m *FromRadio_ModuleConfig) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_ModuleConfig)(nil)
+ }
+ r := new(FromRadio_ModuleConfig)
+ r.ModuleConfig = m.ModuleConfig.CloneVT()
+ return r
+}
+
+func (m *FromRadio_Channel) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_Channel)(nil)
+ }
+ r := new(FromRadio_Channel)
+ r.Channel = m.Channel.CloneVT()
+ return r
+}
+
+func (m *FromRadio_QueueStatus) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_QueueStatus)(nil)
+ }
+ r := new(FromRadio_QueueStatus)
+ r.QueueStatus = m.QueueStatus.CloneVT()
+ return r
+}
+
+func (m *FromRadio_XmodemPacket) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_XmodemPacket)(nil)
+ }
+ r := new(FromRadio_XmodemPacket)
+ r.XmodemPacket = m.XmodemPacket.CloneVT()
+ return r
+}
+
+func (m *FromRadio_Metadata) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_Metadata)(nil)
+ }
+ r := new(FromRadio_Metadata)
+ r.Metadata = m.Metadata.CloneVT()
+ return r
+}
+
+func (m *FromRadio_MqttClientProxyMessage) CloneVT() isFromRadio_PayloadVariant {
+ if m == nil {
+ return (*FromRadio_MqttClientProxyMessage)(nil)
+ }
+ r := new(FromRadio_MqttClientProxyMessage)
+ r.MqttClientProxyMessage = m.MqttClientProxyMessage.CloneVT()
+ return r
+}
+
+func (m *ToRadio) CloneVT() *ToRadio {
+ if m == nil {
+ return (*ToRadio)(nil)
+ }
+ r := new(ToRadio)
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isToRadio_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ToRadio) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ToRadio_Packet) CloneVT() isToRadio_PayloadVariant {
+ if m == nil {
+ return (*ToRadio_Packet)(nil)
+ }
+ r := new(ToRadio_Packet)
+ r.Packet = m.Packet.CloneVT()
+ return r
+}
+
+func (m *ToRadio_WantConfigId) CloneVT() isToRadio_PayloadVariant {
+ if m == nil {
+ return (*ToRadio_WantConfigId)(nil)
+ }
+ r := new(ToRadio_WantConfigId)
+ r.WantConfigId = m.WantConfigId
+ return r
+}
+
+func (m *ToRadio_Disconnect) CloneVT() isToRadio_PayloadVariant {
+ if m == nil {
+ return (*ToRadio_Disconnect)(nil)
+ }
+ r := new(ToRadio_Disconnect)
+ r.Disconnect = m.Disconnect
+ return r
+}
+
+func (m *ToRadio_XmodemPacket) CloneVT() isToRadio_PayloadVariant {
+ if m == nil {
+ return (*ToRadio_XmodemPacket)(nil)
+ }
+ r := new(ToRadio_XmodemPacket)
+ r.XmodemPacket = m.XmodemPacket.CloneVT()
+ return r
+}
+
+func (m *ToRadio_MqttClientProxyMessage) CloneVT() isToRadio_PayloadVariant {
+ if m == nil {
+ return (*ToRadio_MqttClientProxyMessage)(nil)
+ }
+ r := new(ToRadio_MqttClientProxyMessage)
+ r.MqttClientProxyMessage = m.MqttClientProxyMessage.CloneVT()
+ return r
+}
+
+func (m *Compressed) CloneVT() *Compressed {
+ if m == nil {
+ return (*Compressed)(nil)
+ }
+ r := new(Compressed)
+ r.Portnum = m.Portnum
+ if rhs := m.Data; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Data = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Compressed) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *NeighborInfo) CloneVT() *NeighborInfo {
+ if m == nil {
+ return (*NeighborInfo)(nil)
+ }
+ r := new(NeighborInfo)
+ r.NodeId = m.NodeId
+ r.LastSentById = m.LastSentById
+ r.NodeBroadcastIntervalSecs = m.NodeBroadcastIntervalSecs
+ if rhs := m.Neighbors; rhs != nil {
+ tmpContainer := make([]*Neighbor, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.Neighbors = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *NeighborInfo) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Neighbor) CloneVT() *Neighbor {
+ if m == nil {
+ return (*Neighbor)(nil)
+ }
+ r := new(Neighbor)
+ r.NodeId = m.NodeId
+ r.Snr = m.Snr
+ r.LastRxTime = m.LastRxTime
+ r.NodeBroadcastIntervalSecs = m.NodeBroadcastIntervalSecs
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Neighbor) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *DeviceMetadata) CloneVT() *DeviceMetadata {
+ if m == nil {
+ return (*DeviceMetadata)(nil)
+ }
+ r := new(DeviceMetadata)
+ r.FirmwareVersion = m.FirmwareVersion
+ r.DeviceStateVersion = m.DeviceStateVersion
+ r.CanShutdown = m.CanShutdown
+ r.HasWifi = m.HasWifi
+ r.HasBluetooth = m.HasBluetooth
+ r.HasEthernet = m.HasEthernet
+ r.Role = m.Role
+ r.PositionFlags = m.PositionFlags
+ r.HwModel = m.HwModel
+ r.HasRemoteHardware = m.HasRemoteHardware
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeviceMetadata) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *Position) EqualVT(that *Position) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.LatitudeI != that.LatitudeI {
+ return false
+ }
+ if this.LongitudeI != that.LongitudeI {
+ return false
+ }
+ if this.Altitude != that.Altitude {
+ return false
+ }
+ if this.Time != that.Time {
+ return false
+ }
+ if this.LocationSource != that.LocationSource {
+ return false
+ }
+ if this.AltitudeSource != that.AltitudeSource {
+ return false
+ }
+ if this.Timestamp != that.Timestamp {
+ return false
+ }
+ if this.TimestampMillisAdjust != that.TimestampMillisAdjust {
+ return false
+ }
+ if this.AltitudeHae != that.AltitudeHae {
+ return false
+ }
+ if this.AltitudeGeoidalSeparation != that.AltitudeGeoidalSeparation {
+ return false
+ }
+ if this.PDOP != that.PDOP {
+ return false
+ }
+ if this.HDOP != that.HDOP {
+ return false
+ }
+ if this.VDOP != that.VDOP {
+ return false
+ }
+ if this.GpsAccuracy != that.GpsAccuracy {
+ return false
+ }
+ if this.GroundSpeed != that.GroundSpeed {
+ return false
+ }
+ if this.GroundTrack != that.GroundTrack {
+ return false
+ }
+ if this.FixQuality != that.FixQuality {
+ return false
+ }
+ if this.FixType != that.FixType {
+ return false
+ }
+ if this.SatsInView != that.SatsInView {
+ return false
+ }
+ if this.SensorId != that.SensorId {
+ return false
+ }
+ if this.NextUpdate != that.NextUpdate {
+ return false
+ }
+ if this.SeqNumber != that.SeqNumber {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Position) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Position)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *User) EqualVT(that *User) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Id != that.Id {
+ return false
+ }
+ if this.LongName != that.LongName {
+ return false
+ }
+ if this.ShortName != that.ShortName {
+ return false
+ }
+ if string(this.Macaddr) != string(that.Macaddr) {
+ return false
+ }
+ if this.HwModel != that.HwModel {
+ return false
+ }
+ if this.IsLicensed != that.IsLicensed {
+ return false
+ }
+ if this.Role != that.Role {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *User) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*User)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *RouteDiscovery) EqualVT(that *RouteDiscovery) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if len(this.Route) != len(that.Route) {
+ return false
+ }
+ for i, vx := range this.Route {
+ vy := that.Route[i]
+ if vx != vy {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *RouteDiscovery) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*RouteDiscovery)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Routing) EqualVT(that *Routing) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Variant == nil && that.Variant != nil {
+ return false
+ } else if this.Variant != nil {
+ if that.Variant == nil {
+ return false
+ }
+ if !this.Variant.(interface{ EqualVT(isRouting_Variant) bool }).EqualVT(that.Variant) {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Routing) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Routing)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Routing_RouteRequest) EqualVT(thatIface isRouting_Variant) bool {
+ that, ok := thatIface.(*Routing_RouteRequest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.RouteRequest, that.RouteRequest; p != q {
+ if p == nil {
+ p = &RouteDiscovery{}
+ }
+ if q == nil {
+ q = &RouteDiscovery{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Routing_RouteReply) EqualVT(thatIface isRouting_Variant) bool {
+ that, ok := thatIface.(*Routing_RouteReply)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.RouteReply, that.RouteReply; p != q {
+ if p == nil {
+ p = &RouteDiscovery{}
+ }
+ if q == nil {
+ q = &RouteDiscovery{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Routing_ErrorReason) EqualVT(thatIface isRouting_Variant) bool {
+ that, ok := thatIface.(*Routing_ErrorReason)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.ErrorReason != that.ErrorReason {
+ return false
+ }
+ return true
+}
+
+func (this *Data) EqualVT(that *Data) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Portnum != that.Portnum {
+ return false
+ }
+ if string(this.Payload) != string(that.Payload) {
+ return false
+ }
+ if this.WantResponse != that.WantResponse {
+ return false
+ }
+ if this.Dest != that.Dest {
+ return false
+ }
+ if this.Source != that.Source {
+ return false
+ }
+ if this.RequestId != that.RequestId {
+ return false
+ }
+ if this.ReplyId != that.ReplyId {
+ return false
+ }
+ if this.Emoji != that.Emoji {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Data) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Data)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Waypoint) EqualVT(that *Waypoint) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Id != that.Id {
+ return false
+ }
+ if this.LatitudeI != that.LatitudeI {
+ return false
+ }
+ if this.LongitudeI != that.LongitudeI {
+ return false
+ }
+ if this.Expire != that.Expire {
+ return false
+ }
+ if this.LockedTo != that.LockedTo {
+ return false
+ }
+ if this.Name != that.Name {
+ return false
+ }
+ if this.Description != that.Description {
+ return false
+ }
+ if this.Icon != that.Icon {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Waypoint) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Waypoint)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *MqttClientProxyMessage) EqualVT(that *MqttClientProxyMessage) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isMqttClientProxyMessage_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ if this.Topic != that.Topic {
+ return false
+ }
+ if this.Retained != that.Retained {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *MqttClientProxyMessage) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*MqttClientProxyMessage)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *MqttClientProxyMessage_Data) EqualVT(thatIface isMqttClientProxyMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*MqttClientProxyMessage_Data)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if string(this.Data) != string(that.Data) {
+ return false
+ }
+ return true
+}
+
+func (this *MqttClientProxyMessage_Text) EqualVT(thatIface isMqttClientProxyMessage_PayloadVariant) bool {
+ that, ok := thatIface.(*MqttClientProxyMessage_Text)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.Text != that.Text {
+ return false
+ }
+ return true
+}
+
+func (this *MeshPacket) EqualVT(that *MeshPacket) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isMeshPacket_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ if this.From != that.From {
+ return false
+ }
+ if this.To != that.To {
+ return false
+ }
+ if this.Channel != that.Channel {
+ return false
+ }
+ if this.Id != that.Id {
+ return false
+ }
+ if this.RxTime != that.RxTime {
+ return false
+ }
+ if this.RxSnr != that.RxSnr {
+ return false
+ }
+ if this.HopLimit != that.HopLimit {
+ return false
+ }
+ if this.WantAck != that.WantAck {
+ return false
+ }
+ if this.Priority != that.Priority {
+ return false
+ }
+ if this.RxRssi != that.RxRssi {
+ return false
+ }
+ if this.Delayed != that.Delayed {
+ return false
+ }
+ if this.ViaMqtt != that.ViaMqtt {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *MeshPacket) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*MeshPacket)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *MeshPacket_Decoded) EqualVT(thatIface isMeshPacket_PayloadVariant) bool {
+ that, ok := thatIface.(*MeshPacket_Decoded)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Decoded, that.Decoded; p != q {
+ if p == nil {
+ p = &Data{}
+ }
+ if q == nil {
+ q = &Data{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *MeshPacket_Encrypted) EqualVT(thatIface isMeshPacket_PayloadVariant) bool {
+ that, ok := thatIface.(*MeshPacket_Encrypted)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if string(this.Encrypted) != string(that.Encrypted) {
+ return false
+ }
+ return true
+}
+
+func (this *NodeInfo) EqualVT(that *NodeInfo) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Num != that.Num {
+ return false
+ }
+ if !this.User.EqualVT(that.User) {
+ return false
+ }
+ if !this.Position.EqualVT(that.Position) {
+ return false
+ }
+ if this.Snr != that.Snr {
+ return false
+ }
+ if this.LastHeard != that.LastHeard {
+ return false
+ }
+ if !this.DeviceMetrics.EqualVT(that.DeviceMetrics) {
+ return false
+ }
+ if this.Channel != that.Channel {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NodeInfo) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NodeInfo)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *MyNodeInfo) EqualVT(that *MyNodeInfo) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.MyNodeNum != that.MyNodeNum {
+ return false
+ }
+ if this.RebootCount != that.RebootCount {
+ return false
+ }
+ if this.MinAppVersion != that.MinAppVersion {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *MyNodeInfo) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*MyNodeInfo)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *LogRecord) EqualVT(that *LogRecord) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Message != that.Message {
+ return false
+ }
+ if this.Time != that.Time {
+ return false
+ }
+ if this.Source != that.Source {
+ return false
+ }
+ if this.Level != that.Level {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *LogRecord) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*LogRecord)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *QueueStatus) EqualVT(that *QueueStatus) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Res != that.Res {
+ return false
+ }
+ if this.Free != that.Free {
+ return false
+ }
+ if this.Maxlen != that.Maxlen {
+ return false
+ }
+ if this.MeshPacketId != that.MeshPacketId {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *QueueStatus) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*QueueStatus)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *FromRadio) EqualVT(that *FromRadio) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isFromRadio_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ if this.Id != that.Id {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *FromRadio) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*FromRadio)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *FromRadio_Packet) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_Packet)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Packet, that.Packet; p != q {
+ if p == nil {
+ p = &MeshPacket{}
+ }
+ if q == nil {
+ q = &MeshPacket{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_MyInfo) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_MyInfo)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.MyInfo, that.MyInfo; p != q {
+ if p == nil {
+ p = &MyNodeInfo{}
+ }
+ if q == nil {
+ q = &MyNodeInfo{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_NodeInfo) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_NodeInfo)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.NodeInfo, that.NodeInfo; p != q {
+ if p == nil {
+ p = &NodeInfo{}
+ }
+ if q == nil {
+ q = &NodeInfo{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_Config) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_Config)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Config, that.Config; p != q {
+ if p == nil {
+ p = &Config{}
+ }
+ if q == nil {
+ q = &Config{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_LogRecord) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_LogRecord)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.LogRecord, that.LogRecord; p != q {
+ if p == nil {
+ p = &LogRecord{}
+ }
+ if q == nil {
+ q = &LogRecord{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_ConfigCompleteId) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_ConfigCompleteId)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.ConfigCompleteId != that.ConfigCompleteId {
+ return false
+ }
+ return true
+}
+
+func (this *FromRadio_Rebooted) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_Rebooted)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.Rebooted != that.Rebooted {
+ return false
+ }
+ return true
+}
+
+func (this *FromRadio_ModuleConfig) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_ModuleConfig)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.ModuleConfig, that.ModuleConfig; p != q {
+ if p == nil {
+ p = &ModuleConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_Channel) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_Channel)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Channel, that.Channel; p != q {
+ if p == nil {
+ p = &Channel{}
+ }
+ if q == nil {
+ q = &Channel{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_QueueStatus) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_QueueStatus)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.QueueStatus, that.QueueStatus; p != q {
+ if p == nil {
+ p = &QueueStatus{}
+ }
+ if q == nil {
+ q = &QueueStatus{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_XmodemPacket) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_XmodemPacket)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.XmodemPacket, that.XmodemPacket; p != q {
+ if p == nil {
+ p = &XModem{}
+ }
+ if q == nil {
+ q = &XModem{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_Metadata) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_Metadata)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Metadata, that.Metadata; p != q {
+ if p == nil {
+ p = &DeviceMetadata{}
+ }
+ if q == nil {
+ q = &DeviceMetadata{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *FromRadio_MqttClientProxyMessage) EqualVT(thatIface isFromRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*FromRadio_MqttClientProxyMessage)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.MqttClientProxyMessage, that.MqttClientProxyMessage; p != q {
+ if p == nil {
+ p = &MqttClientProxyMessage{}
+ }
+ if q == nil {
+ q = &MqttClientProxyMessage{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ToRadio) EqualVT(that *ToRadio) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isToRadio_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ToRadio) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ToRadio)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ToRadio_Packet) EqualVT(thatIface isToRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*ToRadio_Packet)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Packet, that.Packet; p != q {
+ if p == nil {
+ p = &MeshPacket{}
+ }
+ if q == nil {
+ q = &MeshPacket{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ToRadio_WantConfigId) EqualVT(thatIface isToRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*ToRadio_WantConfigId)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.WantConfigId != that.WantConfigId {
+ return false
+ }
+ return true
+}
+
+func (this *ToRadio_Disconnect) EqualVT(thatIface isToRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*ToRadio_Disconnect)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if this.Disconnect != that.Disconnect {
+ return false
+ }
+ return true
+}
+
+func (this *ToRadio_XmodemPacket) EqualVT(thatIface isToRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*ToRadio_XmodemPacket)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.XmodemPacket, that.XmodemPacket; p != q {
+ if p == nil {
+ p = &XModem{}
+ }
+ if q == nil {
+ q = &XModem{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ToRadio_MqttClientProxyMessage) EqualVT(thatIface isToRadio_PayloadVariant) bool {
+ that, ok := thatIface.(*ToRadio_MqttClientProxyMessage)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.MqttClientProxyMessage, that.MqttClientProxyMessage; p != q {
+ if p == nil {
+ p = &MqttClientProxyMessage{}
+ }
+ if q == nil {
+ q = &MqttClientProxyMessage{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Compressed) EqualVT(that *Compressed) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Portnum != that.Portnum {
+ return false
+ }
+ if string(this.Data) != string(that.Data) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Compressed) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Compressed)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *NeighborInfo) EqualVT(that *NeighborInfo) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.NodeId != that.NodeId {
+ return false
+ }
+ if this.LastSentById != that.LastSentById {
+ return false
+ }
+ if this.NodeBroadcastIntervalSecs != that.NodeBroadcastIntervalSecs {
+ return false
+ }
+ if len(this.Neighbors) != len(that.Neighbors) {
+ return false
+ }
+ for i, vx := range this.Neighbors {
+ vy := that.Neighbors[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &Neighbor{}
+ }
+ if q == nil {
+ q = &Neighbor{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *NeighborInfo) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*NeighborInfo)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Neighbor) EqualVT(that *Neighbor) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.NodeId != that.NodeId {
+ return false
+ }
+ if this.Snr != that.Snr {
+ return false
+ }
+ if this.LastRxTime != that.LastRxTime {
+ return false
+ }
+ if this.NodeBroadcastIntervalSecs != that.NodeBroadcastIntervalSecs {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Neighbor) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Neighbor)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *DeviceMetadata) EqualVT(that *DeviceMetadata) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.FirmwareVersion != that.FirmwareVersion {
+ return false
+ }
+ if this.DeviceStateVersion != that.DeviceStateVersion {
+ return false
+ }
+ if this.CanShutdown != that.CanShutdown {
+ return false
+ }
+ if this.HasWifi != that.HasWifi {
+ return false
+ }
+ if this.HasBluetooth != that.HasBluetooth {
+ return false
+ }
+ if this.HasEthernet != that.HasEthernet {
+ return false
+ }
+ if this.Role != that.Role {
+ return false
+ }
+ if this.PositionFlags != that.PositionFlags {
+ return false
+ }
+ if this.HwModel != that.HwModel {
+ return false
+ }
+ if this.HasRemoteHardware != that.HasRemoteHardware {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *DeviceMetadata) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*DeviceMetadata)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *Position) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Position) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Position) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.SeqNumber != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SeqNumber))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb0
+ }
+ if m.NextUpdate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NextUpdate))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa8
+ }
+ if m.SensorId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SensorId))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa0
+ }
+ if m.SatsInView != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SatsInView))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x98
+ }
+ if m.FixType != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixType))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x90
+ }
+ if m.FixQuality != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixQuality))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x88
+ }
+ if m.GroundTrack != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GroundTrack))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x80
+ }
+ if m.GroundSpeed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GroundSpeed))
+ i--
+ dAtA[i] = 0x78
+ }
+ if m.GpsAccuracy != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsAccuracy))
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.VDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.VDOP))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.HDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HDOP))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.PDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PDOP))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.AltitudeGeoidalSeparation != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.AltitudeGeoidalSeparation)<<1)^uint32((m.AltitudeGeoidalSeparation>>31))))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.AltitudeHae != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.AltitudeHae)<<1)^uint32((m.AltitudeHae>>31))))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.TimestampMillisAdjust != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TimestampMillisAdjust))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Timestamp != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Timestamp))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.AltitudeSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AltitudeSource))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.LocationSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LocationSource))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *User) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *User) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *User) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.IsLicensed {
+ i--
+ if m.IsLicensed {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.HwModel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HwModel))
+ i--
+ dAtA[i] = 0x28
+ }
+ if len(m.Macaddr) > 0 {
+ i -= len(m.Macaddr)
+ copy(dAtA[i:], m.Macaddr)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Macaddr)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.ShortName) > 0 {
+ i -= len(m.ShortName)
+ copy(dAtA[i:], m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ShortName)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.LongName) > 0 {
+ i -= len(m.LongName)
+ copy(dAtA[i:], m.LongName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.LongName)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RouteDiscovery) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RouteDiscovery) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *RouteDiscovery) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Route) > 0 {
+ for iNdEx := len(m.Route) - 1; iNdEx >= 0; iNdEx-- {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Route[iNdEx]))
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Route)*4))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Routing) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Routing) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Routing) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.Variant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Routing_RouteRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Routing_RouteRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RouteRequest != nil {
+ size, err := m.RouteRequest.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Routing_RouteReply) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Routing_RouteReply) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RouteReply != nil {
+ size, err := m.RouteReply.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Routing_ErrorReason) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Routing_ErrorReason) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ErrorReason))
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *Data) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Data) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Data) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Emoji != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Emoji))
+ i--
+ dAtA[i] = 0x45
+ }
+ if m.ReplyId != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.ReplyId))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.RequestId != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.RequestId))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Source != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Source))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Dest != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Dest))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.WantResponse {
+ i--
+ if m.WantResponse {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Payload) > 0 {
+ i -= len(m.Payload)
+ copy(dAtA[i:], m.Payload)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Payload)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Portnum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Portnum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Waypoint) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Waypoint) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Waypoint) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Icon != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Icon))
+ i--
+ dAtA[i] = 0x45
+ }
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LockedTo != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LockedTo))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Expire != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Expire))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Id != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Id))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MqttClientProxyMessage) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MqttClientProxyMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Retained {
+ i--
+ if m.Retained {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Topic) > 0 {
+ i -= len(m.Topic)
+ copy(dAtA[i:], m.Topic)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Topic)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MqttClientProxyMessage_Data) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage_Data) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Data)
+ copy(dAtA[i:], m.Data)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Data)))
+ i--
+ dAtA[i] = 0x12
+ return len(dAtA) - i, nil
+}
+func (m *MqttClientProxyMessage_Text) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage_Text) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Text)
+ copy(dAtA[i:], m.Text)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Text)))
+ i--
+ dAtA[i] = 0x1a
+ return len(dAtA) - i, nil
+}
+func (m *MeshPacket) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MeshPacket) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MeshPacket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.ViaMqtt {
+ i--
+ if m.ViaMqtt {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.Delayed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Delayed))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.RxRssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RxRssi))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.Priority != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Priority))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.WantAck {
+ i--
+ if m.WantAck {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HopLimit != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HopLimit))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.RxSnr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.RxSnr))))
+ i--
+ dAtA[i] = 0x45
+ }
+ if m.RxTime != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.RxTime))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.Id != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Id))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.To != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.To))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.From != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.From))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MeshPacket_Decoded) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MeshPacket_Decoded) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Decoded != nil {
+ size, err := m.Decoded.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *MeshPacket_Encrypted) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MeshPacket_Encrypted) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Encrypted)
+ copy(dAtA[i:], m.Encrypted)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Encrypted)))
+ i--
+ dAtA[i] = 0x2a
+ return len(dAtA) - i, nil
+}
+func (m *NodeInfo) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NodeInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LastHeard != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastHeard))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.User != nil {
+ size, err := m.User.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Num != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Num))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MyNodeInfo) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MyNodeInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *MyNodeInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.MinAppVersion != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinAppVersion))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.RebootCount != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootCount))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.MyNodeNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MyNodeNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LogRecord) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LogRecord) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *LogRecord) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Level != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Level))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Source) > 0 {
+ i -= len(m.Source)
+ copy(dAtA[i:], m.Source)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Source)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x15
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *QueueStatus) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *QueueStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *QueueStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.MeshPacketId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MeshPacketId))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Maxlen != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Maxlen))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Free != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Free))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Res != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Res))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *FromRadio) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *FromRadio) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Id != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Id))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *FromRadio_Packet) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_Packet) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_MyInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_MyInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MyInfo != nil {
+ size, err := m.MyInfo.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_NodeInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_NodeInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.NodeInfo != nil {
+ size, err := m.NodeInfo.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Config) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Config != nil {
+ size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_LogRecord) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_LogRecord) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.LogRecord != nil {
+ size, err := m.LogRecord.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_ConfigCompleteId) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_ConfigCompleteId) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ConfigCompleteId))
+ i--
+ dAtA[i] = 0x38
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Rebooted) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_Rebooted) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.Rebooted {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_ModuleConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_ModuleConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ModuleConfig != nil {
+ size, err := m.ModuleConfig.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Channel) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_Channel) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Channel != nil {
+ size, err := m.Channel.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_QueueStatus) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_QueueStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.QueueStatus != nil {
+ size, err := m.QueueStatus.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_XmodemPacket) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_XmodemPacket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.XmodemPacket != nil {
+ size, err := m.XmodemPacket.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Metadata) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_Metadata) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Metadata != nil {
+ size, err := m.Metadata.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_MqttClientProxyMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *FromRadio_MqttClientProxyMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MqttClientProxyMessage != nil {
+ size, err := m.MqttClientProxyMessage.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ToRadio) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ToRadio_Packet) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio_Packet) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_WantConfigId) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio_WantConfigId) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WantConfigId))
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_Disconnect) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio_Disconnect) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.Disconnect {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_XmodemPacket) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio_XmodemPacket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.XmodemPacket != nil {
+ size, err := m.XmodemPacket.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_MqttClientProxyMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ToRadio_MqttClientProxyMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MqttClientProxyMessage != nil {
+ size, err := m.MqttClientProxyMessage.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Compressed) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Compressed) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Compressed) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Data) > 0 {
+ i -= len(m.Data)
+ copy(dAtA[i:], m.Data)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Data)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Portnum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Portnum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NeighborInfo) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NeighborInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *NeighborInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Neighbors) > 0 {
+ for iNdEx := len(m.Neighbors) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Neighbors[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeBroadcastIntervalSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LastSentById != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LastSentById))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.NodeId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeId))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Neighbor) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Neighbor) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Neighbor) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeBroadcastIntervalSecs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.LastRxTime != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastRxTime))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.NodeId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeId))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceMetadata) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceMetadata) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeviceMetadata) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.HasRemoteHardware {
+ i--
+ if m.HasRemoteHardware {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HwModel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HwModel))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.PositionFlags != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionFlags))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.HasEthernet {
+ i--
+ if m.HasEthernet {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.HasBluetooth {
+ i--
+ if m.HasBluetooth {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.HasWifi {
+ i--
+ if m.HasWifi {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.CanShutdown {
+ i--
+ if m.CanShutdown {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.DeviceStateVersion != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceStateVersion))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.FirmwareVersion) > 0 {
+ i -= len(m.FirmwareVersion)
+ copy(dAtA[i:], m.FirmwareVersion)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FirmwareVersion)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Position) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Position) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Position) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.SeqNumber != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SeqNumber))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb0
+ }
+ if m.NextUpdate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NextUpdate))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa8
+ }
+ if m.SensorId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SensorId))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa0
+ }
+ if m.SatsInView != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SatsInView))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x98
+ }
+ if m.FixType != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixType))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x90
+ }
+ if m.FixQuality != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FixQuality))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x88
+ }
+ if m.GroundTrack != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GroundTrack))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x80
+ }
+ if m.GroundSpeed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GroundSpeed))
+ i--
+ dAtA[i] = 0x78
+ }
+ if m.GpsAccuracy != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpsAccuracy))
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.VDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.VDOP))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.HDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HDOP))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.PDOP != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PDOP))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.AltitudeGeoidalSeparation != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.AltitudeGeoidalSeparation)<<1)^uint32((m.AltitudeGeoidalSeparation>>31))))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.AltitudeHae != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64((uint32(m.AltitudeHae)<<1)^uint32((m.AltitudeHae>>31))))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.TimestampMillisAdjust != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TimestampMillisAdjust))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Timestamp != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Timestamp))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.AltitudeSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AltitudeSource))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.LocationSource != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LocationSource))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Altitude != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Altitude))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *User) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *User) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *User) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.IsLicensed {
+ i--
+ if m.IsLicensed {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.HwModel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HwModel))
+ i--
+ dAtA[i] = 0x28
+ }
+ if len(m.Macaddr) > 0 {
+ i -= len(m.Macaddr)
+ copy(dAtA[i:], m.Macaddr)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Macaddr)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.ShortName) > 0 {
+ i -= len(m.ShortName)
+ copy(dAtA[i:], m.ShortName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ShortName)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.LongName) > 0 {
+ i -= len(m.LongName)
+ copy(dAtA[i:], m.LongName)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.LongName)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RouteDiscovery) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RouteDiscovery) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *RouteDiscovery) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Route) > 0 {
+ for iNdEx := len(m.Route) - 1; iNdEx >= 0; iNdEx-- {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Route[iNdEx]))
+ }
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Route)*4))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Routing) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Routing) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Routing) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.Variant.(*Routing_ErrorReason); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*Routing_RouteReply); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*Routing_RouteRequest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Routing_RouteRequest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Routing_RouteRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RouteRequest != nil {
+ size, err := m.RouteRequest.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Routing_RouteReply) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Routing_RouteReply) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RouteReply != nil {
+ size, err := m.RouteReply.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Routing_ErrorReason) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Routing_ErrorReason) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ErrorReason))
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *Data) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Data) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Data) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Emoji != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Emoji))
+ i--
+ dAtA[i] = 0x45
+ }
+ if m.ReplyId != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.ReplyId))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.RequestId != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.RequestId))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Source != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Source))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Dest != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Dest))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.WantResponse {
+ i--
+ if m.WantResponse {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Payload) > 0 {
+ i -= len(m.Payload)
+ copy(dAtA[i:], m.Payload)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Payload)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Portnum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Portnum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Waypoint) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Waypoint) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Waypoint) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Icon != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Icon))
+ i--
+ dAtA[i] = 0x45
+ }
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x3a
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LockedTo != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LockedTo))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Expire != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Expire))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.LongitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LongitudeI))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.LatitudeI != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LatitudeI))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Id != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Id))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MqttClientProxyMessage) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MqttClientProxyMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Retained {
+ i--
+ if m.Retained {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if msg, ok := m.PayloadVariant.(*MqttClientProxyMessage_Text); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*MqttClientProxyMessage_Data); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if len(m.Topic) > 0 {
+ i -= len(m.Topic)
+ copy(dAtA[i:], m.Topic)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Topic)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MqttClientProxyMessage_Data) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage_Data) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Data)
+ copy(dAtA[i:], m.Data)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Data)))
+ i--
+ dAtA[i] = 0x12
+ return len(dAtA) - i, nil
+}
+func (m *MqttClientProxyMessage_Text) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MqttClientProxyMessage_Text) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Text)
+ copy(dAtA[i:], m.Text)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Text)))
+ i--
+ dAtA[i] = 0x1a
+ return len(dAtA) - i, nil
+}
+func (m *MeshPacket) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MeshPacket) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MeshPacket) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ViaMqtt {
+ i--
+ if m.ViaMqtt {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.Delayed != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Delayed))
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.RxRssi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RxRssi))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.Priority != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Priority))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.WantAck {
+ i--
+ if m.WantAck {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HopLimit != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HopLimit))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.RxSnr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.RxSnr))))
+ i--
+ dAtA[i] = 0x45
+ }
+ if m.RxTime != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.RxTime))
+ i--
+ dAtA[i] = 0x3d
+ }
+ if m.Id != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Id))
+ i--
+ dAtA[i] = 0x35
+ }
+ if msg, ok := m.PayloadVariant.(*MeshPacket_Encrypted); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*MeshPacket_Decoded); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.To != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.To))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.From != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.From))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MeshPacket_Decoded) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MeshPacket_Decoded) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Decoded != nil {
+ size, err := m.Decoded.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *MeshPacket_Encrypted) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MeshPacket_Encrypted) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Encrypted)
+ copy(dAtA[i:], m.Encrypted)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Encrypted)))
+ i--
+ dAtA[i] = 0x2a
+ return len(dAtA) - i, nil
+}
+func (m *NodeInfo) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NodeInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NodeInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Channel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Channel))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ if m.LastHeard != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastHeard))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Position != nil {
+ size, err := m.Position.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.User != nil {
+ size, err := m.User.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Num != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Num))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MyNodeInfo) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MyNodeInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *MyNodeInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.MinAppVersion != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinAppVersion))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.RebootCount != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RebootCount))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.MyNodeNum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MyNodeNum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *LogRecord) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *LogRecord) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *LogRecord) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Level != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Level))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Source) > 0 {
+ i -= len(m.Source)
+ copy(dAtA[i:], m.Source)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Source)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0x15
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *QueueStatus) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *QueueStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *QueueStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.MeshPacketId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MeshPacketId))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Maxlen != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Maxlen))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Free != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Free))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Res != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Res))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *FromRadio) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *FromRadio) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_MqttClientProxyMessage); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_Metadata); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_XmodemPacket); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_QueueStatus); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_Channel); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_ModuleConfig); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_Rebooted); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_ConfigCompleteId); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_LogRecord); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_Config); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_NodeInfo); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_MyInfo); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*FromRadio_Packet); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Id != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Id))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *FromRadio_Packet) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_Packet) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_MyInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_MyInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MyInfo != nil {
+ size, err := m.MyInfo.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_NodeInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_NodeInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.NodeInfo != nil {
+ size, err := m.NodeInfo.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Config) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_Config) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Config != nil {
+ size, err := m.Config.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_LogRecord) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_LogRecord) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.LogRecord != nil {
+ size, err := m.LogRecord.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_ConfigCompleteId) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_ConfigCompleteId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ConfigCompleteId))
+ i--
+ dAtA[i] = 0x38
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Rebooted) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_Rebooted) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.Rebooted {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_ModuleConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_ModuleConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ModuleConfig != nil {
+ size, err := m.ModuleConfig.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Channel) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_Channel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Channel != nil {
+ size, err := m.Channel.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_QueueStatus) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_QueueStatus) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.QueueStatus != nil {
+ size, err := m.QueueStatus.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_XmodemPacket) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_XmodemPacket) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.XmodemPacket != nil {
+ size, err := m.XmodemPacket.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_Metadata) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_Metadata) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Metadata != nil {
+ size, err := m.Metadata.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *FromRadio_MqttClientProxyMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *FromRadio_MqttClientProxyMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MqttClientProxyMessage != nil {
+ size, err := m.MqttClientProxyMessage.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x72
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ToRadio) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*ToRadio_MqttClientProxyMessage); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ToRadio_XmodemPacket); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ToRadio_Disconnect); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ToRadio_WantConfigId); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ToRadio_Packet); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ToRadio_Packet) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio_Packet) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_WantConfigId) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio_WantConfigId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.WantConfigId))
+ i--
+ dAtA[i] = 0x18
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_Disconnect) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio_Disconnect) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i--
+ if m.Disconnect {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_XmodemPacket) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio_XmodemPacket) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.XmodemPacket != nil {
+ size, err := m.XmodemPacket.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ToRadio_MqttClientProxyMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ToRadio_MqttClientProxyMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.MqttClientProxyMessage != nil {
+ size, err := m.MqttClientProxyMessage.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Compressed) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Compressed) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Compressed) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Data) > 0 {
+ i -= len(m.Data)
+ copy(dAtA[i:], m.Data)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Data)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Portnum != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Portnum))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *NeighborInfo) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *NeighborInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *NeighborInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Neighbors) > 0 {
+ for iNdEx := len(m.Neighbors) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.Neighbors[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeBroadcastIntervalSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.LastSentById != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LastSentById))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.NodeId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeId))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Neighbor) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Neighbor) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Neighbor) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeBroadcastIntervalSecs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.LastRxTime != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.LastRxTime))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Snr != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Snr))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.NodeId != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NodeId))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeviceMetadata) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceMetadata) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *DeviceMetadata) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.HasRemoteHardware {
+ i--
+ if m.HasRemoteHardware {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.HwModel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HwModel))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.PositionFlags != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PositionFlags))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Role != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Role))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.HasEthernet {
+ i--
+ if m.HasEthernet {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.HasBluetooth {
+ i--
+ if m.HasBluetooth {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.HasWifi {
+ i--
+ if m.HasWifi {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.CanShutdown {
+ i--
+ if m.CanShutdown {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.DeviceStateVersion != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceStateVersion))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.FirmwareVersion) > 0 {
+ i -= len(m.FirmwareVersion)
+ copy(dAtA[i:], m.FirmwareVersion)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FirmwareVersion)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Position) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LatitudeI != 0 {
+ n += 5
+ }
+ if m.LongitudeI != 0 {
+ n += 5
+ }
+ if m.Altitude != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Altitude))
+ }
+ if m.Time != 0 {
+ n += 5
+ }
+ if m.LocationSource != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LocationSource))
+ }
+ if m.AltitudeSource != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.AltitudeSource))
+ }
+ if m.Timestamp != 0 {
+ n += 5
+ }
+ if m.TimestampMillisAdjust != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TimestampMillisAdjust))
+ }
+ if m.AltitudeHae != 0 {
+ n += 1 + protohelpers.SizeOfZigzag(uint64(m.AltitudeHae))
+ }
+ if m.AltitudeGeoidalSeparation != 0 {
+ n += 1 + protohelpers.SizeOfZigzag(uint64(m.AltitudeGeoidalSeparation))
+ }
+ if m.PDOP != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PDOP))
+ }
+ if m.HDOP != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HDOP))
+ }
+ if m.VDOP != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.VDOP))
+ }
+ if m.GpsAccuracy != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpsAccuracy))
+ }
+ if m.GroundSpeed != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GroundSpeed))
+ }
+ if m.GroundTrack != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.GroundTrack))
+ }
+ if m.FixQuality != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.FixQuality))
+ }
+ if m.FixType != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.FixType))
+ }
+ if m.SatsInView != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.SatsInView))
+ }
+ if m.SensorId != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.SensorId))
+ }
+ if m.NextUpdate != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.NextUpdate))
+ }
+ if m.SeqNumber != 0 {
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.SeqNumber))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *User) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.LongName)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.ShortName)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Macaddr)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.HwModel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HwModel))
+ }
+ if m.IsLicensed {
+ n += 2
+ }
+ if m.Role != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Role))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *RouteDiscovery) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Route) > 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(len(m.Route)*4)) + len(m.Route)*4
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Routing) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if vtmsg, ok := m.Variant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Routing_RouteRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.RouteRequest != nil {
+ l = m.RouteRequest.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Routing_RouteReply) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.RouteReply != nil {
+ l = m.RouteReply.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Routing_ErrorReason) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ErrorReason))
+ return n
+}
+func (m *Data) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Portnum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Portnum))
+ }
+ l = len(m.Payload)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.WantResponse {
+ n += 2
+ }
+ if m.Dest != 0 {
+ n += 5
+ }
+ if m.Source != 0 {
+ n += 5
+ }
+ if m.RequestId != 0 {
+ n += 5
+ }
+ if m.ReplyId != 0 {
+ n += 5
+ }
+ if m.Emoji != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Waypoint) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Id != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Id))
+ }
+ if m.LatitudeI != 0 {
+ n += 5
+ }
+ if m.LongitudeI != 0 {
+ n += 5
+ }
+ if m.Expire != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Expire))
+ }
+ if m.LockedTo != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LockedTo))
+ }
+ l = len(m.Name)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Icon != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *MqttClientProxyMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Topic)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ if m.Retained {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *MqttClientProxyMessage_Data) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Data)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *MqttClientProxyMessage_Text) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Text)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *MeshPacket) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.From != 0 {
+ n += 5
+ }
+ if m.To != 0 {
+ n += 5
+ }
+ if m.Channel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Channel))
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ if m.Id != 0 {
+ n += 5
+ }
+ if m.RxTime != 0 {
+ n += 5
+ }
+ if m.RxSnr != 0 {
+ n += 5
+ }
+ if m.HopLimit != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HopLimit))
+ }
+ if m.WantAck {
+ n += 2
+ }
+ if m.Priority != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Priority))
+ }
+ if m.RxRssi != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.RxRssi))
+ }
+ if m.Delayed != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Delayed))
+ }
+ if m.ViaMqtt {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *MeshPacket_Decoded) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Decoded != nil {
+ l = m.Decoded.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *MeshPacket_Encrypted) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Encrypted)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *NodeInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Num != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Num))
+ }
+ if m.User != nil {
+ l = m.User.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Position != nil {
+ l = m.Position.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Snr != 0 {
+ n += 5
+ }
+ if m.LastHeard != 0 {
+ n += 5
+ }
+ if m.DeviceMetrics != nil {
+ l = m.DeviceMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Channel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Channel))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *MyNodeInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MyNodeNum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MyNodeNum))
+ }
+ if m.RebootCount != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.RebootCount))
+ }
+ if m.MinAppVersion != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MinAppVersion))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *LogRecord) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Message)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Time != 0 {
+ n += 5
+ }
+ l = len(m.Source)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Level != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Level))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *QueueStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Res != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Res))
+ }
+ if m.Free != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Free))
+ }
+ if m.Maxlen != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Maxlen))
+ }
+ if m.MeshPacketId != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MeshPacketId))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *FromRadio) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Id != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Id))
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *FromRadio_Packet) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Packet != nil {
+ l = m.Packet.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_MyInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MyInfo != nil {
+ l = m.MyInfo.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_NodeInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.NodeInfo != nil {
+ l = m.NodeInfo.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_Config) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Config != nil {
+ l = m.Config.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_LogRecord) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LogRecord != nil {
+ l = m.LogRecord.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_ConfigCompleteId) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ConfigCompleteId))
+ return n
+}
+func (m *FromRadio_Rebooted) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *FromRadio_ModuleConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ModuleConfig != nil {
+ l = m.ModuleConfig.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_Channel) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Channel != nil {
+ l = m.Channel.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_QueueStatus) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.QueueStatus != nil {
+ l = m.QueueStatus.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_XmodemPacket) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.XmodemPacket != nil {
+ l = m.XmodemPacket.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_Metadata) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Metadata != nil {
+ l = m.Metadata.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *FromRadio_MqttClientProxyMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MqttClientProxyMessage != nil {
+ l = m.MqttClientProxyMessage.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ToRadio) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ToRadio_Packet) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Packet != nil {
+ l = m.Packet.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ToRadio_WantConfigId) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.WantConfigId))
+ return n
+}
+func (m *ToRadio_Disconnect) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += 2
+ return n
+}
+func (m *ToRadio_XmodemPacket) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.XmodemPacket != nil {
+ l = m.XmodemPacket.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ToRadio_MqttClientProxyMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MqttClientProxyMessage != nil {
+ l = m.MqttClientProxyMessage.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Compressed) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Portnum != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Portnum))
+ }
+ l = len(m.Data)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *NeighborInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.NodeId != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeId))
+ }
+ if m.LastSentById != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LastSentById))
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeBroadcastIntervalSecs))
+ }
+ if len(m.Neighbors) > 0 {
+ for _, e := range m.Neighbors {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Neighbor) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.NodeId != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeId))
+ }
+ if m.Snr != 0 {
+ n += 5
+ }
+ if m.LastRxTime != 0 {
+ n += 5
+ }
+ if m.NodeBroadcastIntervalSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NodeBroadcastIntervalSecs))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *DeviceMetadata) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.FirmwareVersion)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.DeviceStateVersion != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.DeviceStateVersion))
+ }
+ if m.CanShutdown {
+ n += 2
+ }
+ if m.HasWifi {
+ n += 2
+ }
+ if m.HasBluetooth {
+ n += 2
+ }
+ if m.HasEthernet {
+ n += 2
+ }
+ if m.Role != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Role))
+ }
+ if m.PositionFlags != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PositionFlags))
+ }
+ if m.HwModel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HwModel))
+ }
+ if m.HasRemoteHardware {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Position) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Position: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Position: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LocationSource", wireType)
+ }
+ m.LocationSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LocationSource |= Position_LocSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeSource", wireType)
+ }
+ m.AltitudeSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AltitudeSource |= Position_AltSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
+ }
+ m.Timestamp = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Timestamp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TimestampMillisAdjust", wireType)
+ }
+ m.TimestampMillisAdjust = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TimestampMillisAdjust |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeHae", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
+ m.AltitudeHae = v
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeGeoidalSeparation", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
+ m.AltitudeGeoidalSeparation = v
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PDOP", wireType)
+ }
+ m.PDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HDOP", wireType)
+ }
+ m.HDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VDOP", wireType)
+ }
+ m.VDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.VDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsAccuracy", wireType)
+ }
+ m.GpsAccuracy = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsAccuracy |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 15:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GroundSpeed", wireType)
+ }
+ m.GroundSpeed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GroundSpeed |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 16:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GroundTrack", wireType)
+ }
+ m.GroundTrack = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GroundTrack |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 17:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixQuality", wireType)
+ }
+ m.FixQuality = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixQuality |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 18:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixType", wireType)
+ }
+ m.FixType = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixType |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 19:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SatsInView", wireType)
+ }
+ m.SatsInView = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SatsInView |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 20:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SensorId", wireType)
+ }
+ m.SensorId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SensorId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 21:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NextUpdate", wireType)
+ }
+ m.NextUpdate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NextUpdate |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 22:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SeqNumber", wireType)
+ }
+ m.SeqNumber = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SeqNumber |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *User) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: User: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: User: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongName = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ShortName = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Macaddr", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Macaddr = append(m.Macaddr[:0], dAtA[iNdEx:postIndex]...)
+ if m.Macaddr == nil {
+ m.Macaddr = []byte{}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HwModel", wireType)
+ }
+ m.HwModel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HwModel |= HardwareModel(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsLicensed", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsLicensed = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RouteDiscovery) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RouteDiscovery: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RouteDiscovery: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType == 5 {
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Route = append(m.Route, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ elementCount = packedLen / 4
+ if elementCount != 0 && len(m.Route) == 0 {
+ m.Route = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Route = append(m.Route, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType)
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Routing) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Routing: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Routing: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RouteRequest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Routing_RouteRequest); ok {
+ if err := oneof.RouteRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &RouteDiscovery{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Routing_RouteRequest{RouteRequest: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RouteReply", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Routing_RouteReply); ok {
+ if err := oneof.RouteReply.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &RouteDiscovery{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Routing_RouteReply{RouteReply: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType)
+ }
+ var v Routing_Error
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= Routing_Error(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Variant = &Routing_ErrorReason{ErrorReason: v}
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Data) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Data: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Data: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Portnum", wireType)
+ }
+ m.Portnum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Portnum |= PortNum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Payload = append(m.Payload[:0], dAtA[iNdEx:postIndex]...)
+ if m.Payload == nil {
+ m.Payload = []byte{}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantResponse", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WantResponse = bool(v != 0)
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dest", wireType)
+ }
+ m.Dest = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dest = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
+ }
+ m.Source = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Source = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
+ }
+ m.RequestId = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RequestId = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReplyId", wireType)
+ }
+ m.ReplyId = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ReplyId = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Emoji", wireType)
+ }
+ m.Emoji = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Emoji = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Waypoint) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Waypoint: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Waypoint: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Id |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Expire", wireType)
+ }
+ m.Expire = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Expire |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LockedTo", wireType)
+ }
+ m.LockedTo = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LockedTo |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType)
+ }
+ m.Icon = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Icon = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MqttClientProxyMessage) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MqttClientProxyMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MqttClientProxyMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Topic = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := make([]byte, postIndex-iNdEx)
+ copy(v, dAtA[iNdEx:postIndex])
+ m.PayloadVariant = &MqttClientProxyMessage_Data{Data: v}
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PayloadVariant = &MqttClientProxyMessage_Text{Text: string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Retained", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Retained = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MeshPacket) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MeshPacket: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MeshPacket: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field From", wireType)
+ }
+ m.From = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.From = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
+ }
+ m.To = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.To = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Decoded", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*MeshPacket_Decoded); ok {
+ if err := oneof.Decoded.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Data{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &MeshPacket_Decoded{Decoded: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Encrypted", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := make([]byte, postIndex-iNdEx)
+ copy(v, dAtA[iNdEx:postIndex])
+ m.PayloadVariant = &MeshPacket_Encrypted{Encrypted: v}
+ iNdEx = postIndex
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxTime", wireType)
+ }
+ m.RxTime = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RxTime = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxSnr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.RxSnr = float32(math.Float32frombits(v))
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HopLimit", wireType)
+ }
+ m.HopLimit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HopLimit |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantAck", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WantAck = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType)
+ }
+ m.Priority = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Priority |= MeshPacket_Priority(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxRssi", wireType)
+ }
+ m.RxRssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RxRssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Delayed", wireType)
+ }
+ m.Delayed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Delayed |= MeshPacket_Delayed(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ViaMqtt", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ViaMqtt = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeInfo) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num", wireType)
+ }
+ m.Num = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Num |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.User == nil {
+ m.User = &User{}
+ }
+ if err := m.User.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &Position{}
+ }
+ if err := m.Position.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastHeard", wireType)
+ }
+ m.LastHeard = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastHeard = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DeviceMetrics == nil {
+ m.DeviceMetrics = &DeviceMetrics{}
+ }
+ if err := m.DeviceMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MyNodeInfo) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MyNodeInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MyNodeInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyNodeNum", wireType)
+ }
+ m.MyNodeNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MyNodeNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootCount", wireType)
+ }
+ m.RebootCount = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RebootCount |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinAppVersion", wireType)
+ }
+ m.MinAppVersion = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinAppVersion |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *LogRecord) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LogRecord: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LogRecord: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Message = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Source = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType)
+ }
+ m.Level = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Level |= LogRecord_Level(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *QueueStatus) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: QueueStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: QueueStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Res", wireType)
+ }
+ m.Res = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Res |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Free", wireType)
+ }
+ m.Free = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Free |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Maxlen", wireType)
+ }
+ m.Maxlen = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Maxlen |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MeshPacketId", wireType)
+ }
+ m.MeshPacketId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MeshPacketId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *FromRadio) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: FromRadio: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: FromRadio: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Id |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Packet); ok {
+ if err := oneof.Packet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MeshPacket{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Packet{Packet: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_MyInfo); ok {
+ if err := oneof.MyInfo.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MyNodeInfo{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_MyInfo{MyInfo: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_NodeInfo); ok {
+ if err := oneof.NodeInfo.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &NodeInfo{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_NodeInfo{NodeInfo: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Config); ok {
+ if err := oneof.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Config{Config: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LogRecord", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_LogRecord); ok {
+ if err := oneof.LogRecord.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &LogRecord{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_LogRecord{LogRecord: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConfigCompleteId", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &FromRadio_ConfigCompleteId{ConfigCompleteId: v}
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rebooted", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &FromRadio_Rebooted{Rebooted: b}
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_ModuleConfig); ok {
+ if err := oneof.ModuleConfig.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_ModuleConfig{ModuleConfig: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Channel); ok {
+ if err := oneof.Channel.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Channel{Channel: v}
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field QueueStatus", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_QueueStatus); ok {
+ if err := oneof.QueueStatus.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &QueueStatus{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_QueueStatus{QueueStatus: v}
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field XmodemPacket", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_XmodemPacket); ok {
+ if err := oneof.XmodemPacket.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &XModem{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_XmodemPacket{XmodemPacket: v}
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Metadata); ok {
+ if err := oneof.Metadata.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetadata{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Metadata{Metadata: v}
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MqttClientProxyMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_MqttClientProxyMessage); ok {
+ if err := oneof.MqttClientProxyMessage.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MqttClientProxyMessage{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_MqttClientProxyMessage{MqttClientProxyMessage: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ToRadio) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ToRadio: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ToRadio: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_Packet); ok {
+ if err := oneof.Packet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MeshPacket{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_Packet{Packet: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantConfigId", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &ToRadio_WantConfigId{WantConfigId: v}
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Disconnect", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &ToRadio_Disconnect{Disconnect: b}
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field XmodemPacket", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_XmodemPacket); ok {
+ if err := oneof.XmodemPacket.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &XModem{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_XmodemPacket{XmodemPacket: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MqttClientProxyMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_MqttClientProxyMessage); ok {
+ if err := oneof.MqttClientProxyMessage.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MqttClientProxyMessage{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_MqttClientProxyMessage{MqttClientProxyMessage: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Compressed) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Compressed: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Compressed: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Portnum", wireType)
+ }
+ m.Portnum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Portnum |= PortNum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
+ if m.Data == nil {
+ m.Data = []byte{}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NeighborInfo) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NeighborInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NeighborInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
+ }
+ m.NodeId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastSentById", wireType)
+ }
+ m.LastSentById = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LastSentById |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeBroadcastIntervalSecs", wireType)
+ }
+ m.NodeBroadcastIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeBroadcastIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Neighbors", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Neighbors = append(m.Neighbors, &Neighbor{})
+ if err := m.Neighbors[len(m.Neighbors)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Neighbor) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Neighbor: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Neighbor: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
+ }
+ m.NodeId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastRxTime", wireType)
+ }
+ m.LastRxTime = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastRxTime = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeBroadcastIntervalSecs", wireType)
+ }
+ m.NodeBroadcastIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeBroadcastIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceMetadata) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceMetadata: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FirmwareVersion", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.FirmwareVersion = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceStateVersion", wireType)
+ }
+ m.DeviceStateVersion = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceStateVersion |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CanShutdown", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.CanShutdown = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasWifi", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasWifi = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasBluetooth", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasBluetooth = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasEthernet", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasEthernet = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionFlags", wireType)
+ }
+ m.PositionFlags = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionFlags |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HwModel", wireType)
+ }
+ m.HwModel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HwModel |= HardwareModel(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasRemoteHardware", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasRemoteHardware = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Position) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Position: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Position: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Altitude", wireType)
+ }
+ m.Altitude = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Altitude |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LocationSource", wireType)
+ }
+ m.LocationSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LocationSource |= Position_LocSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeSource", wireType)
+ }
+ m.AltitudeSource = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AltitudeSource |= Position_AltSource(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
+ }
+ m.Timestamp = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Timestamp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TimestampMillisAdjust", wireType)
+ }
+ m.TimestampMillisAdjust = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TimestampMillisAdjust |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeHae", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
+ m.AltitudeHae = v
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AltitudeGeoidalSeparation", wireType)
+ }
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
+ m.AltitudeGeoidalSeparation = v
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PDOP", wireType)
+ }
+ m.PDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HDOP", wireType)
+ }
+ m.HDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VDOP", wireType)
+ }
+ m.VDOP = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.VDOP |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpsAccuracy", wireType)
+ }
+ m.GpsAccuracy = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpsAccuracy |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 15:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GroundSpeed", wireType)
+ }
+ m.GroundSpeed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GroundSpeed |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 16:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GroundTrack", wireType)
+ }
+ m.GroundTrack = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GroundTrack |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 17:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixQuality", wireType)
+ }
+ m.FixQuality = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixQuality |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 18:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FixType", wireType)
+ }
+ m.FixType = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.FixType |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 19:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SatsInView", wireType)
+ }
+ m.SatsInView = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SatsInView |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 20:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SensorId", wireType)
+ }
+ m.SensorId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SensorId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 21:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NextUpdate", wireType)
+ }
+ m.NextUpdate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NextUpdate |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 22:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SeqNumber", wireType)
+ }
+ m.SeqNumber = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.SeqNumber |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *User) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: User: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: User: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Id = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.LongName = stringValue
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ShortName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.ShortName = stringValue
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Macaddr", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Macaddr = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HwModel", wireType)
+ }
+ m.HwModel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HwModel |= HardwareModel(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IsLicensed", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.IsLicensed = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RouteDiscovery) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RouteDiscovery: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RouteDiscovery: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType == 5 {
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Route = append(m.Route, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ elementCount = packedLen / 4
+ if elementCount != 0 && len(m.Route) == 0 {
+ m.Route = make([]uint32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Route = append(m.Route, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType)
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Routing) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Routing: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Routing: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RouteRequest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Routing_RouteRequest); ok {
+ if err := oneof.RouteRequest.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &RouteDiscovery{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Routing_RouteRequest{RouteRequest: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RouteReply", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Routing_RouteReply); ok {
+ if err := oneof.RouteReply.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &RouteDiscovery{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Routing_RouteReply{RouteReply: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ErrorReason", wireType)
+ }
+ var v Routing_Error
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= Routing_Error(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Variant = &Routing_ErrorReason{ErrorReason: v}
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Data) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Data: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Data: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Portnum", wireType)
+ }
+ m.Portnum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Portnum |= PortNum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Payload = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantResponse", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WantResponse = bool(v != 0)
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dest", wireType)
+ }
+ m.Dest = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dest = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
+ }
+ m.Source = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Source = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
+ }
+ m.RequestId = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RequestId = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReplyId", wireType)
+ }
+ m.ReplyId = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ReplyId = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Emoji", wireType)
+ }
+ m.Emoji = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Emoji = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Waypoint) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Waypoint: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Waypoint: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Id |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LatitudeI", wireType)
+ }
+ m.LatitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LatitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LongitudeI", wireType)
+ }
+ m.LongitudeI = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LongitudeI = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Expire", wireType)
+ }
+ m.Expire = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Expire |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LockedTo", wireType)
+ }
+ m.LockedTo = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LockedTo |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Name = stringValue
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Description = stringValue
+ iNdEx = postIndex
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType)
+ }
+ m.Icon = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Icon = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MqttClientProxyMessage) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MqttClientProxyMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MqttClientProxyMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Topic = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := dAtA[iNdEx:postIndex]
+ m.PayloadVariant = &MqttClientProxyMessage_Data{Data: v}
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.PayloadVariant = &MqttClientProxyMessage_Text{Text: stringValue}
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Retained", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Retained = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MeshPacket) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MeshPacket: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MeshPacket: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field From", wireType)
+ }
+ m.From = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.From = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
+ }
+ m.To = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.To = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Decoded", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*MeshPacket_Decoded); ok {
+ if err := oneof.Decoded.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Data{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &MeshPacket_Decoded{Decoded: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Encrypted", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := dAtA[iNdEx:postIndex]
+ m.PayloadVariant = &MeshPacket_Encrypted{Encrypted: v}
+ iNdEx = postIndex
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 7:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxTime", wireType)
+ }
+ m.RxTime = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RxTime = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 8:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxSnr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.RxSnr = float32(math.Float32frombits(v))
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HopLimit", wireType)
+ }
+ m.HopLimit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HopLimit |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantAck", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.WantAck = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType)
+ }
+ m.Priority = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Priority |= MeshPacket_Priority(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RxRssi", wireType)
+ }
+ m.RxRssi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RxRssi |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Delayed", wireType)
+ }
+ m.Delayed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Delayed |= MeshPacket_Delayed(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ViaMqtt", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ViaMqtt = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NodeInfo) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NodeInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NodeInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num", wireType)
+ }
+ m.Num = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Num |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.User == nil {
+ m.User = &User{}
+ }
+ if err := m.User.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Position == nil {
+ m.Position = &Position{}
+ }
+ if err := m.Position.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastHeard", wireType)
+ }
+ m.LastHeard = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastHeard = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.DeviceMetrics == nil {
+ m.DeviceMetrics = &DeviceMetrics{}
+ }
+ if err := m.DeviceMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ m.Channel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Channel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MyNodeInfo) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MyNodeInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MyNodeInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyNodeNum", wireType)
+ }
+ m.MyNodeNum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MyNodeNum |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RebootCount", wireType)
+ }
+ m.RebootCount = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RebootCount |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinAppVersion", wireType)
+ }
+ m.MinAppVersion = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinAppVersion |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *LogRecord) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: LogRecord: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: LogRecord: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Message = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Source = stringValue
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType)
+ }
+ m.Level = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Level |= LogRecord_Level(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *QueueStatus) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: QueueStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: QueueStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Res", wireType)
+ }
+ m.Res = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Res |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Free", wireType)
+ }
+ m.Free = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Free |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Maxlen", wireType)
+ }
+ m.Maxlen = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Maxlen |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MeshPacketId", wireType)
+ }
+ m.MeshPacketId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MeshPacketId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *FromRadio) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: FromRadio: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: FromRadio: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ m.Id = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Id |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Packet); ok {
+ if err := oneof.Packet.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MeshPacket{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Packet{Packet: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MyInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_MyInfo); ok {
+ if err := oneof.MyInfo.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MyNodeInfo{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_MyInfo{MyInfo: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_NodeInfo); ok {
+ if err := oneof.NodeInfo.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &NodeInfo{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_NodeInfo{NodeInfo: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Config); ok {
+ if err := oneof.Config.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Config{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Config{Config: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LogRecord", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_LogRecord); ok {
+ if err := oneof.LogRecord.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &LogRecord{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_LogRecord{LogRecord: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConfigCompleteId", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &FromRadio_ConfigCompleteId{ConfigCompleteId: v}
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rebooted", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &FromRadio_Rebooted{Rebooted: b}
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModuleConfig", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_ModuleConfig); ok {
+ if err := oneof.ModuleConfig.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_ModuleConfig{ModuleConfig: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Channel); ok {
+ if err := oneof.Channel.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &Channel{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Channel{Channel: v}
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field QueueStatus", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_QueueStatus); ok {
+ if err := oneof.QueueStatus.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &QueueStatus{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_QueueStatus{QueueStatus: v}
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field XmodemPacket", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_XmodemPacket); ok {
+ if err := oneof.XmodemPacket.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &XModem{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_XmodemPacket{XmodemPacket: v}
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_Metadata); ok {
+ if err := oneof.Metadata.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetadata{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_Metadata{Metadata: v}
+ }
+ iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MqttClientProxyMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*FromRadio_MqttClientProxyMessage); ok {
+ if err := oneof.MqttClientProxyMessage.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MqttClientProxyMessage{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &FromRadio_MqttClientProxyMessage{MqttClientProxyMessage: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ToRadio) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ToRadio: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ToRadio: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_Packet); ok {
+ if err := oneof.Packet.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MeshPacket{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_Packet{Packet: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WantConfigId", wireType)
+ }
+ var v uint32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PayloadVariant = &ToRadio_WantConfigId{WantConfigId: v}
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Disconnect", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ b := bool(v != 0)
+ m.PayloadVariant = &ToRadio_Disconnect{Disconnect: b}
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field XmodemPacket", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_XmodemPacket); ok {
+ if err := oneof.XmodemPacket.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &XModem{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_XmodemPacket{XmodemPacket: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MqttClientProxyMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ToRadio_MqttClientProxyMessage); ok {
+ if err := oneof.MqttClientProxyMessage.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &MqttClientProxyMessage{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ToRadio_MqttClientProxyMessage{MqttClientProxyMessage: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Compressed) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Compressed: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Compressed: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Portnum", wireType)
+ }
+ m.Portnum = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Portnum |= PortNum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Data = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *NeighborInfo) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: NeighborInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: NeighborInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
+ }
+ m.NodeId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastSentById", wireType)
+ }
+ m.LastSentById = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LastSentById |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeBroadcastIntervalSecs", wireType)
+ }
+ m.NodeBroadcastIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeBroadcastIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Neighbors", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Neighbors = append(m.Neighbors, &Neighbor{})
+ if err := m.Neighbors[len(m.Neighbors)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Neighbor) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Neighbor: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Neighbor: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
+ }
+ m.NodeId = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeId |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Snr", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Snr = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastRxTime", wireType)
+ }
+ m.LastRxTime = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.LastRxTime = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NodeBroadcastIntervalSecs", wireType)
+ }
+ m.NodeBroadcastIntervalSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NodeBroadcastIntervalSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceMetadata) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceMetadata: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FirmwareVersion", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.FirmwareVersion = stringValue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceStateVersion", wireType)
+ }
+ m.DeviceStateVersion = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceStateVersion |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CanShutdown", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.CanShutdown = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasWifi", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasWifi = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasBluetooth", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasBluetooth = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasEthernet", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasEthernet = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
+ }
+ m.Role = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Role |= Config_DeviceConfig_Role(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PositionFlags", wireType)
+ }
+ m.PositionFlags = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PositionFlags |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HwModel", wireType)
+ }
+ m.HwModel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HwModel |= HardwareModel(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasRemoteHardware", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasRemoteHardware = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/module_config.pb.go b/meshtastic/module_config.pb.go
new file mode 100644
index 0000000..1abbf27
--- /dev/null
+++ b/meshtastic/module_config.pb.go
@@ -0,0 +1,2699 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/module_config.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type RemoteHardwarePinType int32
+
+const (
+ // Unset/unused
+ RemoteHardwarePinType_UNKNOWN RemoteHardwarePinType = 0
+ // GPIO pin can be read (if it is high / low)
+ RemoteHardwarePinType_DIGITAL_READ RemoteHardwarePinType = 1
+ // GPIO pin can be written to (high / low)
+ RemoteHardwarePinType_DIGITAL_WRITE RemoteHardwarePinType = 2
+)
+
+// Enum value maps for RemoteHardwarePinType.
+var (
+ RemoteHardwarePinType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "DIGITAL_READ",
+ 2: "DIGITAL_WRITE",
+ }
+ RemoteHardwarePinType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "DIGITAL_READ": 1,
+ "DIGITAL_WRITE": 2,
+ }
+)
+
+func (x RemoteHardwarePinType) Enum() *RemoteHardwarePinType {
+ p := new(RemoteHardwarePinType)
+ *p = x
+ return p
+}
+
+func (x RemoteHardwarePinType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RemoteHardwarePinType) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_module_config_proto_enumTypes[0].Descriptor()
+}
+
+func (RemoteHardwarePinType) Type() protoreflect.EnumType {
+ return &file_meshtastic_module_config_proto_enumTypes[0]
+}
+
+func (x RemoteHardwarePinType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RemoteHardwarePinType.Descriptor instead.
+func (RemoteHardwarePinType) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0}
+}
+
+// Baudrate for codec2 voice
+type ModuleConfig_AudioConfig_Audio_Baud int32
+
+const (
+ ModuleConfig_AudioConfig_CODEC2_DEFAULT ModuleConfig_AudioConfig_Audio_Baud = 0
+ ModuleConfig_AudioConfig_CODEC2_3200 ModuleConfig_AudioConfig_Audio_Baud = 1
+ ModuleConfig_AudioConfig_CODEC2_2400 ModuleConfig_AudioConfig_Audio_Baud = 2
+ ModuleConfig_AudioConfig_CODEC2_1600 ModuleConfig_AudioConfig_Audio_Baud = 3
+ ModuleConfig_AudioConfig_CODEC2_1400 ModuleConfig_AudioConfig_Audio_Baud = 4
+ ModuleConfig_AudioConfig_CODEC2_1300 ModuleConfig_AudioConfig_Audio_Baud = 5
+ ModuleConfig_AudioConfig_CODEC2_1200 ModuleConfig_AudioConfig_Audio_Baud = 6
+ ModuleConfig_AudioConfig_CODEC2_700 ModuleConfig_AudioConfig_Audio_Baud = 7
+ ModuleConfig_AudioConfig_CODEC2_700B ModuleConfig_AudioConfig_Audio_Baud = 8
+)
+
+// Enum value maps for ModuleConfig_AudioConfig_Audio_Baud.
+var (
+ ModuleConfig_AudioConfig_Audio_Baud_name = map[int32]string{
+ 0: "CODEC2_DEFAULT",
+ 1: "CODEC2_3200",
+ 2: "CODEC2_2400",
+ 3: "CODEC2_1600",
+ 4: "CODEC2_1400",
+ 5: "CODEC2_1300",
+ 6: "CODEC2_1200",
+ 7: "CODEC2_700",
+ 8: "CODEC2_700B",
+ }
+ ModuleConfig_AudioConfig_Audio_Baud_value = map[string]int32{
+ "CODEC2_DEFAULT": 0,
+ "CODEC2_3200": 1,
+ "CODEC2_2400": 2,
+ "CODEC2_1600": 3,
+ "CODEC2_1400": 4,
+ "CODEC2_1300": 5,
+ "CODEC2_1200": 6,
+ "CODEC2_700": 7,
+ "CODEC2_700B": 8,
+ }
+)
+
+func (x ModuleConfig_AudioConfig_Audio_Baud) Enum() *ModuleConfig_AudioConfig_Audio_Baud {
+ p := new(ModuleConfig_AudioConfig_Audio_Baud)
+ *p = x
+ return p
+}
+
+func (x ModuleConfig_AudioConfig_Audio_Baud) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ModuleConfig_AudioConfig_Audio_Baud) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_module_config_proto_enumTypes[1].Descriptor()
+}
+
+func (ModuleConfig_AudioConfig_Audio_Baud) Type() protoreflect.EnumType {
+ return &file_meshtastic_module_config_proto_enumTypes[1]
+}
+
+func (x ModuleConfig_AudioConfig_Audio_Baud) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ModuleConfig_AudioConfig_Audio_Baud.Descriptor instead.
+func (ModuleConfig_AudioConfig_Audio_Baud) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 4, 0}
+}
+
+// TODO: REPLACE
+type ModuleConfig_SerialConfig_Serial_Baud int32
+
+const (
+ ModuleConfig_SerialConfig_BAUD_DEFAULT ModuleConfig_SerialConfig_Serial_Baud = 0
+ ModuleConfig_SerialConfig_BAUD_110 ModuleConfig_SerialConfig_Serial_Baud = 1
+ ModuleConfig_SerialConfig_BAUD_300 ModuleConfig_SerialConfig_Serial_Baud = 2
+ ModuleConfig_SerialConfig_BAUD_600 ModuleConfig_SerialConfig_Serial_Baud = 3
+ ModuleConfig_SerialConfig_BAUD_1200 ModuleConfig_SerialConfig_Serial_Baud = 4
+ ModuleConfig_SerialConfig_BAUD_2400 ModuleConfig_SerialConfig_Serial_Baud = 5
+ ModuleConfig_SerialConfig_BAUD_4800 ModuleConfig_SerialConfig_Serial_Baud = 6
+ ModuleConfig_SerialConfig_BAUD_9600 ModuleConfig_SerialConfig_Serial_Baud = 7
+ ModuleConfig_SerialConfig_BAUD_19200 ModuleConfig_SerialConfig_Serial_Baud = 8
+ ModuleConfig_SerialConfig_BAUD_38400 ModuleConfig_SerialConfig_Serial_Baud = 9
+ ModuleConfig_SerialConfig_BAUD_57600 ModuleConfig_SerialConfig_Serial_Baud = 10
+ ModuleConfig_SerialConfig_BAUD_115200 ModuleConfig_SerialConfig_Serial_Baud = 11
+ ModuleConfig_SerialConfig_BAUD_230400 ModuleConfig_SerialConfig_Serial_Baud = 12
+ ModuleConfig_SerialConfig_BAUD_460800 ModuleConfig_SerialConfig_Serial_Baud = 13
+ ModuleConfig_SerialConfig_BAUD_576000 ModuleConfig_SerialConfig_Serial_Baud = 14
+ ModuleConfig_SerialConfig_BAUD_921600 ModuleConfig_SerialConfig_Serial_Baud = 15
+)
+
+// Enum value maps for ModuleConfig_SerialConfig_Serial_Baud.
+var (
+ ModuleConfig_SerialConfig_Serial_Baud_name = map[int32]string{
+ 0: "BAUD_DEFAULT",
+ 1: "BAUD_110",
+ 2: "BAUD_300",
+ 3: "BAUD_600",
+ 4: "BAUD_1200",
+ 5: "BAUD_2400",
+ 6: "BAUD_4800",
+ 7: "BAUD_9600",
+ 8: "BAUD_19200",
+ 9: "BAUD_38400",
+ 10: "BAUD_57600",
+ 11: "BAUD_115200",
+ 12: "BAUD_230400",
+ 13: "BAUD_460800",
+ 14: "BAUD_576000",
+ 15: "BAUD_921600",
+ }
+ ModuleConfig_SerialConfig_Serial_Baud_value = map[string]int32{
+ "BAUD_DEFAULT": 0,
+ "BAUD_110": 1,
+ "BAUD_300": 2,
+ "BAUD_600": 3,
+ "BAUD_1200": 4,
+ "BAUD_2400": 5,
+ "BAUD_4800": 6,
+ "BAUD_9600": 7,
+ "BAUD_19200": 8,
+ "BAUD_38400": 9,
+ "BAUD_57600": 10,
+ "BAUD_115200": 11,
+ "BAUD_230400": 12,
+ "BAUD_460800": 13,
+ "BAUD_576000": 14,
+ "BAUD_921600": 15,
+ }
+)
+
+func (x ModuleConfig_SerialConfig_Serial_Baud) Enum() *ModuleConfig_SerialConfig_Serial_Baud {
+ p := new(ModuleConfig_SerialConfig_Serial_Baud)
+ *p = x
+ return p
+}
+
+func (x ModuleConfig_SerialConfig_Serial_Baud) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ModuleConfig_SerialConfig_Serial_Baud) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_module_config_proto_enumTypes[2].Descriptor()
+}
+
+func (ModuleConfig_SerialConfig_Serial_Baud) Type() protoreflect.EnumType {
+ return &file_meshtastic_module_config_proto_enumTypes[2]
+}
+
+func (x ModuleConfig_SerialConfig_Serial_Baud) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ModuleConfig_SerialConfig_Serial_Baud.Descriptor instead.
+func (ModuleConfig_SerialConfig_Serial_Baud) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 6, 0}
+}
+
+// TODO: REPLACE
+type ModuleConfig_SerialConfig_Serial_Mode int32
+
+const (
+ ModuleConfig_SerialConfig_DEFAULT ModuleConfig_SerialConfig_Serial_Mode = 0
+ ModuleConfig_SerialConfig_SIMPLE ModuleConfig_SerialConfig_Serial_Mode = 1
+ ModuleConfig_SerialConfig_PROTO ModuleConfig_SerialConfig_Serial_Mode = 2
+ ModuleConfig_SerialConfig_TEXTMSG ModuleConfig_SerialConfig_Serial_Mode = 3
+ ModuleConfig_SerialConfig_NMEA ModuleConfig_SerialConfig_Serial_Mode = 4
+ // NMEA messages specifically tailored for CalTopo
+ ModuleConfig_SerialConfig_CALTOPO ModuleConfig_SerialConfig_Serial_Mode = 5
+)
+
+// Enum value maps for ModuleConfig_SerialConfig_Serial_Mode.
+var (
+ ModuleConfig_SerialConfig_Serial_Mode_name = map[int32]string{
+ 0: "DEFAULT",
+ 1: "SIMPLE",
+ 2: "PROTO",
+ 3: "TEXTMSG",
+ 4: "NMEA",
+ 5: "CALTOPO",
+ }
+ ModuleConfig_SerialConfig_Serial_Mode_value = map[string]int32{
+ "DEFAULT": 0,
+ "SIMPLE": 1,
+ "PROTO": 2,
+ "TEXTMSG": 3,
+ "NMEA": 4,
+ "CALTOPO": 5,
+ }
+)
+
+func (x ModuleConfig_SerialConfig_Serial_Mode) Enum() *ModuleConfig_SerialConfig_Serial_Mode {
+ p := new(ModuleConfig_SerialConfig_Serial_Mode)
+ *p = x
+ return p
+}
+
+func (x ModuleConfig_SerialConfig_Serial_Mode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ModuleConfig_SerialConfig_Serial_Mode) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_module_config_proto_enumTypes[3].Descriptor()
+}
+
+func (ModuleConfig_SerialConfig_Serial_Mode) Type() protoreflect.EnumType {
+ return &file_meshtastic_module_config_proto_enumTypes[3]
+}
+
+func (x ModuleConfig_SerialConfig_Serial_Mode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ModuleConfig_SerialConfig_Serial_Mode.Descriptor instead.
+func (ModuleConfig_SerialConfig_Serial_Mode) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 6, 1}
+}
+
+// TODO: REPLACE
+type ModuleConfig_CannedMessageConfig_InputEventChar int32
+
+const (
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_NONE ModuleConfig_CannedMessageConfig_InputEventChar = 0
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_UP ModuleConfig_CannedMessageConfig_InputEventChar = 17
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_DOWN ModuleConfig_CannedMessageConfig_InputEventChar = 18
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_LEFT ModuleConfig_CannedMessageConfig_InputEventChar = 19
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_RIGHT ModuleConfig_CannedMessageConfig_InputEventChar = 20
+ // '\n'
+ ModuleConfig_CannedMessageConfig_SELECT ModuleConfig_CannedMessageConfig_InputEventChar = 10
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_BACK ModuleConfig_CannedMessageConfig_InputEventChar = 27
+ // TODO: REPLACE
+ ModuleConfig_CannedMessageConfig_CANCEL ModuleConfig_CannedMessageConfig_InputEventChar = 24
+)
+
+// Enum value maps for ModuleConfig_CannedMessageConfig_InputEventChar.
+var (
+ ModuleConfig_CannedMessageConfig_InputEventChar_name = map[int32]string{
+ 0: "NONE",
+ 17: "UP",
+ 18: "DOWN",
+ 19: "LEFT",
+ 20: "RIGHT",
+ 10: "SELECT",
+ 27: "BACK",
+ 24: "CANCEL",
+ }
+ ModuleConfig_CannedMessageConfig_InputEventChar_value = map[string]int32{
+ "NONE": 0,
+ "UP": 17,
+ "DOWN": 18,
+ "LEFT": 19,
+ "RIGHT": 20,
+ "SELECT": 10,
+ "BACK": 27,
+ "CANCEL": 24,
+ }
+)
+
+func (x ModuleConfig_CannedMessageConfig_InputEventChar) Enum() *ModuleConfig_CannedMessageConfig_InputEventChar {
+ p := new(ModuleConfig_CannedMessageConfig_InputEventChar)
+ *p = x
+ return p
+}
+
+func (x ModuleConfig_CannedMessageConfig_InputEventChar) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ModuleConfig_CannedMessageConfig_InputEventChar) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_module_config_proto_enumTypes[4].Descriptor()
+}
+
+func (ModuleConfig_CannedMessageConfig_InputEventChar) Type() protoreflect.EnumType {
+ return &file_meshtastic_module_config_proto_enumTypes[4]
+}
+
+func (x ModuleConfig_CannedMessageConfig_InputEventChar) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ModuleConfig_CannedMessageConfig_InputEventChar.Descriptor instead.
+func (ModuleConfig_CannedMessageConfig_InputEventChar) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 11, 0}
+}
+
+// Module Config
+type ModuleConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // TODO: REPLACE
+ //
+ // Types that are assignable to PayloadVariant:
+ //
+ // *ModuleConfig_Mqtt
+ // *ModuleConfig_Serial
+ // *ModuleConfig_ExternalNotification
+ // *ModuleConfig_StoreForward
+ // *ModuleConfig_RangeTest
+ // *ModuleConfig_Telemetry
+ // *ModuleConfig_CannedMessage
+ // *ModuleConfig_Audio
+ // *ModuleConfig_RemoteHardware
+ // *ModuleConfig_NeighborInfo
+ // *ModuleConfig_AmbientLighting
+ // *ModuleConfig_DetectionSensor
+ // *ModuleConfig_Paxcounter
+ PayloadVariant isModuleConfig_PayloadVariant `protobuf_oneof:"payload_variant"`
+}
+
+func (x *ModuleConfig) Reset() {
+ *x = ModuleConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig) ProtoMessage() {}
+
+func (x *ModuleConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *ModuleConfig) GetPayloadVariant() isModuleConfig_PayloadVariant {
+ if m != nil {
+ return m.PayloadVariant
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetMqtt() *ModuleConfig_MQTTConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_Mqtt); ok {
+ return x.Mqtt
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetSerial() *ModuleConfig_SerialConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_Serial); ok {
+ return x.Serial
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetExternalNotification() *ModuleConfig_ExternalNotificationConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_ExternalNotification); ok {
+ return x.ExternalNotification
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetStoreForward() *ModuleConfig_StoreForwardConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_StoreForward); ok {
+ return x.StoreForward
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetRangeTest() *ModuleConfig_RangeTestConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_RangeTest); ok {
+ return x.RangeTest
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetTelemetry() *ModuleConfig_TelemetryConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_Telemetry); ok {
+ return x.Telemetry
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetCannedMessage() *ModuleConfig_CannedMessageConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_CannedMessage); ok {
+ return x.CannedMessage
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetAudio() *ModuleConfig_AudioConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_Audio); ok {
+ return x.Audio
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetRemoteHardware() *ModuleConfig_RemoteHardwareConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_RemoteHardware); ok {
+ return x.RemoteHardware
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetNeighborInfo() *ModuleConfig_NeighborInfoConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_NeighborInfo); ok {
+ return x.NeighborInfo
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetAmbientLighting() *ModuleConfig_AmbientLightingConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_AmbientLighting); ok {
+ return x.AmbientLighting
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetDetectionSensor() *ModuleConfig_DetectionSensorConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_DetectionSensor); ok {
+ return x.DetectionSensor
+ }
+ return nil
+}
+
+func (x *ModuleConfig) GetPaxcounter() *ModuleConfig_PaxcounterConfig {
+ if x, ok := x.GetPayloadVariant().(*ModuleConfig_Paxcounter); ok {
+ return x.Paxcounter
+ }
+ return nil
+}
+
+type isModuleConfig_PayloadVariant interface {
+ isModuleConfig_PayloadVariant()
+}
+
+type ModuleConfig_Mqtt struct {
+ // TODO: REPLACE
+ Mqtt *ModuleConfig_MQTTConfig `protobuf:"bytes,1,opt,name=mqtt,proto3,oneof"`
+}
+
+type ModuleConfig_Serial struct {
+ // TODO: REPLACE
+ Serial *ModuleConfig_SerialConfig `protobuf:"bytes,2,opt,name=serial,proto3,oneof"`
+}
+
+type ModuleConfig_ExternalNotification struct {
+ // TODO: REPLACE
+ ExternalNotification *ModuleConfig_ExternalNotificationConfig `protobuf:"bytes,3,opt,name=external_notification,json=externalNotification,proto3,oneof"`
+}
+
+type ModuleConfig_StoreForward struct {
+ // TODO: REPLACE
+ StoreForward *ModuleConfig_StoreForwardConfig `protobuf:"bytes,4,opt,name=store_forward,json=storeForward,proto3,oneof"`
+}
+
+type ModuleConfig_RangeTest struct {
+ // TODO: REPLACE
+ RangeTest *ModuleConfig_RangeTestConfig `protobuf:"bytes,5,opt,name=range_test,json=rangeTest,proto3,oneof"`
+}
+
+type ModuleConfig_Telemetry struct {
+ // TODO: REPLACE
+ Telemetry *ModuleConfig_TelemetryConfig `protobuf:"bytes,6,opt,name=telemetry,proto3,oneof"`
+}
+
+type ModuleConfig_CannedMessage struct {
+ // TODO: REPLACE
+ CannedMessage *ModuleConfig_CannedMessageConfig `protobuf:"bytes,7,opt,name=canned_message,json=cannedMessage,proto3,oneof"`
+}
+
+type ModuleConfig_Audio struct {
+ // TODO: REPLACE
+ Audio *ModuleConfig_AudioConfig `protobuf:"bytes,8,opt,name=audio,proto3,oneof"`
+}
+
+type ModuleConfig_RemoteHardware struct {
+ // TODO: REPLACE
+ RemoteHardware *ModuleConfig_RemoteHardwareConfig `protobuf:"bytes,9,opt,name=remote_hardware,json=remoteHardware,proto3,oneof"`
+}
+
+type ModuleConfig_NeighborInfo struct {
+ // TODO: REPLACE
+ NeighborInfo *ModuleConfig_NeighborInfoConfig `protobuf:"bytes,10,opt,name=neighbor_info,json=neighborInfo,proto3,oneof"`
+}
+
+type ModuleConfig_AmbientLighting struct {
+ // TODO: REPLACE
+ AmbientLighting *ModuleConfig_AmbientLightingConfig `protobuf:"bytes,11,opt,name=ambient_lighting,json=ambientLighting,proto3,oneof"`
+}
+
+type ModuleConfig_DetectionSensor struct {
+ // TODO: REPLACE
+ DetectionSensor *ModuleConfig_DetectionSensorConfig `protobuf:"bytes,12,opt,name=detection_sensor,json=detectionSensor,proto3,oneof"`
+}
+
+type ModuleConfig_Paxcounter struct {
+ // TODO: REPLACE
+ Paxcounter *ModuleConfig_PaxcounterConfig `protobuf:"bytes,13,opt,name=paxcounter,proto3,oneof"`
+}
+
+func (*ModuleConfig_Mqtt) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_Serial) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_ExternalNotification) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_StoreForward) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_RangeTest) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_Telemetry) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_CannedMessage) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_Audio) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_RemoteHardware) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_NeighborInfo) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_AmbientLighting) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_DetectionSensor) isModuleConfig_PayloadVariant() {}
+
+func (*ModuleConfig_Paxcounter) isModuleConfig_PayloadVariant() {}
+
+// A GPIO pin definition for remote hardware module
+type RemoteHardwarePin struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // GPIO Pin number (must match Arduino)
+ GpioPin uint32 `protobuf:"varint,1,opt,name=gpio_pin,json=gpioPin,proto3" json:"gpio_pin,omitempty"`
+ // Name for the GPIO pin (i.e. Front gate, mailbox, etc)
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ // Type of GPIO access available to consumers on the mesh
+ Type RemoteHardwarePinType `protobuf:"varint,3,opt,name=type,proto3,enum=meshtastic.RemoteHardwarePinType" json:"type,omitempty"`
+}
+
+func (x *RemoteHardwarePin) Reset() {
+ *x = RemoteHardwarePin{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RemoteHardwarePin) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RemoteHardwarePin) ProtoMessage() {}
+
+func (x *RemoteHardwarePin) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RemoteHardwarePin.ProtoReflect.Descriptor instead.
+func (*RemoteHardwarePin) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *RemoteHardwarePin) GetGpioPin() uint32 {
+ if x != nil {
+ return x.GpioPin
+ }
+ return 0
+}
+
+func (x *RemoteHardwarePin) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *RemoteHardwarePin) GetType() RemoteHardwarePinType {
+ if x != nil {
+ return x.Type
+ }
+ return RemoteHardwarePinType_UNKNOWN
+}
+
+// MQTT Client Config
+type ModuleConfig_MQTTConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as
+ // is_uplink_enabled or is_downlink_enabled.
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // The server to use for our MQTT global message gateway feature.
+ // If not set, the default server will be used
+ Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
+ // MQTT username to use (most useful for a custom MQTT server).
+ // If using a custom server, this will be honoured even if empty.
+ // If using the default server, this will only be honoured if set, otherwise the device will use the default username
+ Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
+ // MQTT password to use (most useful for a custom MQTT server).
+ // If using a custom server, this will be honoured even if empty.
+ // If using the default server, this will only be honoured if set, otherwise the device will use the default password
+ Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
+ // Whether to send encrypted or decrypted packets to MQTT.
+ // This parameter is only honoured if you also set server
+ // (the default official mqtt.meshtastic.org server can handle encrypted packets)
+ // Decrypted packets may be useful for external systems that want to consume meshtastic packets
+ EncryptionEnabled bool `protobuf:"varint,5,opt,name=encryption_enabled,json=encryptionEnabled,proto3" json:"encryption_enabled,omitempty"`
+ // Whether to send / consume json packets on MQTT
+ JsonEnabled bool `protobuf:"varint,6,opt,name=json_enabled,json=jsonEnabled,proto3" json:"json_enabled,omitempty"`
+ // If true, we attempt to establish a secure connection using TLS
+ TlsEnabled bool `protobuf:"varint,7,opt,name=tls_enabled,json=tlsEnabled,proto3" json:"tls_enabled,omitempty"`
+ // The root topic to use for MQTT messages. Default is "msh".
+ // This is useful if you want to use a single MQTT server for multiple meshtastic networks and separate them via ACLs
+ Root string `protobuf:"bytes,8,opt,name=root,proto3" json:"root,omitempty"`
+ // If true, we can use the connected phone / client to proxy messages to MQTT instead of a direct connection
+ ProxyToClientEnabled bool `protobuf:"varint,9,opt,name=proxy_to_client_enabled,json=proxyToClientEnabled,proto3" json:"proxy_to_client_enabled,omitempty"`
+}
+
+func (x *ModuleConfig_MQTTConfig) Reset() {
+ *x = ModuleConfig_MQTTConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_MQTTConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_MQTTConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_MQTTConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_MQTTConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_MQTTConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *ModuleConfig_MQTTConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_MQTTConfig) GetAddress() string {
+ if x != nil {
+ return x.Address
+ }
+ return ""
+}
+
+func (x *ModuleConfig_MQTTConfig) GetUsername() string {
+ if x != nil {
+ return x.Username
+ }
+ return ""
+}
+
+func (x *ModuleConfig_MQTTConfig) GetPassword() string {
+ if x != nil {
+ return x.Password
+ }
+ return ""
+}
+
+func (x *ModuleConfig_MQTTConfig) GetEncryptionEnabled() bool {
+ if x != nil {
+ return x.EncryptionEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_MQTTConfig) GetJsonEnabled() bool {
+ if x != nil {
+ return x.JsonEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_MQTTConfig) GetTlsEnabled() bool {
+ if x != nil {
+ return x.TlsEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_MQTTConfig) GetRoot() string {
+ if x != nil {
+ return x.Root
+ }
+ return ""
+}
+
+func (x *ModuleConfig_MQTTConfig) GetProxyToClientEnabled() bool {
+ if x != nil {
+ return x.ProxyToClientEnabled
+ }
+ return false
+}
+
+// RemoteHardwareModule Config
+type ModuleConfig_RemoteHardwareConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Whether the Module is enabled
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Whether the Module allows consumers to read / write to pins not defined in available_pins
+ AllowUndefinedPinAccess bool `protobuf:"varint,2,opt,name=allow_undefined_pin_access,json=allowUndefinedPinAccess,proto3" json:"allow_undefined_pin_access,omitempty"`
+ // Exposes the available pins to the mesh for reading and writing
+ AvailablePins []*RemoteHardwarePin `protobuf:"bytes,3,rep,name=available_pins,json=availablePins,proto3" json:"available_pins,omitempty"`
+}
+
+func (x *ModuleConfig_RemoteHardwareConfig) Reset() {
+ *x = ModuleConfig_RemoteHardwareConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_RemoteHardwareConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_RemoteHardwareConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_RemoteHardwareConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_RemoteHardwareConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_RemoteHardwareConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *ModuleConfig_RemoteHardwareConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_RemoteHardwareConfig) GetAllowUndefinedPinAccess() bool {
+ if x != nil {
+ return x.AllowUndefinedPinAccess
+ }
+ return false
+}
+
+func (x *ModuleConfig_RemoteHardwareConfig) GetAvailablePins() []*RemoteHardwarePin {
+ if x != nil {
+ return x.AvailablePins
+ }
+ return nil
+}
+
+// NeighborInfoModule Config
+type ModuleConfig_NeighborInfoConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Whether the Module is enabled
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Interval in seconds of how often we should try to send our
+ // Neighbor Info to the mesh
+ UpdateInterval uint32 `protobuf:"varint,2,opt,name=update_interval,json=updateInterval,proto3" json:"update_interval,omitempty"`
+}
+
+func (x *ModuleConfig_NeighborInfoConfig) Reset() {
+ *x = ModuleConfig_NeighborInfoConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_NeighborInfoConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_NeighborInfoConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_NeighborInfoConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_NeighborInfoConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_NeighborInfoConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 2}
+}
+
+func (x *ModuleConfig_NeighborInfoConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_NeighborInfoConfig) GetUpdateInterval() uint32 {
+ if x != nil {
+ return x.UpdateInterval
+ }
+ return 0
+}
+
+// Detection Sensor Module Config
+type ModuleConfig_DetectionSensorConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Whether the Module is enabled
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Interval in seconds of how often we can send a message to the mesh when a state change is detected
+ MinimumBroadcastSecs uint32 `protobuf:"varint,2,opt,name=minimum_broadcast_secs,json=minimumBroadcastSecs,proto3" json:"minimum_broadcast_secs,omitempty"`
+ // Interval in seconds of how often we should send a message to the mesh with the current state regardless of changes
+ // When set to 0, only state changes will be broadcasted
+ // Works as a sort of status heartbeat for peace of mind
+ StateBroadcastSecs uint32 `protobuf:"varint,3,opt,name=state_broadcast_secs,json=stateBroadcastSecs,proto3" json:"state_broadcast_secs,omitempty"`
+ // Send ASCII bell with alert message
+ // Useful for triggering ext. notification on bell
+ SendBell bool `protobuf:"varint,4,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"`
+ // Friendly name used to format message sent to mesh
+ // Example: A name "Motion" would result in a message "Motion detected"
+ // Maximum length of 20 characters
+ Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
+ // GPIO pin to monitor for state changes
+ MonitorPin uint32 `protobuf:"varint,6,opt,name=monitor_pin,json=monitorPin,proto3" json:"monitor_pin,omitempty"`
+ // Whether or not the GPIO pin state detection is triggered on HIGH (1)
+ // Otherwise LOW (0)
+ DetectionTriggeredHigh bool `protobuf:"varint,7,opt,name=detection_triggered_high,json=detectionTriggeredHigh,proto3" json:"detection_triggered_high,omitempty"`
+ // Whether or not use INPUT_PULLUP mode for GPIO pin
+ // Only applicable if the board uses pull-up resistors on the pin
+ UsePullup bool `protobuf:"varint,8,opt,name=use_pullup,json=usePullup,proto3" json:"use_pullup,omitempty"`
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) Reset() {
+ *x = ModuleConfig_DetectionSensorConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_DetectionSensorConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_DetectionSensorConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_DetectionSensorConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_DetectionSensorConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 3}
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetMinimumBroadcastSecs() uint32 {
+ if x != nil {
+ return x.MinimumBroadcastSecs
+ }
+ return 0
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetStateBroadcastSecs() uint32 {
+ if x != nil {
+ return x.StateBroadcastSecs
+ }
+ return 0
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetSendBell() bool {
+ if x != nil {
+ return x.SendBell
+ }
+ return false
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetMonitorPin() uint32 {
+ if x != nil {
+ return x.MonitorPin
+ }
+ return 0
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetDetectionTriggeredHigh() bool {
+ if x != nil {
+ return x.DetectionTriggeredHigh
+ }
+ return false
+}
+
+func (x *ModuleConfig_DetectionSensorConfig) GetUsePullup() bool {
+ if x != nil {
+ return x.UsePullup
+ }
+ return false
+}
+
+// Audio Config for codec2 voice
+type ModuleConfig_AudioConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Whether Audio is enabled
+ Codec2Enabled bool `protobuf:"varint,1,opt,name=codec2_enabled,json=codec2Enabled,proto3" json:"codec2_enabled,omitempty"`
+ // PTT Pin
+ PttPin uint32 `protobuf:"varint,2,opt,name=ptt_pin,json=pttPin,proto3" json:"ptt_pin,omitempty"`
+ // The audio sample rate to use for codec2
+ Bitrate ModuleConfig_AudioConfig_Audio_Baud `protobuf:"varint,3,opt,name=bitrate,proto3,enum=meshtastic.ModuleConfig_AudioConfig_Audio_Baud" json:"bitrate,omitempty"`
+ // I2S Word Select
+ I2SWs uint32 `protobuf:"varint,4,opt,name=i2s_ws,json=i2sWs,proto3" json:"i2s_ws,omitempty"`
+ // I2S Data IN
+ I2SSd uint32 `protobuf:"varint,5,opt,name=i2s_sd,json=i2sSd,proto3" json:"i2s_sd,omitempty"`
+ // I2S Data OUT
+ I2SDin uint32 `protobuf:"varint,6,opt,name=i2s_din,json=i2sDin,proto3" json:"i2s_din,omitempty"`
+ // I2S Clock
+ I2SSck uint32 `protobuf:"varint,7,opt,name=i2s_sck,json=i2sSck,proto3" json:"i2s_sck,omitempty"`
+}
+
+func (x *ModuleConfig_AudioConfig) Reset() {
+ *x = ModuleConfig_AudioConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_AudioConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_AudioConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_AudioConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_AudioConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_AudioConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 4}
+}
+
+func (x *ModuleConfig_AudioConfig) GetCodec2Enabled() bool {
+ if x != nil {
+ return x.Codec2Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_AudioConfig) GetPttPin() uint32 {
+ if x != nil {
+ return x.PttPin
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AudioConfig) GetBitrate() ModuleConfig_AudioConfig_Audio_Baud {
+ if x != nil {
+ return x.Bitrate
+ }
+ return ModuleConfig_AudioConfig_CODEC2_DEFAULT
+}
+
+func (x *ModuleConfig_AudioConfig) GetI2SWs() uint32 {
+ if x != nil {
+ return x.I2SWs
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AudioConfig) GetI2SSd() uint32 {
+ if x != nil {
+ return x.I2SSd
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AudioConfig) GetI2SDin() uint32 {
+ if x != nil {
+ return x.I2SDin
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AudioConfig) GetI2SSck() uint32 {
+ if x != nil {
+ return x.I2SSck
+ }
+ return 0
+}
+
+// Config for the Paxcounter Module
+type ModuleConfig_PaxcounterConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable the Paxcounter Module
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ PaxcounterUpdateInterval uint32 `protobuf:"varint,2,opt,name=paxcounter_update_interval,json=paxcounterUpdateInterval,proto3" json:"paxcounter_update_interval,omitempty"`
+}
+
+func (x *ModuleConfig_PaxcounterConfig) Reset() {
+ *x = ModuleConfig_PaxcounterConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_PaxcounterConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_PaxcounterConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_PaxcounterConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_PaxcounterConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_PaxcounterConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 5}
+}
+
+func (x *ModuleConfig_PaxcounterConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_PaxcounterConfig) GetPaxcounterUpdateInterval() uint32 {
+ if x != nil {
+ return x.PaxcounterUpdateInterval
+ }
+ return 0
+}
+
+// Serial Config
+type ModuleConfig_SerialConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Preferences for the SerialModule
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // TODO: REPLACE
+ Echo bool `protobuf:"varint,2,opt,name=echo,proto3" json:"echo,omitempty"`
+ // RX pin (should match Arduino gpio pin number)
+ Rxd uint32 `protobuf:"varint,3,opt,name=rxd,proto3" json:"rxd,omitempty"`
+ // TX pin (should match Arduino gpio pin number)
+ Txd uint32 `protobuf:"varint,4,opt,name=txd,proto3" json:"txd,omitempty"`
+ // Serial baud rate
+ Baud ModuleConfig_SerialConfig_Serial_Baud `protobuf:"varint,5,opt,name=baud,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Baud" json:"baud,omitempty"`
+ // TODO: REPLACE
+ Timeout uint32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
+ // Mode for serial module operation
+ Mode ModuleConfig_SerialConfig_Serial_Mode `protobuf:"varint,7,opt,name=mode,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Mode" json:"mode,omitempty"`
+ // Overrides the platform's defacto Serial port instance to use with Serial module config settings
+ // This is currently only usable in output modes like NMEA / CalTopo and may behave strangely or not work at all in other modes
+ // Existing logging over the Serial Console will still be present
+ OverrideConsoleSerialPort bool `protobuf:"varint,8,opt,name=override_console_serial_port,json=overrideConsoleSerialPort,proto3" json:"override_console_serial_port,omitempty"`
+}
+
+func (x *ModuleConfig_SerialConfig) Reset() {
+ *x = ModuleConfig_SerialConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_SerialConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_SerialConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_SerialConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_SerialConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_SerialConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 6}
+}
+
+func (x *ModuleConfig_SerialConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_SerialConfig) GetEcho() bool {
+ if x != nil {
+ return x.Echo
+ }
+ return false
+}
+
+func (x *ModuleConfig_SerialConfig) GetRxd() uint32 {
+ if x != nil {
+ return x.Rxd
+ }
+ return 0
+}
+
+func (x *ModuleConfig_SerialConfig) GetTxd() uint32 {
+ if x != nil {
+ return x.Txd
+ }
+ return 0
+}
+
+func (x *ModuleConfig_SerialConfig) GetBaud() ModuleConfig_SerialConfig_Serial_Baud {
+ if x != nil {
+ return x.Baud
+ }
+ return ModuleConfig_SerialConfig_BAUD_DEFAULT
+}
+
+func (x *ModuleConfig_SerialConfig) GetTimeout() uint32 {
+ if x != nil {
+ return x.Timeout
+ }
+ return 0
+}
+
+func (x *ModuleConfig_SerialConfig) GetMode() ModuleConfig_SerialConfig_Serial_Mode {
+ if x != nil {
+ return x.Mode
+ }
+ return ModuleConfig_SerialConfig_DEFAULT
+}
+
+func (x *ModuleConfig_SerialConfig) GetOverrideConsoleSerialPort() bool {
+ if x != nil {
+ return x.OverrideConsoleSerialPort
+ }
+ return false
+}
+
+// External Notifications Config
+type ModuleConfig_ExternalNotificationConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable the ExternalNotificationModule
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // When using in On/Off mode, keep the output on for this many
+ // milliseconds. Default 1000ms (1 second).
+ OutputMs uint32 `protobuf:"varint,2,opt,name=output_ms,json=outputMs,proto3" json:"output_ms,omitempty"`
+ // Define the output pin GPIO setting Defaults to
+ // EXT_NOTIFY_OUT if set for the board.
+ // In standalone devices this pin should drive the LED to match the UI.
+ Output uint32 `protobuf:"varint,3,opt,name=output,proto3" json:"output,omitempty"`
+ // Optional: Define a secondary output pin for a vibra motor
+ // This is used in standalone devices to match the UI.
+ OutputVibra uint32 `protobuf:"varint,8,opt,name=output_vibra,json=outputVibra,proto3" json:"output_vibra,omitempty"`
+ // Optional: Define a tertiary output pin for an active buzzer
+ // This is used in standalone devices to to match the UI.
+ OutputBuzzer uint32 `protobuf:"varint,9,opt,name=output_buzzer,json=outputBuzzer,proto3" json:"output_buzzer,omitempty"`
+ // IF this is true, the 'output' Pin will be pulled active high, false
+ // means active low.
+ Active bool `protobuf:"varint,4,opt,name=active,proto3" json:"active,omitempty"`
+ // True: Alert when a text message arrives (output)
+ AlertMessage bool `protobuf:"varint,5,opt,name=alert_message,json=alertMessage,proto3" json:"alert_message,omitempty"`
+ // True: Alert when a text message arrives (output_vibra)
+ AlertMessageVibra bool `protobuf:"varint,10,opt,name=alert_message_vibra,json=alertMessageVibra,proto3" json:"alert_message_vibra,omitempty"`
+ // True: Alert when a text message arrives (output_buzzer)
+ AlertMessageBuzzer bool `protobuf:"varint,11,opt,name=alert_message_buzzer,json=alertMessageBuzzer,proto3" json:"alert_message_buzzer,omitempty"`
+ // True: Alert when the bell character is received (output)
+ AlertBell bool `protobuf:"varint,6,opt,name=alert_bell,json=alertBell,proto3" json:"alert_bell,omitempty"`
+ // True: Alert when the bell character is received (output_vibra)
+ AlertBellVibra bool `protobuf:"varint,12,opt,name=alert_bell_vibra,json=alertBellVibra,proto3" json:"alert_bell_vibra,omitempty"`
+ // True: Alert when the bell character is received (output_buzzer)
+ AlertBellBuzzer bool `protobuf:"varint,13,opt,name=alert_bell_buzzer,json=alertBellBuzzer,proto3" json:"alert_bell_buzzer,omitempty"`
+ // use a PWM output instead of a simple on/off output. This will ignore
+ // the 'output', 'output_ms' and 'active' settings and use the
+ // device.buzzer_gpio instead.
+ UsePwm bool `protobuf:"varint,7,opt,name=use_pwm,json=usePwm,proto3" json:"use_pwm,omitempty"`
+ // The notification will toggle with 'output_ms' for this time of seconds.
+ // Default is 0 which means don't repeat at all. 60 would mean blink
+ // and/or beep for 60 seconds
+ NagTimeout uint32 `protobuf:"varint,14,opt,name=nag_timeout,json=nagTimeout,proto3" json:"nag_timeout,omitempty"`
+ // When true, enables devices with native I2S audio output to use the RTTTL over speaker like a buzzer
+ // T-Watch S3 and T-Deck for example have this capability
+ UseI2SAsBuzzer bool `protobuf:"varint,15,opt,name=use_i2s_as_buzzer,json=useI2sAsBuzzer,proto3" json:"use_i2s_as_buzzer,omitempty"`
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) Reset() {
+ *x = ModuleConfig_ExternalNotificationConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_ExternalNotificationConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_ExternalNotificationConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_ExternalNotificationConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_ExternalNotificationConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 7}
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetOutputMs() uint32 {
+ if x != nil {
+ return x.OutputMs
+ }
+ return 0
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetOutput() uint32 {
+ if x != nil {
+ return x.Output
+ }
+ return 0
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetOutputVibra() uint32 {
+ if x != nil {
+ return x.OutputVibra
+ }
+ return 0
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetOutputBuzzer() uint32 {
+ if x != nil {
+ return x.OutputBuzzer
+ }
+ return 0
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetActive() bool {
+ if x != nil {
+ return x.Active
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessage() bool {
+ if x != nil {
+ return x.AlertMessage
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageVibra() bool {
+ if x != nil {
+ return x.AlertMessageVibra
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageBuzzer() bool {
+ if x != nil {
+ return x.AlertMessageBuzzer
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBell() bool {
+ if x != nil {
+ return x.AlertBell
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellVibra() bool {
+ if x != nil {
+ return x.AlertBellVibra
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellBuzzer() bool {
+ if x != nil {
+ return x.AlertBellBuzzer
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetUsePwm() bool {
+ if x != nil {
+ return x.UsePwm
+ }
+ return false
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetNagTimeout() uint32 {
+ if x != nil {
+ return x.NagTimeout
+ }
+ return 0
+}
+
+func (x *ModuleConfig_ExternalNotificationConfig) GetUseI2SAsBuzzer() bool {
+ if x != nil {
+ return x.UseI2SAsBuzzer
+ }
+ return false
+}
+
+// Store and Forward Module Config
+type ModuleConfig_StoreForwardConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable the Store and Forward Module
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // TODO: REPLACE
+ Heartbeat bool `protobuf:"varint,2,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"`
+ // TODO: REPLACE
+ Records uint32 `protobuf:"varint,3,opt,name=records,proto3" json:"records,omitempty"`
+ // TODO: REPLACE
+ HistoryReturnMax uint32 `protobuf:"varint,4,opt,name=history_return_max,json=historyReturnMax,proto3" json:"history_return_max,omitempty"`
+ // TODO: REPLACE
+ HistoryReturnWindow uint32 `protobuf:"varint,5,opt,name=history_return_window,json=historyReturnWindow,proto3" json:"history_return_window,omitempty"`
+}
+
+func (x *ModuleConfig_StoreForwardConfig) Reset() {
+ *x = ModuleConfig_StoreForwardConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_StoreForwardConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_StoreForwardConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_StoreForwardConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_StoreForwardConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_StoreForwardConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 8}
+}
+
+func (x *ModuleConfig_StoreForwardConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_StoreForwardConfig) GetHeartbeat() bool {
+ if x != nil {
+ return x.Heartbeat
+ }
+ return false
+}
+
+func (x *ModuleConfig_StoreForwardConfig) GetRecords() uint32 {
+ if x != nil {
+ return x.Records
+ }
+ return 0
+}
+
+func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnMax() uint32 {
+ if x != nil {
+ return x.HistoryReturnMax
+ }
+ return 0
+}
+
+func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnWindow() uint32 {
+ if x != nil {
+ return x.HistoryReturnWindow
+ }
+ return 0
+}
+
+// Preferences for the RangeTestModule
+type ModuleConfig_RangeTestConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable the Range Test Module
+ Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Send out range test messages from this node
+ Sender uint32 `protobuf:"varint,2,opt,name=sender,proto3" json:"sender,omitempty"`
+ // Bool value indicating that this node should save a RangeTest.csv file.
+ // ESP32 Only
+ Save bool `protobuf:"varint,3,opt,name=save,proto3" json:"save,omitempty"`
+}
+
+func (x *ModuleConfig_RangeTestConfig) Reset() {
+ *x = ModuleConfig_RangeTestConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_RangeTestConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_RangeTestConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_RangeTestConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_RangeTestConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_RangeTestConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 9}
+}
+
+func (x *ModuleConfig_RangeTestConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_RangeTestConfig) GetSender() uint32 {
+ if x != nil {
+ return x.Sender
+ }
+ return 0
+}
+
+func (x *ModuleConfig_RangeTestConfig) GetSave() bool {
+ if x != nil {
+ return x.Save
+ }
+ return false
+}
+
+// Configuration for both device and environment metrics
+type ModuleConfig_TelemetryConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Interval in seconds of how often we should try to send our
+ // device metrics to the mesh
+ DeviceUpdateInterval uint32 `protobuf:"varint,1,opt,name=device_update_interval,json=deviceUpdateInterval,proto3" json:"device_update_interval,omitempty"`
+ EnvironmentUpdateInterval uint32 `protobuf:"varint,2,opt,name=environment_update_interval,json=environmentUpdateInterval,proto3" json:"environment_update_interval,omitempty"`
+ // Preferences for the Telemetry Module (Environment)
+ // Enable/Disable the telemetry measurement module measurement collection
+ EnvironmentMeasurementEnabled bool `protobuf:"varint,3,opt,name=environment_measurement_enabled,json=environmentMeasurementEnabled,proto3" json:"environment_measurement_enabled,omitempty"`
+ // Enable/Disable the telemetry measurement module on-device display
+ EnvironmentScreenEnabled bool `protobuf:"varint,4,opt,name=environment_screen_enabled,json=environmentScreenEnabled,proto3" json:"environment_screen_enabled,omitempty"`
+ // We'll always read the sensor in Celsius, but sometimes we might want to
+ // display the results in Fahrenheit as a "user preference".
+ EnvironmentDisplayFahrenheit bool `protobuf:"varint,5,opt,name=environment_display_fahrenheit,json=environmentDisplayFahrenheit,proto3" json:"environment_display_fahrenheit,omitempty"`
+ // Enable/Disable the air quality metrics
+ AirQualityEnabled bool `protobuf:"varint,6,opt,name=air_quality_enabled,json=airQualityEnabled,proto3" json:"air_quality_enabled,omitempty"`
+ // Interval in seconds of how often we should try to send our
+ // air quality metrics to the mesh
+ AirQualityInterval uint32 `protobuf:"varint,7,opt,name=air_quality_interval,json=airQualityInterval,proto3" json:"air_quality_interval,omitempty"`
+ // Interval in seconds of how often we should try to send our
+ // air quality metrics to the mesh
+ PowerMeasurementEnabled bool `protobuf:"varint,8,opt,name=power_measurement_enabled,json=powerMeasurementEnabled,proto3" json:"power_measurement_enabled,omitempty"`
+ // Interval in seconds of how often we should try to send our
+ // air quality metrics to the mesh
+ PowerUpdateInterval uint32 `protobuf:"varint,9,opt,name=power_update_interval,json=powerUpdateInterval,proto3" json:"power_update_interval,omitempty"`
+ // Interval in seconds of how often we should try to send our
+ // air quality metrics to the mesh
+ PowerScreenEnabled bool `protobuf:"varint,10,opt,name=power_screen_enabled,json=powerScreenEnabled,proto3" json:"power_screen_enabled,omitempty"`
+}
+
+func (x *ModuleConfig_TelemetryConfig) Reset() {
+ *x = ModuleConfig_TelemetryConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_TelemetryConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_TelemetryConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_TelemetryConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_TelemetryConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_TelemetryConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 10}
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetDeviceUpdateInterval() uint32 {
+ if x != nil {
+ return x.DeviceUpdateInterval
+ }
+ return 0
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetEnvironmentUpdateInterval() uint32 {
+ if x != nil {
+ return x.EnvironmentUpdateInterval
+ }
+ return 0
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetEnvironmentMeasurementEnabled() bool {
+ if x != nil {
+ return x.EnvironmentMeasurementEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetEnvironmentScreenEnabled() bool {
+ if x != nil {
+ return x.EnvironmentScreenEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetEnvironmentDisplayFahrenheit() bool {
+ if x != nil {
+ return x.EnvironmentDisplayFahrenheit
+ }
+ return false
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetAirQualityEnabled() bool {
+ if x != nil {
+ return x.AirQualityEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetAirQualityInterval() uint32 {
+ if x != nil {
+ return x.AirQualityInterval
+ }
+ return 0
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetPowerMeasurementEnabled() bool {
+ if x != nil {
+ return x.PowerMeasurementEnabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetPowerUpdateInterval() uint32 {
+ if x != nil {
+ return x.PowerUpdateInterval
+ }
+ return 0
+}
+
+func (x *ModuleConfig_TelemetryConfig) GetPowerScreenEnabled() bool {
+ if x != nil {
+ return x.PowerScreenEnabled
+ }
+ return false
+}
+
+// TODO: REPLACE
+type ModuleConfig_CannedMessageConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating.
+ Rotary1Enabled bool `protobuf:"varint,1,opt,name=rotary1_enabled,json=rotary1Enabled,proto3" json:"rotary1_enabled,omitempty"`
+ // GPIO pin for rotary encoder A port.
+ InputbrokerPinA uint32 `protobuf:"varint,2,opt,name=inputbroker_pin_a,json=inputbrokerPinA,proto3" json:"inputbroker_pin_a,omitempty"`
+ // GPIO pin for rotary encoder B port.
+ InputbrokerPinB uint32 `protobuf:"varint,3,opt,name=inputbroker_pin_b,json=inputbrokerPinB,proto3" json:"inputbroker_pin_b,omitempty"`
+ // GPIO pin for rotary encoder Press port.
+ InputbrokerPinPress uint32 `protobuf:"varint,4,opt,name=inputbroker_pin_press,json=inputbrokerPinPress,proto3" json:"inputbroker_pin_press,omitempty"`
+ // Generate input event on CW of this kind.
+ InputbrokerEventCw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,5,opt,name=inputbroker_event_cw,json=inputbrokerEventCw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_cw,omitempty"`
+ // Generate input event on CCW of this kind.
+ InputbrokerEventCcw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,6,opt,name=inputbroker_event_ccw,json=inputbrokerEventCcw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_ccw,omitempty"`
+ // Generate input event on Press of this kind.
+ InputbrokerEventPress ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,7,opt,name=inputbroker_event_press,json=inputbrokerEventPress,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_press,omitempty"`
+ // Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker.
+ Updown1Enabled bool `protobuf:"varint,8,opt,name=updown1_enabled,json=updown1Enabled,proto3" json:"updown1_enabled,omitempty"`
+ // Enable/disable CannedMessageModule.
+ Enabled bool `protobuf:"varint,9,opt,name=enabled,proto3" json:"enabled,omitempty"`
+ // Input event origin accepted by the canned message module.
+ // Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any"
+ AllowInputSource string `protobuf:"bytes,10,opt,name=allow_input_source,json=allowInputSource,proto3" json:"allow_input_source,omitempty"`
+ // CannedMessageModule also sends a bell character with the messages.
+ // ExternalNotificationModule can benefit from this feature.
+ SendBell bool `protobuf:"varint,11,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"`
+}
+
+func (x *ModuleConfig_CannedMessageConfig) Reset() {
+ *x = ModuleConfig_CannedMessageConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_CannedMessageConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_CannedMessageConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_CannedMessageConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_CannedMessageConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_CannedMessageConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 11}
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetRotary1Enabled() bool {
+ if x != nil {
+ return x.Rotary1Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinA() uint32 {
+ if x != nil {
+ return x.InputbrokerPinA
+ }
+ return 0
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinB() uint32 {
+ if x != nil {
+ return x.InputbrokerPinB
+ }
+ return 0
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinPress() uint32 {
+ if x != nil {
+ return x.InputbrokerPinPress
+ }
+ return 0
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCw() ModuleConfig_CannedMessageConfig_InputEventChar {
+ if x != nil {
+ return x.InputbrokerEventCw
+ }
+ return ModuleConfig_CannedMessageConfig_NONE
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCcw() ModuleConfig_CannedMessageConfig_InputEventChar {
+ if x != nil {
+ return x.InputbrokerEventCcw
+ }
+ return ModuleConfig_CannedMessageConfig_NONE
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventPress() ModuleConfig_CannedMessageConfig_InputEventChar {
+ if x != nil {
+ return x.InputbrokerEventPress
+ }
+ return ModuleConfig_CannedMessageConfig_NONE
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetUpdown1Enabled() bool {
+ if x != nil {
+ return x.Updown1Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetEnabled() bool {
+ if x != nil {
+ return x.Enabled
+ }
+ return false
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetAllowInputSource() string {
+ if x != nil {
+ return x.AllowInputSource
+ }
+ return ""
+}
+
+func (x *ModuleConfig_CannedMessageConfig) GetSendBell() bool {
+ if x != nil {
+ return x.SendBell
+ }
+ return false
+}
+
+// Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels.
+// Initially created for the RAK14001 RGB LED module.
+type ModuleConfig_AmbientLightingConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Sets LED to on or off.
+ LedState bool `protobuf:"varint,1,opt,name=led_state,json=ledState,proto3" json:"led_state,omitempty"`
+ // Sets the current for the LED output. Default is 10.
+ Current uint32 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
+ // Sets the red LED level. Values are 0-255.
+ Red uint32 `protobuf:"varint,3,opt,name=red,proto3" json:"red,omitempty"`
+ // Sets the green LED level. Values are 0-255.
+ Green uint32 `protobuf:"varint,4,opt,name=green,proto3" json:"green,omitempty"`
+ // Sets the blue LED level. Values are 0-255.
+ Blue uint32 `protobuf:"varint,5,opt,name=blue,proto3" json:"blue,omitempty"`
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) Reset() {
+ *x = ModuleConfig_AmbientLightingConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_module_config_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ModuleConfig_AmbientLightingConfig) ProtoMessage() {}
+
+func (x *ModuleConfig_AmbientLightingConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_module_config_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ModuleConfig_AmbientLightingConfig.ProtoReflect.Descriptor instead.
+func (*ModuleConfig_AmbientLightingConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_module_config_proto_rawDescGZIP(), []int{0, 12}
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) GetLedState() bool {
+ if x != nil {
+ return x.LedState
+ }
+ return false
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) GetCurrent() uint32 {
+ if x != nil {
+ return x.Current
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) GetRed() uint32 {
+ if x != nil {
+ return x.Red
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) GetGreen() uint32 {
+ if x != nil {
+ return x.Green
+ }
+ return 0
+}
+
+func (x *ModuleConfig_AmbientLightingConfig) GetBlue() uint32 {
+ if x != nil {
+ return x.Blue
+ }
+ return 0
+}
+
+var File_meshtastic_module_config_proto protoreflect.FileDescriptor
+
+var file_meshtastic_module_config_proto_rawDesc = []byte{
+ 0x0a, 0x1e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xdb, 0x2b, 0x0a,
+ 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a,
+ 0x04, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x51, 0x54, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x48, 0x00, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69,
+ 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
+ 0x00, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x6a, 0x0a, 0x15, 0x65, 0x78, 0x74,
+ 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
+ 0x14, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66,
+ 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77,
+ 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65,
+ 0x54, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
+ 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x55,
+ 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41,
+ 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75,
+ 0x64, 0x69, 0x6f, 0x12, 0x58, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61,
+ 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72,
+ 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x72,
+ 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x52, 0x0a,
+ 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e,
+ 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66,
+ 0x6f, 0x12, 0x5b, 0x0a, 0x10, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x67,
+ 0x68, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67,
+ 0x68, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x61,
+ 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5b,
+ 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x73,
+ 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73,
+ 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70,
+ 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61,
+ 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0xb6, 0x02, 0x0a, 0x0a, 0x4d, 0x51, 0x54,
+ 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75,
+ 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
+ 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
+ 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
+ 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x45, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x45,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x70, 0x72,
+ 0x6f, 0x78, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x72, 0x6f,
+ 0x78, 0x79, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x1a, 0xb3, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64,
+ 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65,
+ 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55,
+ 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73,
+ 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70,
+ 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72,
+ 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x1a, 0x57, 0x0a, 0x12, 0x4e, 0x65, 0x69, 0x67, 0x68,
+ 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a,
+ 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
+ 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+ 0x1a, 0xc4, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
+ 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f,
+ 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x42, 0x72, 0x6f,
+ 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65,
+ 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42,
+ 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x09,
+ 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x08, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x65, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x69, 0x6e, 0x12, 0x38,
+ 0x0a, 0x18, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x67,
+ 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x16, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67,
+ 0x65, 0x72, 0x65, 0x64, 0x48, 0x69, 0x67, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f,
+ 0x70, 0x75, 0x6c, 0x6c, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73,
+ 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x75, 0x70, 0x1a, 0xa2, 0x03, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69,
+ 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x63,
+ 0x32, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0d, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17,
+ 0x0a, 0x07, 0x70, 0x74, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x06, 0x70, 0x74, 0x74, 0x50, 0x69, 0x6e, 0x12, 0x49, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61,
+ 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41,
+ 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61,
+ 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x32, 0x73, 0x5f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32, 0x73, 0x57, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x32, 0x73,
+ 0x5f, 0x73, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32, 0x73, 0x53, 0x64,
+ 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32, 0x73, 0x5f, 0x64, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73, 0x44, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32, 0x73,
+ 0x5f, 0x73, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73, 0x53,
+ 0x63, 0x6b, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42, 0x61, 0x75,
+ 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x44, 0x45, 0x46, 0x41,
+ 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f,
+ 0x33, 0x32, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32,
+ 0x5f, 0x32, 0x34, 0x30, 0x30, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43,
+ 0x32, 0x5f, 0x31, 0x36, 0x30, 0x30, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45,
+ 0x43, 0x32, 0x5f, 0x31, 0x34, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44,
+ 0x45, 0x43, 0x32, 0x5f, 0x31, 0x33, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f,
+ 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x32, 0x30, 0x30, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
+ 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x37, 0x30, 0x30, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43,
+ 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x37, 0x30, 0x30, 0x42, 0x10, 0x08, 0x1a, 0x6a, 0x0a, 0x10,
+ 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x70, 0x61,
+ 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18,
+ 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0xad, 0x05, 0x0a, 0x0c, 0x53, 0x65, 0x72,
+ 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62,
+ 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x78, 0x64, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x78, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x78, 0x64, 0x12, 0x45, 0x0a, 0x04, 0x62,
+ 0x61, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73, 0x68,
+ 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x52, 0x04, 0x62, 0x61,
+ 0x75, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x04,
+ 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d,
+ 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x6f, 0x76, 0x65, 0x72, 0x72,
+ 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c,
+ 0x50, 0x6f, 0x72, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f,
+ 0x42, 0x61, 0x75, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x44, 0x45, 0x46,
+ 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31,
+ 0x31, 0x30, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x33, 0x30, 0x30,
+ 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x36, 0x30, 0x30, 0x10, 0x03,
+ 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12,
+ 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32, 0x34, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0d,
+ 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x38, 0x30, 0x30, 0x10, 0x06, 0x12, 0x0d, 0x0a,
+ 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x39, 0x36, 0x30, 0x30, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a,
+ 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x39, 0x32, 0x30, 0x30, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a,
+ 0x42, 0x41, 0x55, 0x44, 0x5f, 0x33, 0x38, 0x34, 0x30, 0x30, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a,
+ 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35, 0x37, 0x36, 0x30, 0x30, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b,
+ 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x31, 0x35, 0x32, 0x30, 0x30, 0x10, 0x0b, 0x12, 0x0f, 0x0a,
+ 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32, 0x33, 0x30, 0x34, 0x30, 0x30, 0x10, 0x0c, 0x12, 0x0f,
+ 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x36, 0x30, 0x38, 0x30, 0x30, 0x10, 0x0d, 0x12,
+ 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35, 0x37, 0x36, 0x30, 0x30, 0x30, 0x10, 0x0e,
+ 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x39, 0x32, 0x31, 0x36, 0x30, 0x30, 0x10,
+ 0x0f, 0x22, 0x55, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x4d, 0x6f, 0x64, 0x65,
+ 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a,
+ 0x06, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f,
+ 0x54, 0x4f, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x45, 0x58, 0x54, 0x4d, 0x53, 0x47, 0x10,
+ 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4d, 0x45, 0x41, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x43,
+ 0x41, 0x4c, 0x54, 0x4f, 0x50, 0x4f, 0x10, 0x05, 0x1a, 0xac, 0x04, 0x0a, 0x1a, 0x45, 0x78, 0x74,
+ 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x73, 0x12, 0x16,
+ 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
+ 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
+ 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x75,
+ 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74,
+ 0x70, 0x75, 0x74, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x16,
+ 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61,
+ 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61,
+ 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69, 0x62,
+ 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x61,
+ 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x7a,
+ 0x7a, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x6c, 0x65, 0x72, 0x74,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x12, 0x28, 0x0a, 0x10,
+ 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c,
+ 0x6c, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f,
+ 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x42, 0x75, 0x7a, 0x7a,
+ 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x77, 0x6d, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x50, 0x77, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6e,
+ 0x61, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0a, 0x6e, 0x61, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x11,
+ 0x75, 0x73, 0x65, 0x5f, 0x69, 0x32, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65,
+ 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x49, 0x32, 0x73, 0x41,
+ 0x73, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x1a, 0xc8, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18,
+ 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72,
+ 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
+ 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x68, 0x69,
+ 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x32,
+ 0x0a, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x68,
+ 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x69, 0x6e, 0x64,
+ 0x6f, 0x77, 0x1a, 0x57, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x76, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x61, 0x76, 0x65, 0x1a, 0xd7, 0x04, 0x0a, 0x0f,
+ 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x34, 0x0a, 0x16, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x1b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
+ 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x65, 0x6e, 0x76, 0x69,
+ 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
+ 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d,
+ 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x61, 0x73, 0x75,
+ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a,
+ 0x1a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72,
+ 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x18, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x63,
+ 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1e, 0x65,
+ 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c,
+ 0x61, 0x79, 0x5f, 0x66, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69, 0x74, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x1c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
+ 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x46, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69,
+ 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
+ 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11,
+ 0x61, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x12, 0x61, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x76, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x61,
+ 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x61,
+ 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
+ 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13,
+ 0x70, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x72,
+ 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x12, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x92, 0x06, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a,
+ 0x0f, 0x72, 0x6f, 0x74, 0x61, 0x72, 0x79, 0x31, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x72, 0x79, 0x31, 0x45,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62,
+ 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69,
+ 0x6e, 0x41, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65,
+ 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x42, 0x12, 0x32,
+ 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69,
+ 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x50, 0x72, 0x65,
+ 0x73, 0x73, 0x12, 0x6d, 0x0a, 0x14, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65,
+ 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49,
+ 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x12, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43,
+ 0x77, 0x12, 0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x63, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65,
+ 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49,
+ 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x13, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43,
+ 0x63, 0x77, 0x12, 0x73, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61,
+ 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72,
+ 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x6f, 0x77,
+ 0x6e, 0x31, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0e, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x31, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c,
+ 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x70,
+ 0x75, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64,
+ 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6e,
+ 0x64, 0x42, 0x65, 0x6c, 0x6c, 0x22, 0x63, 0x0a, 0x0e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10,
+ 0x00, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x11, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57,
+ 0x4e, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x13, 0x12, 0x09, 0x0a,
+ 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x4c, 0x45,
+ 0x43, 0x54, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x1b, 0x12, 0x0a,
+ 0x0a, 0x06, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x18, 0x1a, 0x8a, 0x01, 0x0a, 0x15, 0x41,
+ 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72,
+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a,
+ 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x67, 0x72,
+ 0x65, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f,
+ 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x11, 0x52, 0x65,
+ 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x12,
+ 0x19, 0x0a, 0x08, 0x67, 0x70, 0x69, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x07, 0x67, 0x70, 0x69, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35,
+ 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+ 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x49, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48,
+ 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b,
+ 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44,
+ 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a,
+ 0x0d, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02,
+ 0x42, 0x67, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c,
+ 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x12, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74,
+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
+ 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa,
+ 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_meshtastic_module_config_proto_rawDescOnce sync.Once
+ file_meshtastic_module_config_proto_rawDescData = file_meshtastic_module_config_proto_rawDesc
+)
+
+func file_meshtastic_module_config_proto_rawDescGZIP() []byte {
+ file_meshtastic_module_config_proto_rawDescOnce.Do(func() {
+ file_meshtastic_module_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_module_config_proto_rawDescData)
+ })
+ return file_meshtastic_module_config_proto_rawDescData
+}
+
+var file_meshtastic_module_config_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_meshtastic_module_config_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
+var file_meshtastic_module_config_proto_goTypes = []interface{}{
+ (RemoteHardwarePinType)(0), // 0: meshtastic.RemoteHardwarePinType
+ (ModuleConfig_AudioConfig_Audio_Baud)(0), // 1: meshtastic.ModuleConfig.AudioConfig.Audio_Baud
+ (ModuleConfig_SerialConfig_Serial_Baud)(0), // 2: meshtastic.ModuleConfig.SerialConfig.Serial_Baud
+ (ModuleConfig_SerialConfig_Serial_Mode)(0), // 3: meshtastic.ModuleConfig.SerialConfig.Serial_Mode
+ (ModuleConfig_CannedMessageConfig_InputEventChar)(0), // 4: meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
+ (*ModuleConfig)(nil), // 5: meshtastic.ModuleConfig
+ (*RemoteHardwarePin)(nil), // 6: meshtastic.RemoteHardwarePin
+ (*ModuleConfig_MQTTConfig)(nil), // 7: meshtastic.ModuleConfig.MQTTConfig
+ (*ModuleConfig_RemoteHardwareConfig)(nil), // 8: meshtastic.ModuleConfig.RemoteHardwareConfig
+ (*ModuleConfig_NeighborInfoConfig)(nil), // 9: meshtastic.ModuleConfig.NeighborInfoConfig
+ (*ModuleConfig_DetectionSensorConfig)(nil), // 10: meshtastic.ModuleConfig.DetectionSensorConfig
+ (*ModuleConfig_AudioConfig)(nil), // 11: meshtastic.ModuleConfig.AudioConfig
+ (*ModuleConfig_PaxcounterConfig)(nil), // 12: meshtastic.ModuleConfig.PaxcounterConfig
+ (*ModuleConfig_SerialConfig)(nil), // 13: meshtastic.ModuleConfig.SerialConfig
+ (*ModuleConfig_ExternalNotificationConfig)(nil), // 14: meshtastic.ModuleConfig.ExternalNotificationConfig
+ (*ModuleConfig_StoreForwardConfig)(nil), // 15: meshtastic.ModuleConfig.StoreForwardConfig
+ (*ModuleConfig_RangeTestConfig)(nil), // 16: meshtastic.ModuleConfig.RangeTestConfig
+ (*ModuleConfig_TelemetryConfig)(nil), // 17: meshtastic.ModuleConfig.TelemetryConfig
+ (*ModuleConfig_CannedMessageConfig)(nil), // 18: meshtastic.ModuleConfig.CannedMessageConfig
+ (*ModuleConfig_AmbientLightingConfig)(nil), // 19: meshtastic.ModuleConfig.AmbientLightingConfig
+}
+var file_meshtastic_module_config_proto_depIdxs = []int32{
+ 7, // 0: meshtastic.ModuleConfig.mqtt:type_name -> meshtastic.ModuleConfig.MQTTConfig
+ 13, // 1: meshtastic.ModuleConfig.serial:type_name -> meshtastic.ModuleConfig.SerialConfig
+ 14, // 2: meshtastic.ModuleConfig.external_notification:type_name -> meshtastic.ModuleConfig.ExternalNotificationConfig
+ 15, // 3: meshtastic.ModuleConfig.store_forward:type_name -> meshtastic.ModuleConfig.StoreForwardConfig
+ 16, // 4: meshtastic.ModuleConfig.range_test:type_name -> meshtastic.ModuleConfig.RangeTestConfig
+ 17, // 5: meshtastic.ModuleConfig.telemetry:type_name -> meshtastic.ModuleConfig.TelemetryConfig
+ 18, // 6: meshtastic.ModuleConfig.canned_message:type_name -> meshtastic.ModuleConfig.CannedMessageConfig
+ 11, // 7: meshtastic.ModuleConfig.audio:type_name -> meshtastic.ModuleConfig.AudioConfig
+ 8, // 8: meshtastic.ModuleConfig.remote_hardware:type_name -> meshtastic.ModuleConfig.RemoteHardwareConfig
+ 9, // 9: meshtastic.ModuleConfig.neighbor_info:type_name -> meshtastic.ModuleConfig.NeighborInfoConfig
+ 19, // 10: meshtastic.ModuleConfig.ambient_lighting:type_name -> meshtastic.ModuleConfig.AmbientLightingConfig
+ 10, // 11: meshtastic.ModuleConfig.detection_sensor:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig
+ 12, // 12: meshtastic.ModuleConfig.paxcounter:type_name -> meshtastic.ModuleConfig.PaxcounterConfig
+ 0, // 13: meshtastic.RemoteHardwarePin.type:type_name -> meshtastic.RemoteHardwarePinType
+ 6, // 14: meshtastic.ModuleConfig.RemoteHardwareConfig.available_pins:type_name -> meshtastic.RemoteHardwarePin
+ 1, // 15: meshtastic.ModuleConfig.AudioConfig.bitrate:type_name -> meshtastic.ModuleConfig.AudioConfig.Audio_Baud
+ 2, // 16: meshtastic.ModuleConfig.SerialConfig.baud:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Baud
+ 3, // 17: meshtastic.ModuleConfig.SerialConfig.mode:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Mode
+ 4, // 18: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_cw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
+ 4, // 19: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_ccw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
+ 4, // 20: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_press:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
+ 21, // [21:21] is the sub-list for method output_type
+ 21, // [21:21] is the sub-list for method input_type
+ 21, // [21:21] is the sub-list for extension type_name
+ 21, // [21:21] is the sub-list for extension extendee
+ 0, // [0:21] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_module_config_proto_init() }
+func file_meshtastic_module_config_proto_init() {
+ if File_meshtastic_module_config_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_module_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RemoteHardwarePin); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_MQTTConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_RemoteHardwareConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_NeighborInfoConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_DetectionSensorConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_AudioConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_PaxcounterConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_SerialConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_ExternalNotificationConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_StoreForwardConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_RangeTestConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_TelemetryConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_CannedMessageConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ModuleConfig_AmbientLightingConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_module_config_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*ModuleConfig_Mqtt)(nil),
+ (*ModuleConfig_Serial)(nil),
+ (*ModuleConfig_ExternalNotification)(nil),
+ (*ModuleConfig_StoreForward)(nil),
+ (*ModuleConfig_RangeTest)(nil),
+ (*ModuleConfig_Telemetry)(nil),
+ (*ModuleConfig_CannedMessage)(nil),
+ (*ModuleConfig_Audio)(nil),
+ (*ModuleConfig_RemoteHardware)(nil),
+ (*ModuleConfig_NeighborInfo)(nil),
+ (*ModuleConfig_AmbientLighting)(nil),
+ (*ModuleConfig_DetectionSensor)(nil),
+ (*ModuleConfig_Paxcounter)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_module_config_proto_rawDesc,
+ NumEnums: 5,
+ NumMessages: 15,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_module_config_proto_goTypes,
+ DependencyIndexes: file_meshtastic_module_config_proto_depIdxs,
+ EnumInfos: file_meshtastic_module_config_proto_enumTypes,
+ MessageInfos: file_meshtastic_module_config_proto_msgTypes,
+ }.Build()
+ File_meshtastic_module_config_proto = out.File
+ file_meshtastic_module_config_proto_rawDesc = nil
+ file_meshtastic_module_config_proto_goTypes = nil
+ file_meshtastic_module_config_proto_depIdxs = nil
+}
diff --git a/meshtastic/module_config_vtproto.pb.go b/meshtastic/module_config_vtproto.pb.go
new file mode 100644
index 0000000..1658c9b
--- /dev/null
+++ b/meshtastic/module_config_vtproto.pb.go
@@ -0,0 +1,11271 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/module_config.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *ModuleConfig_MQTTConfig) CloneVT() *ModuleConfig_MQTTConfig {
+ if m == nil {
+ return (*ModuleConfig_MQTTConfig)(nil)
+ }
+ r := new(ModuleConfig_MQTTConfig)
+ r.Enabled = m.Enabled
+ r.Address = m.Address
+ r.Username = m.Username
+ r.Password = m.Password
+ r.EncryptionEnabled = m.EncryptionEnabled
+ r.JsonEnabled = m.JsonEnabled
+ r.TlsEnabled = m.TlsEnabled
+ r.Root = m.Root
+ r.ProxyToClientEnabled = m.ProxyToClientEnabled
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_MQTTConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) CloneVT() *ModuleConfig_RemoteHardwareConfig {
+ if m == nil {
+ return (*ModuleConfig_RemoteHardwareConfig)(nil)
+ }
+ r := new(ModuleConfig_RemoteHardwareConfig)
+ r.Enabled = m.Enabled
+ r.AllowUndefinedPinAccess = m.AllowUndefinedPinAccess
+ if rhs := m.AvailablePins; rhs != nil {
+ tmpContainer := make([]*RemoteHardwarePin, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.AvailablePins = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) CloneVT() *ModuleConfig_NeighborInfoConfig {
+ if m == nil {
+ return (*ModuleConfig_NeighborInfoConfig)(nil)
+ }
+ r := new(ModuleConfig_NeighborInfoConfig)
+ r.Enabled = m.Enabled
+ r.UpdateInterval = m.UpdateInterval
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) CloneVT() *ModuleConfig_DetectionSensorConfig {
+ if m == nil {
+ return (*ModuleConfig_DetectionSensorConfig)(nil)
+ }
+ r := new(ModuleConfig_DetectionSensorConfig)
+ r.Enabled = m.Enabled
+ r.MinimumBroadcastSecs = m.MinimumBroadcastSecs
+ r.StateBroadcastSecs = m.StateBroadcastSecs
+ r.SendBell = m.SendBell
+ r.Name = m.Name
+ r.MonitorPin = m.MonitorPin
+ r.DetectionTriggeredHigh = m.DetectionTriggeredHigh
+ r.UsePullup = m.UsePullup
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_AudioConfig) CloneVT() *ModuleConfig_AudioConfig {
+ if m == nil {
+ return (*ModuleConfig_AudioConfig)(nil)
+ }
+ r := new(ModuleConfig_AudioConfig)
+ r.Codec2Enabled = m.Codec2Enabled
+ r.PttPin = m.PttPin
+ r.Bitrate = m.Bitrate
+ r.I2SWs = m.I2SWs
+ r.I2SSd = m.I2SSd
+ r.I2SDin = m.I2SDin
+ r.I2SSck = m.I2SSck
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_AudioConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_PaxcounterConfig) CloneVT() *ModuleConfig_PaxcounterConfig {
+ if m == nil {
+ return (*ModuleConfig_PaxcounterConfig)(nil)
+ }
+ r := new(ModuleConfig_PaxcounterConfig)
+ r.Enabled = m.Enabled
+ r.PaxcounterUpdateInterval = m.PaxcounterUpdateInterval
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_PaxcounterConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_SerialConfig) CloneVT() *ModuleConfig_SerialConfig {
+ if m == nil {
+ return (*ModuleConfig_SerialConfig)(nil)
+ }
+ r := new(ModuleConfig_SerialConfig)
+ r.Enabled = m.Enabled
+ r.Echo = m.Echo
+ r.Rxd = m.Rxd
+ r.Txd = m.Txd
+ r.Baud = m.Baud
+ r.Timeout = m.Timeout
+ r.Mode = m.Mode
+ r.OverrideConsoleSerialPort = m.OverrideConsoleSerialPort
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_SerialConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) CloneVT() *ModuleConfig_ExternalNotificationConfig {
+ if m == nil {
+ return (*ModuleConfig_ExternalNotificationConfig)(nil)
+ }
+ r := new(ModuleConfig_ExternalNotificationConfig)
+ r.Enabled = m.Enabled
+ r.OutputMs = m.OutputMs
+ r.Output = m.Output
+ r.OutputVibra = m.OutputVibra
+ r.OutputBuzzer = m.OutputBuzzer
+ r.Active = m.Active
+ r.AlertMessage = m.AlertMessage
+ r.AlertMessageVibra = m.AlertMessageVibra
+ r.AlertMessageBuzzer = m.AlertMessageBuzzer
+ r.AlertBell = m.AlertBell
+ r.AlertBellVibra = m.AlertBellVibra
+ r.AlertBellBuzzer = m.AlertBellBuzzer
+ r.UsePwm = m.UsePwm
+ r.NagTimeout = m.NagTimeout
+ r.UseI2SAsBuzzer = m.UseI2SAsBuzzer
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_StoreForwardConfig) CloneVT() *ModuleConfig_StoreForwardConfig {
+ if m == nil {
+ return (*ModuleConfig_StoreForwardConfig)(nil)
+ }
+ r := new(ModuleConfig_StoreForwardConfig)
+ r.Enabled = m.Enabled
+ r.Heartbeat = m.Heartbeat
+ r.Records = m.Records
+ r.HistoryReturnMax = m.HistoryReturnMax
+ r.HistoryReturnWindow = m.HistoryReturnWindow
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_StoreForwardConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_RangeTestConfig) CloneVT() *ModuleConfig_RangeTestConfig {
+ if m == nil {
+ return (*ModuleConfig_RangeTestConfig)(nil)
+ }
+ r := new(ModuleConfig_RangeTestConfig)
+ r.Enabled = m.Enabled
+ r.Sender = m.Sender
+ r.Save = m.Save
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_RangeTestConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_TelemetryConfig) CloneVT() *ModuleConfig_TelemetryConfig {
+ if m == nil {
+ return (*ModuleConfig_TelemetryConfig)(nil)
+ }
+ r := new(ModuleConfig_TelemetryConfig)
+ r.DeviceUpdateInterval = m.DeviceUpdateInterval
+ r.EnvironmentUpdateInterval = m.EnvironmentUpdateInterval
+ r.EnvironmentMeasurementEnabled = m.EnvironmentMeasurementEnabled
+ r.EnvironmentScreenEnabled = m.EnvironmentScreenEnabled
+ r.EnvironmentDisplayFahrenheit = m.EnvironmentDisplayFahrenheit
+ r.AirQualityEnabled = m.AirQualityEnabled
+ r.AirQualityInterval = m.AirQualityInterval
+ r.PowerMeasurementEnabled = m.PowerMeasurementEnabled
+ r.PowerUpdateInterval = m.PowerUpdateInterval
+ r.PowerScreenEnabled = m.PowerScreenEnabled
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_TelemetryConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_CannedMessageConfig) CloneVT() *ModuleConfig_CannedMessageConfig {
+ if m == nil {
+ return (*ModuleConfig_CannedMessageConfig)(nil)
+ }
+ r := new(ModuleConfig_CannedMessageConfig)
+ r.Rotary1Enabled = m.Rotary1Enabled
+ r.InputbrokerPinA = m.InputbrokerPinA
+ r.InputbrokerPinB = m.InputbrokerPinB
+ r.InputbrokerPinPress = m.InputbrokerPinPress
+ r.InputbrokerEventCw = m.InputbrokerEventCw
+ r.InputbrokerEventCcw = m.InputbrokerEventCcw
+ r.InputbrokerEventPress = m.InputbrokerEventPress
+ r.Updown1Enabled = m.Updown1Enabled
+ r.Enabled = m.Enabled
+ r.AllowInputSource = m.AllowInputSource
+ r.SendBell = m.SendBell
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_CannedMessageConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) CloneVT() *ModuleConfig_AmbientLightingConfig {
+ if m == nil {
+ return (*ModuleConfig_AmbientLightingConfig)(nil)
+ }
+ r := new(ModuleConfig_AmbientLightingConfig)
+ r.LedState = m.LedState
+ r.Current = m.Current
+ r.Red = m.Red
+ r.Green = m.Green
+ r.Blue = m.Blue
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig) CloneVT() *ModuleConfig {
+ if m == nil {
+ return (*ModuleConfig)(nil)
+ }
+ r := new(ModuleConfig)
+ if m.PayloadVariant != nil {
+ r.PayloadVariant = m.PayloadVariant.(interface {
+ CloneVT() isModuleConfig_PayloadVariant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ModuleConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ModuleConfig_Mqtt) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_Mqtt)(nil)
+ }
+ r := new(ModuleConfig_Mqtt)
+ r.Mqtt = m.Mqtt.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_Serial) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_Serial)(nil)
+ }
+ r := new(ModuleConfig_Serial)
+ r.Serial = m.Serial.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_ExternalNotification) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_ExternalNotification)(nil)
+ }
+ r := new(ModuleConfig_ExternalNotification)
+ r.ExternalNotification = m.ExternalNotification.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_StoreForward) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_StoreForward)(nil)
+ }
+ r := new(ModuleConfig_StoreForward)
+ r.StoreForward = m.StoreForward.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_RangeTest) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_RangeTest)(nil)
+ }
+ r := new(ModuleConfig_RangeTest)
+ r.RangeTest = m.RangeTest.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_Telemetry) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_Telemetry)(nil)
+ }
+ r := new(ModuleConfig_Telemetry)
+ r.Telemetry = m.Telemetry.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_CannedMessage) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_CannedMessage)(nil)
+ }
+ r := new(ModuleConfig_CannedMessage)
+ r.CannedMessage = m.CannedMessage.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_Audio) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_Audio)(nil)
+ }
+ r := new(ModuleConfig_Audio)
+ r.Audio = m.Audio.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_RemoteHardware) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_RemoteHardware)(nil)
+ }
+ r := new(ModuleConfig_RemoteHardware)
+ r.RemoteHardware = m.RemoteHardware.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_NeighborInfo) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_NeighborInfo)(nil)
+ }
+ r := new(ModuleConfig_NeighborInfo)
+ r.NeighborInfo = m.NeighborInfo.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_AmbientLighting) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_AmbientLighting)(nil)
+ }
+ r := new(ModuleConfig_AmbientLighting)
+ r.AmbientLighting = m.AmbientLighting.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_DetectionSensor) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_DetectionSensor)(nil)
+ }
+ r := new(ModuleConfig_DetectionSensor)
+ r.DetectionSensor = m.DetectionSensor.CloneVT()
+ return r
+}
+
+func (m *ModuleConfig_Paxcounter) CloneVT() isModuleConfig_PayloadVariant {
+ if m == nil {
+ return (*ModuleConfig_Paxcounter)(nil)
+ }
+ r := new(ModuleConfig_Paxcounter)
+ r.Paxcounter = m.Paxcounter.CloneVT()
+ return r
+}
+
+func (m *RemoteHardwarePin) CloneVT() *RemoteHardwarePin {
+ if m == nil {
+ return (*RemoteHardwarePin)(nil)
+ }
+ r := new(RemoteHardwarePin)
+ r.GpioPin = m.GpioPin
+ r.Name = m.Name
+ r.Type = m.Type
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *RemoteHardwarePin) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *ModuleConfig_MQTTConfig) EqualVT(that *ModuleConfig_MQTTConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.Address != that.Address {
+ return false
+ }
+ if this.Username != that.Username {
+ return false
+ }
+ if this.Password != that.Password {
+ return false
+ }
+ if this.EncryptionEnabled != that.EncryptionEnabled {
+ return false
+ }
+ if this.JsonEnabled != that.JsonEnabled {
+ return false
+ }
+ if this.TlsEnabled != that.TlsEnabled {
+ return false
+ }
+ if this.Root != that.Root {
+ return false
+ }
+ if this.ProxyToClientEnabled != that.ProxyToClientEnabled {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_MQTTConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_MQTTConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_RemoteHardwareConfig) EqualVT(that *ModuleConfig_RemoteHardwareConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.AllowUndefinedPinAccess != that.AllowUndefinedPinAccess {
+ return false
+ }
+ if len(this.AvailablePins) != len(that.AvailablePins) {
+ return false
+ }
+ for i, vx := range this.AvailablePins {
+ vy := that.AvailablePins[i]
+ if p, q := vx, vy; p != q {
+ if p == nil {
+ p = &RemoteHardwarePin{}
+ }
+ if q == nil {
+ q = &RemoteHardwarePin{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_RemoteHardwareConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_RemoteHardwareConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_NeighborInfoConfig) EqualVT(that *ModuleConfig_NeighborInfoConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.UpdateInterval != that.UpdateInterval {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_NeighborInfoConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_NeighborInfoConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_DetectionSensorConfig) EqualVT(that *ModuleConfig_DetectionSensorConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.MinimumBroadcastSecs != that.MinimumBroadcastSecs {
+ return false
+ }
+ if this.StateBroadcastSecs != that.StateBroadcastSecs {
+ return false
+ }
+ if this.SendBell != that.SendBell {
+ return false
+ }
+ if this.Name != that.Name {
+ return false
+ }
+ if this.MonitorPin != that.MonitorPin {
+ return false
+ }
+ if this.DetectionTriggeredHigh != that.DetectionTriggeredHigh {
+ return false
+ }
+ if this.UsePullup != that.UsePullup {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_DetectionSensorConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_DetectionSensorConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_AudioConfig) EqualVT(that *ModuleConfig_AudioConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Codec2Enabled != that.Codec2Enabled {
+ return false
+ }
+ if this.PttPin != that.PttPin {
+ return false
+ }
+ if this.Bitrate != that.Bitrate {
+ return false
+ }
+ if this.I2SWs != that.I2SWs {
+ return false
+ }
+ if this.I2SSd != that.I2SSd {
+ return false
+ }
+ if this.I2SDin != that.I2SDin {
+ return false
+ }
+ if this.I2SSck != that.I2SSck {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_AudioConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_AudioConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_PaxcounterConfig) EqualVT(that *ModuleConfig_PaxcounterConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.PaxcounterUpdateInterval != that.PaxcounterUpdateInterval {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_PaxcounterConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_PaxcounterConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_SerialConfig) EqualVT(that *ModuleConfig_SerialConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.Echo != that.Echo {
+ return false
+ }
+ if this.Rxd != that.Rxd {
+ return false
+ }
+ if this.Txd != that.Txd {
+ return false
+ }
+ if this.Baud != that.Baud {
+ return false
+ }
+ if this.Timeout != that.Timeout {
+ return false
+ }
+ if this.Mode != that.Mode {
+ return false
+ }
+ if this.OverrideConsoleSerialPort != that.OverrideConsoleSerialPort {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_SerialConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_SerialConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_ExternalNotificationConfig) EqualVT(that *ModuleConfig_ExternalNotificationConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.OutputMs != that.OutputMs {
+ return false
+ }
+ if this.Output != that.Output {
+ return false
+ }
+ if this.Active != that.Active {
+ return false
+ }
+ if this.AlertMessage != that.AlertMessage {
+ return false
+ }
+ if this.AlertBell != that.AlertBell {
+ return false
+ }
+ if this.UsePwm != that.UsePwm {
+ return false
+ }
+ if this.OutputVibra != that.OutputVibra {
+ return false
+ }
+ if this.OutputBuzzer != that.OutputBuzzer {
+ return false
+ }
+ if this.AlertMessageVibra != that.AlertMessageVibra {
+ return false
+ }
+ if this.AlertMessageBuzzer != that.AlertMessageBuzzer {
+ return false
+ }
+ if this.AlertBellVibra != that.AlertBellVibra {
+ return false
+ }
+ if this.AlertBellBuzzer != that.AlertBellBuzzer {
+ return false
+ }
+ if this.NagTimeout != that.NagTimeout {
+ return false
+ }
+ if this.UseI2SAsBuzzer != that.UseI2SAsBuzzer {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_ExternalNotificationConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_ExternalNotificationConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_StoreForwardConfig) EqualVT(that *ModuleConfig_StoreForwardConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.Heartbeat != that.Heartbeat {
+ return false
+ }
+ if this.Records != that.Records {
+ return false
+ }
+ if this.HistoryReturnMax != that.HistoryReturnMax {
+ return false
+ }
+ if this.HistoryReturnWindow != that.HistoryReturnWindow {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_StoreForwardConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_StoreForwardConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_RangeTestConfig) EqualVT(that *ModuleConfig_RangeTestConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.Sender != that.Sender {
+ return false
+ }
+ if this.Save != that.Save {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_RangeTestConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_RangeTestConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_TelemetryConfig) EqualVT(that *ModuleConfig_TelemetryConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.DeviceUpdateInterval != that.DeviceUpdateInterval {
+ return false
+ }
+ if this.EnvironmentUpdateInterval != that.EnvironmentUpdateInterval {
+ return false
+ }
+ if this.EnvironmentMeasurementEnabled != that.EnvironmentMeasurementEnabled {
+ return false
+ }
+ if this.EnvironmentScreenEnabled != that.EnvironmentScreenEnabled {
+ return false
+ }
+ if this.EnvironmentDisplayFahrenheit != that.EnvironmentDisplayFahrenheit {
+ return false
+ }
+ if this.AirQualityEnabled != that.AirQualityEnabled {
+ return false
+ }
+ if this.AirQualityInterval != that.AirQualityInterval {
+ return false
+ }
+ if this.PowerMeasurementEnabled != that.PowerMeasurementEnabled {
+ return false
+ }
+ if this.PowerUpdateInterval != that.PowerUpdateInterval {
+ return false
+ }
+ if this.PowerScreenEnabled != that.PowerScreenEnabled {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_TelemetryConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_TelemetryConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_CannedMessageConfig) EqualVT(that *ModuleConfig_CannedMessageConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Rotary1Enabled != that.Rotary1Enabled {
+ return false
+ }
+ if this.InputbrokerPinA != that.InputbrokerPinA {
+ return false
+ }
+ if this.InputbrokerPinB != that.InputbrokerPinB {
+ return false
+ }
+ if this.InputbrokerPinPress != that.InputbrokerPinPress {
+ return false
+ }
+ if this.InputbrokerEventCw != that.InputbrokerEventCw {
+ return false
+ }
+ if this.InputbrokerEventCcw != that.InputbrokerEventCcw {
+ return false
+ }
+ if this.InputbrokerEventPress != that.InputbrokerEventPress {
+ return false
+ }
+ if this.Updown1Enabled != that.Updown1Enabled {
+ return false
+ }
+ if this.Enabled != that.Enabled {
+ return false
+ }
+ if this.AllowInputSource != that.AllowInputSource {
+ return false
+ }
+ if this.SendBell != that.SendBell {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_CannedMessageConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_CannedMessageConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_AmbientLightingConfig) EqualVT(that *ModuleConfig_AmbientLightingConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.LedState != that.LedState {
+ return false
+ }
+ if this.Current != that.Current {
+ return false
+ }
+ if this.Red != that.Red {
+ return false
+ }
+ if this.Green != that.Green {
+ return false
+ }
+ if this.Blue != that.Blue {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig_AmbientLightingConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig_AmbientLightingConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig) EqualVT(that *ModuleConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.PayloadVariant == nil && that.PayloadVariant != nil {
+ return false
+ } else if this.PayloadVariant != nil {
+ if that.PayloadVariant == nil {
+ return false
+ }
+ if !this.PayloadVariant.(interface {
+ EqualVT(isModuleConfig_PayloadVariant) bool
+ }).EqualVT(that.PayloadVariant) {
+ return false
+ }
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ModuleConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ModuleConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *ModuleConfig_Mqtt) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_Mqtt)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Mqtt, that.Mqtt; p != q {
+ if p == nil {
+ p = &ModuleConfig_MQTTConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_MQTTConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_Serial) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_Serial)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Serial, that.Serial; p != q {
+ if p == nil {
+ p = &ModuleConfig_SerialConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_SerialConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_ExternalNotification) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_ExternalNotification)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.ExternalNotification, that.ExternalNotification; p != q {
+ if p == nil {
+ p = &ModuleConfig_ExternalNotificationConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_ExternalNotificationConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_StoreForward) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_StoreForward)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.StoreForward, that.StoreForward; p != q {
+ if p == nil {
+ p = &ModuleConfig_StoreForwardConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_StoreForwardConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_RangeTest) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_RangeTest)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.RangeTest, that.RangeTest; p != q {
+ if p == nil {
+ p = &ModuleConfig_RangeTestConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_RangeTestConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_Telemetry) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_Telemetry)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Telemetry, that.Telemetry; p != q {
+ if p == nil {
+ p = &ModuleConfig_TelemetryConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_TelemetryConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_CannedMessage) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_CannedMessage)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.CannedMessage, that.CannedMessage; p != q {
+ if p == nil {
+ p = &ModuleConfig_CannedMessageConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_CannedMessageConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_Audio) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_Audio)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Audio, that.Audio; p != q {
+ if p == nil {
+ p = &ModuleConfig_AudioConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_AudioConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_RemoteHardware) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_RemoteHardware)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.RemoteHardware, that.RemoteHardware; p != q {
+ if p == nil {
+ p = &ModuleConfig_RemoteHardwareConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_RemoteHardwareConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_NeighborInfo) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_NeighborInfo)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.NeighborInfo, that.NeighborInfo; p != q {
+ if p == nil {
+ p = &ModuleConfig_NeighborInfoConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_NeighborInfoConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_AmbientLighting) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_AmbientLighting)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.AmbientLighting, that.AmbientLighting; p != q {
+ if p == nil {
+ p = &ModuleConfig_AmbientLightingConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_AmbientLightingConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_DetectionSensor) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_DetectionSensor)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.DetectionSensor, that.DetectionSensor; p != q {
+ if p == nil {
+ p = &ModuleConfig_DetectionSensorConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_DetectionSensorConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *ModuleConfig_Paxcounter) EqualVT(thatIface isModuleConfig_PayloadVariant) bool {
+ that, ok := thatIface.(*ModuleConfig_Paxcounter)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Paxcounter, that.Paxcounter; p != q {
+ if p == nil {
+ p = &ModuleConfig_PaxcounterConfig{}
+ }
+ if q == nil {
+ q = &ModuleConfig_PaxcounterConfig{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *RemoteHardwarePin) EqualVT(that *RemoteHardwarePin) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.GpioPin != that.GpioPin {
+ return false
+ }
+ if this.Name != that.Name {
+ return false
+ }
+ if this.Type != that.Type {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *RemoteHardwarePin) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*RemoteHardwarePin)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *ModuleConfig_MQTTConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_MQTTConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_MQTTConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ProxyToClientEnabled {
+ i--
+ if m.ProxyToClientEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if len(m.Root) > 0 {
+ i -= len(m.Root)
+ copy(dAtA[i:], m.Root)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Root)))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.TlsEnabled {
+ i--
+ if m.TlsEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.JsonEnabled {
+ i--
+ if m.JsonEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.EncryptionEnabled {
+ i--
+ if m.EncryptionEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if len(m.Password) > 0 {
+ i -= len(m.Password)
+ copy(dAtA[i:], m.Password)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Password)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.Username) > 0 {
+ i -= len(m.Username)
+ copy(dAtA[i:], m.Username)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Username)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Address) > 0 {
+ i -= len(m.Address)
+ copy(dAtA[i:], m.Address)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Address)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.AvailablePins) > 0 {
+ for iNdEx := len(m.AvailablePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.AvailablePins[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
+ if m.AllowUndefinedPinAccess {
+ i--
+ if m.AllowUndefinedPinAccess {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UsePullup {
+ i--
+ if m.UsePullup {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.DetectionTriggeredHigh {
+ i--
+ if m.DetectionTriggeredHigh {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.MonitorPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MonitorPin))
+ i--
+ dAtA[i] = 0x30
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.SendBell {
+ i--
+ if m.SendBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.StateBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.StateBroadcastSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.MinimumBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinimumBroadcastSecs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.I2SSck != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SSck))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.I2SDin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SDin))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.I2SSd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SSd))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.I2SWs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SWs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Bitrate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bitrate))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.PttPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PttPin))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Codec2Enabled {
+ i--
+ if m.Codec2Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.PaxcounterUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PaxcounterUpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.OverrideConsoleSerialPort {
+ i--
+ if m.OverrideConsoleSerialPort {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Mode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Mode))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Timeout != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Timeout))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Baud != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Baud))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Txd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Txd))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Rxd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rxd))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Echo {
+ i--
+ if m.Echo {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UseI2SAsBuzzer {
+ i--
+ if m.UseI2SAsBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x78
+ }
+ if m.NagTimeout != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NagTimeout))
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.AlertBellBuzzer {
+ i--
+ if m.AlertBellBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.AlertBellVibra {
+ i--
+ if m.AlertBellVibra {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.AlertMessageBuzzer {
+ i--
+ if m.AlertMessageBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.AlertMessageVibra {
+ i--
+ if m.AlertMessageVibra {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.OutputBuzzer != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputBuzzer))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.OutputVibra != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputVibra))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.UsePwm {
+ i--
+ if m.UsePwm {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.AlertBell {
+ i--
+ if m.AlertBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.AlertMessage {
+ i--
+ if m.AlertMessage {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Active {
+ i--
+ if m.Active {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Output != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Output))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.OutputMs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputMs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.HistoryReturnWindow != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryReturnWindow))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.HistoryReturnMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryReturnMax))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Records != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Records))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Heartbeat {
+ i--
+ if m.Heartbeat {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Save {
+ i--
+ if m.Save {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Sender != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Sender))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.PowerScreenEnabled {
+ i--
+ if m.PowerScreenEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.PowerUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PowerUpdateInterval))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.PowerMeasurementEnabled {
+ i--
+ if m.PowerMeasurementEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.AirQualityInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AirQualityInterval))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.AirQualityEnabled {
+ i--
+ if m.AirQualityEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.EnvironmentDisplayFahrenheit {
+ i--
+ if m.EnvironmentDisplayFahrenheit {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.EnvironmentScreenEnabled {
+ i--
+ if m.EnvironmentScreenEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.EnvironmentMeasurementEnabled {
+ i--
+ if m.EnvironmentMeasurementEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.EnvironmentUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EnvironmentUpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.DeviceUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceUpdateInterval))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.SendBell {
+ i--
+ if m.SendBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if len(m.AllowInputSource) > 0 {
+ i -= len(m.AllowInputSource)
+ copy(dAtA[i:], m.AllowInputSource)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AllowInputSource)))
+ i--
+ dAtA[i] = 0x52
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Updown1Enabled {
+ i--
+ if m.Updown1Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.InputbrokerEventPress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventPress))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.InputbrokerEventCcw != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventCcw))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.InputbrokerEventCw != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventCw))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.InputbrokerPinPress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinPress))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.InputbrokerPinB != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinB))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.InputbrokerPinA != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinA))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Rotary1Enabled {
+ i--
+ if m.Rotary1Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Blue != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Blue))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Green != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Green))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Red != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Red))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Current != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Current))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.LedState {
+ i--
+ if m.LedState {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.PayloadVariant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_Mqtt) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_Mqtt) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Mqtt != nil {
+ size, err := m.Mqtt.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Serial) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_Serial) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_ExternalNotification) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_ExternalNotification) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ExternalNotification != nil {
+ size, err := m.ExternalNotification.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_StoreForward) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_StoreForward) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.StoreForward != nil {
+ size, err := m.StoreForward.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_RangeTest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_RangeTest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RangeTest != nil {
+ size, err := m.RangeTest.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Telemetry) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_Telemetry) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Telemetry != nil {
+ size, err := m.Telemetry.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_CannedMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_CannedMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.CannedMessage != nil {
+ size, err := m.CannedMessage.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Audio) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_Audio) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Audio != nil {
+ size, err := m.Audio.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_RemoteHardware) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_RemoteHardware) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RemoteHardware != nil {
+ size, err := m.RemoteHardware.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_NeighborInfo) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_NeighborInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.NeighborInfo != nil {
+ size, err := m.NeighborInfo.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_AmbientLighting) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_AmbientLighting) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.AmbientLighting != nil {
+ size, err := m.AmbientLighting.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_DetectionSensor) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_DetectionSensor) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.DetectionSensor != nil {
+ size, err := m.DetectionSensor.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Paxcounter) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ModuleConfig_Paxcounter) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Paxcounter != nil {
+ size, err := m.Paxcounter.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *RemoteHardwarePin) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RemoteHardwarePin) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *RemoteHardwarePin) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Type != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.GpioPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioPin))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_MQTTConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_MQTTConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_MQTTConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ProxyToClientEnabled {
+ i--
+ if m.ProxyToClientEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if len(m.Root) > 0 {
+ i -= len(m.Root)
+ copy(dAtA[i:], m.Root)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Root)))
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.TlsEnabled {
+ i--
+ if m.TlsEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.JsonEnabled {
+ i--
+ if m.JsonEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.EncryptionEnabled {
+ i--
+ if m.EncryptionEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if len(m.Password) > 0 {
+ i -= len(m.Password)
+ copy(dAtA[i:], m.Password)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Password)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if len(m.Username) > 0 {
+ i -= len(m.Username)
+ copy(dAtA[i:], m.Username)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Username)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Address) > 0 {
+ i -= len(m.Address)
+ copy(dAtA[i:], m.Address)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Address)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.AvailablePins) > 0 {
+ for iNdEx := len(m.AvailablePins) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.AvailablePins[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
+ if m.AllowUndefinedPinAccess {
+ i--
+ if m.AllowUndefinedPinAccess {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UsePullup {
+ i--
+ if m.UsePullup {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.DetectionTriggeredHigh {
+ i--
+ if m.DetectionTriggeredHigh {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.MonitorPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MonitorPin))
+ i--
+ dAtA[i] = 0x30
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.SendBell {
+ i--
+ if m.SendBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.StateBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.StateBroadcastSecs))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.MinimumBroadcastSecs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MinimumBroadcastSecs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_AudioConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.I2SSck != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SSck))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.I2SDin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SDin))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.I2SSd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SSd))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.I2SWs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.I2SWs))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Bitrate != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bitrate))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.PttPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PttPin))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Codec2Enabled {
+ i--
+ if m.Codec2Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_PaxcounterConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.PaxcounterUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PaxcounterUpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_SerialConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.OverrideConsoleSerialPort {
+ i--
+ if m.OverrideConsoleSerialPort {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Mode != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Mode))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Timeout != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Timeout))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Baud != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Baud))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Txd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Txd))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Rxd != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rxd))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Echo {
+ i--
+ if m.Echo {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.UseI2SAsBuzzer {
+ i--
+ if m.UseI2SAsBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x78
+ }
+ if m.NagTimeout != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NagTimeout))
+ i--
+ dAtA[i] = 0x70
+ }
+ if m.AlertBellBuzzer {
+ i--
+ if m.AlertBellBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x68
+ }
+ if m.AlertBellVibra {
+ i--
+ if m.AlertBellVibra {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.AlertMessageBuzzer {
+ i--
+ if m.AlertMessageBuzzer {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.AlertMessageVibra {
+ i--
+ if m.AlertMessageVibra {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.OutputBuzzer != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputBuzzer))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.OutputVibra != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputVibra))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.UsePwm {
+ i--
+ if m.UsePwm {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.AlertBell {
+ i--
+ if m.AlertBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.AlertMessage {
+ i--
+ if m.AlertMessage {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Active {
+ i--
+ if m.Active {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Output != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Output))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.OutputMs != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OutputMs))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_StoreForwardConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.HistoryReturnWindow != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryReturnWindow))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.HistoryReturnMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryReturnMax))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Records != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Records))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Heartbeat {
+ i--
+ if m.Heartbeat {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_RangeTestConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Save {
+ i--
+ if m.Save {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Sender != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Sender))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_TelemetryConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.PowerScreenEnabled {
+ i--
+ if m.PowerScreenEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.PowerUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PowerUpdateInterval))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.PowerMeasurementEnabled {
+ i--
+ if m.PowerMeasurementEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.AirQualityInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AirQualityInterval))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.AirQualityEnabled {
+ i--
+ if m.AirQualityEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.EnvironmentDisplayFahrenheit {
+ i--
+ if m.EnvironmentDisplayFahrenheit {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.EnvironmentScreenEnabled {
+ i--
+ if m.EnvironmentScreenEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.EnvironmentMeasurementEnabled {
+ i--
+ if m.EnvironmentMeasurementEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.EnvironmentUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.EnvironmentUpdateInterval))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.DeviceUpdateInterval != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeviceUpdateInterval))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_CannedMessageConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.SendBell {
+ i--
+ if m.SendBell {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x58
+ }
+ if len(m.AllowInputSource) > 0 {
+ i -= len(m.AllowInputSource)
+ copy(dAtA[i:], m.AllowInputSource)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AllowInputSource)))
+ i--
+ dAtA[i] = 0x52
+ }
+ if m.Enabled {
+ i--
+ if m.Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Updown1Enabled {
+ i--
+ if m.Updown1Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.InputbrokerEventPress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventPress))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.InputbrokerEventCcw != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventCcw))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.InputbrokerEventCw != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerEventCw))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.InputbrokerPinPress != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinPress))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.InputbrokerPinB != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinB))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.InputbrokerPinA != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.InputbrokerPinA))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Rotary1Enabled {
+ i--
+ if m.Rotary1Enabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Blue != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Blue))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Green != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Green))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Red != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Red))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Current != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Current))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.LedState {
+ i--
+ if m.LedState {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ModuleConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_Paxcounter); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_DetectionSensor); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_AmbientLighting); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_NeighborInfo); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_RemoteHardware); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_Audio); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_CannedMessage); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_Telemetry); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_RangeTest); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_StoreForward); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_ExternalNotification); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_Serial); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.PayloadVariant.(*ModuleConfig_Mqtt); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_Mqtt) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_Mqtt) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Mqtt != nil {
+ size, err := m.Mqtt.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Serial) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_Serial) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Serial != nil {
+ size, err := m.Serial.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_ExternalNotification) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_ExternalNotification) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ExternalNotification != nil {
+ size, err := m.ExternalNotification.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_StoreForward) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_StoreForward) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.StoreForward != nil {
+ size, err := m.StoreForward.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_RangeTest) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_RangeTest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RangeTest != nil {
+ size, err := m.RangeTest.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Telemetry) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_Telemetry) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Telemetry != nil {
+ size, err := m.Telemetry.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x32
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_CannedMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_CannedMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.CannedMessage != nil {
+ size, err := m.CannedMessage.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x3a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Audio) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_Audio) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Audio != nil {
+ size, err := m.Audio.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x42
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_RemoteHardware) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_RemoteHardware) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.RemoteHardware != nil {
+ size, err := m.RemoteHardware.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x4a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_NeighborInfo) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_NeighborInfo) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.NeighborInfo != nil {
+ size, err := m.NeighborInfo.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x52
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_AmbientLighting) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_AmbientLighting) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.AmbientLighting != nil {
+ size, err := m.AmbientLighting.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x5a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_DetectionSensor) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_DetectionSensor) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.DetectionSensor != nil {
+ size, err := m.DetectionSensor.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x62
+ }
+ return len(dAtA) - i, nil
+}
+func (m *ModuleConfig_Paxcounter) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ModuleConfig_Paxcounter) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Paxcounter != nil {
+ size, err := m.Paxcounter.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x6a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *RemoteHardwarePin) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RemoteHardwarePin) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *RemoteHardwarePin) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Type != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.GpioPin != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioPin))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ModuleConfig_MQTTConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ l = len(m.Address)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Username)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Password)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.EncryptionEnabled {
+ n += 2
+ }
+ if m.JsonEnabled {
+ n += 2
+ }
+ if m.TlsEnabled {
+ n += 2
+ }
+ l = len(m.Root)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.ProxyToClientEnabled {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_RemoteHardwareConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.AllowUndefinedPinAccess {
+ n += 2
+ }
+ if len(m.AvailablePins) > 0 {
+ for _, e := range m.AvailablePins {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_NeighborInfoConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.UpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.UpdateInterval))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_DetectionSensorConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.MinimumBroadcastSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MinimumBroadcastSecs))
+ }
+ if m.StateBroadcastSecs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.StateBroadcastSecs))
+ }
+ if m.SendBell {
+ n += 2
+ }
+ l = len(m.Name)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.MonitorPin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MonitorPin))
+ }
+ if m.DetectionTriggeredHigh {
+ n += 2
+ }
+ if m.UsePullup {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_AudioConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Codec2Enabled {
+ n += 2
+ }
+ if m.PttPin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PttPin))
+ }
+ if m.Bitrate != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Bitrate))
+ }
+ if m.I2SWs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.I2SWs))
+ }
+ if m.I2SSd != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.I2SSd))
+ }
+ if m.I2SDin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.I2SDin))
+ }
+ if m.I2SSck != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.I2SSck))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_PaxcounterConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.PaxcounterUpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PaxcounterUpdateInterval))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_SerialConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.Echo {
+ n += 2
+ }
+ if m.Rxd != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Rxd))
+ }
+ if m.Txd != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Txd))
+ }
+ if m.Baud != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Baud))
+ }
+ if m.Timeout != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Timeout))
+ }
+ if m.Mode != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Mode))
+ }
+ if m.OverrideConsoleSerialPort {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_ExternalNotificationConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.OutputMs != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OutputMs))
+ }
+ if m.Output != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Output))
+ }
+ if m.Active {
+ n += 2
+ }
+ if m.AlertMessage {
+ n += 2
+ }
+ if m.AlertBell {
+ n += 2
+ }
+ if m.UsePwm {
+ n += 2
+ }
+ if m.OutputVibra != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OutputVibra))
+ }
+ if m.OutputBuzzer != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.OutputBuzzer))
+ }
+ if m.AlertMessageVibra {
+ n += 2
+ }
+ if m.AlertMessageBuzzer {
+ n += 2
+ }
+ if m.AlertBellVibra {
+ n += 2
+ }
+ if m.AlertBellBuzzer {
+ n += 2
+ }
+ if m.NagTimeout != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.NagTimeout))
+ }
+ if m.UseI2SAsBuzzer {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_StoreForwardConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.Heartbeat {
+ n += 2
+ }
+ if m.Records != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Records))
+ }
+ if m.HistoryReturnMax != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HistoryReturnMax))
+ }
+ if m.HistoryReturnWindow != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HistoryReturnWindow))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_RangeTestConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Enabled {
+ n += 2
+ }
+ if m.Sender != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Sender))
+ }
+ if m.Save {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_TelemetryConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.DeviceUpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.DeviceUpdateInterval))
+ }
+ if m.EnvironmentUpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.EnvironmentUpdateInterval))
+ }
+ if m.EnvironmentMeasurementEnabled {
+ n += 2
+ }
+ if m.EnvironmentScreenEnabled {
+ n += 2
+ }
+ if m.EnvironmentDisplayFahrenheit {
+ n += 2
+ }
+ if m.AirQualityEnabled {
+ n += 2
+ }
+ if m.AirQualityInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.AirQualityInterval))
+ }
+ if m.PowerMeasurementEnabled {
+ n += 2
+ }
+ if m.PowerUpdateInterval != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.PowerUpdateInterval))
+ }
+ if m.PowerScreenEnabled {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_CannedMessageConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Rotary1Enabled {
+ n += 2
+ }
+ if m.InputbrokerPinA != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerPinA))
+ }
+ if m.InputbrokerPinB != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerPinB))
+ }
+ if m.InputbrokerPinPress != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerPinPress))
+ }
+ if m.InputbrokerEventCw != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerEventCw))
+ }
+ if m.InputbrokerEventCcw != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerEventCcw))
+ }
+ if m.InputbrokerEventPress != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.InputbrokerEventPress))
+ }
+ if m.Updown1Enabled {
+ n += 2
+ }
+ if m.Enabled {
+ n += 2
+ }
+ l = len(m.AllowInputSource)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.SendBell {
+ n += 2
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_AmbientLightingConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LedState {
+ n += 2
+ }
+ if m.Current != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Current))
+ }
+ if m.Red != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Red))
+ }
+ if m.Green != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Green))
+ }
+ if m.Blue != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Blue))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if vtmsg, ok := m.PayloadVariant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_Mqtt) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Mqtt != nil {
+ l = m.Mqtt.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_Serial) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Serial != nil {
+ l = m.Serial.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_ExternalNotification) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ExternalNotification != nil {
+ l = m.ExternalNotification.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_StoreForward) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.StoreForward != nil {
+ l = m.StoreForward.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_RangeTest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.RangeTest != nil {
+ l = m.RangeTest.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_Telemetry) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Telemetry != nil {
+ l = m.Telemetry.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_CannedMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.CannedMessage != nil {
+ l = m.CannedMessage.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_Audio) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Audio != nil {
+ l = m.Audio.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_RemoteHardware) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.RemoteHardware != nil {
+ l = m.RemoteHardware.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_NeighborInfo) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.NeighborInfo != nil {
+ l = m.NeighborInfo.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_AmbientLighting) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.AmbientLighting != nil {
+ l = m.AmbientLighting.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_DetectionSensor) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.DetectionSensor != nil {
+ l = m.DetectionSensor.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *ModuleConfig_Paxcounter) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Paxcounter != nil {
+ l = m.Paxcounter.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *RemoteHardwarePin) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.GpioPin != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpioPin))
+ }
+ l = len(m.Name)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Type != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Type))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ModuleConfig_MQTTConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_MQTTConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_MQTTConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Address = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Username = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Password", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Password = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EncryptionEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EncryptionEnabled = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field JsonEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.JsonEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TlsEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.TlsEnabled = bool(v != 0)
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Root = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ProxyToClientEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ProxyToClientEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_RemoteHardwareConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_RemoteHardwareConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_RemoteHardwareConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowUndefinedPinAccess", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AllowUndefinedPinAccess = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AvailablePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.AvailablePins = append(m.AvailablePins, &RemoteHardwarePin{})
+ if err := m.AvailablePins[len(m.AvailablePins)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_NeighborInfoConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_NeighborInfoConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_NeighborInfoConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UpdateInterval", wireType)
+ }
+ m.UpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.UpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_DetectionSensorConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_DetectionSensorConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_DetectionSensorConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinimumBroadcastSecs", wireType)
+ }
+ m.MinimumBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinimumBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StateBroadcastSecs", wireType)
+ }
+ m.StateBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.StateBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SendBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SendBell = bool(v != 0)
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MonitorPin", wireType)
+ }
+ m.MonitorPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MonitorPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionTriggeredHigh", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DetectionTriggeredHigh = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePullup", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePullup = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_AudioConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_AudioConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_AudioConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Codec2Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Codec2Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PttPin", wireType)
+ }
+ m.PttPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PttPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bitrate", wireType)
+ }
+ m.Bitrate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Bitrate |= ModuleConfig_AudioConfig_Audio_Baud(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SWs", wireType)
+ }
+ m.I2SWs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SWs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SSd", wireType)
+ }
+ m.I2SSd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SSd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SDin", wireType)
+ }
+ m.I2SDin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SDin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SSck", wireType)
+ }
+ m.I2SSck = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SSck |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_PaxcounterConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_PaxcounterConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_PaxcounterConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PaxcounterUpdateInterval", wireType)
+ }
+ m.PaxcounterUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PaxcounterUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_SerialConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_SerialConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_SerialConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Echo = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rxd", wireType)
+ }
+ m.Rxd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rxd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Txd", wireType)
+ }
+ m.Txd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Txd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Baud", wireType)
+ }
+ m.Baud = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Baud |= ModuleConfig_SerialConfig_Serial_Baud(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType)
+ }
+ m.Timeout = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Timeout |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
+ }
+ m.Mode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Mode |= ModuleConfig_SerialConfig_Serial_Mode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideConsoleSerialPort", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.OverrideConsoleSerialPort = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_ExternalNotificationConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_ExternalNotificationConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_ExternalNotificationConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputMs", wireType)
+ }
+ m.OutputMs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputMs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType)
+ }
+ m.Output = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Output |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Active = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessage", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessage = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBell = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePwm", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePwm = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputVibra", wireType)
+ }
+ m.OutputVibra = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputVibra |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputBuzzer", wireType)
+ }
+ m.OutputBuzzer = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputBuzzer |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessageVibra", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessageVibra = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessageBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessageBuzzer = bool(v != 0)
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBellVibra", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBellVibra = bool(v != 0)
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBellBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBellBuzzer = bool(v != 0)
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NagTimeout", wireType)
+ }
+ m.NagTimeout = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NagTimeout |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 15:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UseI2SAsBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UseI2SAsBuzzer = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_StoreForwardConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_StoreForwardConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_StoreForwardConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Heartbeat = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Records", wireType)
+ }
+ m.Records = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Records |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryReturnMax", wireType)
+ }
+ m.HistoryReturnMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryReturnMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryReturnWindow", wireType)
+ }
+ m.HistoryReturnWindow = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryReturnWindow |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_RangeTestConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_RangeTestConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_RangeTestConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
+ }
+ m.Sender = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Sender |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Save", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Save = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_TelemetryConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_TelemetryConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_TelemetryConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceUpdateInterval", wireType)
+ }
+ m.DeviceUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentUpdateInterval", wireType)
+ }
+ m.EnvironmentUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.EnvironmentUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentMeasurementEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentMeasurementEnabled = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentScreenEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentScreenEnabled = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentDisplayFahrenheit", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentDisplayFahrenheit = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AirQualityEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityInterval", wireType)
+ }
+ m.AirQualityInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AirQualityInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerMeasurementEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PowerMeasurementEnabled = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerUpdateInterval", wireType)
+ }
+ m.PowerUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PowerUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerScreenEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PowerScreenEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_CannedMessageConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_CannedMessageConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_CannedMessageConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rotary1Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Rotary1Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinA", wireType)
+ }
+ m.InputbrokerPinA = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinA |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinB", wireType)
+ }
+ m.InputbrokerPinB = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinB |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinPress", wireType)
+ }
+ m.InputbrokerPinPress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinPress |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventCw", wireType)
+ }
+ m.InputbrokerEventCw = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventCw |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventCcw", wireType)
+ }
+ m.InputbrokerEventCcw = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventCcw |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventPress", wireType)
+ }
+ m.InputbrokerEventPress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventPress |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Updown1Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Updown1Enabled = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowInputSource", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.AllowInputSource = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SendBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SendBell = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_AmbientLightingConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_AmbientLightingConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_AmbientLightingConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LedState", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.LedState = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
+ }
+ m.Current = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Current |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Red", wireType)
+ }
+ m.Red = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Red |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Green", wireType)
+ }
+ m.Green = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Green |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Blue", wireType)
+ }
+ m.Blue = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Blue |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mqtt", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Mqtt); ok {
+ if err := oneof.Mqtt.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_MQTTConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Mqtt{Mqtt: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Serial); ok {
+ if err := oneof.Serial.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_SerialConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Serial{Serial: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExternalNotification", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_ExternalNotification); ok {
+ if err := oneof.ExternalNotification.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_ExternalNotificationConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_ExternalNotification{ExternalNotification: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StoreForward", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_StoreForward); ok {
+ if err := oneof.StoreForward.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_StoreForwardConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_StoreForward{StoreForward: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RangeTest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_RangeTest); ok {
+ if err := oneof.RangeTest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_RangeTestConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_RangeTest{RangeTest: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Telemetry", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Telemetry); ok {
+ if err := oneof.Telemetry.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_TelemetryConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Telemetry{Telemetry: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CannedMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_CannedMessage); ok {
+ if err := oneof.CannedMessage.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_CannedMessageConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_CannedMessage{CannedMessage: v}
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Audio", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Audio); ok {
+ if err := oneof.Audio.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_AudioConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Audio{Audio: v}
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoteHardware", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_RemoteHardware); ok {
+ if err := oneof.RemoteHardware.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_RemoteHardwareConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_RemoteHardware{RemoteHardware: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NeighborInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_NeighborInfo); ok {
+ if err := oneof.NeighborInfo.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_NeighborInfoConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_NeighborInfo{NeighborInfo: v}
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AmbientLighting", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_AmbientLighting); ok {
+ if err := oneof.AmbientLighting.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_AmbientLightingConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_AmbientLighting{AmbientLighting: v}
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionSensor", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_DetectionSensor); ok {
+ if err := oneof.DetectionSensor.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_DetectionSensorConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_DetectionSensor{DetectionSensor: v}
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Paxcounter", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Paxcounter); ok {
+ if err := oneof.Paxcounter.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_PaxcounterConfig{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Paxcounter{Paxcounter: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RemoteHardwarePin) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RemoteHardwarePin: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RemoteHardwarePin: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioPin", wireType)
+ }
+ m.GpioPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+ }
+ m.Type = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Type |= RemoteHardwarePinType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_MQTTConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_MQTTConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_MQTTConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Address = stringValue
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Username = stringValue
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Password", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Password = stringValue
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EncryptionEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EncryptionEnabled = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field JsonEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.JsonEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TlsEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.TlsEnabled = bool(v != 0)
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Root = stringValue
+ iNdEx = postIndex
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ProxyToClientEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ProxyToClientEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_RemoteHardwareConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_RemoteHardwareConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_RemoteHardwareConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowUndefinedPinAccess", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AllowUndefinedPinAccess = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AvailablePins", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.AvailablePins = append(m.AvailablePins, &RemoteHardwarePin{})
+ if err := m.AvailablePins[len(m.AvailablePins)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_NeighborInfoConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_NeighborInfoConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_NeighborInfoConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UpdateInterval", wireType)
+ }
+ m.UpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.UpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_DetectionSensorConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_DetectionSensorConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_DetectionSensorConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MinimumBroadcastSecs", wireType)
+ }
+ m.MinimumBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MinimumBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StateBroadcastSecs", wireType)
+ }
+ m.StateBroadcastSecs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.StateBroadcastSecs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SendBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SendBell = bool(v != 0)
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Name = stringValue
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MonitorPin", wireType)
+ }
+ m.MonitorPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MonitorPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionTriggeredHigh", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.DetectionTriggeredHigh = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePullup", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePullup = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_AudioConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_AudioConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_AudioConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Codec2Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Codec2Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PttPin", wireType)
+ }
+ m.PttPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PttPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bitrate", wireType)
+ }
+ m.Bitrate = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Bitrate |= ModuleConfig_AudioConfig_Audio_Baud(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SWs", wireType)
+ }
+ m.I2SWs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SWs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SSd", wireType)
+ }
+ m.I2SSd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SSd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SDin", wireType)
+ }
+ m.I2SDin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SDin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field I2SSck", wireType)
+ }
+ m.I2SSck = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.I2SSck |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_PaxcounterConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_PaxcounterConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_PaxcounterConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PaxcounterUpdateInterval", wireType)
+ }
+ m.PaxcounterUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PaxcounterUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_SerialConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_SerialConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_SerialConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Echo = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rxd", wireType)
+ }
+ m.Rxd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rxd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Txd", wireType)
+ }
+ m.Txd = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Txd |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Baud", wireType)
+ }
+ m.Baud = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Baud |= ModuleConfig_SerialConfig_Serial_Baud(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType)
+ }
+ m.Timeout = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Timeout |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
+ }
+ m.Mode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Mode |= ModuleConfig_SerialConfig_Serial_Mode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OverrideConsoleSerialPort", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.OverrideConsoleSerialPort = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_ExternalNotificationConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_ExternalNotificationConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_ExternalNotificationConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputMs", wireType)
+ }
+ m.OutputMs = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputMs |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType)
+ }
+ m.Output = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Output |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Active = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessage", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessage = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBell = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UsePwm", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UsePwm = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputVibra", wireType)
+ }
+ m.OutputVibra = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputVibra |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OutputBuzzer", wireType)
+ }
+ m.OutputBuzzer = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OutputBuzzer |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessageVibra", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessageVibra = bool(v != 0)
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertMessageBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertMessageBuzzer = bool(v != 0)
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBellVibra", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBellVibra = bool(v != 0)
+ case 13:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AlertBellBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AlertBellBuzzer = bool(v != 0)
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NagTimeout", wireType)
+ }
+ m.NagTimeout = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NagTimeout |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 15:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UseI2SAsBuzzer", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.UseI2SAsBuzzer = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_StoreForwardConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_StoreForwardConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_StoreForwardConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Heartbeat = bool(v != 0)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Records", wireType)
+ }
+ m.Records = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Records |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryReturnMax", wireType)
+ }
+ m.HistoryReturnMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryReturnMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryReturnWindow", wireType)
+ }
+ m.HistoryReturnWindow = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryReturnWindow |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_RangeTestConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_RangeTestConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_RangeTestConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
+ }
+ m.Sender = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Sender |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Save", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Save = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_TelemetryConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_TelemetryConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_TelemetryConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceUpdateInterval", wireType)
+ }
+ m.DeviceUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeviceUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentUpdateInterval", wireType)
+ }
+ m.EnvironmentUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.EnvironmentUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentMeasurementEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentMeasurementEnabled = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentScreenEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentScreenEnabled = bool(v != 0)
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentDisplayFahrenheit", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.EnvironmentDisplayFahrenheit = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AirQualityEnabled = bool(v != 0)
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityInterval", wireType)
+ }
+ m.AirQualityInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AirQualityInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerMeasurementEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PowerMeasurementEnabled = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerUpdateInterval", wireType)
+ }
+ m.PowerUpdateInterval = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.PowerUpdateInterval |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerScreenEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.PowerScreenEnabled = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_CannedMessageConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_CannedMessageConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_CannedMessageConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rotary1Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Rotary1Enabled = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinA", wireType)
+ }
+ m.InputbrokerPinA = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinA |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinB", wireType)
+ }
+ m.InputbrokerPinB = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinB |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerPinPress", wireType)
+ }
+ m.InputbrokerPinPress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerPinPress |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventCw", wireType)
+ }
+ m.InputbrokerEventCw = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventCw |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventCcw", wireType)
+ }
+ m.InputbrokerEventCcw = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventCcw |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field InputbrokerEventPress", wireType)
+ }
+ m.InputbrokerEventPress = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.InputbrokerEventPress |= ModuleConfig_CannedMessageConfig_InputEventChar(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Updown1Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Updown1Enabled = bool(v != 0)
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Enabled = bool(v != 0)
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowInputSource", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.AllowInputSource = stringValue
+ iNdEx = postIndex
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SendBell", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SendBell = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig_AmbientLightingConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig_AmbientLightingConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig_AmbientLightingConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LedState", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.LedState = bool(v != 0)
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
+ }
+ m.Current = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Current |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Red", wireType)
+ }
+ m.Red = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Red |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Green", wireType)
+ }
+ m.Green = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Green |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Blue", wireType)
+ }
+ m.Blue = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Blue |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ModuleConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ModuleConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ModuleConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Mqtt", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Mqtt); ok {
+ if err := oneof.Mqtt.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_MQTTConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Mqtt{Mqtt: v}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Serial", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Serial); ok {
+ if err := oneof.Serial.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_SerialConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Serial{Serial: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExternalNotification", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_ExternalNotification); ok {
+ if err := oneof.ExternalNotification.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_ExternalNotificationConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_ExternalNotification{ExternalNotification: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field StoreForward", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_StoreForward); ok {
+ if err := oneof.StoreForward.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_StoreForwardConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_StoreForward{StoreForward: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RangeTest", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_RangeTest); ok {
+ if err := oneof.RangeTest.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_RangeTestConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_RangeTest{RangeTest: v}
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Telemetry", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Telemetry); ok {
+ if err := oneof.Telemetry.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_TelemetryConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Telemetry{Telemetry: v}
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CannedMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_CannedMessage); ok {
+ if err := oneof.CannedMessage.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_CannedMessageConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_CannedMessage{CannedMessage: v}
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Audio", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Audio); ok {
+ if err := oneof.Audio.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_AudioConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Audio{Audio: v}
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RemoteHardware", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_RemoteHardware); ok {
+ if err := oneof.RemoteHardware.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_RemoteHardwareConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_RemoteHardware{RemoteHardware: v}
+ }
+ iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NeighborInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_NeighborInfo); ok {
+ if err := oneof.NeighborInfo.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_NeighborInfoConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_NeighborInfo{NeighborInfo: v}
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AmbientLighting", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_AmbientLighting); ok {
+ if err := oneof.AmbientLighting.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_AmbientLightingConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_AmbientLighting{AmbientLighting: v}
+ }
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DetectionSensor", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_DetectionSensor); ok {
+ if err := oneof.DetectionSensor.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_DetectionSensorConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_DetectionSensor{DetectionSensor: v}
+ }
+ iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Paxcounter", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.PayloadVariant.(*ModuleConfig_Paxcounter); ok {
+ if err := oneof.Paxcounter.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &ModuleConfig_PaxcounterConfig{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.PayloadVariant = &ModuleConfig_Paxcounter{Paxcounter: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RemoteHardwarePin) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RemoteHardwarePin: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RemoteHardwarePin: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioPin", wireType)
+ }
+ m.GpioPin = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioPin |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Name = stringValue
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+ }
+ m.Type = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Type |= RemoteHardwarePinType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/mqtt.pb.go b/meshtastic/mqtt.pb.go
new file mode 100644
index 0000000..22e2d0e
--- /dev/null
+++ b/meshtastic/mqtt.pb.go
@@ -0,0 +1,180 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/mqtt.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// This message wraps a MeshPacket with extra metadata about the sender and how it arrived.
+type ServiceEnvelope struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The (probably encrypted) packet
+ Packet *MeshPacket `protobuf:"bytes,1,opt,name=packet,proto3" json:"packet,omitempty"`
+ // The global channel ID it was sent on
+ ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ // 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
+ GatewayId string `protobuf:"bytes,3,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
+}
+
+func (x *ServiceEnvelope) Reset() {
+ *x = ServiceEnvelope{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_mqtt_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ServiceEnvelope) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceEnvelope) ProtoMessage() {}
+
+func (x *ServiceEnvelope) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_mqtt_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ServiceEnvelope.ProtoReflect.Descriptor instead.
+func (*ServiceEnvelope) Descriptor() ([]byte, []int) {
+ return file_meshtastic_mqtt_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ServiceEnvelope) GetPacket() *MeshPacket {
+ if x != nil {
+ return x.Packet
+ }
+ return nil
+}
+
+func (x *ServiceEnvelope) GetChannelId() string {
+ if x != nil {
+ return x.ChannelId
+ }
+ return ""
+}
+
+func (x *ServiceEnvelope) GetGatewayId() string {
+ if x != nil {
+ return x.GatewayId
+ }
+ return ""
+}
+
+var File_meshtastic_mqtt_proto protoreflect.FileDescriptor
+
+var file_meshtastic_mqtt_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6d, 0x71, 0x74,
+ 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x1a, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7f, 0x0a, 0x0f, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x2e, 0x0a,
+ 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50,
+ 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x42, 0x5f, 0x0a, 0x13, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x42, 0x0a, 0x4d, 0x51, 0x54, 0x54, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22,
+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
+ 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_mqtt_proto_rawDescOnce sync.Once
+ file_meshtastic_mqtt_proto_rawDescData = file_meshtastic_mqtt_proto_rawDesc
+)
+
+func file_meshtastic_mqtt_proto_rawDescGZIP() []byte {
+ file_meshtastic_mqtt_proto_rawDescOnce.Do(func() {
+ file_meshtastic_mqtt_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_mqtt_proto_rawDescData)
+ })
+ return file_meshtastic_mqtt_proto_rawDescData
+}
+
+var file_meshtastic_mqtt_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_mqtt_proto_goTypes = []interface{}{
+ (*ServiceEnvelope)(nil), // 0: meshtastic.ServiceEnvelope
+ (*MeshPacket)(nil), // 1: meshtastic.MeshPacket
+}
+var file_meshtastic_mqtt_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.ServiceEnvelope.packet:type_name -> meshtastic.MeshPacket
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_mqtt_proto_init() }
+func file_meshtastic_mqtt_proto_init() {
+ if File_meshtastic_mqtt_proto != nil {
+ return
+ }
+ file_meshtastic_mesh_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_mqtt_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ServiceEnvelope); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_mqtt_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_mqtt_proto_goTypes,
+ DependencyIndexes: file_meshtastic_mqtt_proto_depIdxs,
+ MessageInfos: file_meshtastic_mqtt_proto_msgTypes,
+ }.Build()
+ File_meshtastic_mqtt_proto = out.File
+ file_meshtastic_mqtt_proto_rawDesc = nil
+ file_meshtastic_mqtt_proto_goTypes = nil
+ file_meshtastic_mqtt_proto_depIdxs = nil
+}
diff --git a/meshtastic/mqtt_vtproto.pb.go b/meshtastic/mqtt_vtproto.pb.go
new file mode 100644
index 0000000..2f3c5a8
--- /dev/null
+++ b/meshtastic/mqtt_vtproto.pb.go
@@ -0,0 +1,512 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/mqtt.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *ServiceEnvelope) CloneVT() *ServiceEnvelope {
+ if m == nil {
+ return (*ServiceEnvelope)(nil)
+ }
+ r := new(ServiceEnvelope)
+ r.Packet = m.Packet.CloneVT()
+ r.ChannelId = m.ChannelId
+ r.GatewayId = m.GatewayId
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ServiceEnvelope) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *ServiceEnvelope) EqualVT(that *ServiceEnvelope) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if !this.Packet.EqualVT(that.Packet) {
+ return false
+ }
+ if this.ChannelId != that.ChannelId {
+ return false
+ }
+ if this.GatewayId != that.GatewayId {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *ServiceEnvelope) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*ServiceEnvelope)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *ServiceEnvelope) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ServiceEnvelope) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ServiceEnvelope) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.GatewayId) > 0 {
+ i -= len(m.GatewayId)
+ copy(dAtA[i:], m.GatewayId)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GatewayId)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.ChannelId) > 0 {
+ i -= len(m.ChannelId)
+ copy(dAtA[i:], m.ChannelId)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ServiceEnvelope) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ServiceEnvelope) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *ServiceEnvelope) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.GatewayId) > 0 {
+ i -= len(m.GatewayId)
+ copy(dAtA[i:], m.GatewayId)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GatewayId)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.ChannelId) > 0 {
+ i -= len(m.ChannelId)
+ copy(dAtA[i:], m.ChannelId)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Packet != nil {
+ size, err := m.Packet.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ServiceEnvelope) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Packet != nil {
+ l = m.Packet.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.ChannelId)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.GatewayId)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ServiceEnvelope) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ServiceEnvelope: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ServiceEnvelope: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Packet == nil {
+ m.Packet = &MeshPacket{}
+ }
+ if err := m.Packet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChannelId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GatewayId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.GatewayId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ServiceEnvelope) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ServiceEnvelope: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ServiceEnvelope: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Packet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Packet == nil {
+ m.Packet = &MeshPacket{}
+ }
+ if err := m.Packet.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.ChannelId = stringValue
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GatewayId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.GatewayId = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/paxcount.pb.go b/meshtastic/paxcount.pb.go
new file mode 100644
index 0000000..0cf7c3f
--- /dev/null
+++ b/meshtastic/paxcount.pb.go
@@ -0,0 +1,170 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/paxcount.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// TODO: REPLACE
+type Paxcount struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // seen Wifi devices
+ Wifi uint32 `protobuf:"varint,1,opt,name=wifi,proto3" json:"wifi,omitempty"`
+ // Seen BLE devices
+ Ble uint32 `protobuf:"varint,2,opt,name=ble,proto3" json:"ble,omitempty"`
+ // Uptime in seconds
+ Uptime uint32 `protobuf:"varint,3,opt,name=uptime,proto3" json:"uptime,omitempty"`
+}
+
+func (x *Paxcount) Reset() {
+ *x = Paxcount{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_paxcount_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Paxcount) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Paxcount) ProtoMessage() {}
+
+func (x *Paxcount) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_paxcount_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Paxcount.ProtoReflect.Descriptor instead.
+func (*Paxcount) Descriptor() ([]byte, []int) {
+ return file_meshtastic_paxcount_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Paxcount) GetWifi() uint32 {
+ if x != nil {
+ return x.Wifi
+ }
+ return 0
+}
+
+func (x *Paxcount) GetBle() uint32 {
+ if x != nil {
+ return x.Ble
+ }
+ return 0
+}
+
+func (x *Paxcount) GetUptime() uint32 {
+ if x != nil {
+ return x.Uptime
+ }
+ return 0
+}
+
+var File_meshtastic_paxcount_proto protoreflect.FileDescriptor
+
+var file_meshtastic_paxcount_proto_rawDesc = []byte{
+ 0x0a, 0x19, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x70, 0x61, 0x78,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0x48, 0x0a, 0x08, 0x50, 0x61, 0x78, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x77, 0x69, 0x66, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6c, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d,
+ 0x65, 0x42, 0x63, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69,
+ 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0e, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_paxcount_proto_rawDescOnce sync.Once
+ file_meshtastic_paxcount_proto_rawDescData = file_meshtastic_paxcount_proto_rawDesc
+)
+
+func file_meshtastic_paxcount_proto_rawDescGZIP() []byte {
+ file_meshtastic_paxcount_proto_rawDescOnce.Do(func() {
+ file_meshtastic_paxcount_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_paxcount_proto_rawDescData)
+ })
+ return file_meshtastic_paxcount_proto_rawDescData
+}
+
+var file_meshtastic_paxcount_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_paxcount_proto_goTypes = []interface{}{
+ (*Paxcount)(nil), // 0: meshtastic.Paxcount
+}
+var file_meshtastic_paxcount_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_paxcount_proto_init() }
+func file_meshtastic_paxcount_proto_init() {
+ if File_meshtastic_paxcount_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_paxcount_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Paxcount); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_paxcount_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_paxcount_proto_goTypes,
+ DependencyIndexes: file_meshtastic_paxcount_proto_depIdxs,
+ MessageInfos: file_meshtastic_paxcount_proto_msgTypes,
+ }.Build()
+ File_meshtastic_paxcount_proto = out.File
+ file_meshtastic_paxcount_proto_rawDesc = nil
+ file_meshtastic_paxcount_proto_goTypes = nil
+ file_meshtastic_paxcount_proto_depIdxs = nil
+}
diff --git a/meshtastic/paxcount_vtproto.pb.go b/meshtastic/paxcount_vtproto.pb.go
new file mode 100644
index 0000000..0f0f046
--- /dev/null
+++ b/meshtastic/paxcount_vtproto.pb.go
@@ -0,0 +1,396 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/paxcount.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *Paxcount) CloneVT() *Paxcount {
+ if m == nil {
+ return (*Paxcount)(nil)
+ }
+ r := new(Paxcount)
+ r.Wifi = m.Wifi
+ r.Ble = m.Ble
+ r.Uptime = m.Uptime
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Paxcount) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *Paxcount) EqualVT(that *Paxcount) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Wifi != that.Wifi {
+ return false
+ }
+ if this.Ble != that.Ble {
+ return false
+ }
+ if this.Uptime != that.Uptime {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Paxcount) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Paxcount)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *Paxcount) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Paxcount) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Paxcount) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Uptime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Uptime))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Ble != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Ble))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Wifi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Wifi))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Paxcount) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Paxcount) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Paxcount) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Uptime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Uptime))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Ble != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Ble))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Wifi != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Wifi))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Paxcount) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Wifi != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Wifi))
+ }
+ if m.Ble != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Ble))
+ }
+ if m.Uptime != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Uptime))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Paxcount) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Paxcount: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Paxcount: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Wifi", wireType)
+ }
+ m.Wifi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Wifi |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ble", wireType)
+ }
+ m.Ble = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Ble |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Uptime", wireType)
+ }
+ m.Uptime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Uptime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Paxcount) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Paxcount: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Paxcount: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Wifi", wireType)
+ }
+ m.Wifi = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Wifi |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ble", wireType)
+ }
+ m.Ble = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Ble |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Uptime", wireType)
+ }
+ m.Uptime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Uptime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/portnums.pb.go b/meshtastic/portnums.pb.go
new file mode 100644
index 0000000..e362328
--- /dev/null
+++ b/meshtastic/portnums.pb.go
@@ -0,0 +1,328 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/portnums.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 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.
+type PortNum int32
+
+const (
+ // 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
+ PortNum_UNKNOWN_APP PortNum = 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 (?)
+ PortNum_TEXT_MESSAGE_APP PortNum = 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
+ PortNum_REMOTE_HARDWARE_APP PortNum = 2
+ // The built-in position messaging app.
+ // Payload is a [Position](/docs/developers/protobufs/api#position) message
+ // ENCODING: Protobuf
+ PortNum_POSITION_APP PortNum = 3
+ // The built-in user info app.
+ // Payload is a [User](/docs/developers/protobufs/api#user) message
+ // ENCODING: Protobuf
+ PortNum_NODEINFO_APP PortNum = 4
+ // Protocol control packets for mesh protocol use.
+ // Payload is a [Routing](/docs/developers/protobufs/api#routing) message
+ // ENCODING: Protobuf
+ PortNum_ROUTING_APP PortNum = 5
+ // Admin control packets.
+ // Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message
+ // ENCODING: Protobuf
+ PortNum_ADMIN_APP PortNum = 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.
+ PortNum_TEXT_MESSAGE_COMPRESSED_APP PortNum = 7
+ // Waypoint payloads.
+ // Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message
+ // ENCODING: Protobuf
+ PortNum_WAYPOINT_APP PortNum = 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.
+ PortNum_AUDIO_APP PortNum = 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
+ PortNum_DETECTION_SENSOR_APP PortNum = 10
+ // Provides a 'ping' service that replies to any packet it receives.
+ // Also serves as a small example module.
+ // ENCODING: ASCII Plaintext
+ PortNum_REPLY_APP PortNum = 32
+ // Used for the python IP tunnel feature
+ // ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
+ PortNum_IP_TUNNEL_APP PortNum = 33
+ // Paxcounter lib included in the firmware
+ // ENCODING: protobuf
+ PortNum_PAXCOUNTER_APP PortNum = 34
+ // 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
+ PortNum_SERIAL_APP PortNum = 64
+ // STORE_FORWARD_APP (Work in Progress)
+ // Maintained by Jm Casler (MC Hamster) : [email protected]
+ // ENCODING: Protobuf
+ PortNum_STORE_FORWARD_APP PortNum = 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
+ PortNum_RANGE_TEST_APP PortNum = 66
+ // Provides a format to send and receive telemetry data from the Meshtastic network.
+ // Maintained by Charles Crossan (crossan007) : [email protected]
+ // ENCODING: Protobuf
+ PortNum_TELEMETRY_APP PortNum = 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
+ PortNum_ZPS_APP PortNum = 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 (?)
+ PortNum_SIMULATOR_APP PortNum = 69
+ // Provides a traceroute functionality to show the route a packet towards
+ // a certain destination would take on the mesh.
+ // ENCODING: Protobuf
+ PortNum_TRACEROUTE_APP PortNum = 70
+ // Aggregates edge info for the network by sending out a list of each node's neighbors
+ // ENCODING: Protobuf
+ PortNum_NEIGHBORINFO_APP PortNum = 71
+ // ATAK Plugin
+ // Portnum for payloads from the official Meshtastic ATAK plugin
+ PortNum_ATAK_PLUGIN PortNum = 72
+ // 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))
+ PortNum_PRIVATE_APP PortNum = 256
+ // ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
+ // ENCODING: libcotshrink
+ PortNum_ATAK_FORWARDER PortNum = 257
+ // Currently we limit port nums to no higher than this value
+ PortNum_MAX PortNum = 511
+)
+
+// Enum value maps for PortNum.
+var (
+ PortNum_name = map[int32]string{
+ 0: "UNKNOWN_APP",
+ 1: "TEXT_MESSAGE_APP",
+ 2: "REMOTE_HARDWARE_APP",
+ 3: "POSITION_APP",
+ 4: "NODEINFO_APP",
+ 5: "ROUTING_APP",
+ 6: "ADMIN_APP",
+ 7: "TEXT_MESSAGE_COMPRESSED_APP",
+ 8: "WAYPOINT_APP",
+ 9: "AUDIO_APP",
+ 10: "DETECTION_SENSOR_APP",
+ 32: "REPLY_APP",
+ 33: "IP_TUNNEL_APP",
+ 34: "PAXCOUNTER_APP",
+ 64: "SERIAL_APP",
+ 65: "STORE_FORWARD_APP",
+ 66: "RANGE_TEST_APP",
+ 67: "TELEMETRY_APP",
+ 68: "ZPS_APP",
+ 69: "SIMULATOR_APP",
+ 70: "TRACEROUTE_APP",
+ 71: "NEIGHBORINFO_APP",
+ 72: "ATAK_PLUGIN",
+ 256: "PRIVATE_APP",
+ 257: "ATAK_FORWARDER",
+ 511: "MAX",
+ }
+ PortNum_value = map[string]int32{
+ "UNKNOWN_APP": 0,
+ "TEXT_MESSAGE_APP": 1,
+ "REMOTE_HARDWARE_APP": 2,
+ "POSITION_APP": 3,
+ "NODEINFO_APP": 4,
+ "ROUTING_APP": 5,
+ "ADMIN_APP": 6,
+ "TEXT_MESSAGE_COMPRESSED_APP": 7,
+ "WAYPOINT_APP": 8,
+ "AUDIO_APP": 9,
+ "DETECTION_SENSOR_APP": 10,
+ "REPLY_APP": 32,
+ "IP_TUNNEL_APP": 33,
+ "PAXCOUNTER_APP": 34,
+ "SERIAL_APP": 64,
+ "STORE_FORWARD_APP": 65,
+ "RANGE_TEST_APP": 66,
+ "TELEMETRY_APP": 67,
+ "ZPS_APP": 68,
+ "SIMULATOR_APP": 69,
+ "TRACEROUTE_APP": 70,
+ "NEIGHBORINFO_APP": 71,
+ "ATAK_PLUGIN": 72,
+ "PRIVATE_APP": 256,
+ "ATAK_FORWARDER": 257,
+ "MAX": 511,
+ }
+)
+
+func (x PortNum) Enum() *PortNum {
+ p := new(PortNum)
+ *p = x
+ return p
+}
+
+func (x PortNum) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (PortNum) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_portnums_proto_enumTypes[0].Descriptor()
+}
+
+func (PortNum) Type() protoreflect.EnumType {
+ return &file_meshtastic_portnums_proto_enumTypes[0]
+}
+
+func (x PortNum) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use PortNum.Descriptor instead.
+func (PortNum) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_portnums_proto_rawDescGZIP(), []int{0}
+}
+
+var File_meshtastic_portnums_proto protoreflect.FileDescriptor
+
+var file_meshtastic_portnums_proto_rawDesc = []byte{
+ 0x0a, 0x19, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x70, 0x6f, 0x72,
+ 0x74, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2a, 0xf9, 0x03, 0x0a, 0x07, 0x50, 0x6f, 0x72, 0x74,
+ 0x4e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41,
+ 0x50, 0x50, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x4d, 0x45, 0x53,
+ 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45,
+ 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x50,
+ 0x50, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+ 0x41, 0x50, 0x50, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x44, 0x45, 0x49, 0x4e, 0x46,
+ 0x4f, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x54, 0x49,
+ 0x4e, 0x47, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x44, 0x4d, 0x49,
+ 0x4e, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x45, 0x58, 0x54, 0x5f,
+ 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53,
+ 0x45, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x41, 0x59, 0x50,
+ 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55,
+ 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x45, 0x54,
+ 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x41, 0x50,
+ 0x50, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x41, 0x50, 0x50,
+ 0x10, 0x20, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x50, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f,
+ 0x41, 0x50, 0x50, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x41, 0x58, 0x43, 0x4f, 0x55, 0x4e,
+ 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x22, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x52,
+ 0x49, 0x41, 0x4c, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x40, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x4f,
+ 0x52, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x41,
+ 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x41,
+ 0x50, 0x50, 0x10, 0x42, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52,
+ 0x59, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x43, 0x12, 0x0b, 0x0a, 0x07, 0x5a, 0x50, 0x53, 0x5f, 0x41,
+ 0x50, 0x50, 0x10, 0x44, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x4f,
+ 0x52, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x52, 0x41, 0x43, 0x45,
+ 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x46, 0x12, 0x14, 0x0a, 0x10, 0x4e,
+ 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x41, 0x50, 0x50, 0x10,
+ 0x47, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x54, 0x41, 0x4b, 0x5f, 0x50, 0x4c, 0x55, 0x47, 0x49, 0x4e,
+ 0x10, 0x48, 0x12, 0x10, 0x0a, 0x0b, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x50,
+ 0x50, 0x10, 0x80, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x41, 0x54, 0x41, 0x4b, 0x5f, 0x46, 0x4f, 0x52,
+ 0x57, 0x41, 0x52, 0x44, 0x45, 0x52, 0x10, 0x81, 0x02, 0x12, 0x08, 0x0a, 0x03, 0x4d, 0x41, 0x58,
+ 0x10, 0xff, 0x03, 0x42, 0x5d, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73,
+ 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x08, 0x50, 0x6f, 0x72, 0x74,
+ 0x6e, 0x75, 0x6d, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67,
+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba,
+ 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_portnums_proto_rawDescOnce sync.Once
+ file_meshtastic_portnums_proto_rawDescData = file_meshtastic_portnums_proto_rawDesc
+)
+
+func file_meshtastic_portnums_proto_rawDescGZIP() []byte {
+ file_meshtastic_portnums_proto_rawDescOnce.Do(func() {
+ file_meshtastic_portnums_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_portnums_proto_rawDescData)
+ })
+ return file_meshtastic_portnums_proto_rawDescData
+}
+
+var file_meshtastic_portnums_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_portnums_proto_goTypes = []interface{}{
+ (PortNum)(0), // 0: meshtastic.PortNum
+}
+var file_meshtastic_portnums_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_portnums_proto_init() }
+func file_meshtastic_portnums_proto_init() {
+ if File_meshtastic_portnums_proto != nil {
+ return
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_portnums_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 0,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_portnums_proto_goTypes,
+ DependencyIndexes: file_meshtastic_portnums_proto_depIdxs,
+ EnumInfos: file_meshtastic_portnums_proto_enumTypes,
+ }.Build()
+ File_meshtastic_portnums_proto = out.File
+ file_meshtastic_portnums_proto_rawDesc = nil
+ file_meshtastic_portnums_proto_goTypes = nil
+ file_meshtastic_portnums_proto_depIdxs = nil
+}
diff --git a/meshtastic/remote_hardware.pb.go b/meshtastic/remote_hardware.pb.go
new file mode 100644
index 0000000..804f33f
--- /dev/null
+++ b/meshtastic/remote_hardware.pb.go
@@ -0,0 +1,261 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/remote_hardware.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// TODO: REPLACE
+type HardwareMessage_Type int32
+
+const (
+ // Unset/unused
+ HardwareMessage_UNSET HardwareMessage_Type = 0
+ // Set gpio gpios based on gpio_mask/gpio_value
+ HardwareMessage_WRITE_GPIOS HardwareMessage_Type = 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.
+ HardwareMessage_WATCH_GPIOS HardwareMessage_Type = 2
+ // The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
+ HardwareMessage_GPIOS_CHANGED HardwareMessage_Type = 3
+ // Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
+ HardwareMessage_READ_GPIOS HardwareMessage_Type = 4
+ // A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
+ HardwareMessage_READ_GPIOS_REPLY HardwareMessage_Type = 5
+)
+
+// Enum value maps for HardwareMessage_Type.
+var (
+ HardwareMessage_Type_name = map[int32]string{
+ 0: "UNSET",
+ 1: "WRITE_GPIOS",
+ 2: "WATCH_GPIOS",
+ 3: "GPIOS_CHANGED",
+ 4: "READ_GPIOS",
+ 5: "READ_GPIOS_REPLY",
+ }
+ HardwareMessage_Type_value = map[string]int32{
+ "UNSET": 0,
+ "WRITE_GPIOS": 1,
+ "WATCH_GPIOS": 2,
+ "GPIOS_CHANGED": 3,
+ "READ_GPIOS": 4,
+ "READ_GPIOS_REPLY": 5,
+ }
+)
+
+func (x HardwareMessage_Type) Enum() *HardwareMessage_Type {
+ p := new(HardwareMessage_Type)
+ *p = x
+ return p
+}
+
+func (x HardwareMessage_Type) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (HardwareMessage_Type) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_remote_hardware_proto_enumTypes[0].Descriptor()
+}
+
+func (HardwareMessage_Type) Type() protoreflect.EnumType {
+ return &file_meshtastic_remote_hardware_proto_enumTypes[0]
+}
+
+func (x HardwareMessage_Type) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use HardwareMessage_Type.Descriptor instead.
+func (HardwareMessage_Type) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_remote_hardware_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// 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?)
+type HardwareMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // What type of HardwareMessage is this?
+ Type HardwareMessage_Type `protobuf:"varint,1,opt,name=type,proto3,enum=meshtastic.HardwareMessage_Type" json:"type,omitempty"`
+ // What gpios are we changing. Not used for all MessageTypes, see MessageType for details
+ GpioMask uint64 `protobuf:"varint,2,opt,name=gpio_mask,json=gpioMask,proto3" json:"gpio_mask,omitempty"`
+ // 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
+ GpioValue uint64 `protobuf:"varint,3,opt,name=gpio_value,json=gpioValue,proto3" json:"gpio_value,omitempty"`
+}
+
+func (x *HardwareMessage) Reset() {
+ *x = HardwareMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_remote_hardware_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HardwareMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HardwareMessage) ProtoMessage() {}
+
+func (x *HardwareMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_remote_hardware_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HardwareMessage.ProtoReflect.Descriptor instead.
+func (*HardwareMessage) Descriptor() ([]byte, []int) {
+ return file_meshtastic_remote_hardware_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *HardwareMessage) GetType() HardwareMessage_Type {
+ if x != nil {
+ return x.Type
+ }
+ return HardwareMessage_UNSET
+}
+
+func (x *HardwareMessage) GetGpioMask() uint64 {
+ if x != nil {
+ return x.GpioMask
+ }
+ return 0
+}
+
+func (x *HardwareMessage) GetGpioValue() uint64 {
+ if x != nil {
+ return x.GpioValue
+ }
+ return 0
+}
+
+var File_meshtastic_remote_hardware_proto protoreflect.FileDescriptor
+
+var file_meshtastic_remote_hardware_proto_rawDesc = []byte{
+ 0x0a, 0x20, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x72, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xf1,
+ 0x01, 0x0a, 0x0f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x48, 0x61,
+ 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70, 0x69, 0x6f,
+ 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x70, 0x69,
+ 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x70, 0x69, 0x6f, 0x5f, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x70, 0x69, 0x6f, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05,
+ 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x52, 0x49, 0x54, 0x45,
+ 0x5f, 0x47, 0x50, 0x49, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x41, 0x54, 0x43,
+ 0x48, 0x5f, 0x47, 0x50, 0x49, 0x4f, 0x53, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x50, 0x49,
+ 0x4f, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a,
+ 0x52, 0x45, 0x41, 0x44, 0x5f, 0x47, 0x50, 0x49, 0x4f, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10,
+ 0x52, 0x45, 0x41, 0x44, 0x5f, 0x47, 0x50, 0x49, 0x4f, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59,
+ 0x10, 0x05, 0x42, 0x63, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76,
+ 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x74,
+ 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14,
+ 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_remote_hardware_proto_rawDescOnce sync.Once
+ file_meshtastic_remote_hardware_proto_rawDescData = file_meshtastic_remote_hardware_proto_rawDesc
+)
+
+func file_meshtastic_remote_hardware_proto_rawDescGZIP() []byte {
+ file_meshtastic_remote_hardware_proto_rawDescOnce.Do(func() {
+ file_meshtastic_remote_hardware_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_remote_hardware_proto_rawDescData)
+ })
+ return file_meshtastic_remote_hardware_proto_rawDescData
+}
+
+var file_meshtastic_remote_hardware_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_remote_hardware_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_remote_hardware_proto_goTypes = []interface{}{
+ (HardwareMessage_Type)(0), // 0: meshtastic.HardwareMessage.Type
+ (*HardwareMessage)(nil), // 1: meshtastic.HardwareMessage
+}
+var file_meshtastic_remote_hardware_proto_depIdxs = []int32{
+ 0, // 0: meshtastic.HardwareMessage.type:type_name -> meshtastic.HardwareMessage.Type
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_remote_hardware_proto_init() }
+func file_meshtastic_remote_hardware_proto_init() {
+ if File_meshtastic_remote_hardware_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_remote_hardware_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HardwareMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_remote_hardware_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_remote_hardware_proto_goTypes,
+ DependencyIndexes: file_meshtastic_remote_hardware_proto_depIdxs,
+ EnumInfos: file_meshtastic_remote_hardware_proto_enumTypes,
+ MessageInfos: file_meshtastic_remote_hardware_proto_msgTypes,
+ }.Build()
+ File_meshtastic_remote_hardware_proto = out.File
+ file_meshtastic_remote_hardware_proto_rawDesc = nil
+ file_meshtastic_remote_hardware_proto_goTypes = nil
+ file_meshtastic_remote_hardware_proto_depIdxs = nil
+}
diff --git a/meshtastic/remote_hardware_vtproto.pb.go b/meshtastic/remote_hardware_vtproto.pb.go
new file mode 100644
index 0000000..ed37206
--- /dev/null
+++ b/meshtastic/remote_hardware_vtproto.pb.go
@@ -0,0 +1,396 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/remote_hardware.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *HardwareMessage) CloneVT() *HardwareMessage {
+ if m == nil {
+ return (*HardwareMessage)(nil)
+ }
+ r := new(HardwareMessage)
+ r.Type = m.Type
+ r.GpioMask = m.GpioMask
+ r.GpioValue = m.GpioValue
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *HardwareMessage) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *HardwareMessage) EqualVT(that *HardwareMessage) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Type != that.Type {
+ return false
+ }
+ if this.GpioMask != that.GpioMask {
+ return false
+ }
+ if this.GpioValue != that.GpioValue {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *HardwareMessage) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*HardwareMessage)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *HardwareMessage) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *HardwareMessage) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *HardwareMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.GpioValue != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioValue))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.GpioMask != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioMask))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Type != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *HardwareMessage) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *HardwareMessage) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *HardwareMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.GpioValue != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioValue))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.GpioMask != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.GpioMask))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Type != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *HardwareMessage) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Type != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Type))
+ }
+ if m.GpioMask != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpioMask))
+ }
+ if m.GpioValue != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.GpioValue))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *HardwareMessage) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: HardwareMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: HardwareMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+ }
+ m.Type = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Type |= HardwareMessage_Type(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioMask", wireType)
+ }
+ m.GpioMask = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioMask |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioValue", wireType)
+ }
+ m.GpioValue = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioValue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *HardwareMessage) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: HardwareMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: HardwareMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+ }
+ m.Type = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Type |= HardwareMessage_Type(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioMask", wireType)
+ }
+ m.GpioMask = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioMask |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GpioValue", wireType)
+ }
+ m.GpioValue = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.GpioValue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/rtttl.pb.go b/meshtastic/rtttl.pb.go
new file mode 100644
index 0000000..eac6bf9
--- /dev/null
+++ b/meshtastic/rtttl.pb.go
@@ -0,0 +1,150 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/rtttl.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Canned message module configuration.
+type RTTTLConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Ringtone for PWM Buzzer in RTTTL Format.
+ Ringtone string `protobuf:"bytes,1,opt,name=ringtone,proto3" json:"ringtone,omitempty"`
+}
+
+func (x *RTTTLConfig) Reset() {
+ *x = RTTTLConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_rtttl_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RTTTLConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RTTTLConfig) ProtoMessage() {}
+
+func (x *RTTTLConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_rtttl_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RTTTLConfig.ProtoReflect.Descriptor instead.
+func (*RTTTLConfig) Descriptor() ([]byte, []int) {
+ return file_meshtastic_rtttl_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *RTTTLConfig) GetRingtone() string {
+ if x != nil {
+ return x.Ringtone
+ }
+ return ""
+}
+
+var File_meshtastic_rtttl_proto protoreflect.FileDescriptor
+
+var file_meshtastic_rtttl_proto_rawDesc = []byte{
+ 0x0a, 0x16, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x72, 0x74, 0x74,
+ 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
+ 0x73, 0x74, 0x69, 0x63, 0x22, 0x29, 0x0a, 0x0b, 0x52, 0x54, 0x54, 0x54, 0x4c, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x42,
+ 0x66, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c,
+ 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x11, 0x52, 0x54, 0x54, 0x54, 0x4c, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
+ 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14,
+ 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_rtttl_proto_rawDescOnce sync.Once
+ file_meshtastic_rtttl_proto_rawDescData = file_meshtastic_rtttl_proto_rawDesc
+)
+
+func file_meshtastic_rtttl_proto_rawDescGZIP() []byte {
+ file_meshtastic_rtttl_proto_rawDescOnce.Do(func() {
+ file_meshtastic_rtttl_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_rtttl_proto_rawDescData)
+ })
+ return file_meshtastic_rtttl_proto_rawDescData
+}
+
+var file_meshtastic_rtttl_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_rtttl_proto_goTypes = []interface{}{
+ (*RTTTLConfig)(nil), // 0: meshtastic.RTTTLConfig
+}
+var file_meshtastic_rtttl_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_rtttl_proto_init() }
+func file_meshtastic_rtttl_proto_init() {
+ if File_meshtastic_rtttl_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_rtttl_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RTTTLConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_rtttl_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_rtttl_proto_goTypes,
+ DependencyIndexes: file_meshtastic_rtttl_proto_depIdxs,
+ MessageInfos: file_meshtastic_rtttl_proto_msgTypes,
+ }.Build()
+ File_meshtastic_rtttl_proto = out.File
+ file_meshtastic_rtttl_proto_rawDesc = nil
+ file_meshtastic_rtttl_proto_goTypes = nil
+ file_meshtastic_rtttl_proto_depIdxs = nil
+}
diff --git a/meshtastic/rtttl_vtproto.pb.go b/meshtastic/rtttl_vtproto.pb.go
new file mode 100644
index 0000000..34a40a7
--- /dev/null
+++ b/meshtastic/rtttl_vtproto.pb.go
@@ -0,0 +1,322 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/rtttl.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ unsafe "unsafe"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *RTTTLConfig) CloneVT() *RTTTLConfig {
+ if m == nil {
+ return (*RTTTLConfig)(nil)
+ }
+ r := new(RTTTLConfig)
+ r.Ringtone = m.Ringtone
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *RTTTLConfig) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *RTTTLConfig) EqualVT(that *RTTTLConfig) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Ringtone != that.Ringtone {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *RTTTLConfig) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*RTTTLConfig)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *RTTTLConfig) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RTTTLConfig) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *RTTTLConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Ringtone) > 0 {
+ i -= len(m.Ringtone)
+ copy(dAtA[i:], m.Ringtone)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Ringtone)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RTTTLConfig) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RTTTLConfig) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *RTTTLConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Ringtone) > 0 {
+ i -= len(m.Ringtone)
+ copy(dAtA[i:], m.Ringtone)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Ringtone)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RTTTLConfig) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Ringtone)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *RTTTLConfig) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RTTTLConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RTTTLConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ringtone", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Ringtone = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RTTTLConfig) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RTTTLConfig: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RTTTLConfig: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ringtone", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var stringValue string
+ if intStringLen > 0 {
+ stringValue = unsafe.String(&dAtA[iNdEx], intStringLen)
+ }
+ m.Ringtone = stringValue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/storeforward.pb.go b/meshtastic/storeforward.pb.go
new file mode 100644
index 0000000..9b05ae8
--- /dev/null
+++ b/meshtastic/storeforward.pb.go
@@ -0,0 +1,702 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/storeforward.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 001 - 063 = From Router
+// 064 - 127 = From Client
+type StoreAndForward_RequestResponse int32
+
+const (
+ // Unset/unused
+ StoreAndForward_UNSET StoreAndForward_RequestResponse = 0
+ // Router is an in error state.
+ StoreAndForward_ROUTER_ERROR StoreAndForward_RequestResponse = 1
+ // Router heartbeat
+ StoreAndForward_ROUTER_HEARTBEAT StoreAndForward_RequestResponse = 2
+ // Router has requested the client respond. This can work as a
+ // "are you there" message.
+ StoreAndForward_ROUTER_PING StoreAndForward_RequestResponse = 3
+ // The response to a "Ping"
+ StoreAndForward_ROUTER_PONG StoreAndForward_RequestResponse = 4
+ // Router is currently busy. Please try again later.
+ StoreAndForward_ROUTER_BUSY StoreAndForward_RequestResponse = 5
+ // Router is responding to a request for history.
+ StoreAndForward_ROUTER_HISTORY StoreAndForward_RequestResponse = 6
+ // Router is responding to a request for stats.
+ StoreAndForward_ROUTER_STATS StoreAndForward_RequestResponse = 7
+ // Router sends a text message from its history that was a direct message.
+ StoreAndForward_ROUTER_TEXT_DIRECT StoreAndForward_RequestResponse = 8
+ // Router sends a text message from its history that was a broadcast.
+ StoreAndForward_ROUTER_TEXT_BROADCAST StoreAndForward_RequestResponse = 9
+ // Client is an in error state.
+ StoreAndForward_CLIENT_ERROR StoreAndForward_RequestResponse = 64
+ // Client has requested a replay from the router.
+ StoreAndForward_CLIENT_HISTORY StoreAndForward_RequestResponse = 65
+ // Client has requested stats from the router.
+ StoreAndForward_CLIENT_STATS StoreAndForward_RequestResponse = 66
+ // Client has requested the router respond. This can work as a
+ // "are you there" message.
+ StoreAndForward_CLIENT_PING StoreAndForward_RequestResponse = 67
+ // The response to a "Ping"
+ StoreAndForward_CLIENT_PONG StoreAndForward_RequestResponse = 68
+ // Client has requested that the router abort processing the client's request
+ StoreAndForward_CLIENT_ABORT StoreAndForward_RequestResponse = 106
+)
+
+// Enum value maps for StoreAndForward_RequestResponse.
+var (
+ StoreAndForward_RequestResponse_name = map[int32]string{
+ 0: "UNSET",
+ 1: "ROUTER_ERROR",
+ 2: "ROUTER_HEARTBEAT",
+ 3: "ROUTER_PING",
+ 4: "ROUTER_PONG",
+ 5: "ROUTER_BUSY",
+ 6: "ROUTER_HISTORY",
+ 7: "ROUTER_STATS",
+ 8: "ROUTER_TEXT_DIRECT",
+ 9: "ROUTER_TEXT_BROADCAST",
+ 64: "CLIENT_ERROR",
+ 65: "CLIENT_HISTORY",
+ 66: "CLIENT_STATS",
+ 67: "CLIENT_PING",
+ 68: "CLIENT_PONG",
+ 106: "CLIENT_ABORT",
+ }
+ StoreAndForward_RequestResponse_value = map[string]int32{
+ "UNSET": 0,
+ "ROUTER_ERROR": 1,
+ "ROUTER_HEARTBEAT": 2,
+ "ROUTER_PING": 3,
+ "ROUTER_PONG": 4,
+ "ROUTER_BUSY": 5,
+ "ROUTER_HISTORY": 6,
+ "ROUTER_STATS": 7,
+ "ROUTER_TEXT_DIRECT": 8,
+ "ROUTER_TEXT_BROADCAST": 9,
+ "CLIENT_ERROR": 64,
+ "CLIENT_HISTORY": 65,
+ "CLIENT_STATS": 66,
+ "CLIENT_PING": 67,
+ "CLIENT_PONG": 68,
+ "CLIENT_ABORT": 106,
+ }
+)
+
+func (x StoreAndForward_RequestResponse) Enum() *StoreAndForward_RequestResponse {
+ p := new(StoreAndForward_RequestResponse)
+ *p = x
+ return p
+}
+
+func (x StoreAndForward_RequestResponse) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StoreAndForward_RequestResponse) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_storeforward_proto_enumTypes[0].Descriptor()
+}
+
+func (StoreAndForward_RequestResponse) Type() protoreflect.EnumType {
+ return &file_meshtastic_storeforward_proto_enumTypes[0]
+}
+
+func (x StoreAndForward_RequestResponse) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StoreAndForward_RequestResponse.Descriptor instead.
+func (StoreAndForward_RequestResponse) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_storeforward_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// TODO: REPLACE
+type StoreAndForward struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // TODO: REPLACE
+ Rr StoreAndForward_RequestResponse `protobuf:"varint,1,opt,name=rr,proto3,enum=meshtastic.StoreAndForward_RequestResponse" json:"rr,omitempty"`
+ // TODO: REPLACE
+ //
+ // Types that are assignable to Variant:
+ //
+ // *StoreAndForward_Stats
+ // *StoreAndForward_History_
+ // *StoreAndForward_Heartbeat_
+ // *StoreAndForward_Text
+ Variant isStoreAndForward_Variant `protobuf_oneof:"variant"`
+}
+
+func (x *StoreAndForward) Reset() {
+ *x = StoreAndForward{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StoreAndForward) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoreAndForward) ProtoMessage() {}
+
+func (x *StoreAndForward) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoreAndForward.ProtoReflect.Descriptor instead.
+func (*StoreAndForward) Descriptor() ([]byte, []int) {
+ return file_meshtastic_storeforward_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *StoreAndForward) GetRr() StoreAndForward_RequestResponse {
+ if x != nil {
+ return x.Rr
+ }
+ return StoreAndForward_UNSET
+}
+
+func (m *StoreAndForward) GetVariant() isStoreAndForward_Variant {
+ if m != nil {
+ return m.Variant
+ }
+ return nil
+}
+
+func (x *StoreAndForward) GetStats() *StoreAndForward_Statistics {
+ if x, ok := x.GetVariant().(*StoreAndForward_Stats); ok {
+ return x.Stats
+ }
+ return nil
+}
+
+func (x *StoreAndForward) GetHistory() *StoreAndForward_History {
+ if x, ok := x.GetVariant().(*StoreAndForward_History_); ok {
+ return x.History
+ }
+ return nil
+}
+
+func (x *StoreAndForward) GetHeartbeat() *StoreAndForward_Heartbeat {
+ if x, ok := x.GetVariant().(*StoreAndForward_Heartbeat_); ok {
+ return x.Heartbeat
+ }
+ return nil
+}
+
+func (x *StoreAndForward) GetText() []byte {
+ if x, ok := x.GetVariant().(*StoreAndForward_Text); ok {
+ return x.Text
+ }
+ return nil
+}
+
+type isStoreAndForward_Variant interface {
+ isStoreAndForward_Variant()
+}
+
+type StoreAndForward_Stats struct {
+ // TODO: REPLACE
+ Stats *StoreAndForward_Statistics `protobuf:"bytes,2,opt,name=stats,proto3,oneof"`
+}
+
+type StoreAndForward_History_ struct {
+ // TODO: REPLACE
+ History *StoreAndForward_History `protobuf:"bytes,3,opt,name=history,proto3,oneof"`
+}
+
+type StoreAndForward_Heartbeat_ struct {
+ // TODO: REPLACE
+ Heartbeat *StoreAndForward_Heartbeat `protobuf:"bytes,4,opt,name=heartbeat,proto3,oneof"`
+}
+
+type StoreAndForward_Text struct {
+ // Text from history message.
+ Text []byte `protobuf:"bytes,5,opt,name=text,proto3,oneof"`
+}
+
+func (*StoreAndForward_Stats) isStoreAndForward_Variant() {}
+
+func (*StoreAndForward_History_) isStoreAndForward_Variant() {}
+
+func (*StoreAndForward_Heartbeat_) isStoreAndForward_Variant() {}
+
+func (*StoreAndForward_Text) isStoreAndForward_Variant() {}
+
+// TODO: REPLACE
+type StoreAndForward_Statistics struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of messages we have ever seen
+ MessagesTotal uint32 `protobuf:"varint,1,opt,name=messages_total,json=messagesTotal,proto3" json:"messages_total,omitempty"`
+ // Number of messages we have currently saved our history.
+ MessagesSaved uint32 `protobuf:"varint,2,opt,name=messages_saved,json=messagesSaved,proto3" json:"messages_saved,omitempty"`
+ // Maximum number of messages we will save
+ MessagesMax uint32 `protobuf:"varint,3,opt,name=messages_max,json=messagesMax,proto3" json:"messages_max,omitempty"`
+ // Router uptime in seconds
+ UpTime uint32 `protobuf:"varint,4,opt,name=up_time,json=upTime,proto3" json:"up_time,omitempty"`
+ // Number of times any client sent a request to the S&F.
+ Requests uint32 `protobuf:"varint,5,opt,name=requests,proto3" json:"requests,omitempty"`
+ // Number of times the history was requested.
+ RequestsHistory uint32 `protobuf:"varint,6,opt,name=requests_history,json=requestsHistory,proto3" json:"requests_history,omitempty"`
+ // Is the heartbeat enabled on the server?
+ Heartbeat bool `protobuf:"varint,7,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"`
+ // Maximum number of messages the server will return.
+ ReturnMax uint32 `protobuf:"varint,8,opt,name=return_max,json=returnMax,proto3" json:"return_max,omitempty"`
+ // Maximum history window in minutes the server will return messages from.
+ ReturnWindow uint32 `protobuf:"varint,9,opt,name=return_window,json=returnWindow,proto3" json:"return_window,omitempty"`
+}
+
+func (x *StoreAndForward_Statistics) Reset() {
+ *x = StoreAndForward_Statistics{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StoreAndForward_Statistics) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoreAndForward_Statistics) ProtoMessage() {}
+
+func (x *StoreAndForward_Statistics) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoreAndForward_Statistics.ProtoReflect.Descriptor instead.
+func (*StoreAndForward_Statistics) Descriptor() ([]byte, []int) {
+ return file_meshtastic_storeforward_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *StoreAndForward_Statistics) GetMessagesTotal() uint32 {
+ if x != nil {
+ return x.MessagesTotal
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetMessagesSaved() uint32 {
+ if x != nil {
+ return x.MessagesSaved
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetMessagesMax() uint32 {
+ if x != nil {
+ return x.MessagesMax
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetUpTime() uint32 {
+ if x != nil {
+ return x.UpTime
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetRequests() uint32 {
+ if x != nil {
+ return x.Requests
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetRequestsHistory() uint32 {
+ if x != nil {
+ return x.RequestsHistory
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetHeartbeat() bool {
+ if x != nil {
+ return x.Heartbeat
+ }
+ return false
+}
+
+func (x *StoreAndForward_Statistics) GetReturnMax() uint32 {
+ if x != nil {
+ return x.ReturnMax
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Statistics) GetReturnWindow() uint32 {
+ if x != nil {
+ return x.ReturnWindow
+ }
+ return 0
+}
+
+// TODO: REPLACE
+type StoreAndForward_History struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of that will be sent to the client
+ HistoryMessages uint32 `protobuf:"varint,1,opt,name=history_messages,json=historyMessages,proto3" json:"history_messages,omitempty"`
+ // The window of messages that was used to filter the history client requested
+ Window uint32 `protobuf:"varint,2,opt,name=window,proto3" json:"window,omitempty"`
+ // 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.
+ LastRequest uint32 `protobuf:"varint,3,opt,name=last_request,json=lastRequest,proto3" json:"last_request,omitempty"`
+}
+
+func (x *StoreAndForward_History) Reset() {
+ *x = StoreAndForward_History{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StoreAndForward_History) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoreAndForward_History) ProtoMessage() {}
+
+func (x *StoreAndForward_History) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoreAndForward_History.ProtoReflect.Descriptor instead.
+func (*StoreAndForward_History) Descriptor() ([]byte, []int) {
+ return file_meshtastic_storeforward_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *StoreAndForward_History) GetHistoryMessages() uint32 {
+ if x != nil {
+ return x.HistoryMessages
+ }
+ return 0
+}
+
+func (x *StoreAndForward_History) GetWindow() uint32 {
+ if x != nil {
+ return x.Window
+ }
+ return 0
+}
+
+func (x *StoreAndForward_History) GetLastRequest() uint32 {
+ if x != nil {
+ return x.LastRequest
+ }
+ return 0
+}
+
+// TODO: REPLACE
+type StoreAndForward_Heartbeat struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Period in seconds that the heartbeat is sent out that will be sent to the client
+ Period uint32 `protobuf:"varint,1,opt,name=period,proto3" json:"period,omitempty"`
+ // If set, this is not the primary Store & Forward router on the mesh
+ Secondary uint32 `protobuf:"varint,2,opt,name=secondary,proto3" json:"secondary,omitempty"`
+}
+
+func (x *StoreAndForward_Heartbeat) Reset() {
+ *x = StoreAndForward_Heartbeat{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StoreAndForward_Heartbeat) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StoreAndForward_Heartbeat) ProtoMessage() {}
+
+func (x *StoreAndForward_Heartbeat) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_storeforward_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StoreAndForward_Heartbeat.ProtoReflect.Descriptor instead.
+func (*StoreAndForward_Heartbeat) Descriptor() ([]byte, []int) {
+ return file_meshtastic_storeforward_proto_rawDescGZIP(), []int{0, 2}
+}
+
+func (x *StoreAndForward_Heartbeat) GetPeriod() uint32 {
+ if x != nil {
+ return x.Period
+ }
+ return 0
+}
+
+func (x *StoreAndForward_Heartbeat) GetSecondary() uint32 {
+ if x != nil {
+ return x.Secondary
+ }
+ return 0
+}
+
+var File_meshtastic_storeforward_proto protoreflect.FileDescriptor
+
+var file_meshtastic_storeforward_proto_rawDesc = []byte{
+ 0x0a, 0x1d, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
+ 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xec, 0x08, 0x0a, 0x0f,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12,
+ 0x3b, 0x0a, 0x02, 0x72, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e,
+ 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x02, 0x72, 0x72, 0x12, 0x3e, 0x0a, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e,
+ 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74,
+ 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x07,
+ 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
+ 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x45, 0x0a,
+ 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x53, 0x74,
+ 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0xbf, 0x02, 0x0a, 0x0a, 0x53,
+ 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c,
+ 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x61, 0x76,
+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x73, 0x53, 0x61, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x70,
+ 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x70, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
+ 0x29, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65,
+ 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72,
+ 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x1a, 0x6f, 0x0a, 0x07,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61,
+ 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x0a,
+ 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65,
+ 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69,
+ 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79,
+ 0x22, 0xbc, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12,
+ 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
+ 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x48, 0x45, 0x41, 0x52,
+ 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x54, 0x45,
+ 0x52, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55, 0x54,
+ 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55,
+ 0x54, 0x45, 0x52, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f,
+ 0x55, 0x54, 0x45, 0x52, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x06, 0x12, 0x10,
+ 0x0a, 0x0c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x07,
+ 0x12, 0x16, 0x0a, 0x12, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f,
+ 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x4f, 0x55, 0x54,
+ 0x45, 0x52, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53,
+ 0x54, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f,
+ 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x41, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4c, 0x49,
+ 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x42, 0x12, 0x0f, 0x0a, 0x0b, 0x43,
+ 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x43, 0x12, 0x0f, 0x0a, 0x0b,
+ 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x4e, 0x47, 0x10, 0x44, 0x12, 0x10, 0x0a,
+ 0x0c, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x6a, 0x42,
+ 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x6a, 0x0a, 0x13, 0x63, 0x6f,
+ 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73,
+ 0x68, 0x42, 0x15, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61,
+ 0x72, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f,
+ 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d,
+ 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_storeforward_proto_rawDescOnce sync.Once
+ file_meshtastic_storeforward_proto_rawDescData = file_meshtastic_storeforward_proto_rawDesc
+)
+
+func file_meshtastic_storeforward_proto_rawDescGZIP() []byte {
+ file_meshtastic_storeforward_proto_rawDescOnce.Do(func() {
+ file_meshtastic_storeforward_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_storeforward_proto_rawDescData)
+ })
+ return file_meshtastic_storeforward_proto_rawDescData
+}
+
+var file_meshtastic_storeforward_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_storeforward_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_meshtastic_storeforward_proto_goTypes = []interface{}{
+ (StoreAndForward_RequestResponse)(0), // 0: meshtastic.StoreAndForward.RequestResponse
+ (*StoreAndForward)(nil), // 1: meshtastic.StoreAndForward
+ (*StoreAndForward_Statistics)(nil), // 2: meshtastic.StoreAndForward.Statistics
+ (*StoreAndForward_History)(nil), // 3: meshtastic.StoreAndForward.History
+ (*StoreAndForward_Heartbeat)(nil), // 4: meshtastic.StoreAndForward.Heartbeat
+}
+var file_meshtastic_storeforward_proto_depIdxs = []int32{
+ 0, // 0: meshtastic.StoreAndForward.rr:type_name -> meshtastic.StoreAndForward.RequestResponse
+ 2, // 1: meshtastic.StoreAndForward.stats:type_name -> meshtastic.StoreAndForward.Statistics
+ 3, // 2: meshtastic.StoreAndForward.history:type_name -> meshtastic.StoreAndForward.History
+ 4, // 3: meshtastic.StoreAndForward.heartbeat:type_name -> meshtastic.StoreAndForward.Heartbeat
+ 4, // [4:4] is the sub-list for method output_type
+ 4, // [4:4] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_storeforward_proto_init() }
+func file_meshtastic_storeforward_proto_init() {
+ if File_meshtastic_storeforward_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_storeforward_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StoreAndForward); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_storeforward_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StoreAndForward_Statistics); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_storeforward_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StoreAndForward_History); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_storeforward_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StoreAndForward_Heartbeat); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_storeforward_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*StoreAndForward_Stats)(nil),
+ (*StoreAndForward_History_)(nil),
+ (*StoreAndForward_Heartbeat_)(nil),
+ (*StoreAndForward_Text)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_storeforward_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_storeforward_proto_goTypes,
+ DependencyIndexes: file_meshtastic_storeforward_proto_depIdxs,
+ EnumInfos: file_meshtastic_storeforward_proto_enumTypes,
+ MessageInfos: file_meshtastic_storeforward_proto_msgTypes,
+ }.Build()
+ File_meshtastic_storeforward_proto = out.File
+ file_meshtastic_storeforward_proto_rawDesc = nil
+ file_meshtastic_storeforward_proto_goTypes = nil
+ file_meshtastic_storeforward_proto_depIdxs = nil
+}
diff --git a/meshtastic/storeforward_vtproto.pb.go b/meshtastic/storeforward_vtproto.pb.go
new file mode 100644
index 0000000..cdc8f2d
--- /dev/null
+++ b/meshtastic/storeforward_vtproto.pb.go
@@ -0,0 +1,2386 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/storeforward.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *StoreAndForward_Statistics) CloneVT() *StoreAndForward_Statistics {
+ if m == nil {
+ return (*StoreAndForward_Statistics)(nil)
+ }
+ r := new(StoreAndForward_Statistics)
+ r.MessagesTotal = m.MessagesTotal
+ r.MessagesSaved = m.MessagesSaved
+ r.MessagesMax = m.MessagesMax
+ r.UpTime = m.UpTime
+ r.Requests = m.Requests
+ r.RequestsHistory = m.RequestsHistory
+ r.Heartbeat = m.Heartbeat
+ r.ReturnMax = m.ReturnMax
+ r.ReturnWindow = m.ReturnWindow
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *StoreAndForward_Statistics) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *StoreAndForward_History) CloneVT() *StoreAndForward_History {
+ if m == nil {
+ return (*StoreAndForward_History)(nil)
+ }
+ r := new(StoreAndForward_History)
+ r.HistoryMessages = m.HistoryMessages
+ r.Window = m.Window
+ r.LastRequest = m.LastRequest
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *StoreAndForward_History) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *StoreAndForward_Heartbeat) CloneVT() *StoreAndForward_Heartbeat {
+ if m == nil {
+ return (*StoreAndForward_Heartbeat)(nil)
+ }
+ r := new(StoreAndForward_Heartbeat)
+ r.Period = m.Period
+ r.Secondary = m.Secondary
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *StoreAndForward_Heartbeat) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *StoreAndForward) CloneVT() *StoreAndForward {
+ if m == nil {
+ return (*StoreAndForward)(nil)
+ }
+ r := new(StoreAndForward)
+ r.Rr = m.Rr
+ if m.Variant != nil {
+ r.Variant = m.Variant.(interface {
+ CloneVT() isStoreAndForward_Variant
+ }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *StoreAndForward) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *StoreAndForward_Stats) CloneVT() isStoreAndForward_Variant {
+ if m == nil {
+ return (*StoreAndForward_Stats)(nil)
+ }
+ r := new(StoreAndForward_Stats)
+ r.Stats = m.Stats.CloneVT()
+ return r
+}
+
+func (m *StoreAndForward_History_) CloneVT() isStoreAndForward_Variant {
+ if m == nil {
+ return (*StoreAndForward_History_)(nil)
+ }
+ r := new(StoreAndForward_History_)
+ r.History = m.History.CloneVT()
+ return r
+}
+
+func (m *StoreAndForward_Heartbeat_) CloneVT() isStoreAndForward_Variant {
+ if m == nil {
+ return (*StoreAndForward_Heartbeat_)(nil)
+ }
+ r := new(StoreAndForward_Heartbeat_)
+ r.Heartbeat = m.Heartbeat.CloneVT()
+ return r
+}
+
+func (m *StoreAndForward_Text) CloneVT() isStoreAndForward_Variant {
+ if m == nil {
+ return (*StoreAndForward_Text)(nil)
+ }
+ r := new(StoreAndForward_Text)
+ if rhs := m.Text; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Text = tmpBytes
+ }
+ return r
+}
+
+func (this *StoreAndForward_Statistics) EqualVT(that *StoreAndForward_Statistics) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.MessagesTotal != that.MessagesTotal {
+ return false
+ }
+ if this.MessagesSaved != that.MessagesSaved {
+ return false
+ }
+ if this.MessagesMax != that.MessagesMax {
+ return false
+ }
+ if this.UpTime != that.UpTime {
+ return false
+ }
+ if this.Requests != that.Requests {
+ return false
+ }
+ if this.RequestsHistory != that.RequestsHistory {
+ return false
+ }
+ if this.Heartbeat != that.Heartbeat {
+ return false
+ }
+ if this.ReturnMax != that.ReturnMax {
+ return false
+ }
+ if this.ReturnWindow != that.ReturnWindow {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *StoreAndForward_Statistics) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*StoreAndForward_Statistics)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *StoreAndForward_History) EqualVT(that *StoreAndForward_History) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.HistoryMessages != that.HistoryMessages {
+ return false
+ }
+ if this.Window != that.Window {
+ return false
+ }
+ if this.LastRequest != that.LastRequest {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *StoreAndForward_History) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*StoreAndForward_History)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *StoreAndForward_Heartbeat) EqualVT(that *StoreAndForward_Heartbeat) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Period != that.Period {
+ return false
+ }
+ if this.Secondary != that.Secondary {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *StoreAndForward_Heartbeat) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*StoreAndForward_Heartbeat)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *StoreAndForward) EqualVT(that *StoreAndForward) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Variant == nil && that.Variant != nil {
+ return false
+ } else if this.Variant != nil {
+ if that.Variant == nil {
+ return false
+ }
+ if !this.Variant.(interface {
+ EqualVT(isStoreAndForward_Variant) bool
+ }).EqualVT(that.Variant) {
+ return false
+ }
+ }
+ if this.Rr != that.Rr {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *StoreAndForward) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*StoreAndForward)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *StoreAndForward_Stats) EqualVT(thatIface isStoreAndForward_Variant) bool {
+ that, ok := thatIface.(*StoreAndForward_Stats)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Stats, that.Stats; p != q {
+ if p == nil {
+ p = &StoreAndForward_Statistics{}
+ }
+ if q == nil {
+ q = &StoreAndForward_Statistics{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *StoreAndForward_History_) EqualVT(thatIface isStoreAndForward_Variant) bool {
+ that, ok := thatIface.(*StoreAndForward_History_)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.History, that.History; p != q {
+ if p == nil {
+ p = &StoreAndForward_History{}
+ }
+ if q == nil {
+ q = &StoreAndForward_History{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *StoreAndForward_Heartbeat_) EqualVT(thatIface isStoreAndForward_Variant) bool {
+ that, ok := thatIface.(*StoreAndForward_Heartbeat_)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.Heartbeat, that.Heartbeat; p != q {
+ if p == nil {
+ p = &StoreAndForward_Heartbeat{}
+ }
+ if q == nil {
+ q = &StoreAndForward_Heartbeat{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *StoreAndForward_Text) EqualVT(thatIface isStoreAndForward_Variant) bool {
+ that, ok := thatIface.(*StoreAndForward_Text)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if string(this.Text) != string(that.Text) {
+ return false
+ }
+ return true
+}
+
+func (m *StoreAndForward_Statistics) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_Statistics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_Statistics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ReturnWindow != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReturnWindow))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.ReturnMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReturnMax))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Heartbeat {
+ i--
+ if m.Heartbeat {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.RequestsHistory != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RequestsHistory))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Requests != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Requests))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.UpTime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UpTime))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.MessagesMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesMax))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.MessagesSaved != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesSaved))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.MessagesTotal != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesTotal))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_History) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_History) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_History) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LastRequest != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LastRequest))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Window != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Window))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.HistoryMessages != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryMessages))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Secondary != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Secondary))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Period != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Period))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.Variant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Rr != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rr))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_Stats) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_Stats) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Stats != nil {
+ size, err := m.Stats.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_History_) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_History_) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.History != nil {
+ size, err := m.History.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Heartbeat_) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_Heartbeat_) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Heartbeat != nil {
+ size, err := m.Heartbeat.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Text) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *StoreAndForward_Text) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Text)
+ copy(dAtA[i:], m.Text)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Text)))
+ i--
+ dAtA[i] = 0x2a
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Statistics) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_Statistics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_Statistics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.ReturnWindow != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReturnWindow))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.ReturnMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReturnMax))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Heartbeat {
+ i--
+ if m.Heartbeat {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.RequestsHistory != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RequestsHistory))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Requests != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Requests))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.UpTime != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.UpTime))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.MessagesMax != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesMax))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.MessagesSaved != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesSaved))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.MessagesTotal != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.MessagesTotal))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_History) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_History) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_History) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.LastRequest != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.LastRequest))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Window != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Window))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.HistoryMessages != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HistoryMessages))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_Heartbeat) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Secondary != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Secondary))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Period != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Period))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *StoreAndForward) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.Variant.(*StoreAndForward_Text); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*StoreAndForward_Heartbeat_); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*StoreAndForward_History_); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*StoreAndForward_Stats); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Rr != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Rr))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *StoreAndForward_Stats) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_Stats) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Stats != nil {
+ size, err := m.Stats.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_History_) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_History_) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.History != nil {
+ size, err := m.History.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Heartbeat_) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_Heartbeat_) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Heartbeat != nil {
+ size, err := m.Heartbeat.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Text) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *StoreAndForward_Text) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Text)
+ copy(dAtA[i:], m.Text)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Text)))
+ i--
+ dAtA[i] = 0x2a
+ return len(dAtA) - i, nil
+}
+func (m *StoreAndForward_Statistics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.MessagesTotal != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MessagesTotal))
+ }
+ if m.MessagesSaved != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MessagesSaved))
+ }
+ if m.MessagesMax != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.MessagesMax))
+ }
+ if m.UpTime != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.UpTime))
+ }
+ if m.Requests != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Requests))
+ }
+ if m.RequestsHistory != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.RequestsHistory))
+ }
+ if m.Heartbeat {
+ n += 2
+ }
+ if m.ReturnMax != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ReturnMax))
+ }
+ if m.ReturnWindow != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ReturnWindow))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *StoreAndForward_History) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.HistoryMessages != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HistoryMessages))
+ }
+ if m.Window != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Window))
+ }
+ if m.LastRequest != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.LastRequest))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *StoreAndForward_Heartbeat) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Period != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Period))
+ }
+ if m.Secondary != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Secondary))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *StoreAndForward) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Rr != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Rr))
+ }
+ if vtmsg, ok := m.Variant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *StoreAndForward_Stats) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Stats != nil {
+ l = m.Stats.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *StoreAndForward_History_) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.History != nil {
+ l = m.History.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *StoreAndForward_Heartbeat_) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Heartbeat != nil {
+ l = m.Heartbeat.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *StoreAndForward_Text) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Text)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ return n
+}
+func (m *StoreAndForward_Statistics) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_Statistics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_Statistics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesTotal", wireType)
+ }
+ m.MessagesTotal = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesTotal |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesSaved", wireType)
+ }
+ m.MessagesSaved = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesSaved |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesMax", wireType)
+ }
+ m.MessagesMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UpTime", wireType)
+ }
+ m.UpTime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.UpTime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Requests", wireType)
+ }
+ m.Requests = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Requests |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequestsHistory", wireType)
+ }
+ m.RequestsHistory = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RequestsHistory |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Heartbeat = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReturnMax", wireType)
+ }
+ m.ReturnMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ReturnMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReturnWindow", wireType)
+ }
+ m.ReturnWindow = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ReturnWindow |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward_History) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_History: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_History: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryMessages", wireType)
+ }
+ m.HistoryMessages = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryMessages |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Window", wireType)
+ }
+ m.Window = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Window |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastRequest", wireType)
+ }
+ m.LastRequest = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LastRequest |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward_Heartbeat) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_Heartbeat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_Heartbeat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Period", wireType)
+ }
+ m.Period = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Period |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Secondary", wireType)
+ }
+ m.Secondary = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Secondary |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rr", wireType)
+ }
+ m.Rr = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rr |= StoreAndForward_RequestResponse(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_Stats); ok {
+ if err := oneof.Stats.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_Statistics{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_Stats{Stats: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field History", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_History_); ok {
+ if err := oneof.History.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_History{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_History_{History: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_Heartbeat_); ok {
+ if err := oneof.Heartbeat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_Heartbeat{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_Heartbeat_{Heartbeat: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := make([]byte, postIndex-iNdEx)
+ copy(v, dAtA[iNdEx:postIndex])
+ m.Variant = &StoreAndForward_Text{Text: v}
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward_Statistics) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_Statistics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_Statistics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesTotal", wireType)
+ }
+ m.MessagesTotal = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesTotal |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesSaved", wireType)
+ }
+ m.MessagesSaved = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesSaved |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessagesMax", wireType)
+ }
+ m.MessagesMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.MessagesMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UpTime", wireType)
+ }
+ m.UpTime = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.UpTime |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Requests", wireType)
+ }
+ m.Requests = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Requests |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequestsHistory", wireType)
+ }
+ m.RequestsHistory = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.RequestsHistory |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Heartbeat = bool(v != 0)
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReturnMax", wireType)
+ }
+ m.ReturnMax = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ReturnMax |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReturnWindow", wireType)
+ }
+ m.ReturnWindow = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ReturnWindow |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward_History) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_History: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_History: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HistoryMessages", wireType)
+ }
+ m.HistoryMessages = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HistoryMessages |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Window", wireType)
+ }
+ m.Window = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Window |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LastRequest", wireType)
+ }
+ m.LastRequest = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.LastRequest |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward_Heartbeat) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward_Heartbeat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward_Heartbeat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Period", wireType)
+ }
+ m.Period = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Period |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Secondary", wireType)
+ }
+ m.Secondary = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Secondary |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *StoreAndForward) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: StoreAndForward: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: StoreAndForward: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Rr", wireType)
+ }
+ m.Rr = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Rr |= StoreAndForward_RequestResponse(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_Stats); ok {
+ if err := oneof.Stats.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_Statistics{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_Stats{Stats: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field History", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_History_); ok {
+ if err := oneof.History.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_History{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_History_{History: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Heartbeat", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*StoreAndForward_Heartbeat_); ok {
+ if err := oneof.Heartbeat.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &StoreAndForward_Heartbeat{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &StoreAndForward_Heartbeat_{Heartbeat: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := dAtA[iNdEx:postIndex]
+ m.Variant = &StoreAndForward_Text{Text: v}
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/telemetry.pb.go b/meshtastic/telemetry.pb.go
new file mode 100644
index 0000000..8815319
--- /dev/null
+++ b/meshtastic/telemetry.pb.go
@@ -0,0 +1,905 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/telemetry.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Supported I2C Sensors for telemetry in Meshtastic
+type TelemetrySensorType int32
+
+const (
+ // No external telemetry sensor explicitly set
+ TelemetrySensorType_SENSOR_UNSET TelemetrySensorType = 0
+ // High accuracy temperature, pressure, humidity
+ TelemetrySensorType_BME280 TelemetrySensorType = 1
+ // High accuracy temperature, pressure, humidity, and air resistance
+ TelemetrySensorType_BME680 TelemetrySensorType = 2
+ // Very high accuracy temperature
+ TelemetrySensorType_MCP9808 TelemetrySensorType = 3
+ // Moderate accuracy current and voltage
+ TelemetrySensorType_INA260 TelemetrySensorType = 4
+ // Moderate accuracy current and voltage
+ TelemetrySensorType_INA219 TelemetrySensorType = 5
+ // High accuracy temperature and pressure
+ TelemetrySensorType_BMP280 TelemetrySensorType = 6
+ // High accuracy temperature and humidity
+ TelemetrySensorType_SHTC3 TelemetrySensorType = 7
+ // High accuracy pressure
+ TelemetrySensorType_LPS22 TelemetrySensorType = 8
+ // 3-Axis magnetic sensor
+ TelemetrySensorType_QMC6310 TelemetrySensorType = 9
+ // 6-Axis inertial measurement sensor
+ TelemetrySensorType_QMI8658 TelemetrySensorType = 10
+ // 3-Axis magnetic sensor
+ TelemetrySensorType_QMC5883L TelemetrySensorType = 11
+ // High accuracy temperature and humidity
+ TelemetrySensorType_SHT31 TelemetrySensorType = 12
+ // PM2.5 air quality sensor
+ TelemetrySensorType_PMSA003I TelemetrySensorType = 13
+ // INA3221 3 Channel Voltage / Current Sensor
+ TelemetrySensorType_INA3221 TelemetrySensorType = 14
+)
+
+// Enum value maps for TelemetrySensorType.
+var (
+ TelemetrySensorType_name = map[int32]string{
+ 0: "SENSOR_UNSET",
+ 1: "BME280",
+ 2: "BME680",
+ 3: "MCP9808",
+ 4: "INA260",
+ 5: "INA219",
+ 6: "BMP280",
+ 7: "SHTC3",
+ 8: "LPS22",
+ 9: "QMC6310",
+ 10: "QMI8658",
+ 11: "QMC5883L",
+ 12: "SHT31",
+ 13: "PMSA003I",
+ 14: "INA3221",
+ }
+ TelemetrySensorType_value = map[string]int32{
+ "SENSOR_UNSET": 0,
+ "BME280": 1,
+ "BME680": 2,
+ "MCP9808": 3,
+ "INA260": 4,
+ "INA219": 5,
+ "BMP280": 6,
+ "SHTC3": 7,
+ "LPS22": 8,
+ "QMC6310": 9,
+ "QMI8658": 10,
+ "QMC5883L": 11,
+ "SHT31": 12,
+ "PMSA003I": 13,
+ "INA3221": 14,
+ }
+)
+
+func (x TelemetrySensorType) Enum() *TelemetrySensorType {
+ p := new(TelemetrySensorType)
+ *p = x
+ return p
+}
+
+func (x TelemetrySensorType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (TelemetrySensorType) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_telemetry_proto_enumTypes[0].Descriptor()
+}
+
+func (TelemetrySensorType) Type() protoreflect.EnumType {
+ return &file_meshtastic_telemetry_proto_enumTypes[0]
+}
+
+func (x TelemetrySensorType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use TelemetrySensorType.Descriptor instead.
+func (TelemetrySensorType) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{0}
+}
+
+// Key native device metrics such as battery level
+type DeviceMetrics struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // 0-100 (>100 means powered)
+ BatteryLevel uint32 `protobuf:"varint,1,opt,name=battery_level,json=batteryLevel,proto3" json:"battery_level,omitempty"`
+ // Voltage measured
+ Voltage float32 `protobuf:"fixed32,2,opt,name=voltage,proto3" json:"voltage,omitempty"`
+ // Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise).
+ ChannelUtilization float32 `protobuf:"fixed32,3,opt,name=channel_utilization,json=channelUtilization,proto3" json:"channel_utilization,omitempty"`
+ // Percent of airtime for transmission used within the last hour.
+ AirUtilTx float32 `protobuf:"fixed32,4,opt,name=air_util_tx,json=airUtilTx,proto3" json:"air_util_tx,omitempty"`
+}
+
+func (x *DeviceMetrics) Reset() {
+ *x = DeviceMetrics{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceMetrics) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceMetrics) ProtoMessage() {}
+
+func (x *DeviceMetrics) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceMetrics.ProtoReflect.Descriptor instead.
+func (*DeviceMetrics) Descriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DeviceMetrics) GetBatteryLevel() uint32 {
+ if x != nil {
+ return x.BatteryLevel
+ }
+ return 0
+}
+
+func (x *DeviceMetrics) GetVoltage() float32 {
+ if x != nil {
+ return x.Voltage
+ }
+ return 0
+}
+
+func (x *DeviceMetrics) GetChannelUtilization() float32 {
+ if x != nil {
+ return x.ChannelUtilization
+ }
+ return 0
+}
+
+func (x *DeviceMetrics) GetAirUtilTx() float32 {
+ if x != nil {
+ return x.AirUtilTx
+ }
+ return 0
+}
+
+// Weather station or other environmental metrics
+type EnvironmentMetrics struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Temperature measured
+ Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"`
+ // Relative humidity percent measured
+ RelativeHumidity float32 `protobuf:"fixed32,2,opt,name=relative_humidity,json=relativeHumidity,proto3" json:"relative_humidity,omitempty"`
+ // Barometric pressure in hPA measured
+ BarometricPressure float32 `protobuf:"fixed32,3,opt,name=barometric_pressure,json=barometricPressure,proto3" json:"barometric_pressure,omitempty"`
+ // Gas resistance in MOhm measured
+ GasResistance float32 `protobuf:"fixed32,4,opt,name=gas_resistance,json=gasResistance,proto3" json:"gas_resistance,omitempty"`
+ // Voltage measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
+ Voltage float32 `protobuf:"fixed32,5,opt,name=voltage,proto3" json:"voltage,omitempty"`
+ // Current measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
+ Current float32 `protobuf:"fixed32,6,opt,name=current,proto3" json:"current,omitempty"`
+}
+
+func (x *EnvironmentMetrics) Reset() {
+ *x = EnvironmentMetrics{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EnvironmentMetrics) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EnvironmentMetrics) ProtoMessage() {}
+
+func (x *EnvironmentMetrics) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EnvironmentMetrics.ProtoReflect.Descriptor instead.
+func (*EnvironmentMetrics) Descriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *EnvironmentMetrics) GetTemperature() float32 {
+ if x != nil {
+ return x.Temperature
+ }
+ return 0
+}
+
+func (x *EnvironmentMetrics) GetRelativeHumidity() float32 {
+ if x != nil {
+ return x.RelativeHumidity
+ }
+ return 0
+}
+
+func (x *EnvironmentMetrics) GetBarometricPressure() float32 {
+ if x != nil {
+ return x.BarometricPressure
+ }
+ return 0
+}
+
+func (x *EnvironmentMetrics) GetGasResistance() float32 {
+ if x != nil {
+ return x.GasResistance
+ }
+ return 0
+}
+
+func (x *EnvironmentMetrics) GetVoltage() float32 {
+ if x != nil {
+ return x.Voltage
+ }
+ return 0
+}
+
+func (x *EnvironmentMetrics) GetCurrent() float32 {
+ if x != nil {
+ return x.Current
+ }
+ return 0
+}
+
+// Power Metrics (voltage / current / etc)
+type PowerMetrics struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Voltage (Ch1)
+ Ch1Voltage float32 `protobuf:"fixed32,1,opt,name=ch1_voltage,json=ch1Voltage,proto3" json:"ch1_voltage,omitempty"`
+ // Current (Ch1)
+ Ch1Current float32 `protobuf:"fixed32,2,opt,name=ch1_current,json=ch1Current,proto3" json:"ch1_current,omitempty"`
+ // Voltage (Ch2)
+ Ch2Voltage float32 `protobuf:"fixed32,3,opt,name=ch2_voltage,json=ch2Voltage,proto3" json:"ch2_voltage,omitempty"`
+ // Current (Ch2)
+ Ch2Current float32 `protobuf:"fixed32,4,opt,name=ch2_current,json=ch2Current,proto3" json:"ch2_current,omitempty"`
+ // Voltage (Ch3)
+ Ch3Voltage float32 `protobuf:"fixed32,5,opt,name=ch3_voltage,json=ch3Voltage,proto3" json:"ch3_voltage,omitempty"`
+ // Current (Ch3)
+ Ch3Current float32 `protobuf:"fixed32,6,opt,name=ch3_current,json=ch3Current,proto3" json:"ch3_current,omitempty"`
+}
+
+func (x *PowerMetrics) Reset() {
+ *x = PowerMetrics{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PowerMetrics) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PowerMetrics) ProtoMessage() {}
+
+func (x *PowerMetrics) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PowerMetrics.ProtoReflect.Descriptor instead.
+func (*PowerMetrics) Descriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PowerMetrics) GetCh1Voltage() float32 {
+ if x != nil {
+ return x.Ch1Voltage
+ }
+ return 0
+}
+
+func (x *PowerMetrics) GetCh1Current() float32 {
+ if x != nil {
+ return x.Ch1Current
+ }
+ return 0
+}
+
+func (x *PowerMetrics) GetCh2Voltage() float32 {
+ if x != nil {
+ return x.Ch2Voltage
+ }
+ return 0
+}
+
+func (x *PowerMetrics) GetCh2Current() float32 {
+ if x != nil {
+ return x.Ch2Current
+ }
+ return 0
+}
+
+func (x *PowerMetrics) GetCh3Voltage() float32 {
+ if x != nil {
+ return x.Ch3Voltage
+ }
+ return 0
+}
+
+func (x *PowerMetrics) GetCh3Current() float32 {
+ if x != nil {
+ return x.Ch3Current
+ }
+ return 0
+}
+
+// Air quality metrics
+type AirQualityMetrics struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Concentration Units Standard PM1.0
+ Pm10Standard uint32 `protobuf:"varint,1,opt,name=pm10_standard,json=pm10Standard,proto3" json:"pm10_standard,omitempty"`
+ // Concentration Units Standard PM2.5
+ Pm25Standard uint32 `protobuf:"varint,2,opt,name=pm25_standard,json=pm25Standard,proto3" json:"pm25_standard,omitempty"`
+ // Concentration Units Standard PM10.0
+ Pm100Standard uint32 `protobuf:"varint,3,opt,name=pm100_standard,json=pm100Standard,proto3" json:"pm100_standard,omitempty"`
+ // Concentration Units Environmental PM1.0
+ Pm10Environmental uint32 `protobuf:"varint,4,opt,name=pm10_environmental,json=pm10Environmental,proto3" json:"pm10_environmental,omitempty"`
+ // Concentration Units Environmental PM2.5
+ Pm25Environmental uint32 `protobuf:"varint,5,opt,name=pm25_environmental,json=pm25Environmental,proto3" json:"pm25_environmental,omitempty"`
+ // Concentration Units Environmental PM10.0
+ Pm100Environmental uint32 `protobuf:"varint,6,opt,name=pm100_environmental,json=pm100Environmental,proto3" json:"pm100_environmental,omitempty"`
+ // 0.3um Particle Count
+ Particles_03Um uint32 `protobuf:"varint,7,opt,name=particles_03um,json=particles03um,proto3" json:"particles_03um,omitempty"`
+ // 0.5um Particle Count
+ Particles_05Um uint32 `protobuf:"varint,8,opt,name=particles_05um,json=particles05um,proto3" json:"particles_05um,omitempty"`
+ // 1.0um Particle Count
+ Particles_10Um uint32 `protobuf:"varint,9,opt,name=particles_10um,json=particles10um,proto3" json:"particles_10um,omitempty"`
+ // 2.5um Particle Count
+ Particles_25Um uint32 `protobuf:"varint,10,opt,name=particles_25um,json=particles25um,proto3" json:"particles_25um,omitempty"`
+ // 5.0um Particle Count
+ Particles_50Um uint32 `protobuf:"varint,11,opt,name=particles_50um,json=particles50um,proto3" json:"particles_50um,omitempty"`
+ // 10.0um Particle Count
+ Particles_100Um uint32 `protobuf:"varint,12,opt,name=particles_100um,json=particles100um,proto3" json:"particles_100um,omitempty"`
+}
+
+func (x *AirQualityMetrics) Reset() {
+ *x = AirQualityMetrics{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AirQualityMetrics) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AirQualityMetrics) ProtoMessage() {}
+
+func (x *AirQualityMetrics) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AirQualityMetrics.ProtoReflect.Descriptor instead.
+func (*AirQualityMetrics) Descriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *AirQualityMetrics) GetPm10Standard() uint32 {
+ if x != nil {
+ return x.Pm10Standard
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetPm25Standard() uint32 {
+ if x != nil {
+ return x.Pm25Standard
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetPm100Standard() uint32 {
+ if x != nil {
+ return x.Pm100Standard
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetPm10Environmental() uint32 {
+ if x != nil {
+ return x.Pm10Environmental
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetPm25Environmental() uint32 {
+ if x != nil {
+ return x.Pm25Environmental
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetPm100Environmental() uint32 {
+ if x != nil {
+ return x.Pm100Environmental
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_03Um() uint32 {
+ if x != nil {
+ return x.Particles_03Um
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_05Um() uint32 {
+ if x != nil {
+ return x.Particles_05Um
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_10Um() uint32 {
+ if x != nil {
+ return x.Particles_10Um
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_25Um() uint32 {
+ if x != nil {
+ return x.Particles_25Um
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_50Um() uint32 {
+ if x != nil {
+ return x.Particles_50Um
+ }
+ return 0
+}
+
+func (x *AirQualityMetrics) GetParticles_100Um() uint32 {
+ if x != nil {
+ return x.Particles_100Um
+ }
+ return 0
+}
+
+// Types of Measurements the telemetry module is equipped to handle
+type Telemetry struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Seconds since 1970 - or 0 for unknown/unset
+ Time uint32 `protobuf:"fixed32,1,opt,name=time,proto3" json:"time,omitempty"`
+ // Types that are assignable to Variant:
+ //
+ // *Telemetry_DeviceMetrics
+ // *Telemetry_EnvironmentMetrics
+ // *Telemetry_AirQualityMetrics
+ // *Telemetry_PowerMetrics
+ Variant isTelemetry_Variant `protobuf_oneof:"variant"`
+}
+
+func (x *Telemetry) Reset() {
+ *x = Telemetry{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Telemetry) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Telemetry) ProtoMessage() {}
+
+func (x *Telemetry) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_telemetry_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Telemetry.ProtoReflect.Descriptor instead.
+func (*Telemetry) Descriptor() ([]byte, []int) {
+ return file_meshtastic_telemetry_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Telemetry) GetTime() uint32 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (m *Telemetry) GetVariant() isTelemetry_Variant {
+ if m != nil {
+ return m.Variant
+ }
+ return nil
+}
+
+func (x *Telemetry) GetDeviceMetrics() *DeviceMetrics {
+ if x, ok := x.GetVariant().(*Telemetry_DeviceMetrics); ok {
+ return x.DeviceMetrics
+ }
+ return nil
+}
+
+func (x *Telemetry) GetEnvironmentMetrics() *EnvironmentMetrics {
+ if x, ok := x.GetVariant().(*Telemetry_EnvironmentMetrics); ok {
+ return x.EnvironmentMetrics
+ }
+ return nil
+}
+
+func (x *Telemetry) GetAirQualityMetrics() *AirQualityMetrics {
+ if x, ok := x.GetVariant().(*Telemetry_AirQualityMetrics); ok {
+ return x.AirQualityMetrics
+ }
+ return nil
+}
+
+func (x *Telemetry) GetPowerMetrics() *PowerMetrics {
+ if x, ok := x.GetVariant().(*Telemetry_PowerMetrics); ok {
+ return x.PowerMetrics
+ }
+ return nil
+}
+
+type isTelemetry_Variant interface {
+ isTelemetry_Variant()
+}
+
+type Telemetry_DeviceMetrics struct {
+ // Key native device metrics such as battery level
+ DeviceMetrics *DeviceMetrics `protobuf:"bytes,2,opt,name=device_metrics,json=deviceMetrics,proto3,oneof"`
+}
+
+type Telemetry_EnvironmentMetrics struct {
+ // Weather station or other environmental metrics
+ EnvironmentMetrics *EnvironmentMetrics `protobuf:"bytes,3,opt,name=environment_metrics,json=environmentMetrics,proto3,oneof"`
+}
+
+type Telemetry_AirQualityMetrics struct {
+ // Air quality metrics
+ AirQualityMetrics *AirQualityMetrics `protobuf:"bytes,4,opt,name=air_quality_metrics,json=airQualityMetrics,proto3,oneof"`
+}
+
+type Telemetry_PowerMetrics struct {
+ // Power Metrics
+ PowerMetrics *PowerMetrics `protobuf:"bytes,5,opt,name=power_metrics,json=powerMetrics,proto3,oneof"`
+}
+
+func (*Telemetry_DeviceMetrics) isTelemetry_Variant() {}
+
+func (*Telemetry_EnvironmentMetrics) isTelemetry_Variant() {}
+
+func (*Telemetry_AirQualityMetrics) isTelemetry_Variant() {}
+
+func (*Telemetry_PowerMetrics) isTelemetry_Variant() {}
+
+var File_meshtastic_telemetry_proto protoreflect.FileDescriptor
+
+var file_meshtastic_telemetry_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x74, 0x65, 0x6c,
+ 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61,
+ 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
+ 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
+ 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55,
+ 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x69,
+ 0x72, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52,
+ 0x09, 0x61, 0x69, 0x72, 0x55, 0x74, 0x69, 0x6c, 0x54, 0x78, 0x22, 0xef, 0x01, 0x0a, 0x12, 0x45,
+ 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10,
+ 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79,
+ 0x12, 0x2f, 0x0a, 0x13, 0x62, 0x61, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70,
+ 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x62,
+ 0x61, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72,
+ 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x67, 0x61, 0x73, 0x52, 0x65,
+ 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74,
+ 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61,
+ 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x02, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0xd4, 0x01, 0x0a,
+ 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x63, 0x68, 0x31, 0x5f, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x31, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x63, 0x68, 0x31, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x31, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x32, 0x5f, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x32, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x32, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x32, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
+ 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x33, 0x5f, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x33, 0x56, 0x6f, 0x6c, 0x74, 0x61,
+ 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x33, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x33, 0x43, 0x75, 0x72, 0x72,
+ 0x65, 0x6e, 0x74, 0x22, 0xff, 0x03, 0x0a, 0x11, 0x41, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6d, 0x31,
+ 0x30, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x0c, 0x70, 0x6d, 0x31, 0x30, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x23,
+ 0x0a, 0x0d, 0x70, 0x6d, 0x32, 0x35, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6d, 0x32, 0x35, 0x53, 0x74, 0x61, 0x6e, 0x64,
+ 0x61, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6d, 0x31, 0x30, 0x30, 0x5f, 0x73, 0x74, 0x61,
+ 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6d, 0x31,
+ 0x30, 0x30, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6d,
+ 0x31, 0x30, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6d, 0x31, 0x30, 0x45, 0x6e, 0x76, 0x69,
+ 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6d, 0x32,
+ 0x35, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6d, 0x32, 0x35, 0x45, 0x6e, 0x76, 0x69, 0x72,
+ 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x6d, 0x31, 0x30,
+ 0x30, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x6d, 0x31, 0x30, 0x30, 0x45, 0x6e, 0x76, 0x69,
+ 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72,
+ 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x30, 0x33, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x30, 0x33, 0x75, 0x6d,
+ 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x30, 0x35,
+ 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
+ 0x6c, 0x65, 0x73, 0x30, 0x35, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69,
+ 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x31, 0x30, 0x75, 0x6d, 0x12, 0x25,
+ 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x32, 0x35, 0x75, 0x6d,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65,
+ 0x73, 0x32, 0x35, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c,
+ 0x65, 0x73, 0x5f, 0x35, 0x30, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70,
+ 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x35, 0x30, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x0f,
+ 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x30, 0x75, 0x6d, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73,
+ 0x31, 0x30, 0x30, 0x75, 0x6d, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65,
+ 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x07, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x51, 0x0a, 0x13, 0x65,
+ 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, 0x65, 0x6e, 0x76, 0x69,
+ 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x4f,
+ 0x0a, 0x13, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x41, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6c,
+ 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x11, 0x61, 0x69,
+ 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
+ 0x3f, 0x0a, 0x0d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
+ 0x74, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x2a, 0xd4, 0x01, 0x0a, 0x13,
+ 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x55, 0x4e,
+ 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x4d, 0x45, 0x32, 0x38, 0x30, 0x10,
+ 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x4d, 0x45, 0x36, 0x38, 0x30, 0x10, 0x02, 0x12, 0x0b, 0x0a,
+ 0x07, 0x4d, 0x43, 0x50, 0x39, 0x38, 0x30, 0x38, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e,
+ 0x41, 0x32, 0x36, 0x30, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x41, 0x32, 0x31, 0x39,
+ 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x4d, 0x50, 0x32, 0x38, 0x30, 0x10, 0x06, 0x12, 0x09,
+ 0x0a, 0x05, 0x53, 0x48, 0x54, 0x43, 0x33, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x50, 0x53,
+ 0x32, 0x32, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x51, 0x4d, 0x43, 0x36, 0x33, 0x31, 0x30, 0x10,
+ 0x09, 0x12, 0x0b, 0x0a, 0x07, 0x51, 0x4d, 0x49, 0x38, 0x36, 0x35, 0x38, 0x10, 0x0a, 0x12, 0x0c,
+ 0x0a, 0x08, 0x51, 0x4d, 0x43, 0x35, 0x38, 0x38, 0x33, 0x4c, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05,
+ 0x53, 0x48, 0x54, 0x33, 0x31, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x4d, 0x53, 0x41, 0x30,
+ 0x30, 0x33, 0x49, 0x10, 0x0d, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x41, 0x33, 0x32, 0x32, 0x31,
+ 0x10, 0x0e, 0x42, 0x64, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76,
+ 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0f, 0x54, 0x65, 0x6c, 0x65, 0x6d,
+ 0x65, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68,
+ 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02,
+ 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_telemetry_proto_rawDescOnce sync.Once
+ file_meshtastic_telemetry_proto_rawDescData = file_meshtastic_telemetry_proto_rawDesc
+)
+
+func file_meshtastic_telemetry_proto_rawDescGZIP() []byte {
+ file_meshtastic_telemetry_proto_rawDescOnce.Do(func() {
+ file_meshtastic_telemetry_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_telemetry_proto_rawDescData)
+ })
+ return file_meshtastic_telemetry_proto_rawDescData
+}
+
+var file_meshtastic_telemetry_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_telemetry_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_meshtastic_telemetry_proto_goTypes = []interface{}{
+ (TelemetrySensorType)(0), // 0: meshtastic.TelemetrySensorType
+ (*DeviceMetrics)(nil), // 1: meshtastic.DeviceMetrics
+ (*EnvironmentMetrics)(nil), // 2: meshtastic.EnvironmentMetrics
+ (*PowerMetrics)(nil), // 3: meshtastic.PowerMetrics
+ (*AirQualityMetrics)(nil), // 4: meshtastic.AirQualityMetrics
+ (*Telemetry)(nil), // 5: meshtastic.Telemetry
+}
+var file_meshtastic_telemetry_proto_depIdxs = []int32{
+ 1, // 0: meshtastic.Telemetry.device_metrics:type_name -> meshtastic.DeviceMetrics
+ 2, // 1: meshtastic.Telemetry.environment_metrics:type_name -> meshtastic.EnvironmentMetrics
+ 4, // 2: meshtastic.Telemetry.air_quality_metrics:type_name -> meshtastic.AirQualityMetrics
+ 3, // 3: meshtastic.Telemetry.power_metrics:type_name -> meshtastic.PowerMetrics
+ 4, // [4:4] is the sub-list for method output_type
+ 4, // [4:4] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_telemetry_proto_init() }
+func file_meshtastic_telemetry_proto_init() {
+ if File_meshtastic_telemetry_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_telemetry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceMetrics); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_telemetry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EnvironmentMetrics); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_telemetry_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PowerMetrics); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_telemetry_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AirQualityMetrics); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_meshtastic_telemetry_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Telemetry); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_meshtastic_telemetry_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*Telemetry_DeviceMetrics)(nil),
+ (*Telemetry_EnvironmentMetrics)(nil),
+ (*Telemetry_AirQualityMetrics)(nil),
+ (*Telemetry_PowerMetrics)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_telemetry_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_telemetry_proto_goTypes,
+ DependencyIndexes: file_meshtastic_telemetry_proto_depIdxs,
+ EnumInfos: file_meshtastic_telemetry_proto_enumTypes,
+ MessageInfos: file_meshtastic_telemetry_proto_msgTypes,
+ }.Build()
+ File_meshtastic_telemetry_proto = out.File
+ file_meshtastic_telemetry_proto_rawDesc = nil
+ file_meshtastic_telemetry_proto_goTypes = nil
+ file_meshtastic_telemetry_proto_depIdxs = nil
+}
diff --git a/meshtastic/telemetry_vtproto.pb.go b/meshtastic/telemetry_vtproto.pb.go
new file mode 100644
index 0000000..89264d6
--- /dev/null
+++ b/meshtastic/telemetry_vtproto.pb.go
@@ -0,0 +1,3161 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/telemetry.proto
+
+package generated
+
+import (
+ binary "encoding/binary"
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+ math "math"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *DeviceMetrics) CloneVT() *DeviceMetrics {
+ if m == nil {
+ return (*DeviceMetrics)(nil)
+ }
+ r := new(DeviceMetrics)
+ r.BatteryLevel = m.BatteryLevel
+ r.Voltage = m.Voltage
+ r.ChannelUtilization = m.ChannelUtilization
+ r.AirUtilTx = m.AirUtilTx
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeviceMetrics) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *EnvironmentMetrics) CloneVT() *EnvironmentMetrics {
+ if m == nil {
+ return (*EnvironmentMetrics)(nil)
+ }
+ r := new(EnvironmentMetrics)
+ r.Temperature = m.Temperature
+ r.RelativeHumidity = m.RelativeHumidity
+ r.BarometricPressure = m.BarometricPressure
+ r.GasResistance = m.GasResistance
+ r.Voltage = m.Voltage
+ r.Current = m.Current
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *EnvironmentMetrics) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *PowerMetrics) CloneVT() *PowerMetrics {
+ if m == nil {
+ return (*PowerMetrics)(nil)
+ }
+ r := new(PowerMetrics)
+ r.Ch1Voltage = m.Ch1Voltage
+ r.Ch1Current = m.Ch1Current
+ r.Ch2Voltage = m.Ch2Voltage
+ r.Ch2Current = m.Ch2Current
+ r.Ch3Voltage = m.Ch3Voltage
+ r.Ch3Current = m.Ch3Current
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *PowerMetrics) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *AirQualityMetrics) CloneVT() *AirQualityMetrics {
+ if m == nil {
+ return (*AirQualityMetrics)(nil)
+ }
+ r := new(AirQualityMetrics)
+ r.Pm10Standard = m.Pm10Standard
+ r.Pm25Standard = m.Pm25Standard
+ r.Pm100Standard = m.Pm100Standard
+ r.Pm10Environmental = m.Pm10Environmental
+ r.Pm25Environmental = m.Pm25Environmental
+ r.Pm100Environmental = m.Pm100Environmental
+ r.Particles_03Um = m.Particles_03Um
+ r.Particles_05Um = m.Particles_05Um
+ r.Particles_10Um = m.Particles_10Um
+ r.Particles_25Um = m.Particles_25Um
+ r.Particles_50Um = m.Particles_50Um
+ r.Particles_100Um = m.Particles_100Um
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *AirQualityMetrics) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Telemetry) CloneVT() *Telemetry {
+ if m == nil {
+ return (*Telemetry)(nil)
+ }
+ r := new(Telemetry)
+ r.Time = m.Time
+ if m.Variant != nil {
+ r.Variant = m.Variant.(interface{ CloneVT() isTelemetry_Variant }).CloneVT()
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *Telemetry) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *Telemetry_DeviceMetrics) CloneVT() isTelemetry_Variant {
+ if m == nil {
+ return (*Telemetry_DeviceMetrics)(nil)
+ }
+ r := new(Telemetry_DeviceMetrics)
+ r.DeviceMetrics = m.DeviceMetrics.CloneVT()
+ return r
+}
+
+func (m *Telemetry_EnvironmentMetrics) CloneVT() isTelemetry_Variant {
+ if m == nil {
+ return (*Telemetry_EnvironmentMetrics)(nil)
+ }
+ r := new(Telemetry_EnvironmentMetrics)
+ r.EnvironmentMetrics = m.EnvironmentMetrics.CloneVT()
+ return r
+}
+
+func (m *Telemetry_AirQualityMetrics) CloneVT() isTelemetry_Variant {
+ if m == nil {
+ return (*Telemetry_AirQualityMetrics)(nil)
+ }
+ r := new(Telemetry_AirQualityMetrics)
+ r.AirQualityMetrics = m.AirQualityMetrics.CloneVT()
+ return r
+}
+
+func (m *Telemetry_PowerMetrics) CloneVT() isTelemetry_Variant {
+ if m == nil {
+ return (*Telemetry_PowerMetrics)(nil)
+ }
+ r := new(Telemetry_PowerMetrics)
+ r.PowerMetrics = m.PowerMetrics.CloneVT()
+ return r
+}
+
+func (this *DeviceMetrics) EqualVT(that *DeviceMetrics) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.BatteryLevel != that.BatteryLevel {
+ return false
+ }
+ if this.Voltage != that.Voltage {
+ return false
+ }
+ if this.ChannelUtilization != that.ChannelUtilization {
+ return false
+ }
+ if this.AirUtilTx != that.AirUtilTx {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *DeviceMetrics) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*DeviceMetrics)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *EnvironmentMetrics) EqualVT(that *EnvironmentMetrics) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Temperature != that.Temperature {
+ return false
+ }
+ if this.RelativeHumidity != that.RelativeHumidity {
+ return false
+ }
+ if this.BarometricPressure != that.BarometricPressure {
+ return false
+ }
+ if this.GasResistance != that.GasResistance {
+ return false
+ }
+ if this.Voltage != that.Voltage {
+ return false
+ }
+ if this.Current != that.Current {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *EnvironmentMetrics) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*EnvironmentMetrics)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *PowerMetrics) EqualVT(that *PowerMetrics) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Ch1Voltage != that.Ch1Voltage {
+ return false
+ }
+ if this.Ch1Current != that.Ch1Current {
+ return false
+ }
+ if this.Ch2Voltage != that.Ch2Voltage {
+ return false
+ }
+ if this.Ch2Current != that.Ch2Current {
+ return false
+ }
+ if this.Ch3Voltage != that.Ch3Voltage {
+ return false
+ }
+ if this.Ch3Current != that.Ch3Current {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *PowerMetrics) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*PowerMetrics)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *AirQualityMetrics) EqualVT(that *AirQualityMetrics) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Pm10Standard != that.Pm10Standard {
+ return false
+ }
+ if this.Pm25Standard != that.Pm25Standard {
+ return false
+ }
+ if this.Pm100Standard != that.Pm100Standard {
+ return false
+ }
+ if this.Pm10Environmental != that.Pm10Environmental {
+ return false
+ }
+ if this.Pm25Environmental != that.Pm25Environmental {
+ return false
+ }
+ if this.Pm100Environmental != that.Pm100Environmental {
+ return false
+ }
+ if this.Particles_03Um != that.Particles_03Um {
+ return false
+ }
+ if this.Particles_05Um != that.Particles_05Um {
+ return false
+ }
+ if this.Particles_10Um != that.Particles_10Um {
+ return false
+ }
+ if this.Particles_25Um != that.Particles_25Um {
+ return false
+ }
+ if this.Particles_50Um != that.Particles_50Um {
+ return false
+ }
+ if this.Particles_100Um != that.Particles_100Um {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *AirQualityMetrics) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*AirQualityMetrics)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Telemetry) EqualVT(that *Telemetry) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Variant == nil && that.Variant != nil {
+ return false
+ } else if this.Variant != nil {
+ if that.Variant == nil {
+ return false
+ }
+ if !this.Variant.(interface {
+ EqualVT(isTelemetry_Variant) bool
+ }).EqualVT(that.Variant) {
+ return false
+ }
+ }
+ if this.Time != that.Time {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *Telemetry) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*Telemetry)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (this *Telemetry_DeviceMetrics) EqualVT(thatIface isTelemetry_Variant) bool {
+ that, ok := thatIface.(*Telemetry_DeviceMetrics)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.DeviceMetrics, that.DeviceMetrics; p != q {
+ if p == nil {
+ p = &DeviceMetrics{}
+ }
+ if q == nil {
+ q = &DeviceMetrics{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Telemetry_EnvironmentMetrics) EqualVT(thatIface isTelemetry_Variant) bool {
+ that, ok := thatIface.(*Telemetry_EnvironmentMetrics)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.EnvironmentMetrics, that.EnvironmentMetrics; p != q {
+ if p == nil {
+ p = &EnvironmentMetrics{}
+ }
+ if q == nil {
+ q = &EnvironmentMetrics{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Telemetry_AirQualityMetrics) EqualVT(thatIface isTelemetry_Variant) bool {
+ that, ok := thatIface.(*Telemetry_AirQualityMetrics)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.AirQualityMetrics, that.AirQualityMetrics; p != q {
+ if p == nil {
+ p = &AirQualityMetrics{}
+ }
+ if q == nil {
+ q = &AirQualityMetrics{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (this *Telemetry_PowerMetrics) EqualVT(thatIface isTelemetry_Variant) bool {
+ that, ok := thatIface.(*Telemetry_PowerMetrics)
+ if !ok {
+ return false
+ }
+ if this == that {
+ return true
+ }
+ if this == nil && that != nil || this != nil && that == nil {
+ return false
+ }
+ if p, q := this.PowerMetrics, that.PowerMetrics; p != q {
+ if p == nil {
+ p = &PowerMetrics{}
+ }
+ if q == nil {
+ q = &PowerMetrics{}
+ }
+ if !p.EqualVT(q) {
+ return false
+ }
+ }
+ return true
+}
+
+func (m *DeviceMetrics) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeviceMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.AirUtilTx != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.AirUtilTx))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.ChannelUtilization != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.ChannelUtilization))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Voltage))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.BatteryLevel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BatteryLevel))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EnvironmentMetrics) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EnvironmentMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *EnvironmentMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Current))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Voltage))))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.GasResistance != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.GasResistance))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.BarometricPressure != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.BarometricPressure))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.RelativeHumidity != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.RelativeHumidity))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Temperature != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Temperature))))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PowerMetrics) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PowerMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *PowerMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Ch3Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch3Current))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Ch3Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch3Voltage))))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Ch2Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch2Current))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Ch2Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch2Voltage))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Ch1Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch1Current))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Ch1Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch1Voltage))))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AirQualityMetrics) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *AirQualityMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *AirQualityMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Particles_100Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_100Um))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.Particles_50Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_50Um))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.Particles_25Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_25Um))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.Particles_10Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_10Um))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Particles_05Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_05Um))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Particles_03Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_03Um))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Pm100Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm100Environmental))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Pm25Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm25Environmental))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Pm10Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm10Environmental))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Pm100Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm100Standard))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Pm25Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm25Standard))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Pm10Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm10Standard))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Telemetry) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Telemetry) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Telemetry) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if vtmsg, ok := m.Variant.(interface {
+ MarshalToSizedBufferVT([]byte) (int, error)
+ }); ok {
+ size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Telemetry_DeviceMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Telemetry_DeviceMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_EnvironmentMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Telemetry_EnvironmentMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.EnvironmentMetrics != nil {
+ size, err := m.EnvironmentMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_AirQualityMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Telemetry_AirQualityMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.AirQualityMetrics != nil {
+ size, err := m.AirQualityMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_PowerMetrics) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *Telemetry_PowerMetrics) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.PowerMetrics != nil {
+ size, err := m.PowerMetrics.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *DeviceMetrics) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeviceMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *DeviceMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.AirUtilTx != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.AirUtilTx))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.ChannelUtilization != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.ChannelUtilization))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Voltage))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.BatteryLevel != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BatteryLevel))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EnvironmentMetrics) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EnvironmentMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *EnvironmentMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Current))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Voltage))))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.GasResistance != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.GasResistance))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.BarometricPressure != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.BarometricPressure))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.RelativeHumidity != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.RelativeHumidity))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Temperature != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Temperature))))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *PowerMetrics) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PowerMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *PowerMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Ch3Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch3Current))))
+ i--
+ dAtA[i] = 0x35
+ }
+ if m.Ch3Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch3Voltage))))
+ i--
+ dAtA[i] = 0x2d
+ }
+ if m.Ch2Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch2Current))))
+ i--
+ dAtA[i] = 0x25
+ }
+ if m.Ch2Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch2Voltage))))
+ i--
+ dAtA[i] = 0x1d
+ }
+ if m.Ch1Current != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch1Current))))
+ i--
+ dAtA[i] = 0x15
+ }
+ if m.Ch1Voltage != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Ch1Voltage))))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *AirQualityMetrics) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *AirQualityMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *AirQualityMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Particles_100Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_100Um))
+ i--
+ dAtA[i] = 0x60
+ }
+ if m.Particles_50Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_50Um))
+ i--
+ dAtA[i] = 0x58
+ }
+ if m.Particles_25Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_25Um))
+ i--
+ dAtA[i] = 0x50
+ }
+ if m.Particles_10Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_10Um))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Particles_05Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_05Um))
+ i--
+ dAtA[i] = 0x40
+ }
+ if m.Particles_03Um != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Particles_03Um))
+ i--
+ dAtA[i] = 0x38
+ }
+ if m.Pm100Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm100Environmental))
+ i--
+ dAtA[i] = 0x30
+ }
+ if m.Pm25Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm25Environmental))
+ i--
+ dAtA[i] = 0x28
+ }
+ if m.Pm10Environmental != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm10Environmental))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.Pm100Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm100Standard))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Pm25Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm25Standard))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Pm10Standard != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Pm10Standard))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Telemetry) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Telemetry) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Telemetry) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if msg, ok := m.Variant.(*Telemetry_PowerMetrics); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*Telemetry_AirQualityMetrics); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*Telemetry_EnvironmentMetrics); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if msg, ok := m.Variant.(*Telemetry_DeviceMetrics); ok {
+ size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ }
+ if m.Time != 0 {
+ i -= 4
+ binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Time))
+ i--
+ dAtA[i] = 0xd
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *Telemetry_DeviceMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Telemetry_DeviceMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.DeviceMetrics != nil {
+ size, err := m.DeviceMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_EnvironmentMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Telemetry_EnvironmentMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.EnvironmentMetrics != nil {
+ size, err := m.EnvironmentMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_AirQualityMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Telemetry_AirQualityMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.AirQualityMetrics != nil {
+ size, err := m.AirQualityMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x22
+ }
+ return len(dAtA) - i, nil
+}
+func (m *Telemetry_PowerMetrics) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *Telemetry_PowerMetrics) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.PowerMetrics != nil {
+ size, err := m.PowerMetrics.MarshalToSizedBufferVTStrict(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x2a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *DeviceMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.BatteryLevel != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.BatteryLevel))
+ }
+ if m.Voltage != 0 {
+ n += 5
+ }
+ if m.ChannelUtilization != 0 {
+ n += 5
+ }
+ if m.AirUtilTx != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *EnvironmentMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Temperature != 0 {
+ n += 5
+ }
+ if m.RelativeHumidity != 0 {
+ n += 5
+ }
+ if m.BarometricPressure != 0 {
+ n += 5
+ }
+ if m.GasResistance != 0 {
+ n += 5
+ }
+ if m.Voltage != 0 {
+ n += 5
+ }
+ if m.Current != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *PowerMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Ch1Voltage != 0 {
+ n += 5
+ }
+ if m.Ch1Current != 0 {
+ n += 5
+ }
+ if m.Ch2Voltage != 0 {
+ n += 5
+ }
+ if m.Ch2Current != 0 {
+ n += 5
+ }
+ if m.Ch3Voltage != 0 {
+ n += 5
+ }
+ if m.Ch3Current != 0 {
+ n += 5
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *AirQualityMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Pm10Standard != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm10Standard))
+ }
+ if m.Pm25Standard != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm25Standard))
+ }
+ if m.Pm100Standard != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm100Standard))
+ }
+ if m.Pm10Environmental != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm10Environmental))
+ }
+ if m.Pm25Environmental != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm25Environmental))
+ }
+ if m.Pm100Environmental != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Pm100Environmental))
+ }
+ if m.Particles_03Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_03Um))
+ }
+ if m.Particles_05Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_05Um))
+ }
+ if m.Particles_10Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_10Um))
+ }
+ if m.Particles_25Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_25Um))
+ }
+ if m.Particles_50Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_50Um))
+ }
+ if m.Particles_100Um != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Particles_100Um))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Telemetry) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Time != 0 {
+ n += 5
+ }
+ if vtmsg, ok := m.Variant.(interface{ SizeVT() int }); ok {
+ n += vtmsg.SizeVT()
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *Telemetry_DeviceMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.DeviceMetrics != nil {
+ l = m.DeviceMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Telemetry_EnvironmentMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.EnvironmentMetrics != nil {
+ l = m.EnvironmentMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Telemetry_AirQualityMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.AirQualityMetrics != nil {
+ l = m.AirQualityMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *Telemetry_PowerMetrics) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.PowerMetrics != nil {
+ l = m.PowerMetrics.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ return n
+}
+func (m *DeviceMetrics) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BatteryLevel", wireType)
+ }
+ m.BatteryLevel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BatteryLevel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Voltage = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelUtilization", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.ChannelUtilization = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirUtilTx", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.AirUtilTx = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EnvironmentMetrics) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EnvironmentMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EnvironmentMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Temperature", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Temperature = float32(math.Float32frombits(v))
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RelativeHumidity", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.RelativeHumidity = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BarometricPressure", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.BarometricPressure = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GasResistance", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.GasResistance = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Voltage = float32(math.Float32frombits(v))
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Current = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PowerMetrics) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PowerMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PowerMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch1Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch1Voltage = float32(math.Float32frombits(v))
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch1Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch1Current = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch2Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch2Voltage = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch2Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch2Current = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch3Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch3Voltage = float32(math.Float32frombits(v))
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch3Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch3Current = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *AirQualityMetrics) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AirQualityMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AirQualityMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm10Standard", wireType)
+ }
+ m.Pm10Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm10Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm25Standard", wireType)
+ }
+ m.Pm25Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm25Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm100Standard", wireType)
+ }
+ m.Pm100Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm100Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm10Environmental", wireType)
+ }
+ m.Pm10Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm10Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm25Environmental", wireType)
+ }
+ m.Pm25Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm25Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm100Environmental", wireType)
+ }
+ m.Pm100Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm100Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_03Um", wireType)
+ }
+ m.Particles_03Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_03Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_05Um", wireType)
+ }
+ m.Particles_05Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_05Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_10Um", wireType)
+ }
+ m.Particles_10Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_10Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_25Um", wireType)
+ }
+ m.Particles_25Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_25Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_50Um", wireType)
+ }
+ m.Particles_50Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_50Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_100Um", wireType)
+ }
+ m.Particles_100Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_100Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Telemetry) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Telemetry: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Telemetry: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_DeviceMetrics); ok {
+ if err := oneof.DeviceMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetrics{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_DeviceMetrics{DeviceMetrics: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_EnvironmentMetrics); ok {
+ if err := oneof.EnvironmentMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &EnvironmentMetrics{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_EnvironmentMetrics{EnvironmentMetrics: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_AirQualityMetrics); ok {
+ if err := oneof.AirQualityMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &AirQualityMetrics{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_AirQualityMetrics{AirQualityMetrics: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_PowerMetrics); ok {
+ if err := oneof.PowerMetrics.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &PowerMetrics{}
+ if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_PowerMetrics{PowerMetrics: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeviceMetrics) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeviceMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeviceMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BatteryLevel", wireType)
+ }
+ m.BatteryLevel = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BatteryLevel |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Voltage = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChannelUtilization", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.ChannelUtilization = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirUtilTx", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.AirUtilTx = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EnvironmentMetrics) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EnvironmentMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EnvironmentMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Temperature", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Temperature = float32(math.Float32frombits(v))
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RelativeHumidity", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.RelativeHumidity = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BarometricPressure", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.BarometricPressure = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GasResistance", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.GasResistance = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Voltage = float32(math.Float32frombits(v))
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Current = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PowerMetrics) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PowerMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PowerMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch1Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch1Voltage = float32(math.Float32frombits(v))
+ case 2:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch1Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch1Current = float32(math.Float32frombits(v))
+ case 3:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch2Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch2Voltage = float32(math.Float32frombits(v))
+ case 4:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch2Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch2Current = float32(math.Float32frombits(v))
+ case 5:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch3Voltage", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch3Voltage = float32(math.Float32frombits(v))
+ case 6:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ch3Current", wireType)
+ }
+ var v uint32
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ m.Ch3Current = float32(math.Float32frombits(v))
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *AirQualityMetrics) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AirQualityMetrics: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AirQualityMetrics: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm10Standard", wireType)
+ }
+ m.Pm10Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm10Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm25Standard", wireType)
+ }
+ m.Pm25Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm25Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm100Standard", wireType)
+ }
+ m.Pm100Standard = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm100Standard |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm10Environmental", wireType)
+ }
+ m.Pm10Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm10Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm25Environmental", wireType)
+ }
+ m.Pm25Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm25Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pm100Environmental", wireType)
+ }
+ m.Pm100Environmental = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Pm100Environmental |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_03Um", wireType)
+ }
+ m.Particles_03Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_03Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_05Um", wireType)
+ }
+ m.Particles_05Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_05Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_10Um", wireType)
+ }
+ m.Particles_10Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_10Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_25Um", wireType)
+ }
+ m.Particles_25Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_25Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 11:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_50Um", wireType)
+ }
+ m.Particles_50Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_50Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 12:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Particles_100Um", wireType)
+ }
+ m.Particles_100Um = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Particles_100Um |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Telemetry) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Telemetry: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Telemetry: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 5 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
+ }
+ m.Time = 0
+ if (iNdEx + 4) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Time = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
+ iNdEx += 4
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeviceMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_DeviceMetrics); ok {
+ if err := oneof.DeviceMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &DeviceMetrics{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_DeviceMetrics{DeviceMetrics: v}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnvironmentMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_EnvironmentMetrics); ok {
+ if err := oneof.EnvironmentMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &EnvironmentMetrics{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_EnvironmentMetrics{EnvironmentMetrics: v}
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AirQualityMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_AirQualityMetrics); ok {
+ if err := oneof.AirQualityMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &AirQualityMetrics{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_AirQualityMetrics{AirQualityMetrics: v}
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PowerMetrics", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if oneof, ok := m.Variant.(*Telemetry_PowerMetrics); ok {
+ if err := oneof.PowerMetrics.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ } else {
+ v := &PowerMetrics{}
+ if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Variant = &Telemetry_PowerMetrics{PowerMetrics: v}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/meshtastic/xmodem.pb.go b/meshtastic/xmodem.pb.go
new file mode 100644
index 0000000..f2aa4b6
--- /dev/null
+++ b/meshtastic/xmodem.pb.go
@@ -0,0 +1,251 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v4.24.3
+// source: meshtastic/xmodem.proto
+
+package generated
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type XModem_Control int32
+
+const (
+ XModem_NUL XModem_Control = 0
+ XModem_SOH XModem_Control = 1
+ XModem_STX XModem_Control = 2
+ XModem_EOT XModem_Control = 4
+ XModem_ACK XModem_Control = 6
+ XModem_NAK XModem_Control = 21
+ XModem_CAN XModem_Control = 24
+ XModem_CTRLZ XModem_Control = 26
+)
+
+// Enum value maps for XModem_Control.
+var (
+ XModem_Control_name = map[int32]string{
+ 0: "NUL",
+ 1: "SOH",
+ 2: "STX",
+ 4: "EOT",
+ 6: "ACK",
+ 21: "NAK",
+ 24: "CAN",
+ 26: "CTRLZ",
+ }
+ XModem_Control_value = map[string]int32{
+ "NUL": 0,
+ "SOH": 1,
+ "STX": 2,
+ "EOT": 4,
+ "ACK": 6,
+ "NAK": 21,
+ "CAN": 24,
+ "CTRLZ": 26,
+ }
+)
+
+func (x XModem_Control) Enum() *XModem_Control {
+ p := new(XModem_Control)
+ *p = x
+ return p
+}
+
+func (x XModem_Control) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (XModem_Control) Descriptor() protoreflect.EnumDescriptor {
+ return file_meshtastic_xmodem_proto_enumTypes[0].Descriptor()
+}
+
+func (XModem_Control) Type() protoreflect.EnumType {
+ return &file_meshtastic_xmodem_proto_enumTypes[0]
+}
+
+func (x XModem_Control) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use XModem_Control.Descriptor instead.
+func (XModem_Control) EnumDescriptor() ([]byte, []int) {
+ return file_meshtastic_xmodem_proto_rawDescGZIP(), []int{0, 0}
+}
+
+type XModem struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Control XModem_Control `protobuf:"varint,1,opt,name=control,proto3,enum=meshtastic.XModem_Control" json:"control,omitempty"`
+ Seq uint32 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
+ Crc16 uint32 `protobuf:"varint,3,opt,name=crc16,proto3" json:"crc16,omitempty"`
+ Buffer []byte `protobuf:"bytes,4,opt,name=buffer,proto3" json:"buffer,omitempty"`
+}
+
+func (x *XModem) Reset() {
+ *x = XModem{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_meshtastic_xmodem_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *XModem) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*XModem) ProtoMessage() {}
+
+func (x *XModem) ProtoReflect() protoreflect.Message {
+ mi := &file_meshtastic_xmodem_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use XModem.ProtoReflect.Descriptor instead.
+func (*XModem) Descriptor() ([]byte, []int) {
+ return file_meshtastic_xmodem_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *XModem) GetControl() XModem_Control {
+ if x != nil {
+ return x.Control
+ }
+ return XModem_NUL
+}
+
+func (x *XModem) GetSeq() uint32 {
+ if x != nil {
+ return x.Seq
+ }
+ return 0
+}
+
+func (x *XModem) GetCrc16() uint32 {
+ if x != nil {
+ return x.Crc16
+ }
+ return 0
+}
+
+func (x *XModem) GetBuffer() []byte {
+ if x != nil {
+ return x.Buffer
+ }
+ return nil
+}
+
+var File_meshtastic_xmodem_proto protoreflect.FileDescriptor
+
+var file_meshtastic_xmodem_proto_rawDesc = []byte{
+ 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x78, 0x6d, 0x6f,
+ 0x64, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74,
+ 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xd3, 0x01, 0x0a, 0x06, 0x58, 0x4d, 0x6f, 0x64, 0x65, 0x6d,
+ 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x58,
+ 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07, 0x63,
+ 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x63, 0x31,
+ 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x72, 0x63, 0x31, 0x36, 0x12, 0x16,
+ 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
+ 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
+ 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x55, 0x4c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4f,
+ 0x48, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x58, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03,
+ 0x45, 0x4f, 0x54, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x43, 0x4b, 0x10, 0x06, 0x12, 0x07,
+ 0x0a, 0x03, 0x4e, 0x41, 0x4b, 0x10, 0x15, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x41, 0x4e, 0x10, 0x18,
+ 0x12, 0x09, 0x0a, 0x05, 0x43, 0x54, 0x52, 0x4c, 0x5a, 0x10, 0x1a, 0x42, 0x61, 0x0a, 0x13, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65,
+ 0x73, 0x68, 0x42, 0x0c, 0x58, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73,
+ 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x73,
+ 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72,
+ 0x61, 0x74, 0x65, 0x64, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69,
+ 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_meshtastic_xmodem_proto_rawDescOnce sync.Once
+ file_meshtastic_xmodem_proto_rawDescData = file_meshtastic_xmodem_proto_rawDesc
+)
+
+func file_meshtastic_xmodem_proto_rawDescGZIP() []byte {
+ file_meshtastic_xmodem_proto_rawDescOnce.Do(func() {
+ file_meshtastic_xmodem_proto_rawDescData = protoimpl.X.CompressGZIP(file_meshtastic_xmodem_proto_rawDescData)
+ })
+ return file_meshtastic_xmodem_proto_rawDescData
+}
+
+var file_meshtastic_xmodem_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_meshtastic_xmodem_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_meshtastic_xmodem_proto_goTypes = []interface{}{
+ (XModem_Control)(0), // 0: meshtastic.XModem.Control
+ (*XModem)(nil), // 1: meshtastic.XModem
+}
+var file_meshtastic_xmodem_proto_depIdxs = []int32{
+ 0, // 0: meshtastic.XModem.control:type_name -> meshtastic.XModem.Control
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_meshtastic_xmodem_proto_init() }
+func file_meshtastic_xmodem_proto_init() {
+ if File_meshtastic_xmodem_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_meshtastic_xmodem_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*XModem); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_meshtastic_xmodem_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_meshtastic_xmodem_proto_goTypes,
+ DependencyIndexes: file_meshtastic_xmodem_proto_depIdxs,
+ EnumInfos: file_meshtastic_xmodem_proto_enumTypes,
+ MessageInfos: file_meshtastic_xmodem_proto_msgTypes,
+ }.Build()
+ File_meshtastic_xmodem_proto = out.File
+ file_meshtastic_xmodem_proto_rawDesc = nil
+ file_meshtastic_xmodem_proto_goTypes = nil
+ file_meshtastic_xmodem_proto_depIdxs = nil
+}
diff --git a/meshtastic/xmodem_vtproto.pb.go b/meshtastic/xmodem_vtproto.pb.go
new file mode 100644
index 0000000..70e9684
--- /dev/null
+++ b/meshtastic/xmodem_vtproto.pb.go
@@ -0,0 +1,487 @@
+// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
+// protoc-gen-go-vtproto version: v0.6.0
+// source: meshtastic/xmodem.proto
+
+package generated
+
+import (
+ fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
+ proto "google.golang.org/protobuf/proto"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ io "io"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+func (m *XModem) CloneVT() *XModem {
+ if m == nil {
+ return (*XModem)(nil)
+ }
+ r := new(XModem)
+ r.Control = m.Control
+ r.Seq = m.Seq
+ r.Crc16 = m.Crc16
+ if rhs := m.Buffer; rhs != nil {
+ tmpBytes := make([]byte, len(rhs))
+ copy(tmpBytes, rhs)
+ r.Buffer = tmpBytes
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *XModem) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (this *XModem) EqualVT(that *XModem) bool {
+ if this == that {
+ return true
+ } else if this == nil || that == nil {
+ return false
+ }
+ if this.Control != that.Control {
+ return false
+ }
+ if this.Seq != that.Seq {
+ return false
+ }
+ if this.Crc16 != that.Crc16 {
+ return false
+ }
+ if string(this.Buffer) != string(that.Buffer) {
+ return false
+ }
+ return string(this.unknownFields) == string(that.unknownFields)
+}
+
+func (this *XModem) EqualMessageVT(thatMsg proto.Message) bool {
+ that, ok := thatMsg.(*XModem)
+ if !ok {
+ return false
+ }
+ return this.EqualVT(that)
+}
+func (m *XModem) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *XModem) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *XModem) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Buffer) > 0 {
+ i -= len(m.Buffer)
+ copy(dAtA[i:], m.Buffer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Buffer)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Crc16 != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Crc16))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Seq != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Seq))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Control != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Control))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *XModem) MarshalVTStrict() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *XModem) MarshalToVTStrict(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVTStrict(dAtA[:size])
+}
+
+func (m *XModem) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Buffer) > 0 {
+ i -= len(m.Buffer)
+ copy(dAtA[i:], m.Buffer)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Buffer)))
+ i--
+ dAtA[i] = 0x22
+ }
+ if m.Crc16 != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Crc16))
+ i--
+ dAtA[i] = 0x18
+ }
+ if m.Seq != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Seq))
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Control != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Control))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *XModem) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Control != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Control))
+ }
+ if m.Seq != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Seq))
+ }
+ if m.Crc16 != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Crc16))
+ }
+ l = len(m.Buffer)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *XModem) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: XModem: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: XModem: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Control", wireType)
+ }
+ m.Control = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Control |= XModem_Control(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType)
+ }
+ m.Seq = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Seq |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Crc16", wireType)
+ }
+ m.Crc16 = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Crc16 |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Buffer", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Buffer = append(m.Buffer[:0], dAtA[iNdEx:postIndex]...)
+ if m.Buffer == nil {
+ m.Buffer = []byte{}
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *XModem) UnmarshalVTUnsafe(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: XModem: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: XModem: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Control", wireType)
+ }
+ m.Control = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Control |= XModem_Control(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType)
+ }
+ m.Seq = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Seq |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Crc16", wireType)
+ }
+ m.Crc16 = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Crc16 |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Buffer", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Buffer = dAtA[iNdEx:postIndex]
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
diff --git a/mqtt/node.go b/mqtt/node.go
index 3400307..fa5fdb7 100644
--- a/mqtt/node.go
+++ b/mqtt/node.go
@@ -1,6 +1,6 @@
package mqtt
-import "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
+import meshtastic "github.com/crypto-smoke/meshtastic-go/meshtastic"
// Node implements a meshtastic node that connects only via MQTT
type Node struct {
diff --git a/protobufs b/protobufs
new file mode 160000
+Subproject 5f28be497a5518334c86378335e8ffcd177ed66
diff --git a/radio/radio.go b/radio/radio.go
index 749cbae..adabd0f 100644
--- a/radio/radio.go
+++ b/radio/radio.go
@@ -1,10 +1,10 @@
package radio
import (
- generated "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"encoding/base64"
"errors"
"fmt"
+ generated "github.com/crypto-smoke/meshtastic-go/meshtastic"
"google.golang.org/protobuf/proto"
)
diff --git a/transport/client.go b/transport/client.go
index c638cf4..214ecf0 100644
--- a/transport/client.go
+++ b/transport/client.go
@@ -1,10 +1,10 @@
package transport
import (
- "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"context"
"errors"
"fmt"
+ meshtastic "github.com/crypto-smoke/meshtastic-go/meshtastic"
"google.golang.org/protobuf/proto"
"log/slog"
"math/rand"
diff --git a/transport/stream_conn_test.go b/transport/stream_conn_test.go
index c0d996f..6b044cf 100644
--- a/transport/stream_conn_test.go
+++ b/transport/stream_conn_test.go
@@ -1,8 +1,8 @@
package transport
import (
- pb "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
"bytes"
+ pb "github.com/crypto-smoke/meshtastic-go/meshtastic"
"github.com/stretchr/testify/require"
"golang.org/x/sync/errgroup"
"google.golang.org/protobuf/proto"
diff --git a/util.go b/util.go
index f96ca57..6aea5fe 100644
--- a/util.go
+++ b/util.go
@@ -1,7 +1,7 @@
package meshtastic
import (
- pbuf "buf.build/gen/go/meshtastic/protobufs/protocolbuffers/go/meshtastic"
+ pbuf "github.com/crypto-smoke/meshtastic-go/meshtastic"
)
type Node struct {