// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v5.29.3
// source: meshtastic/deviceonly.proto

package meshtastic

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	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)
)

// Position with static location information only for NodeDBLite
type PositionLite struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *PositionLite) Reset() {
	*x = PositionLite{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[0]
	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[0]
	if 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{0}
}

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
}

type UserLite struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// This is the addr of the radio.
	//
	// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
	Macaddr []byte `protobuf:"bytes,1,opt,name=macaddr,proto3" json:"macaddr,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"`
	// 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,4,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,5,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,6,opt,name=role,proto3,enum=meshtastic.Config_DeviceConfig_Role" json:"role,omitempty"`
	// The public key of the user's device.
	// This is sent out to other nodes on the mesh to allow them to compute a shared secret key.
	PublicKey     []byte `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UserLite) Reset() {
	*x = UserLite{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UserLite) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserLite) ProtoMessage() {}

func (x *UserLite) ProtoReflect() protoreflect.Message {
	mi := &file_meshtastic_deviceonly_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserLite.ProtoReflect.Descriptor instead.
func (*UserLite) Descriptor() ([]byte, []int) {
	return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{1}
}

// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
func (x *UserLite) GetMacaddr() []byte {
	if x != nil {
		return x.Macaddr
	}
	return nil
}

func (x *UserLite) GetLongName() string {
	if x != nil {
		return x.LongName
	}
	return ""
}

func (x *UserLite) GetShortName() string {
	if x != nil {
		return x.ShortName
	}
	return ""
}

func (x *UserLite) GetHwModel() HardwareModel {
	if x != nil {
		return x.HwModel
	}
	return HardwareModel_UNSET
}

func (x *UserLite) GetIsLicensed() bool {
	if x != nil {
		return x.IsLicensed
	}
	return false
}

func (x *UserLite) GetRole() Config_DeviceConfig_Role {
	if x != nil {
		return x.Role
	}
	return Config_DeviceConfig_CLIENT
}

func (x *UserLite) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

type NodeInfoLite struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The node number
	Num uint32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"`
	// The user info for this node
	User *UserLite `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"`
	// True if we witnessed the node over MQTT instead of LoRA transport
	ViaMqtt bool `protobuf:"varint,8,opt,name=via_mqtt,json=viaMqtt,proto3" json:"via_mqtt,omitempty"`
	// Number of hops away from us this node is (0 if direct neighbor)
	HopsAway *uint32 `protobuf:"varint,9,opt,name=hops_away,json=hopsAway,proto3,oneof" json:"hops_away,omitempty"`
	// True if node is in our favorites list
	// Persists between NodeDB internal clean ups
	IsFavorite bool `protobuf:"varint,10,opt,name=is_favorite,json=isFavorite,proto3" json:"is_favorite,omitempty"`
	// True if node is in our ignored list
	// Persists between NodeDB internal clean ups
	IsIgnored bool `protobuf:"varint,11,opt,name=is_ignored,json=isIgnored,proto3" json:"is_ignored,omitempty"`
	// Last byte of the node number of the node that should be used as the next hop to reach this node.
	NextHop       uint32 `protobuf:"varint,12,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeInfoLite) Reset() {
	*x = NodeInfoLite{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[2]
	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[2]
	if 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{2}
}

func (x *NodeInfoLite) GetNum() uint32 {
	if x != nil {
		return x.Num
	}
	return 0
}

func (x *NodeInfoLite) GetUser() *UserLite {
	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
}

func (x *NodeInfoLite) GetViaMqtt() bool {
	if x != nil {
		return x.ViaMqtt
	}
	return false
}

func (x *NodeInfoLite) GetHopsAway() uint32 {
	if x != nil && x.HopsAway != nil {
		return *x.HopsAway
	}
	return 0
}

func (x *NodeInfoLite) GetIsFavorite() bool {
	if x != nil {
		return x.IsFavorite
	}
	return false
}

func (x *NodeInfoLite) GetIsIgnored() bool {
	if x != nil {
		return x.IsIgnored
	}
	return false
}

func (x *NodeInfoLite) GetNextHop() uint32 {
	if x != nil {
		return x.NextHop
	}
	return 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 `protogen:"open.v1"`
	// 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.
	// Deprecated in 2.3.1
	//
	// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
	NoSave bool `protobuf:"varint,9,opt,name=no_save,json=noSave,proto3" json:"no_save,omitempty"`
	// Previously used to manage GPS factory resets.
	// Deprecated in 2.5.23
	//
	// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
	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"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *DeviceState) Reset() {
	*x = DeviceState{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[3]
	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[3]
	if 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{3}
}

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
}

// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
func (x *DeviceState) GetNoSave() bool {
	if x != nil {
		return x.NoSave
	}
	return false
}

// Deprecated: Marked as deprecated in meshtastic/deviceonly.proto.
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
}

type NodeDatabase struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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,1,opt,name=version,proto3" json:"version,omitempty"`
	// New lite version of NodeDB to decrease memory footprint
	Nodes         []*NodeInfoLite `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NodeDatabase) Reset() {
	*x = NodeDatabase{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeDatabase) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeDatabase) ProtoMessage() {}

func (x *NodeDatabase) ProtoReflect() protoreflect.Message {
	mi := &file_meshtastic_deviceonly_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NodeDatabase.ProtoReflect.Descriptor instead.
func (*NodeDatabase) Descriptor() ([]byte, []int) {
	return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{4}
}

func (x *NodeDatabase) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *NodeDatabase) GetNodes() []*NodeInfoLite {
	if x != nil {
		return x.Nodes
	}
	return nil
}

// The on-disk saved channels
type ChannelFile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ChannelFile) Reset() {
	*x = ChannelFile{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[5]
	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[5]
	if 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{5}
}

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
}

// The on-disk backup of the node's preferences
type BackupPreferences struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The version of the backup
	Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	// The timestamp of the backup (if node has time)
	Timestamp uint32 `protobuf:"fixed32,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// The node's configuration
	Config *LocalConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
	// The node's module configuration
	ModuleConfig *LocalModuleConfig `protobuf:"bytes,4,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"`
	// The node's channels
	Channels *ChannelFile `protobuf:"bytes,5,opt,name=channels,proto3" json:"channels,omitempty"`
	// The node's user (owner) information
	Owner         *User `protobuf:"bytes,6,opt,name=owner,proto3" json:"owner,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BackupPreferences) Reset() {
	*x = BackupPreferences{}
	mi := &file_meshtastic_deviceonly_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BackupPreferences) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BackupPreferences) ProtoMessage() {}

func (x *BackupPreferences) ProtoReflect() protoreflect.Message {
	mi := &file_meshtastic_deviceonly_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BackupPreferences.ProtoReflect.Descriptor instead.
func (*BackupPreferences) Descriptor() ([]byte, []int) {
	return file_meshtastic_deviceonly_proto_rawDescGZIP(), []int{6}
}

func (x *BackupPreferences) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *BackupPreferences) GetTimestamp() uint32 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *BackupPreferences) GetConfig() *LocalConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *BackupPreferences) GetModuleConfig() *LocalModuleConfig {
	if x != nil {
		return x.ModuleConfig
	}
	return nil
}

func (x *BackupPreferences) GetChannels() *ChannelFile {
	if x != nil {
		return x.Channels
	}
	return nil
}

func (x *BackupPreferences) GetOwner() *User {
	if x != nil {
		return x.Owner
	}
	return nil
}

var File_meshtastic_deviceonly_proto protoreflect.FileDescriptor

const file_meshtastic_deviceonly_proto_rawDesc = "" +
	"\n" +
	"\x1bmeshtastic/deviceonly.proto\x12\n" +
	"meshtastic\x1a\x18meshtastic/channel.proto\x1a\x15meshtastic/mesh.proto\x1a\x1ameshtastic/telemetry.proto\x1a\x17meshtastic/config.proto\x1a\x1ameshtastic/localonly.proto\x1a\x17meshtastic/nanopb.proto\"\xc7\x01\n" +
	"\fPositionLite\x12\x1d\n" +
	"\n" +
	"latitude_i\x18\x01 \x01(\x0fR\tlatitudeI\x12\x1f\n" +
	"\vlongitude_i\x18\x02 \x01(\x0fR\n" +
	"longitudeI\x12\x1a\n" +
	"\baltitude\x18\x03 \x01(\x05R\baltitude\x12\x12\n" +
	"\x04time\x18\x04 \x01(\aR\x04time\x12G\n" +
	"\x0flocation_source\x18\x05 \x01(\x0e2\x1e.meshtastic.Position.LocSourceR\x0elocationSource\"\x94\x02\n" +
	"\bUserLite\x12\x1c\n" +
	"\amacaddr\x18\x01 \x01(\fB\x02\x18\x01R\amacaddr\x12\x1b\n" +
	"\tlong_name\x18\x02 \x01(\tR\blongName\x12\x1d\n" +
	"\n" +
	"short_name\x18\x03 \x01(\tR\tshortName\x124\n" +
	"\bhw_model\x18\x04 \x01(\x0e2\x19.meshtastic.HardwareModelR\ahwModel\x12\x1f\n" +
	"\vis_licensed\x18\x05 \x01(\bR\n" +
	"isLicensed\x128\n" +
	"\x04role\x18\x06 \x01(\x0e2$.meshtastic.Config.DeviceConfig.RoleR\x04role\x12\x1d\n" +
	"\n" +
	"public_key\x18\a \x01(\fR\tpublicKey\"\xb3\x03\n" +
	"\fNodeInfoLite\x12\x10\n" +
	"\x03num\x18\x01 \x01(\rR\x03num\x12(\n" +
	"\x04user\x18\x02 \x01(\v2\x14.meshtastic.UserLiteR\x04user\x124\n" +
	"\bposition\x18\x03 \x01(\v2\x18.meshtastic.PositionLiteR\bposition\x12\x10\n" +
	"\x03snr\x18\x04 \x01(\x02R\x03snr\x12\x1d\n" +
	"\n" +
	"last_heard\x18\x05 \x01(\aR\tlastHeard\x12@\n" +
	"\x0edevice_metrics\x18\x06 \x01(\v2\x19.meshtastic.DeviceMetricsR\rdeviceMetrics\x12\x18\n" +
	"\achannel\x18\a \x01(\rR\achannel\x12\x19\n" +
	"\bvia_mqtt\x18\b \x01(\bR\aviaMqtt\x12 \n" +
	"\thops_away\x18\t \x01(\rH\x00R\bhopsAway\x88\x01\x01\x12\x1f\n" +
	"\vis_favorite\x18\n" +
	" \x01(\bR\n" +
	"isFavorite\x12\x1d\n" +
	"\n" +
	"is_ignored\x18\v \x01(\bR\tisIgnored\x12\x19\n" +
	"\bnext_hop\x18\f \x01(\rR\anextHopB\f\n" +
	"\n" +
	"_hops_away\"\xd9\x03\n" +
	"\vDeviceState\x12/\n" +
	"\amy_node\x18\x02 \x01(\v2\x16.meshtastic.MyNodeInfoR\x06myNode\x12&\n" +
	"\x05owner\x18\x03 \x01(\v2\x10.meshtastic.UserR\x05owner\x12;\n" +
	"\rreceive_queue\x18\x05 \x03(\v2\x16.meshtastic.MeshPacketR\freceiveQueue\x12\x18\n" +
	"\aversion\x18\b \x01(\rR\aversion\x12>\n" +
	"\x0frx_text_message\x18\a \x01(\v2\x16.meshtastic.MeshPacketR\rrxTextMessage\x12\x1b\n" +
	"\ano_save\x18\t \x01(\bB\x02\x18\x01R\x06noSave\x12&\n" +
	"\rdid_gps_reset\x18\v \x01(\bB\x02\x18\x01R\vdidGpsReset\x127\n" +
	"\vrx_waypoint\x18\f \x01(\v2\x16.meshtastic.MeshPacketR\n" +
	"rxWaypoint\x12\\\n" +
	"\x19node_remote_hardware_pins\x18\r \x03(\v2!.meshtastic.NodeRemoteHardwarePinR\x16nodeRemoteHardwarePins\"\x84\x01\n" +
	"\fNodeDatabase\x12\x18\n" +
	"\aversion\x18\x01 \x01(\rR\aversion\x12Z\n" +
	"\x05nodes\x18\x02 \x03(\v2\x18.meshtastic.NodeInfoLiteB*\x92?'\x92\x01$std::vector<meshtastic_NodeInfoLite>R\x05nodes\"X\n" +
	"\vChannelFile\x12/\n" +
	"\bchannels\x18\x01 \x03(\v2\x13.meshtastic.ChannelR\bchannels\x12\x18\n" +
	"\aversion\x18\x02 \x01(\rR\aversion\"\x9d\x02\n" +
	"\x11BackupPreferences\x12\x18\n" +
	"\aversion\x18\x01 \x01(\rR\aversion\x12\x1c\n" +
	"\ttimestamp\x18\x02 \x01(\aR\ttimestamp\x12/\n" +
	"\x06config\x18\x03 \x01(\v2\x17.meshtastic.LocalConfigR\x06config\x12B\n" +
	"\rmodule_config\x18\x04 \x01(\v2\x1d.meshtastic.LocalModuleConfigR\fmoduleConfig\x123\n" +
	"\bchannels\x18\x05 \x01(\v2\x17.meshtastic.ChannelFileR\bchannels\x12&\n" +
	"\x05owner\x18\x06 \x01(\v2\x10.meshtastic.UserR\x05ownerBj\x92?\v\xc2\x01\b<vector>\n" +
	"\x13com.geeksville.meshB\n" +
	"DeviceOnlyZ\x1fmeshstream/generated/meshtastic\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00b\x06proto3"

var (
	file_meshtastic_deviceonly_proto_rawDescOnce sync.Once
	file_meshtastic_deviceonly_proto_rawDescData []byte
)

func file_meshtastic_deviceonly_proto_rawDescGZIP() []byte {
	file_meshtastic_deviceonly_proto_rawDescOnce.Do(func() {
		file_meshtastic_deviceonly_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_meshtastic_deviceonly_proto_rawDesc), len(file_meshtastic_deviceonly_proto_rawDesc)))
	})
	return file_meshtastic_deviceonly_proto_rawDescData
}

var file_meshtastic_deviceonly_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_meshtastic_deviceonly_proto_goTypes = []any{
	(*PositionLite)(nil),          // 0: meshtastic.PositionLite
	(*UserLite)(nil),              // 1: meshtastic.UserLite
	(*NodeInfoLite)(nil),          // 2: meshtastic.NodeInfoLite
	(*DeviceState)(nil),           // 3: meshtastic.DeviceState
	(*NodeDatabase)(nil),          // 4: meshtastic.NodeDatabase
	(*ChannelFile)(nil),           // 5: meshtastic.ChannelFile
	(*BackupPreferences)(nil),     // 6: meshtastic.BackupPreferences
	(Position_LocSource)(0),       // 7: meshtastic.Position.LocSource
	(HardwareModel)(0),            // 8: meshtastic.HardwareModel
	(Config_DeviceConfig_Role)(0), // 9: meshtastic.Config.DeviceConfig.Role
	(*DeviceMetrics)(nil),         // 10: meshtastic.DeviceMetrics
	(*MyNodeInfo)(nil),            // 11: meshtastic.MyNodeInfo
	(*User)(nil),                  // 12: meshtastic.User
	(*MeshPacket)(nil),            // 13: meshtastic.MeshPacket
	(*NodeRemoteHardwarePin)(nil), // 14: meshtastic.NodeRemoteHardwarePin
	(*Channel)(nil),               // 15: meshtastic.Channel
	(*LocalConfig)(nil),           // 16: meshtastic.LocalConfig
	(*LocalModuleConfig)(nil),     // 17: meshtastic.LocalModuleConfig
}
var file_meshtastic_deviceonly_proto_depIdxs = []int32{
	7,  // 0: meshtastic.PositionLite.location_source:type_name -> meshtastic.Position.LocSource
	8,  // 1: meshtastic.UserLite.hw_model:type_name -> meshtastic.HardwareModel
	9,  // 2: meshtastic.UserLite.role:type_name -> meshtastic.Config.DeviceConfig.Role
	1,  // 3: meshtastic.NodeInfoLite.user:type_name -> meshtastic.UserLite
	0,  // 4: meshtastic.NodeInfoLite.position:type_name -> meshtastic.PositionLite
	10, // 5: meshtastic.NodeInfoLite.device_metrics:type_name -> meshtastic.DeviceMetrics
	11, // 6: meshtastic.DeviceState.my_node:type_name -> meshtastic.MyNodeInfo
	12, // 7: meshtastic.DeviceState.owner:type_name -> meshtastic.User
	13, // 8: meshtastic.DeviceState.receive_queue:type_name -> meshtastic.MeshPacket
	13, // 9: meshtastic.DeviceState.rx_text_message:type_name -> meshtastic.MeshPacket
	13, // 10: meshtastic.DeviceState.rx_waypoint:type_name -> meshtastic.MeshPacket
	14, // 11: meshtastic.DeviceState.node_remote_hardware_pins:type_name -> meshtastic.NodeRemoteHardwarePin
	2,  // 12: meshtastic.NodeDatabase.nodes:type_name -> meshtastic.NodeInfoLite
	15, // 13: meshtastic.ChannelFile.channels:type_name -> meshtastic.Channel
	16, // 14: meshtastic.BackupPreferences.config:type_name -> meshtastic.LocalConfig
	17, // 15: meshtastic.BackupPreferences.module_config:type_name -> meshtastic.LocalModuleConfig
	5,  // 16: meshtastic.BackupPreferences.channels:type_name -> meshtastic.ChannelFile
	12, // 17: meshtastic.BackupPreferences.owner:type_name -> meshtastic.User
	18, // [18:18] is the sub-list for method output_type
	18, // [18:18] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] 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_mesh_proto_init()
	file_meshtastic_telemetry_proto_init()
	file_meshtastic_config_proto_init()
	file_meshtastic_localonly_proto_init()
	file_meshtastic_nanopb_proto_init()
	file_meshtastic_deviceonly_proto_msgTypes[2].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_meshtastic_deviceonly_proto_rawDesc), len(file_meshtastic_deviceonly_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_meshtastic_deviceonly_proto_goTypes,
		DependencyIndexes: file_meshtastic_deviceonly_proto_depIdxs,
		MessageInfos:      file_meshtastic_deviceonly_proto_msgTypes,
	}.Build()
	File_meshtastic_deviceonly_proto = out.File
	file_meshtastic_deviceonly_proto_goTypes = nil
	file_meshtastic_deviceonly_proto_depIdxs = nil
}
