mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-20 00:04:00 +00:00
5044 lines
149 KiB
Go
Vendored
5044 lines
149 KiB
Go
Vendored
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.6
|
|
// protoc v6.30.2
|
|
// source: gw/gw.proto
|
|
|
|
package gw
|
|
|
|
import (
|
|
common "github.com/chirpstack/chirpstack/api/go/v4/common"
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
|
_ "google.golang.org/protobuf/types/known/structpb"
|
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
|
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)
|
|
)
|
|
|
|
type CodeRate int32
|
|
|
|
const (
|
|
CodeRate_CR_UNDEFINED CodeRate = 0
|
|
CodeRate_CR_4_5 CodeRate = 1 // LoRa
|
|
CodeRate_CR_4_6 CodeRate = 2
|
|
CodeRate_CR_4_7 CodeRate = 3
|
|
CodeRate_CR_4_8 CodeRate = 4
|
|
CodeRate_CR_3_8 CodeRate = 5 // LR-FHSS
|
|
CodeRate_CR_2_6 CodeRate = 6
|
|
CodeRate_CR_1_4 CodeRate = 7
|
|
CodeRate_CR_1_6 CodeRate = 8
|
|
CodeRate_CR_5_6 CodeRate = 9
|
|
CodeRate_CR_LI_4_5 CodeRate = 10 // LoRa 2.4 gHz
|
|
CodeRate_CR_LI_4_6 CodeRate = 11
|
|
CodeRate_CR_LI_4_8 CodeRate = 12
|
|
)
|
|
|
|
// Enum value maps for CodeRate.
|
|
var (
|
|
CodeRate_name = map[int32]string{
|
|
0: "CR_UNDEFINED",
|
|
1: "CR_4_5",
|
|
2: "CR_4_6",
|
|
3: "CR_4_7",
|
|
4: "CR_4_8",
|
|
5: "CR_3_8",
|
|
6: "CR_2_6",
|
|
7: "CR_1_4",
|
|
8: "CR_1_6",
|
|
9: "CR_5_6",
|
|
10: "CR_LI_4_5",
|
|
11: "CR_LI_4_6",
|
|
12: "CR_LI_4_8",
|
|
}
|
|
CodeRate_value = map[string]int32{
|
|
"CR_UNDEFINED": 0,
|
|
"CR_4_5": 1,
|
|
"CR_4_6": 2,
|
|
"CR_4_7": 3,
|
|
"CR_4_8": 4,
|
|
"CR_3_8": 5,
|
|
"CR_2_6": 6,
|
|
"CR_1_4": 7,
|
|
"CR_1_6": 8,
|
|
"CR_5_6": 9,
|
|
"CR_LI_4_5": 10,
|
|
"CR_LI_4_6": 11,
|
|
"CR_LI_4_8": 12,
|
|
}
|
|
)
|
|
|
|
func (x CodeRate) Enum() *CodeRate {
|
|
p := new(CodeRate)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x CodeRate) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (CodeRate) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (CodeRate) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x CodeRate) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use CodeRate.Descriptor instead.
|
|
func (CodeRate) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
type DownlinkTiming int32
|
|
|
|
const (
|
|
// Send the downlink immediately.
|
|
DownlinkTiming_IMMEDIATELY DownlinkTiming = 0
|
|
// Send downlink at the given delay (based on provided context).
|
|
DownlinkTiming_DELAY DownlinkTiming = 1
|
|
// Send at given GPS epoch value.
|
|
DownlinkTiming_GPS_EPOCH DownlinkTiming = 2
|
|
)
|
|
|
|
// Enum value maps for DownlinkTiming.
|
|
var (
|
|
DownlinkTiming_name = map[int32]string{
|
|
0: "IMMEDIATELY",
|
|
1: "DELAY",
|
|
2: "GPS_EPOCH",
|
|
}
|
|
DownlinkTiming_value = map[string]int32{
|
|
"IMMEDIATELY": 0,
|
|
"DELAY": 1,
|
|
"GPS_EPOCH": 2,
|
|
}
|
|
)
|
|
|
|
func (x DownlinkTiming) Enum() *DownlinkTiming {
|
|
p := new(DownlinkTiming)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x DownlinkTiming) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (DownlinkTiming) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (DownlinkTiming) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x DownlinkTiming) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use DownlinkTiming.Descriptor instead.
|
|
func (DownlinkTiming) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
type FineTimestampType int32
|
|
|
|
const (
|
|
// No fine-timestamp available.
|
|
FineTimestampType_NONE FineTimestampType = 0
|
|
// Encrypted fine-timestamp.
|
|
FineTimestampType_ENCRYPTED FineTimestampType = 1
|
|
// Plain fine-timestamp.
|
|
FineTimestampType_PLAIN FineTimestampType = 2
|
|
)
|
|
|
|
// Enum value maps for FineTimestampType.
|
|
var (
|
|
FineTimestampType_name = map[int32]string{
|
|
0: "NONE",
|
|
1: "ENCRYPTED",
|
|
2: "PLAIN",
|
|
}
|
|
FineTimestampType_value = map[string]int32{
|
|
"NONE": 0,
|
|
"ENCRYPTED": 1,
|
|
"PLAIN": 2,
|
|
}
|
|
)
|
|
|
|
func (x FineTimestampType) Enum() *FineTimestampType {
|
|
p := new(FineTimestampType)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x FineTimestampType) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (FineTimestampType) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[2].Descriptor()
|
|
}
|
|
|
|
func (FineTimestampType) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[2]
|
|
}
|
|
|
|
func (x FineTimestampType) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use FineTimestampType.Descriptor instead.
|
|
func (FineTimestampType) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
type CRCStatus int32
|
|
|
|
const (
|
|
// No CRC.
|
|
CRCStatus_NO_CRC CRCStatus = 0
|
|
// Bad CRC.
|
|
CRCStatus_BAD_CRC CRCStatus = 1
|
|
// CRC OK.
|
|
CRCStatus_CRC_OK CRCStatus = 2
|
|
)
|
|
|
|
// Enum value maps for CRCStatus.
|
|
var (
|
|
CRCStatus_name = map[int32]string{
|
|
0: "NO_CRC",
|
|
1: "BAD_CRC",
|
|
2: "CRC_OK",
|
|
}
|
|
CRCStatus_value = map[string]int32{
|
|
"NO_CRC": 0,
|
|
"BAD_CRC": 1,
|
|
"CRC_OK": 2,
|
|
}
|
|
)
|
|
|
|
func (x CRCStatus) Enum() *CRCStatus {
|
|
p := new(CRCStatus)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x CRCStatus) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (CRCStatus) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[3].Descriptor()
|
|
}
|
|
|
|
func (CRCStatus) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[3]
|
|
}
|
|
|
|
func (x CRCStatus) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use CRCStatus.Descriptor instead.
|
|
func (CRCStatus) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
type TxAckStatus int32
|
|
|
|
const (
|
|
// Ignored (when a previous item was already emitted).
|
|
TxAckStatus_IGNORED TxAckStatus = 0
|
|
// Packet has been programmed for downlink.
|
|
TxAckStatus_OK TxAckStatus = 1
|
|
// Rejected because it was already too late to program this packet for
|
|
// downlink.
|
|
TxAckStatus_TOO_LATE TxAckStatus = 2
|
|
// Rejected because downlink packet timestamp is too much in advance.
|
|
TxAckStatus_TOO_EARLY TxAckStatus = 3
|
|
// Rejected because there was already a packet programmed in requested
|
|
// timeframe.
|
|
TxAckStatus_COLLISION_PACKET TxAckStatus = 4
|
|
// Rejected because there was already a beacon planned in requested timeframe.
|
|
TxAckStatus_COLLISION_BEACON TxAckStatus = 5
|
|
// Rejected because requested frequency is not supported by TX RF chain.
|
|
TxAckStatus_TX_FREQ TxAckStatus = 6
|
|
// Rejected because requested power is not supported by gateway.
|
|
TxAckStatus_TX_POWER TxAckStatus = 7
|
|
// Rejected because GPS is unlocked, so GPS timestamp cannot be used.
|
|
TxAckStatus_GPS_UNLOCKED TxAckStatus = 8
|
|
// Downlink queue is full.
|
|
TxAckStatus_QUEUE_FULL TxAckStatus = 9
|
|
// Internal error.
|
|
TxAckStatus_INTERNAL_ERROR TxAckStatus = 10
|
|
// Duty-cycle overflow.
|
|
TxAckStatus_DUTY_CYCLE_OVERFLOW TxAckStatus = 11
|
|
)
|
|
|
|
// Enum value maps for TxAckStatus.
|
|
var (
|
|
TxAckStatus_name = map[int32]string{
|
|
0: "IGNORED",
|
|
1: "OK",
|
|
2: "TOO_LATE",
|
|
3: "TOO_EARLY",
|
|
4: "COLLISION_PACKET",
|
|
5: "COLLISION_BEACON",
|
|
6: "TX_FREQ",
|
|
7: "TX_POWER",
|
|
8: "GPS_UNLOCKED",
|
|
9: "QUEUE_FULL",
|
|
10: "INTERNAL_ERROR",
|
|
11: "DUTY_CYCLE_OVERFLOW",
|
|
}
|
|
TxAckStatus_value = map[string]int32{
|
|
"IGNORED": 0,
|
|
"OK": 1,
|
|
"TOO_LATE": 2,
|
|
"TOO_EARLY": 3,
|
|
"COLLISION_PACKET": 4,
|
|
"COLLISION_BEACON": 5,
|
|
"TX_FREQ": 6,
|
|
"TX_POWER": 7,
|
|
"GPS_UNLOCKED": 8,
|
|
"QUEUE_FULL": 9,
|
|
"INTERNAL_ERROR": 10,
|
|
"DUTY_CYCLE_OVERFLOW": 11,
|
|
}
|
|
)
|
|
|
|
func (x TxAckStatus) Enum() *TxAckStatus {
|
|
p := new(TxAckStatus)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x TxAckStatus) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (TxAckStatus) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[4].Descriptor()
|
|
}
|
|
|
|
func (TxAckStatus) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[4]
|
|
}
|
|
|
|
func (x TxAckStatus) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use TxAckStatus.Descriptor instead.
|
|
func (TxAckStatus) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
type ConnState_State int32
|
|
|
|
const (
|
|
ConnState_OFFLINE ConnState_State = 0
|
|
ConnState_ONLINE ConnState_State = 1
|
|
)
|
|
|
|
// Enum value maps for ConnState_State.
|
|
var (
|
|
ConnState_State_name = map[int32]string{
|
|
0: "OFFLINE",
|
|
1: "ONLINE",
|
|
}
|
|
ConnState_State_value = map[string]int32{
|
|
"OFFLINE": 0,
|
|
"ONLINE": 1,
|
|
}
|
|
)
|
|
|
|
func (x ConnState_State) Enum() *ConnState_State {
|
|
p := new(ConnState_State)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x ConnState_State) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (ConnState_State) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_gw_gw_proto_enumTypes[5].Descriptor()
|
|
}
|
|
|
|
func (ConnState_State) Type() protoreflect.EnumType {
|
|
return &file_gw_gw_proto_enumTypes[5]
|
|
}
|
|
|
|
func (x ConnState_State) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use ConnState_State.Descriptor instead.
|
|
func (ConnState_State) EnumDescriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{44, 0}
|
|
}
|
|
|
|
// Gateway events as reported by the ChirpStack Concentratord ZMQ interface.
|
|
type Event struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Event:
|
|
//
|
|
// *Event_UplinkFrame
|
|
// *Event_GatewayStats
|
|
// *Event_Mesh
|
|
Event isEvent_Event `protobuf_oneof:"event"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Event) Reset() {
|
|
*x = Event{}
|
|
mi := &file_gw_gw_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Event) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Event) ProtoMessage() {}
|
|
|
|
func (x *Event) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 Event.ProtoReflect.Descriptor instead.
|
|
func (*Event) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *Event) GetEvent() isEvent_Event {
|
|
if x != nil {
|
|
return x.Event
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Event) GetUplinkFrame() *UplinkFrame {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*Event_UplinkFrame); ok {
|
|
return x.UplinkFrame
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Event) GetGatewayStats() *GatewayStats {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*Event_GatewayStats); ok {
|
|
return x.GatewayStats
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Event) GetMesh() *MeshEvent {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*Event_Mesh); ok {
|
|
return x.Mesh
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isEvent_Event interface {
|
|
isEvent_Event()
|
|
}
|
|
|
|
type Event_UplinkFrame struct {
|
|
// Uplink frame.
|
|
UplinkFrame *UplinkFrame `protobuf:"bytes,1,opt,name=uplink_frame,json=uplinkFrame,proto3,oneof"`
|
|
}
|
|
|
|
type Event_GatewayStats struct {
|
|
// Gateway stats.
|
|
GatewayStats *GatewayStats `protobuf:"bytes,2,opt,name=gateway_stats,json=gatewayStats,proto3,oneof"`
|
|
}
|
|
|
|
type Event_Mesh struct {
|
|
// Gateway Mesh Event.
|
|
Mesh *MeshEvent `protobuf:"bytes,3,opt,name=mesh,proto3,oneof"`
|
|
}
|
|
|
|
func (*Event_UplinkFrame) isEvent_Event() {}
|
|
|
|
func (*Event_GatewayStats) isEvent_Event() {}
|
|
|
|
func (*Event_Mesh) isEvent_Event() {}
|
|
|
|
// Commands that can be sent to the ChirpStack Concentratord ZMQ interface.
|
|
type Command struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Command:
|
|
//
|
|
// *Command_SendDownlinkFrame
|
|
// *Command_SetGatewayConfiguration
|
|
// *Command_GetGatewayId
|
|
// *Command_GetLocation
|
|
// *Command_Mesh
|
|
Command isCommand_Command `protobuf_oneof:"command"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Command) Reset() {
|
|
*x = Command{}
|
|
mi := &file_gw_gw_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Command) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Command) ProtoMessage() {}
|
|
|
|
func (x *Command) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 Command.ProtoReflect.Descriptor instead.
|
|
func (*Command) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *Command) GetCommand() isCommand_Command {
|
|
if x != nil {
|
|
return x.Command
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Command) GetSendDownlinkFrame() *DownlinkFrame {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*Command_SendDownlinkFrame); ok {
|
|
return x.SendDownlinkFrame
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Command) GetSetGatewayConfiguration() *GatewayConfiguration {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*Command_SetGatewayConfiguration); ok {
|
|
return x.SetGatewayConfiguration
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Command) GetGetGatewayId() *GetGatewayIdRequest {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*Command_GetGatewayId); ok {
|
|
return x.GetGatewayId
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Command) GetGetLocation() *GetLocationRequest {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*Command_GetLocation); ok {
|
|
return x.GetLocation
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Command) GetMesh() *MeshCommand {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*Command_Mesh); ok {
|
|
return x.Mesh
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isCommand_Command interface {
|
|
isCommand_Command()
|
|
}
|
|
|
|
type Command_SendDownlinkFrame struct {
|
|
// Downlink frame.
|
|
SendDownlinkFrame *DownlinkFrame `protobuf:"bytes,1,opt,name=send_downlink_frame,json=sendDownlinkFrame,proto3,oneof"`
|
|
}
|
|
|
|
type Command_SetGatewayConfiguration struct {
|
|
// Gateway configuration.
|
|
SetGatewayConfiguration *GatewayConfiguration `protobuf:"bytes,2,opt,name=set_gateway_configuration,json=setGatewayConfiguration,proto3,oneof"`
|
|
}
|
|
|
|
type Command_GetGatewayId struct {
|
|
// Get Gateway ID.
|
|
GetGatewayId *GetGatewayIdRequest `protobuf:"bytes,3,opt,name=get_gateway_id,json=getGatewayId,proto3,oneof"`
|
|
}
|
|
|
|
type Command_GetLocation struct {
|
|
// Get location.
|
|
GetLocation *GetLocationRequest `protobuf:"bytes,4,opt,name=get_location,json=getLocation,proto3,oneof"`
|
|
}
|
|
|
|
type Command_Mesh struct {
|
|
// Gateway Mesh Command.
|
|
Mesh *MeshCommand `protobuf:"bytes,5,opt,name=mesh,proto3,oneof"`
|
|
}
|
|
|
|
func (*Command_SendDownlinkFrame) isCommand_Command() {}
|
|
|
|
func (*Command_SetGatewayConfiguration) isCommand_Command() {}
|
|
|
|
func (*Command_GetGatewayId) isCommand_Command() {}
|
|
|
|
func (*Command_GetLocation) isCommand_Command() {}
|
|
|
|
func (*Command_Mesh) isCommand_Command() {}
|
|
|
|
type MeshEvent struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID (of the Border Gateway).
|
|
GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Relay ID.
|
|
RelayId string `protobuf:"bytes,2,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"`
|
|
// Timestamp (second precision).
|
|
Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
|
|
// Mesh events.
|
|
Events []*MeshEventItem `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshEvent) Reset() {
|
|
*x = MeshEvent{}
|
|
mi := &file_gw_gw_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshEvent) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshEvent) ProtoMessage() {}
|
|
|
|
func (x *MeshEvent) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 MeshEvent.ProtoReflect.Descriptor instead.
|
|
func (*MeshEvent) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *MeshEvent) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MeshEvent) GetRelayId() string {
|
|
if x != nil {
|
|
return x.RelayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MeshEvent) GetTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.Time
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MeshEvent) GetEvents() []*MeshEventItem {
|
|
if x != nil {
|
|
return x.Events
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type MeshEventItem struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Event:
|
|
//
|
|
// *MeshEventItem_Proprietary
|
|
// *MeshEventItem_Heartbeat
|
|
Event isMeshEventItem_Event `protobuf_oneof:"event"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshEventItem) Reset() {
|
|
*x = MeshEventItem{}
|
|
mi := &file_gw_gw_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshEventItem) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshEventItem) ProtoMessage() {}
|
|
|
|
func (x *MeshEventItem) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 MeshEventItem.ProtoReflect.Descriptor instead.
|
|
func (*MeshEventItem) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *MeshEventItem) GetEvent() isMeshEventItem_Event {
|
|
if x != nil {
|
|
return x.Event
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MeshEventItem) GetProprietary() *MeshEventProprietary {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*MeshEventItem_Proprietary); ok {
|
|
return x.Proprietary
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MeshEventItem) GetHeartbeat() *MeshEventHeartbeat {
|
|
if x != nil {
|
|
if x, ok := x.Event.(*MeshEventItem_Heartbeat); ok {
|
|
return x.Heartbeat
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isMeshEventItem_Event interface {
|
|
isMeshEventItem_Event()
|
|
}
|
|
|
|
type MeshEventItem_Proprietary struct {
|
|
// Proprietary Mesh event.
|
|
Proprietary *MeshEventProprietary `protobuf:"bytes,1,opt,name=proprietary,proto3,oneof"`
|
|
}
|
|
|
|
type MeshEventItem_Heartbeat struct {
|
|
// Mesh heartbeat.
|
|
Heartbeat *MeshEventHeartbeat `protobuf:"bytes,2,opt,name=heartbeat,proto3,oneof"`
|
|
}
|
|
|
|
func (*MeshEventItem_Proprietary) isMeshEventItem_Event() {}
|
|
|
|
func (*MeshEventItem_Heartbeat) isMeshEventItem_Event() {}
|
|
|
|
type MeshCommand struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID (of the Border Gateway).
|
|
GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Relay ID.
|
|
RelayId string `protobuf:"bytes,2,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"`
|
|
// Mesh events.
|
|
Commands []*MeshCommandItem `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshCommand) Reset() {
|
|
*x = MeshCommand{}
|
|
mi := &file_gw_gw_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshCommand) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshCommand) ProtoMessage() {}
|
|
|
|
func (x *MeshCommand) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 MeshCommand.ProtoReflect.Descriptor instead.
|
|
func (*MeshCommand) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *MeshCommand) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MeshCommand) GetRelayId() string {
|
|
if x != nil {
|
|
return x.RelayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MeshCommand) GetCommands() []*MeshCommandItem {
|
|
if x != nil {
|
|
return x.Commands
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type MeshCommandItem struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Command:
|
|
//
|
|
// *MeshCommandItem_Proprietary
|
|
Command isMeshCommandItem_Command `protobuf_oneof:"command"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshCommandItem) Reset() {
|
|
*x = MeshCommandItem{}
|
|
mi := &file_gw_gw_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshCommandItem) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshCommandItem) ProtoMessage() {}
|
|
|
|
func (x *MeshCommandItem) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 MeshCommandItem.ProtoReflect.Descriptor instead.
|
|
func (*MeshCommandItem) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *MeshCommandItem) GetCommand() isMeshCommandItem_Command {
|
|
if x != nil {
|
|
return x.Command
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MeshCommandItem) GetProprietary() *MeshCommandProprietary {
|
|
if x != nil {
|
|
if x, ok := x.Command.(*MeshCommandItem_Proprietary); ok {
|
|
return x.Proprietary
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isMeshCommandItem_Command interface {
|
|
isMeshCommandItem_Command()
|
|
}
|
|
|
|
type MeshCommandItem_Proprietary struct {
|
|
// Proprietary Mesh command.
|
|
Proprietary *MeshCommandProprietary `protobuf:"bytes,1,opt,name=proprietary,proto3,oneof"`
|
|
}
|
|
|
|
func (*MeshCommandItem_Proprietary) isMeshCommandItem_Command() {}
|
|
|
|
type Modulation struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Parameters:
|
|
//
|
|
// *Modulation_Lora
|
|
// *Modulation_Fsk
|
|
// *Modulation_LrFhss
|
|
Parameters isModulation_Parameters `protobuf_oneof:"parameters"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Modulation) Reset() {
|
|
*x = Modulation{}
|
|
mi := &file_gw_gw_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Modulation) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Modulation) ProtoMessage() {}
|
|
|
|
func (x *Modulation) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_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 Modulation.ProtoReflect.Descriptor instead.
|
|
func (*Modulation) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *Modulation) GetParameters() isModulation_Parameters {
|
|
if x != nil {
|
|
return x.Parameters
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Modulation) GetLora() *LoraModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Modulation_Lora); ok {
|
|
return x.Lora
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Modulation) GetFsk() *FskModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Modulation_Fsk); ok {
|
|
return x.Fsk
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Modulation) GetLrFhss() *LrFhssModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Modulation_LrFhss); ok {
|
|
return x.LrFhss
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isModulation_Parameters interface {
|
|
isModulation_Parameters()
|
|
}
|
|
|
|
type Modulation_Lora struct {
|
|
// LoRa modulation information.
|
|
Lora *LoraModulationInfo `protobuf:"bytes,3,opt,name=lora,proto3,oneof"`
|
|
}
|
|
|
|
type Modulation_Fsk struct {
|
|
// FSK modulation information.
|
|
Fsk *FskModulationInfo `protobuf:"bytes,4,opt,name=fsk,proto3,oneof"`
|
|
}
|
|
|
|
type Modulation_LrFhss struct {
|
|
// LR-FHSS modulation information.
|
|
LrFhss *LrFhssModulationInfo `protobuf:"bytes,5,opt,name=lr_fhss,json=lrFhss,proto3,oneof"`
|
|
}
|
|
|
|
func (*Modulation_Lora) isModulation_Parameters() {}
|
|
|
|
func (*Modulation_Fsk) isModulation_Parameters() {}
|
|
|
|
func (*Modulation_LrFhss) isModulation_Parameters() {}
|
|
|
|
type UplinkTxInfoLegacy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Frequency (Hz).
|
|
Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
|
// Modulation.
|
|
Modulation common.Modulation `protobuf:"varint,2,opt,name=modulation,proto3,enum=common.Modulation" json:"modulation,omitempty"`
|
|
// Types that are valid to be assigned to ModulationInfo:
|
|
//
|
|
// *UplinkTxInfoLegacy_LoraModulationInfo
|
|
// *UplinkTxInfoLegacy_FskModulationInfo
|
|
// *UplinkTxInfoLegacy_LrFhssModulationInfo
|
|
ModulationInfo isUplinkTxInfoLegacy_ModulationInfo `protobuf_oneof:"modulation_info"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) Reset() {
|
|
*x = UplinkTxInfoLegacy{}
|
|
mi := &file_gw_gw_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkTxInfoLegacy) ProtoMessage() {}
|
|
|
|
func (x *UplinkTxInfoLegacy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[7]
|
|
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 UplinkTxInfoLegacy.ProtoReflect.Descriptor instead.
|
|
func (*UplinkTxInfoLegacy) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetFrequency() uint32 {
|
|
if x != nil {
|
|
return x.Frequency
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetModulation() common.Modulation {
|
|
if x != nil {
|
|
return x.Modulation
|
|
}
|
|
return common.Modulation(0)
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetModulationInfo() isUplinkTxInfoLegacy_ModulationInfo {
|
|
if x != nil {
|
|
return x.ModulationInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetLoraModulationInfo() *LoraModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_LoraModulationInfo); ok {
|
|
return x.LoraModulationInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetFskModulationInfo() *FskModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_FskModulationInfo); ok {
|
|
return x.FskModulationInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkTxInfoLegacy) GetLrFhssModulationInfo() *LrFhssModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_LrFhssModulationInfo); ok {
|
|
return x.LrFhssModulationInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isUplinkTxInfoLegacy_ModulationInfo interface {
|
|
isUplinkTxInfoLegacy_ModulationInfo()
|
|
}
|
|
|
|
type UplinkTxInfoLegacy_LoraModulationInfo struct {
|
|
// LoRa modulation information.
|
|
LoraModulationInfo *LoraModulationInfo `protobuf:"bytes,3,opt,name=lora_modulation_info,json=loraModulationInfo,proto3,oneof"`
|
|
}
|
|
|
|
type UplinkTxInfoLegacy_FskModulationInfo struct {
|
|
// FSK modulation information.
|
|
FskModulationInfo *FskModulationInfo `protobuf:"bytes,4,opt,name=fsk_modulation_info,json=fskModulationInfo,proto3,oneof"`
|
|
}
|
|
|
|
type UplinkTxInfoLegacy_LrFhssModulationInfo struct {
|
|
// LR-FHSS modulation information.
|
|
LrFhssModulationInfo *LrFhssModulationInfo `protobuf:"bytes,5,opt,name=lr_fhss_modulation_info,json=lrFhssModulationInfo,proto3,oneof"`
|
|
}
|
|
|
|
func (*UplinkTxInfoLegacy_LoraModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {}
|
|
|
|
func (*UplinkTxInfoLegacy_FskModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {}
|
|
|
|
func (*UplinkTxInfoLegacy_LrFhssModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {}
|
|
|
|
type UplinkTxInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Frequency (Hz).
|
|
Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
|
// Modulation.
|
|
Modulation *Modulation `protobuf:"bytes,2,opt,name=modulation,proto3" json:"modulation,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkTxInfo) Reset() {
|
|
*x = UplinkTxInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkTxInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkTxInfo) ProtoMessage() {}
|
|
|
|
func (x *UplinkTxInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[8]
|
|
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 UplinkTxInfo.ProtoReflect.Descriptor instead.
|
|
func (*UplinkTxInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *UplinkTxInfo) GetFrequency() uint32 {
|
|
if x != nil {
|
|
return x.Frequency
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkTxInfo) GetModulation() *Modulation {
|
|
if x != nil {
|
|
return x.Modulation
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type LoraModulationInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Bandwidth.
|
|
Bandwidth uint32 `protobuf:"varint,1,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
|
|
// Speading-factor.
|
|
SpreadingFactor uint32 `protobuf:"varint,2,opt,name=spreading_factor,json=spreadingFactor,proto3" json:"spreading_factor,omitempty"`
|
|
// Code-rate.
|
|
CodeRateLegacy string `protobuf:"bytes,3,opt,name=code_rate_legacy,json=codeRateLegacy,proto3" json:"code_rate_legacy,omitempty"`
|
|
// Code-rate.
|
|
CodeRate CodeRate `protobuf:"varint,5,opt,name=code_rate,json=codeRate,proto3,enum=gw.CodeRate" json:"code_rate,omitempty"`
|
|
// Polarization inversion.
|
|
PolarizationInversion bool `protobuf:"varint,4,opt,name=polarization_inversion,json=polarizationInversion,proto3" json:"polarization_inversion,omitempty"`
|
|
// Preamble length (for TX).
|
|
Preamble uint32 `protobuf:"varint,6,opt,name=preamble,proto3" json:"preamble,omitempty"`
|
|
// No CRC (for TX).
|
|
//
|
|
// If true, do not send a CRC in the packet.
|
|
NoCrc bool `protobuf:"varint,7,opt,name=no_crc,json=noCrc,proto3" json:"no_crc,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LoraModulationInfo) Reset() {
|
|
*x = LoraModulationInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LoraModulationInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LoraModulationInfo) ProtoMessage() {}
|
|
|
|
func (x *LoraModulationInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[9]
|
|
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 LoraModulationInfo.ProtoReflect.Descriptor instead.
|
|
func (*LoraModulationInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetBandwidth() uint32 {
|
|
if x != nil {
|
|
return x.Bandwidth
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetSpreadingFactor() uint32 {
|
|
if x != nil {
|
|
return x.SpreadingFactor
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetCodeRateLegacy() string {
|
|
if x != nil {
|
|
return x.CodeRateLegacy
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetCodeRate() CodeRate {
|
|
if x != nil {
|
|
return x.CodeRate
|
|
}
|
|
return CodeRate_CR_UNDEFINED
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetPolarizationInversion() bool {
|
|
if x != nil {
|
|
return x.PolarizationInversion
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetPreamble() uint32 {
|
|
if x != nil {
|
|
return x.Preamble
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LoraModulationInfo) GetNoCrc() bool {
|
|
if x != nil {
|
|
return x.NoCrc
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FskModulationInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Frequency deviation.
|
|
FrequencyDeviation uint32 `protobuf:"varint,1,opt,name=frequency_deviation,json=frequencyDeviation,proto3" json:"frequency_deviation,omitempty"`
|
|
// FSK datarate (bits / sec).
|
|
Datarate uint32 `protobuf:"varint,2,opt,name=datarate,proto3" json:"datarate,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *FskModulationInfo) Reset() {
|
|
*x = FskModulationInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *FskModulationInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*FskModulationInfo) ProtoMessage() {}
|
|
|
|
func (x *FskModulationInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[10]
|
|
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 FskModulationInfo.ProtoReflect.Descriptor instead.
|
|
func (*FskModulationInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *FskModulationInfo) GetFrequencyDeviation() uint32 {
|
|
if x != nil {
|
|
return x.FrequencyDeviation
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *FskModulationInfo) GetDatarate() uint32 {
|
|
if x != nil {
|
|
return x.Datarate
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type LrFhssModulationInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Operating channel width (OCW) in Hz.
|
|
OperatingChannelWidth uint32 `protobuf:"varint,1,opt,name=operating_channel_width,json=operatingChannelWidth,proto3" json:"operating_channel_width,omitempty"`
|
|
// Code-rate.
|
|
// Deprecated: use code_rate.
|
|
CodeRateLegacy string `protobuf:"bytes,2,opt,name=code_rate_legacy,json=codeRateLegacy,proto3" json:"code_rate_legacy,omitempty"`
|
|
// Code-rate.
|
|
CodeRate CodeRate `protobuf:"varint,4,opt,name=code_rate,json=codeRate,proto3,enum=gw.CodeRate" json:"code_rate,omitempty"`
|
|
// Hopping grid number of steps.
|
|
GridSteps uint32 `protobuf:"varint,3,opt,name=grid_steps,json=gridSteps,proto3" json:"grid_steps,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) Reset() {
|
|
*x = LrFhssModulationInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LrFhssModulationInfo) ProtoMessage() {}
|
|
|
|
func (x *LrFhssModulationInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[11]
|
|
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 LrFhssModulationInfo.ProtoReflect.Descriptor instead.
|
|
func (*LrFhssModulationInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) GetOperatingChannelWidth() uint32 {
|
|
if x != nil {
|
|
return x.OperatingChannelWidth
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) GetCodeRateLegacy() string {
|
|
if x != nil {
|
|
return x.CodeRateLegacy
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) GetCodeRate() CodeRate {
|
|
if x != nil {
|
|
return x.CodeRate
|
|
}
|
|
return CodeRate_CR_UNDEFINED
|
|
}
|
|
|
|
func (x *LrFhssModulationInfo) GetGridSteps() uint32 {
|
|
if x != nil {
|
|
return x.GridSteps
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type EncryptedFineTimestamp struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// AES key index used for encrypting the fine timestamp.
|
|
AesKeyIndex uint32 `protobuf:"varint,1,opt,name=aes_key_index,json=aesKeyIndex,proto3" json:"aes_key_index,omitempty"`
|
|
// Encrypted 'main' fine-timestamp (ns precision part of the timestamp).
|
|
EncryptedNs []byte `protobuf:"bytes,2,opt,name=encrypted_ns,json=encryptedNs,proto3" json:"encrypted_ns,omitempty"`
|
|
// FPGA ID.
|
|
FpgaId []byte `protobuf:"bytes,3,opt,name=fpga_id,json=fpgaId,proto3" json:"fpga_id,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *EncryptedFineTimestamp) Reset() {
|
|
*x = EncryptedFineTimestamp{}
|
|
mi := &file_gw_gw_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *EncryptedFineTimestamp) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*EncryptedFineTimestamp) ProtoMessage() {}
|
|
|
|
func (x *EncryptedFineTimestamp) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[12]
|
|
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 EncryptedFineTimestamp.ProtoReflect.Descriptor instead.
|
|
func (*EncryptedFineTimestamp) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *EncryptedFineTimestamp) GetAesKeyIndex() uint32 {
|
|
if x != nil {
|
|
return x.AesKeyIndex
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *EncryptedFineTimestamp) GetEncryptedNs() []byte {
|
|
if x != nil {
|
|
return x.EncryptedNs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *EncryptedFineTimestamp) GetFpgaId() []byte {
|
|
if x != nil {
|
|
return x.FpgaId
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type PlainFineTimestamp struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Full timestamp.
|
|
Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PlainFineTimestamp) Reset() {
|
|
*x = PlainFineTimestamp{}
|
|
mi := &file_gw_gw_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PlainFineTimestamp) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PlainFineTimestamp) ProtoMessage() {}
|
|
|
|
func (x *PlainFineTimestamp) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[13]
|
|
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 PlainFineTimestamp.ProtoReflect.Descriptor instead.
|
|
func (*PlainFineTimestamp) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
func (x *PlainFineTimestamp) GetTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.Time
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type GatewayStats struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,17,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Gateway time.
|
|
Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
|
|
// Gateway location.
|
|
Location *common.Location `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"`
|
|
// Gateway configuration version (this maps to the config_version sent
|
|
// by ChirpStack to the gateway).
|
|
ConfigVersion string `protobuf:"bytes,4,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"`
|
|
// Number of radio packets received.
|
|
RxPacketsReceived uint32 `protobuf:"varint,5,opt,name=rx_packets_received,json=rxPacketsReceived,proto3" json:"rx_packets_received,omitempty"`
|
|
// Number of radio packets received with valid PHY CRC.
|
|
RxPacketsReceivedOk uint32 `protobuf:"varint,6,opt,name=rx_packets_received_ok,json=rxPacketsReceivedOk,proto3" json:"rx_packets_received_ok,omitempty"`
|
|
// Number of downlink packets received for transmission.
|
|
TxPacketsReceived uint32 `protobuf:"varint,7,opt,name=tx_packets_received,json=txPacketsReceived,proto3" json:"tx_packets_received,omitempty"`
|
|
// Number of downlink packets emitted.
|
|
TxPacketsEmitted uint32 `protobuf:"varint,8,opt,name=tx_packets_emitted,json=txPacketsEmitted,proto3" json:"tx_packets_emitted,omitempty"`
|
|
// Additional gateway meta-data.
|
|
Metadata map[string]string `protobuf:"bytes,10,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
// Tx packets per frequency.
|
|
TxPacketsPerFrequency map[uint32]uint32 `protobuf:"bytes,12,rep,name=tx_packets_per_frequency,json=txPacketsPerFrequency,proto3" json:"tx_packets_per_frequency,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
|
// Rx packets per frequency.
|
|
RxPacketsPerFrequency map[uint32]uint32 `protobuf:"bytes,13,rep,name=rx_packets_per_frequency,json=rxPacketsPerFrequency,proto3" json:"rx_packets_per_frequency,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
|
// Tx packets per modulation parameters.
|
|
TxPacketsPerModulation []*PerModulationCount `protobuf:"bytes,14,rep,name=tx_packets_per_modulation,json=txPacketsPerModulation,proto3" json:"tx_packets_per_modulation,omitempty"`
|
|
// Rx packets per modulation parameters.
|
|
RxPacketsPerModulation []*PerModulationCount `protobuf:"bytes,15,rep,name=rx_packets_per_modulation,json=rxPacketsPerModulation,proto3" json:"rx_packets_per_modulation,omitempty"`
|
|
// Tx packets per status.
|
|
TxPacketsPerStatus map[string]uint32 `protobuf:"bytes,16,rep,name=tx_packets_per_status,json=txPacketsPerStatus,proto3" json:"tx_packets_per_status,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
|
// Duty-cycle statistics (Concentratord only).
|
|
DutyCycleStats *DutyCycleStats `protobuf:"bytes,18,opt,name=duty_cycle_stats,json=dutyCycleStats,proto3" json:"duty_cycle_stats,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GatewayStats) Reset() {
|
|
*x = GatewayStats{}
|
|
mi := &file_gw_gw_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GatewayStats) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GatewayStats) ProtoMessage() {}
|
|
|
|
func (x *GatewayStats) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[14]
|
|
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 GatewayStats.ProtoReflect.Descriptor instead.
|
|
func (*GatewayStats) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *GatewayStats) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayStats) GetTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.Time
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetLocation() *common.Location {
|
|
if x != nil {
|
|
return x.Location
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetConfigVersion() string {
|
|
if x != nil {
|
|
return x.ConfigVersion
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayStats) GetRxPacketsReceived() uint32 {
|
|
if x != nil {
|
|
return x.RxPacketsReceived
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayStats) GetRxPacketsReceivedOk() uint32 {
|
|
if x != nil {
|
|
return x.RxPacketsReceivedOk
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayStats) GetTxPacketsReceived() uint32 {
|
|
if x != nil {
|
|
return x.TxPacketsReceived
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayStats) GetTxPacketsEmitted() uint32 {
|
|
if x != nil {
|
|
return x.TxPacketsEmitted
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayStats) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetTxPacketsPerFrequency() map[uint32]uint32 {
|
|
if x != nil {
|
|
return x.TxPacketsPerFrequency
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetRxPacketsPerFrequency() map[uint32]uint32 {
|
|
if x != nil {
|
|
return x.RxPacketsPerFrequency
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetTxPacketsPerModulation() []*PerModulationCount {
|
|
if x != nil {
|
|
return x.TxPacketsPerModulation
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetRxPacketsPerModulation() []*PerModulationCount {
|
|
if x != nil {
|
|
return x.RxPacketsPerModulation
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetTxPacketsPerStatus() map[string]uint32 {
|
|
if x != nil {
|
|
return x.TxPacketsPerStatus
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayStats) GetDutyCycleStats() *DutyCycleStats {
|
|
if x != nil {
|
|
return x.DutyCycleStats
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type PerModulationCount struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Modulation.
|
|
Modulation *Modulation `protobuf:"bytes,1,opt,name=modulation,proto3" json:"modulation,omitempty"`
|
|
// Count.
|
|
Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PerModulationCount) Reset() {
|
|
*x = PerModulationCount{}
|
|
mi := &file_gw_gw_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PerModulationCount) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PerModulationCount) ProtoMessage() {}
|
|
|
|
func (x *PerModulationCount) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[15]
|
|
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 PerModulationCount.ProtoReflect.Descriptor instead.
|
|
func (*PerModulationCount) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{15}
|
|
}
|
|
|
|
func (x *PerModulationCount) GetModulation() *Modulation {
|
|
if x != nil {
|
|
return x.Modulation
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PerModulationCount) GetCount() uint32 {
|
|
if x != nil {
|
|
return x.Count
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type DutyCycleStats struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Implemented regulation.
|
|
Regulation common.Regulation `protobuf:"varint,1,opt,name=regulation,proto3,enum=common.Regulation" json:"regulation,omitempty"`
|
|
// Tracking window.
|
|
Window *durationpb.Duration `protobuf:"bytes,2,opt,name=window,proto3" json:"window,omitempty"`
|
|
// Bands.
|
|
Bands []*DutyCycleBand `protobuf:"bytes,3,rep,name=bands,proto3" json:"bands,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DutyCycleStats) Reset() {
|
|
*x = DutyCycleStats{}
|
|
mi := &file_gw_gw_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DutyCycleStats) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DutyCycleStats) ProtoMessage() {}
|
|
|
|
func (x *DutyCycleStats) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[16]
|
|
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 DutyCycleStats.ProtoReflect.Descriptor instead.
|
|
func (*DutyCycleStats) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{16}
|
|
}
|
|
|
|
func (x *DutyCycleStats) GetRegulation() common.Regulation {
|
|
if x != nil {
|
|
return x.Regulation
|
|
}
|
|
return common.Regulation(0)
|
|
}
|
|
|
|
func (x *DutyCycleStats) GetWindow() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.Window
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DutyCycleStats) GetBands() []*DutyCycleBand {
|
|
if x != nil {
|
|
return x.Bands
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DutyCycleBand struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Band name.
|
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
|
// Min frequency for this band.
|
|
FrequencyMin uint32 `protobuf:"varint,2,opt,name=frequency_min,json=frequencyMin,proto3" json:"frequency_min,omitempty"`
|
|
// Max frequency for this band.
|
|
FrequencyMax uint32 `protobuf:"varint,3,opt,name=frequency_max,json=frequencyMax,proto3" json:"frequency_max,omitempty"`
|
|
// Max. allowed load.
|
|
LoadMax *durationpb.Duration `protobuf:"bytes,4,opt,name=load_max,json=loadMax,proto3" json:"load_max,omitempty"`
|
|
// Tracked load (within the window of the regionlation).
|
|
LoadTracked *durationpb.Duration `protobuf:"bytes,5,opt,name=load_tracked,json=loadTracked,proto3" json:"load_tracked,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DutyCycleBand) Reset() {
|
|
*x = DutyCycleBand{}
|
|
mi := &file_gw_gw_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DutyCycleBand) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DutyCycleBand) ProtoMessage() {}
|
|
|
|
func (x *DutyCycleBand) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[17]
|
|
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 DutyCycleBand.ProtoReflect.Descriptor instead.
|
|
func (*DutyCycleBand) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
func (x *DutyCycleBand) GetName() string {
|
|
if x != nil {
|
|
return x.Name
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *DutyCycleBand) GetFrequencyMin() uint32 {
|
|
if x != nil {
|
|
return x.FrequencyMin
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DutyCycleBand) GetFrequencyMax() uint32 {
|
|
if x != nil {
|
|
return x.FrequencyMax
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DutyCycleBand) GetLoadMax() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.LoadMax
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DutyCycleBand) GetLoadTracked() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.LoadTracked
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type UplinkRxInfoLegacy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
GatewayId []byte `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// RX time (only set when the gateway has a GPS module).
|
|
Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
|
|
// RX time since GPS epoch (only set when the gateway has a GPS module).
|
|
TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,3,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"`
|
|
// RSSI.
|
|
Rssi int32 `protobuf:"varint,5,opt,name=rssi,proto3" json:"rssi,omitempty"`
|
|
// LoRa SNR.
|
|
LoraSnr float64 `protobuf:"fixed64,6,opt,name=lora_snr,json=loraSnr,proto3" json:"lora_snr,omitempty"`
|
|
// Channel.
|
|
Channel uint32 `protobuf:"varint,7,opt,name=channel,proto3" json:"channel,omitempty"`
|
|
// RF Chain.
|
|
RfChain uint32 `protobuf:"varint,8,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"`
|
|
// Board.
|
|
Board uint32 `protobuf:"varint,9,opt,name=board,proto3" json:"board,omitempty"`
|
|
// Antenna.
|
|
Antenna uint32 `protobuf:"varint,10,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
|
// Location.
|
|
Location *common.Location `protobuf:"bytes,11,opt,name=location,proto3" json:"location,omitempty"`
|
|
// Fine-timestamp type.
|
|
FineTimestampType FineTimestampType `protobuf:"varint,12,opt,name=fine_timestamp_type,json=fineTimestampType,proto3,enum=gw.FineTimestampType" json:"fine_timestamp_type,omitempty"`
|
|
// Fine-timestamp data.
|
|
//
|
|
// Types that are valid to be assigned to FineTimestamp:
|
|
//
|
|
// *UplinkRxInfoLegacy_EncryptedFineTimestamp
|
|
// *UplinkRxInfoLegacy_PlainFineTimestamp
|
|
FineTimestamp isUplinkRxInfoLegacy_FineTimestamp `protobuf_oneof:"fine_timestamp"`
|
|
// Gateway specific context.
|
|
Context []byte `protobuf:"bytes,15,opt,name=context,proto3" json:"context,omitempty"`
|
|
// Uplink ID (UUID bytes).
|
|
// Unique and random ID which can be used to correlate the uplink across
|
|
// multiple logs.
|
|
UplinkId []byte `protobuf:"bytes,16,opt,name=uplink_id,json=uplinkId,proto3" json:"uplink_id,omitempty"`
|
|
// CRC status.
|
|
CrcStatus CRCStatus `protobuf:"varint,17,opt,name=crc_status,json=crcStatus,proto3,enum=gw.CRCStatus" json:"crc_status,omitempty"`
|
|
// Optional meta-data map.
|
|
Metadata map[string]string `protobuf:"bytes,18,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) Reset() {
|
|
*x = UplinkRxInfoLegacy{}
|
|
mi := &file_gw_gw_proto_msgTypes[18]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkRxInfoLegacy) ProtoMessage() {}
|
|
|
|
func (x *UplinkRxInfoLegacy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[18]
|
|
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 UplinkRxInfoLegacy.ProtoReflect.Descriptor instead.
|
|
func (*UplinkRxInfoLegacy) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{18}
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetGatewayId() []byte {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.Time
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetTimeSinceGpsEpoch() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.TimeSinceGpsEpoch
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetRssi() int32 {
|
|
if x != nil {
|
|
return x.Rssi
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetLoraSnr() float64 {
|
|
if x != nil {
|
|
return x.LoraSnr
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetChannel() uint32 {
|
|
if x != nil {
|
|
return x.Channel
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetRfChain() uint32 {
|
|
if x != nil {
|
|
return x.RfChain
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetBoard() uint32 {
|
|
if x != nil {
|
|
return x.Board
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetAntenna() uint32 {
|
|
if x != nil {
|
|
return x.Antenna
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetLocation() *common.Location {
|
|
if x != nil {
|
|
return x.Location
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetFineTimestampType() FineTimestampType {
|
|
if x != nil {
|
|
return x.FineTimestampType
|
|
}
|
|
return FineTimestampType_NONE
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetFineTimestamp() isUplinkRxInfoLegacy_FineTimestamp {
|
|
if x != nil {
|
|
return x.FineTimestamp
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetEncryptedFineTimestamp() *EncryptedFineTimestamp {
|
|
if x != nil {
|
|
if x, ok := x.FineTimestamp.(*UplinkRxInfoLegacy_EncryptedFineTimestamp); ok {
|
|
return x.EncryptedFineTimestamp
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetPlainFineTimestamp() *PlainFineTimestamp {
|
|
if x != nil {
|
|
if x, ok := x.FineTimestamp.(*UplinkRxInfoLegacy_PlainFineTimestamp); ok {
|
|
return x.PlainFineTimestamp
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetContext() []byte {
|
|
if x != nil {
|
|
return x.Context
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetUplinkId() []byte {
|
|
if x != nil {
|
|
return x.UplinkId
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetCrcStatus() CRCStatus {
|
|
if x != nil {
|
|
return x.CrcStatus
|
|
}
|
|
return CRCStatus_NO_CRC
|
|
}
|
|
|
|
func (x *UplinkRxInfoLegacy) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isUplinkRxInfoLegacy_FineTimestamp interface {
|
|
isUplinkRxInfoLegacy_FineTimestamp()
|
|
}
|
|
|
|
type UplinkRxInfoLegacy_EncryptedFineTimestamp struct {
|
|
// Encrypted fine-timestamp data.
|
|
EncryptedFineTimestamp *EncryptedFineTimestamp `protobuf:"bytes,13,opt,name=encrypted_fine_timestamp,json=encryptedFineTimestamp,proto3,oneof"`
|
|
}
|
|
|
|
type UplinkRxInfoLegacy_PlainFineTimestamp struct {
|
|
// Plain fine-timestamp data.
|
|
PlainFineTimestamp *PlainFineTimestamp `protobuf:"bytes,14,opt,name=plain_fine_timestamp,json=plainFineTimestamp,proto3,oneof"`
|
|
}
|
|
|
|
func (*UplinkRxInfoLegacy_EncryptedFineTimestamp) isUplinkRxInfoLegacy_FineTimestamp() {}
|
|
|
|
func (*UplinkRxInfoLegacy_PlainFineTimestamp) isUplinkRxInfoLegacy_FineTimestamp() {}
|
|
|
|
type UplinkRxInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Uplink ID.
|
|
UplinkId uint32 `protobuf:"varint,2,opt,name=uplink_id,json=uplinkId,proto3" json:"uplink_id,omitempty"`
|
|
// Gateway RX time (set if the gateway has a GNSS module).
|
|
GwTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=gw_time,json=gwTime,proto3" json:"gw_time,omitempty"`
|
|
// Network Server RX time (set by the NS on receiving the uplink).
|
|
NsTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=ns_time,json=nsTime,proto3" json:"ns_time,omitempty"`
|
|
// RX time as time since GPS epoch (set if the gateway has a GNSS module).
|
|
TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,4,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"`
|
|
// Fine-timestamp.
|
|
// This timestamp can be used for TDOA based geolocation.
|
|
FineTimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,5,opt,name=fine_time_since_gps_epoch,json=fineTimeSinceGpsEpoch,proto3" json:"fine_time_since_gps_epoch,omitempty"`
|
|
// RSSI.
|
|
Rssi int32 `protobuf:"varint,6,opt,name=rssi,proto3" json:"rssi,omitempty"`
|
|
// SNR.
|
|
// Note: only available for LoRa modulation.
|
|
Snr float32 `protobuf:"fixed32,7,opt,name=snr,proto3" json:"snr,omitempty"`
|
|
// Channel.
|
|
Channel uint32 `protobuf:"varint,8,opt,name=channel,proto3" json:"channel,omitempty"`
|
|
// RF chain.
|
|
RfChain uint32 `protobuf:"varint,9,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"`
|
|
// Board.
|
|
Board uint32 `protobuf:"varint,10,opt,name=board,proto3" json:"board,omitempty"`
|
|
// Antenna.
|
|
Antenna uint32 `protobuf:"varint,11,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
|
// Location.
|
|
Location *common.Location `protobuf:"bytes,12,opt,name=location,proto3" json:"location,omitempty"`
|
|
// Gateway specific context.
|
|
// This value must be returned to the gateway on (Class-A) downlink.
|
|
Context []byte `protobuf:"bytes,13,opt,name=context,proto3" json:"context,omitempty"`
|
|
// Additional gateway meta-data.
|
|
Metadata map[string]string `protobuf:"bytes,15,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
// CRC status.
|
|
CrcStatus CRCStatus `protobuf:"varint,16,opt,name=crc_status,json=crcStatus,proto3,enum=gw.CRCStatus" json:"crc_status,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkRxInfo) Reset() {
|
|
*x = UplinkRxInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[19]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkRxInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkRxInfo) ProtoMessage() {}
|
|
|
|
func (x *UplinkRxInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[19]
|
|
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 UplinkRxInfo.ProtoReflect.Descriptor instead.
|
|
func (*UplinkRxInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{19}
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetUplinkId() uint32 {
|
|
if x != nil {
|
|
return x.UplinkId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetGwTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.GwTime
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetNsTime() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.NsTime
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetTimeSinceGpsEpoch() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.TimeSinceGpsEpoch
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetFineTimeSinceGpsEpoch() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.FineTimeSinceGpsEpoch
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetRssi() int32 {
|
|
if x != nil {
|
|
return x.Rssi
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetSnr() float32 {
|
|
if x != nil {
|
|
return x.Snr
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetChannel() uint32 {
|
|
if x != nil {
|
|
return x.Channel
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetRfChain() uint32 {
|
|
if x != nil {
|
|
return x.RfChain
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetBoard() uint32 {
|
|
if x != nil {
|
|
return x.Board
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetAntenna() uint32 {
|
|
if x != nil {
|
|
return x.Antenna
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetLocation() *common.Location {
|
|
if x != nil {
|
|
return x.Location
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetContext() []byte {
|
|
if x != nil {
|
|
return x.Context
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkRxInfo) GetCrcStatus() CRCStatus {
|
|
if x != nil {
|
|
return x.CrcStatus
|
|
}
|
|
return CRCStatus_NO_CRC
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: replaced by gateway_id in DownlinkFrame.
|
|
GatewayId []byte `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// TX frequency (in Hz).
|
|
Frequency uint32 `protobuf:"varint,5,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
|
// TX power (in dBm EIRP).
|
|
Power int32 `protobuf:"varint,6,opt,name=power,proto3" json:"power,omitempty"`
|
|
// Modulation.
|
|
Modulation common.Modulation `protobuf:"varint,7,opt,name=modulation,proto3,enum=common.Modulation" json:"modulation,omitempty"`
|
|
// Types that are valid to be assigned to ModulationInfo:
|
|
//
|
|
// *DownlinkTxInfoLegacy_LoraModulationInfo
|
|
// *DownlinkTxInfoLegacy_FskModulationInfo
|
|
ModulationInfo isDownlinkTxInfoLegacy_ModulationInfo `protobuf_oneof:"modulation_info"`
|
|
// The board identifier for emitting the frame.
|
|
Board uint32 `protobuf:"varint,10,opt,name=board,proto3" json:"board,omitempty"`
|
|
// The antenna identifier for emitting the frame.
|
|
Antenna uint32 `protobuf:"varint,11,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
|
// Timing defines the downlink timing to use.
|
|
Timing DownlinkTiming `protobuf:"varint,12,opt,name=timing,proto3,enum=gw.DownlinkTiming" json:"timing,omitempty"`
|
|
// Types that are valid to be assigned to TimingInfo:
|
|
//
|
|
// *DownlinkTxInfoLegacy_ImmediatelyTimingInfo
|
|
// *DownlinkTxInfoLegacy_DelayTimingInfo
|
|
// *DownlinkTxInfoLegacy_GpsEpochTimingInfo
|
|
TimingInfo isDownlinkTxInfoLegacy_TimingInfo `protobuf_oneof:"timing_info"`
|
|
// Gateway specific context.
|
|
// In case of a Class-A downlink, this contains a copy of the uplink context.
|
|
Context []byte `protobuf:"bytes,16,opt,name=context,proto3" json:"context,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) Reset() {
|
|
*x = DownlinkTxInfoLegacy{}
|
|
mi := &file_gw_gw_proto_msgTypes[20]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkTxInfoLegacy) ProtoMessage() {}
|
|
|
|
func (x *DownlinkTxInfoLegacy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[20]
|
|
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 DownlinkTxInfoLegacy.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkTxInfoLegacy) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{20}
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetGatewayId() []byte {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetFrequency() uint32 {
|
|
if x != nil {
|
|
return x.Frequency
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetPower() int32 {
|
|
if x != nil {
|
|
return x.Power
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetModulation() common.Modulation {
|
|
if x != nil {
|
|
return x.Modulation
|
|
}
|
|
return common.Modulation(0)
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetModulationInfo() isDownlinkTxInfoLegacy_ModulationInfo {
|
|
if x != nil {
|
|
return x.ModulationInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetLoraModulationInfo() *LoraModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.ModulationInfo.(*DownlinkTxInfoLegacy_LoraModulationInfo); ok {
|
|
return x.LoraModulationInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetFskModulationInfo() *FskModulationInfo {
|
|
if x != nil {
|
|
if x, ok := x.ModulationInfo.(*DownlinkTxInfoLegacy_FskModulationInfo); ok {
|
|
return x.FskModulationInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetBoard() uint32 {
|
|
if x != nil {
|
|
return x.Board
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetAntenna() uint32 {
|
|
if x != nil {
|
|
return x.Antenna
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetTiming() DownlinkTiming {
|
|
if x != nil {
|
|
return x.Timing
|
|
}
|
|
return DownlinkTiming_IMMEDIATELY
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetTimingInfo() isDownlinkTxInfoLegacy_TimingInfo {
|
|
if x != nil {
|
|
return x.TimingInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetImmediatelyTimingInfo() *ImmediatelyTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_ImmediatelyTimingInfo); ok {
|
|
return x.ImmediatelyTimingInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetDelayTimingInfo() *DelayTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_DelayTimingInfo); ok {
|
|
return x.DelayTimingInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetGpsEpochTimingInfo() *GPSEpochTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_GpsEpochTimingInfo); ok {
|
|
return x.GpsEpochTimingInfo
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfoLegacy) GetContext() []byte {
|
|
if x != nil {
|
|
return x.Context
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isDownlinkTxInfoLegacy_ModulationInfo interface {
|
|
isDownlinkTxInfoLegacy_ModulationInfo()
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy_LoraModulationInfo struct {
|
|
// LoRa modulation information.
|
|
LoraModulationInfo *LoraModulationInfo `protobuf:"bytes,8,opt,name=lora_modulation_info,json=loraModulationInfo,proto3,oneof"`
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy_FskModulationInfo struct {
|
|
// FSK modulation information.
|
|
FskModulationInfo *FskModulationInfo `protobuf:"bytes,9,opt,name=fsk_modulation_info,json=fskModulationInfo,proto3,oneof"`
|
|
}
|
|
|
|
func (*DownlinkTxInfoLegacy_LoraModulationInfo) isDownlinkTxInfoLegacy_ModulationInfo() {}
|
|
|
|
func (*DownlinkTxInfoLegacy_FskModulationInfo) isDownlinkTxInfoLegacy_ModulationInfo() {}
|
|
|
|
type isDownlinkTxInfoLegacy_TimingInfo interface {
|
|
isDownlinkTxInfoLegacy_TimingInfo()
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy_ImmediatelyTimingInfo struct {
|
|
// Immediately timing information.
|
|
ImmediatelyTimingInfo *ImmediatelyTimingInfo `protobuf:"bytes,13,opt,name=immediately_timing_info,json=immediatelyTimingInfo,proto3,oneof"`
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy_DelayTimingInfo struct {
|
|
// Context based delay timing information.
|
|
DelayTimingInfo *DelayTimingInfo `protobuf:"bytes,14,opt,name=delay_timing_info,json=delayTimingInfo,proto3,oneof"`
|
|
}
|
|
|
|
type DownlinkTxInfoLegacy_GpsEpochTimingInfo struct {
|
|
// GPS Epoch timing information.
|
|
GpsEpochTimingInfo *GPSEpochTimingInfo `protobuf:"bytes,15,opt,name=gps_epoch_timing_info,json=gpsEpochTimingInfo,proto3,oneof"`
|
|
}
|
|
|
|
func (*DownlinkTxInfoLegacy_ImmediatelyTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {}
|
|
|
|
func (*DownlinkTxInfoLegacy_DelayTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {}
|
|
|
|
func (*DownlinkTxInfoLegacy_GpsEpochTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {}
|
|
|
|
type DownlinkTxInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// TX frequency (in Hz).
|
|
Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
|
// TX power (in dBm EIRP).
|
|
Power int32 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
|
|
// Modulation.
|
|
Modulation *Modulation `protobuf:"bytes,3,opt,name=modulation,proto3" json:"modulation,omitempty"`
|
|
// The board identifier for emitting the frame.
|
|
Board uint32 `protobuf:"varint,4,opt,name=board,proto3" json:"board,omitempty"`
|
|
// The antenna identifier for emitting the frame.
|
|
Antenna uint32 `protobuf:"varint,5,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
|
// Timing.
|
|
Timing *Timing `protobuf:"bytes,6,opt,name=timing,proto3" json:"timing,omitempty"`
|
|
// Gateway specific context.
|
|
// In case of a Class-A downlink, this contains a copy of the uplink context.
|
|
Context []byte `protobuf:"bytes,7,opt,name=context,proto3" json:"context,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) Reset() {
|
|
*x = DownlinkTxInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[21]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkTxInfo) ProtoMessage() {}
|
|
|
|
func (x *DownlinkTxInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[21]
|
|
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 DownlinkTxInfo.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkTxInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{21}
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetFrequency() uint32 {
|
|
if x != nil {
|
|
return x.Frequency
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetPower() int32 {
|
|
if x != nil {
|
|
return x.Power
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetModulation() *Modulation {
|
|
if x != nil {
|
|
return x.Modulation
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetBoard() uint32 {
|
|
if x != nil {
|
|
return x.Board
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetAntenna() uint32 {
|
|
if x != nil {
|
|
return x.Antenna
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetTiming() *Timing {
|
|
if x != nil {
|
|
return x.Timing
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxInfo) GetContext() []byte {
|
|
if x != nil {
|
|
return x.Context
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Timing struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Parameters:
|
|
//
|
|
// *Timing_Immediately
|
|
// *Timing_Delay
|
|
// *Timing_GpsEpoch
|
|
Parameters isTiming_Parameters `protobuf_oneof:"parameters"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Timing) Reset() {
|
|
*x = Timing{}
|
|
mi := &file_gw_gw_proto_msgTypes[22]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Timing) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Timing) ProtoMessage() {}
|
|
|
|
func (x *Timing) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[22]
|
|
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 Timing.ProtoReflect.Descriptor instead.
|
|
func (*Timing) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{22}
|
|
}
|
|
|
|
func (x *Timing) GetParameters() isTiming_Parameters {
|
|
if x != nil {
|
|
return x.Parameters
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Timing) GetImmediately() *ImmediatelyTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Timing_Immediately); ok {
|
|
return x.Immediately
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Timing) GetDelay() *DelayTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Timing_Delay); ok {
|
|
return x.Delay
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Timing) GetGpsEpoch() *GPSEpochTimingInfo {
|
|
if x != nil {
|
|
if x, ok := x.Parameters.(*Timing_GpsEpoch); ok {
|
|
return x.GpsEpoch
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isTiming_Parameters interface {
|
|
isTiming_Parameters()
|
|
}
|
|
|
|
type Timing_Immediately struct {
|
|
// Immediately timing information.
|
|
Immediately *ImmediatelyTimingInfo `protobuf:"bytes,1,opt,name=immediately,proto3,oneof"`
|
|
}
|
|
|
|
type Timing_Delay struct {
|
|
// Context based delay timing information.
|
|
Delay *DelayTimingInfo `protobuf:"bytes,2,opt,name=delay,proto3,oneof"`
|
|
}
|
|
|
|
type Timing_GpsEpoch struct {
|
|
// GPS Epoch timing information.
|
|
GpsEpoch *GPSEpochTimingInfo `protobuf:"bytes,3,opt,name=gps_epoch,json=gpsEpoch,proto3,oneof"`
|
|
}
|
|
|
|
func (*Timing_Immediately) isTiming_Parameters() {}
|
|
|
|
func (*Timing_Delay) isTiming_Parameters() {}
|
|
|
|
func (*Timing_GpsEpoch) isTiming_Parameters() {}
|
|
|
|
type ImmediatelyTimingInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ImmediatelyTimingInfo) Reset() {
|
|
*x = ImmediatelyTimingInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[23]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ImmediatelyTimingInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ImmediatelyTimingInfo) ProtoMessage() {}
|
|
|
|
func (x *ImmediatelyTimingInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[23]
|
|
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 ImmediatelyTimingInfo.ProtoReflect.Descriptor instead.
|
|
func (*ImmediatelyTimingInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{23}
|
|
}
|
|
|
|
type DelayTimingInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Delay (duration).
|
|
// The delay will be added to the gateway internal timing, provided by the
|
|
// context object.
|
|
Delay *durationpb.Duration `protobuf:"bytes,1,opt,name=delay,proto3" json:"delay,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DelayTimingInfo) Reset() {
|
|
*x = DelayTimingInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[24]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DelayTimingInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DelayTimingInfo) ProtoMessage() {}
|
|
|
|
func (x *DelayTimingInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[24]
|
|
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 DelayTimingInfo.ProtoReflect.Descriptor instead.
|
|
func (*DelayTimingInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{24}
|
|
}
|
|
|
|
func (x *DelayTimingInfo) GetDelay() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.Delay
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type GPSEpochTimingInfo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Duration since GPS Epoch.
|
|
TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,1,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GPSEpochTimingInfo) Reset() {
|
|
*x = GPSEpochTimingInfo{}
|
|
mi := &file_gw_gw_proto_msgTypes[25]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GPSEpochTimingInfo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GPSEpochTimingInfo) ProtoMessage() {}
|
|
|
|
func (x *GPSEpochTimingInfo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[25]
|
|
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 GPSEpochTimingInfo.ProtoReflect.Descriptor instead.
|
|
func (*GPSEpochTimingInfo) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{25}
|
|
}
|
|
|
|
func (x *GPSEpochTimingInfo) GetTimeSinceGpsEpoch() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.TimeSinceGpsEpoch
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type UplinkFrame struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// PHYPayload.
|
|
PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"`
|
|
// TX meta-data (deprecated).
|
|
TxInfoLegacy *UplinkTxInfoLegacy `protobuf:"bytes,2,opt,name=tx_info_legacy,json=txInfoLegacy,proto3" json:"tx_info_legacy,omitempty"`
|
|
// RX meta-data (deprecated).
|
|
RxInfoLegacy *UplinkRxInfoLegacy `protobuf:"bytes,3,opt,name=rx_info_legacy,json=rxInfoLegacy,proto3" json:"rx_info_legacy,omitempty"`
|
|
// Tx meta-data.
|
|
TxInfo *UplinkTxInfo `protobuf:"bytes,4,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"`
|
|
// Rx meta-data.
|
|
RxInfo *UplinkRxInfo `protobuf:"bytes,5,opt,name=rx_info,json=rxInfo,proto3" json:"rx_info,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkFrame) Reset() {
|
|
*x = UplinkFrame{}
|
|
mi := &file_gw_gw_proto_msgTypes[26]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkFrame) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkFrame) ProtoMessage() {}
|
|
|
|
func (x *UplinkFrame) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[26]
|
|
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 UplinkFrame.ProtoReflect.Descriptor instead.
|
|
func (*UplinkFrame) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{26}
|
|
}
|
|
|
|
func (x *UplinkFrame) GetPhyPayload() []byte {
|
|
if x != nil {
|
|
return x.PhyPayload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrame) GetTxInfoLegacy() *UplinkTxInfoLegacy {
|
|
if x != nil {
|
|
return x.TxInfoLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrame) GetRxInfoLegacy() *UplinkRxInfoLegacy {
|
|
if x != nil {
|
|
return x.RxInfoLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrame) GetTxInfo() *UplinkTxInfo {
|
|
if x != nil {
|
|
return x.TxInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrame) GetRxInfo() *UplinkRxInfo {
|
|
if x != nil {
|
|
return x.RxInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type UplinkFrameSet struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// PHYPayload.
|
|
PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"`
|
|
// TX meta-data.
|
|
TxInfo *UplinkTxInfo `protobuf:"bytes,2,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"`
|
|
// RX meta-data set.
|
|
RxInfo []*UplinkRxInfo `protobuf:"bytes,3,rep,name=rx_info,json=rxInfo,proto3" json:"rx_info,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UplinkFrameSet) Reset() {
|
|
*x = UplinkFrameSet{}
|
|
mi := &file_gw_gw_proto_msgTypes[27]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UplinkFrameSet) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UplinkFrameSet) ProtoMessage() {}
|
|
|
|
func (x *UplinkFrameSet) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[27]
|
|
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 UplinkFrameSet.ProtoReflect.Descriptor instead.
|
|
func (*UplinkFrameSet) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{27}
|
|
}
|
|
|
|
func (x *UplinkFrameSet) GetPhyPayload() []byte {
|
|
if x != nil {
|
|
return x.PhyPayload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrameSet) GetTxInfo() *UplinkTxInfo {
|
|
if x != nil {
|
|
return x.TxInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *UplinkFrameSet) GetRxInfo() []*UplinkRxInfo {
|
|
if x != nil {
|
|
return x.RxInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DownlinkFrame struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Downlink ID.
|
|
DownlinkId uint32 `protobuf:"varint,3,opt,name=downlink_id,json=downlinkId,proto3" json:"downlink_id,omitempty"`
|
|
// Downlink ID (UUID).
|
|
// Deprecated: use downlink_id.
|
|
DownlinkIdLegacy []byte `protobuf:"bytes,4,opt,name=downlink_id_legacy,json=downlinkIdLegacy,proto3" json:"downlink_id_legacy,omitempty"`
|
|
// Downlink frame items.
|
|
// This makes it possible to send multiple downlink opportunities to the
|
|
// gateway at once (e.g. RX1 and RX2 in LoRaWAN). The first item has the
|
|
// highest priority, the last the lowest. The gateway will emit at most
|
|
// one item.
|
|
Items []*DownlinkFrameItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id
|
|
GatewayIdLegacy []byte `protobuf:"bytes,6,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,7,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkFrame) Reset() {
|
|
*x = DownlinkFrame{}
|
|
mi := &file_gw_gw_proto_msgTypes[28]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkFrame) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkFrame) ProtoMessage() {}
|
|
|
|
func (x *DownlinkFrame) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[28]
|
|
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 DownlinkFrame.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkFrame) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{28}
|
|
}
|
|
|
|
func (x *DownlinkFrame) GetDownlinkId() uint32 {
|
|
if x != nil {
|
|
return x.DownlinkId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkFrame) GetDownlinkIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.DownlinkIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkFrame) GetItems() []*DownlinkFrameItem {
|
|
if x != nil {
|
|
return x.Items
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkFrame) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkFrame) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type DownlinkFrameItem struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// PHYPayload.
|
|
PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"`
|
|
// TX meta-data (deprecated).
|
|
TxInfoLegacy *DownlinkTxInfoLegacy `protobuf:"bytes,2,opt,name=tx_info_legacy,json=txInfoLegacy,proto3" json:"tx_info_legacy,omitempty"`
|
|
// Tx meta-data.
|
|
TxInfo *DownlinkTxInfo `protobuf:"bytes,3,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkFrameItem) Reset() {
|
|
*x = DownlinkFrameItem{}
|
|
mi := &file_gw_gw_proto_msgTypes[29]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkFrameItem) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkFrameItem) ProtoMessage() {}
|
|
|
|
func (x *DownlinkFrameItem) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[29]
|
|
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 DownlinkFrameItem.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkFrameItem) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{29}
|
|
}
|
|
|
|
func (x *DownlinkFrameItem) GetPhyPayload() []byte {
|
|
if x != nil {
|
|
return x.PhyPayload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkFrameItem) GetTxInfoLegacy() *DownlinkTxInfoLegacy {
|
|
if x != nil {
|
|
return x.TxInfoLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkFrameItem) GetTxInfo() *DownlinkTxInfo {
|
|
if x != nil {
|
|
return x.TxInfo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DownlinkTxAck struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID (deprecated).
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Downlink ID.
|
|
DownlinkId uint32 `protobuf:"varint,2,opt,name=downlink_id,json=downlinkId,proto3" json:"downlink_id,omitempty"`
|
|
// Downlink ID (deprecated).
|
|
DownlinkIdLegacy []byte `protobuf:"bytes,4,opt,name=downlink_id_legacy,json=downlinkIdLegacy,proto3" json:"downlink_id_legacy,omitempty"`
|
|
// Downlink frame items.
|
|
// This list has the same length as the request and indicates which
|
|
// downlink frame has been emitted of the requested list (or why it failed).
|
|
// Note that at most one item has a positive acknowledgement.
|
|
Items []*DownlinkTxAckItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkTxAck) Reset() {
|
|
*x = DownlinkTxAck{}
|
|
mi := &file_gw_gw_proto_msgTypes[30]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkTxAck) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkTxAck) ProtoMessage() {}
|
|
|
|
func (x *DownlinkTxAck) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[30]
|
|
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 DownlinkTxAck.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkTxAck) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{30}
|
|
}
|
|
|
|
func (x *DownlinkTxAck) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxAck) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *DownlinkTxAck) GetDownlinkId() uint32 {
|
|
if x != nil {
|
|
return x.DownlinkId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DownlinkTxAck) GetDownlinkIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.DownlinkIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DownlinkTxAck) GetItems() []*DownlinkTxAckItem {
|
|
if x != nil {
|
|
return x.Items
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type DownlinkTxAckItem struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// The Ack status of this item.
|
|
Status TxAckStatus `protobuf:"varint,1,opt,name=status,proto3,enum=gw.TxAckStatus" json:"status,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DownlinkTxAckItem) Reset() {
|
|
*x = DownlinkTxAckItem{}
|
|
mi := &file_gw_gw_proto_msgTypes[31]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DownlinkTxAckItem) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DownlinkTxAckItem) ProtoMessage() {}
|
|
|
|
func (x *DownlinkTxAckItem) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[31]
|
|
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 DownlinkTxAckItem.ProtoReflect.Descriptor instead.
|
|
func (*DownlinkTxAckItem) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{31}
|
|
}
|
|
|
|
func (x *DownlinkTxAckItem) GetStatus() TxAckStatus {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return TxAckStatus_IGNORED
|
|
}
|
|
|
|
type GatewayConfiguration struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,5,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Configuration version.
|
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
|
// Channels.
|
|
Channels []*ChannelConfiguration `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"`
|
|
// Stats interval.
|
|
StatsInterval *durationpb.Duration `protobuf:"bytes,4,opt,name=stats_interval,json=statsInterval,proto3" json:"stats_interval,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GatewayConfiguration) Reset() {
|
|
*x = GatewayConfiguration{}
|
|
mi := &file_gw_gw_proto_msgTypes[32]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GatewayConfiguration) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GatewayConfiguration) ProtoMessage() {}
|
|
|
|
func (x *GatewayConfiguration) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[32]
|
|
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 GatewayConfiguration.ProtoReflect.Descriptor instead.
|
|
func (*GatewayConfiguration) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{32}
|
|
}
|
|
|
|
func (x *GatewayConfiguration) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayConfiguration) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayConfiguration) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayConfiguration) GetChannels() []*ChannelConfiguration {
|
|
if x != nil {
|
|
return x.Channels
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayConfiguration) GetStatsInterval() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.StatsInterval
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type GetGatewayIdRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetGatewayIdRequest) Reset() {
|
|
*x = GetGatewayIdRequest{}
|
|
mi := &file_gw_gw_proto_msgTypes[33]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetGatewayIdRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetGatewayIdRequest) ProtoMessage() {}
|
|
|
|
func (x *GetGatewayIdRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[33]
|
|
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 GetGatewayIdRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetGatewayIdRequest) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{33}
|
|
}
|
|
|
|
type GetGatewayIdResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetGatewayIdResponse) Reset() {
|
|
*x = GetGatewayIdResponse{}
|
|
mi := &file_gw_gw_proto_msgTypes[34]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetGatewayIdResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetGatewayIdResponse) ProtoMessage() {}
|
|
|
|
func (x *GetGatewayIdResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[34]
|
|
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 GetGatewayIdResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetGatewayIdResponse) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{34}
|
|
}
|
|
|
|
func (x *GetGatewayIdResponse) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type GetLocationRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetLocationRequest) Reset() {
|
|
*x = GetLocationRequest{}
|
|
mi := &file_gw_gw_proto_msgTypes[35]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetLocationRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetLocationRequest) ProtoMessage() {}
|
|
|
|
func (x *GetLocationRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[35]
|
|
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 GetLocationRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetLocationRequest) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{35}
|
|
}
|
|
|
|
type GetLocationResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Location.
|
|
Location *common.Location `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
|
|
// Last updated at.
|
|
UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetLocationResponse) Reset() {
|
|
*x = GetLocationResponse{}
|
|
mi := &file_gw_gw_proto_msgTypes[36]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetLocationResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetLocationResponse) ProtoMessage() {}
|
|
|
|
func (x *GetLocationResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[36]
|
|
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 GetLocationResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetLocationResponse) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{36}
|
|
}
|
|
|
|
func (x *GetLocationResponse) GetLocation() *common.Location {
|
|
if x != nil {
|
|
return x.Location
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GetLocationResponse) GetUpdatedAt() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.UpdatedAt
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ChannelConfiguration struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Frequency (Hz).
|
|
Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
|
// Modulation (deprecated).
|
|
ModulationLegacy common.Modulation `protobuf:"varint,2,opt,name=modulation_legacy,json=modulationLegacy,proto3,enum=common.Modulation" json:"modulation_legacy,omitempty"`
|
|
// Types that are valid to be assigned to ModulationConfig:
|
|
//
|
|
// *ChannelConfiguration_LoraModulationConfig
|
|
// *ChannelConfiguration_FskModulationConfig
|
|
ModulationConfig isChannelConfiguration_ModulationConfig `protobuf_oneof:"modulation_config"`
|
|
// Board index.
|
|
Board uint32 `protobuf:"varint,5,opt,name=board,proto3" json:"board,omitempty"`
|
|
// Demodulator index (of the given board).
|
|
Demodulator uint32 `protobuf:"varint,6,opt,name=demodulator,proto3" json:"demodulator,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ChannelConfiguration) Reset() {
|
|
*x = ChannelConfiguration{}
|
|
mi := &file_gw_gw_proto_msgTypes[37]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ChannelConfiguration) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ChannelConfiguration) ProtoMessage() {}
|
|
|
|
func (x *ChannelConfiguration) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[37]
|
|
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 ChannelConfiguration.ProtoReflect.Descriptor instead.
|
|
func (*ChannelConfiguration) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{37}
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetFrequency() uint32 {
|
|
if x != nil {
|
|
return x.Frequency
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetModulationLegacy() common.Modulation {
|
|
if x != nil {
|
|
return x.ModulationLegacy
|
|
}
|
|
return common.Modulation(0)
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetModulationConfig() isChannelConfiguration_ModulationConfig {
|
|
if x != nil {
|
|
return x.ModulationConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetLoraModulationConfig() *LoraModulationConfig {
|
|
if x != nil {
|
|
if x, ok := x.ModulationConfig.(*ChannelConfiguration_LoraModulationConfig); ok {
|
|
return x.LoraModulationConfig
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetFskModulationConfig() *FskModulationConfig {
|
|
if x != nil {
|
|
if x, ok := x.ModulationConfig.(*ChannelConfiguration_FskModulationConfig); ok {
|
|
return x.FskModulationConfig
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetBoard() uint32 {
|
|
if x != nil {
|
|
return x.Board
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *ChannelConfiguration) GetDemodulator() uint32 {
|
|
if x != nil {
|
|
return x.Demodulator
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type isChannelConfiguration_ModulationConfig interface {
|
|
isChannelConfiguration_ModulationConfig()
|
|
}
|
|
|
|
type ChannelConfiguration_LoraModulationConfig struct {
|
|
// LoRa modulation config.
|
|
LoraModulationConfig *LoraModulationConfig `protobuf:"bytes,3,opt,name=lora_modulation_config,json=loraModulationConfig,proto3,oneof"`
|
|
}
|
|
|
|
type ChannelConfiguration_FskModulationConfig struct {
|
|
// FSK modulation config.
|
|
FskModulationConfig *FskModulationConfig `protobuf:"bytes,4,opt,name=fsk_modulation_config,json=fskModulationConfig,proto3,oneof"`
|
|
}
|
|
|
|
func (*ChannelConfiguration_LoraModulationConfig) isChannelConfiguration_ModulationConfig() {}
|
|
|
|
func (*ChannelConfiguration_FskModulationConfig) isChannelConfiguration_ModulationConfig() {}
|
|
|
|
type LoraModulationConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Bandwidth (kHz).
|
|
// Deprecated: use bandwidth.
|
|
BandwidthLegacy uint32 `protobuf:"varint,1,opt,name=bandwidth_legacy,json=bandwidthLegacy,proto3" json:"bandwidth_legacy,omitempty"`
|
|
// Bandwidth (Hz).
|
|
Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
|
|
// Spreading-factors.
|
|
SpreadingFactors []uint32 `protobuf:"varint,2,rep,packed,name=spreading_factors,json=spreadingFactors,proto3" json:"spreading_factors,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LoraModulationConfig) Reset() {
|
|
*x = LoraModulationConfig{}
|
|
mi := &file_gw_gw_proto_msgTypes[38]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LoraModulationConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LoraModulationConfig) ProtoMessage() {}
|
|
|
|
func (x *LoraModulationConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[38]
|
|
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 LoraModulationConfig.ProtoReflect.Descriptor instead.
|
|
func (*LoraModulationConfig) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{38}
|
|
}
|
|
|
|
func (x *LoraModulationConfig) GetBandwidthLegacy() uint32 {
|
|
if x != nil {
|
|
return x.BandwidthLegacy
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LoraModulationConfig) GetBandwidth() uint32 {
|
|
if x != nil {
|
|
return x.Bandwidth
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *LoraModulationConfig) GetSpreadingFactors() []uint32 {
|
|
if x != nil {
|
|
return x.SpreadingFactors
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type FskModulationConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Bandwidth (kHz).
|
|
// Deprecated: use bandwidth.
|
|
BandwidthLegacy uint32 `protobuf:"varint,1,opt,name=bandwidth_legacy,json=bandwidthLegacy,proto3" json:"bandwidth_legacy,omitempty"`
|
|
// Bandwidth (Hz).
|
|
Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
|
|
// Bitrate.
|
|
Bitrate uint32 `protobuf:"varint,2,opt,name=bitrate,proto3" json:"bitrate,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *FskModulationConfig) Reset() {
|
|
*x = FskModulationConfig{}
|
|
mi := &file_gw_gw_proto_msgTypes[39]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *FskModulationConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*FskModulationConfig) ProtoMessage() {}
|
|
|
|
func (x *FskModulationConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[39]
|
|
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 FskModulationConfig.ProtoReflect.Descriptor instead.
|
|
func (*FskModulationConfig) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{39}
|
|
}
|
|
|
|
func (x *FskModulationConfig) GetBandwidthLegacy() uint32 {
|
|
if x != nil {
|
|
return x.BandwidthLegacy
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *FskModulationConfig) GetBandwidth() uint32 {
|
|
if x != nil {
|
|
return x.Bandwidth
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *FskModulationConfig) GetBitrate() uint32 {
|
|
if x != nil {
|
|
return x.Bitrate
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type GatewayCommandExecRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Command to execute.
|
|
// This command must be pre-configured in the LoRa Gateway Bridge
|
|
// configuration.
|
|
Command string `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"`
|
|
// Execution request ID.
|
|
// The same will be returned when the execution of the command has
|
|
// completed.
|
|
ExecId uint32 `protobuf:"varint,7,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"`
|
|
// Standard input.
|
|
Stdin []byte `protobuf:"bytes,4,opt,name=stdin,proto3" json:"stdin,omitempty"`
|
|
// Environment variables.
|
|
Environment map[string]string `protobuf:"bytes,5,rep,name=environment,proto3" json:"environment,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) Reset() {
|
|
*x = GatewayCommandExecRequest{}
|
|
mi := &file_gw_gw_proto_msgTypes[40]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GatewayCommandExecRequest) ProtoMessage() {}
|
|
|
|
func (x *GatewayCommandExecRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[40]
|
|
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 GatewayCommandExecRequest.ProtoReflect.Descriptor instead.
|
|
func (*GatewayCommandExecRequest) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{40}
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetCommand() string {
|
|
if x != nil {
|
|
return x.Command
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetExecId() uint32 {
|
|
if x != nil {
|
|
return x.ExecId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetStdin() []byte {
|
|
if x != nil {
|
|
return x.Stdin
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayCommandExecRequest) GetEnvironment() map[string]string {
|
|
if x != nil {
|
|
return x.Environment
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type GatewayCommandExecResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Execution request ID.
|
|
ExecId uint32 `protobuf:"varint,7,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"`
|
|
// Standard output.
|
|
Stdout []byte `protobuf:"bytes,3,opt,name=stdout,proto3" json:"stdout,omitempty"`
|
|
// Standard error.
|
|
Stderr []byte `protobuf:"bytes,4,opt,name=stderr,proto3" json:"stderr,omitempty"`
|
|
// Error message.
|
|
Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) Reset() {
|
|
*x = GatewayCommandExecResponse{}
|
|
mi := &file_gw_gw_proto_msgTypes[41]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GatewayCommandExecResponse) ProtoMessage() {}
|
|
|
|
func (x *GatewayCommandExecResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[41]
|
|
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 GatewayCommandExecResponse.ProtoReflect.Descriptor instead.
|
|
func (*GatewayCommandExecResponse) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{41}
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetExecId() uint32 {
|
|
if x != nil {
|
|
return x.ExecId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetStdout() []byte {
|
|
if x != nil {
|
|
return x.Stdout
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetStderr() []byte {
|
|
if x != nil {
|
|
return x.Stderr
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GatewayCommandExecResponse) GetError() string {
|
|
if x != nil {
|
|
return x.Error
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// RawPacketForwarderEvent contains a raw packet-forwarder event.
|
|
// It can be used to access packet-forwarder features that are not (fully)
|
|
// integrated with the ChirpStack Gateway Bridge.
|
|
type RawPacketForwarderEvent struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,4,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Payload contains the raw payload.
|
|
Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RawPacketForwarderEvent) Reset() {
|
|
*x = RawPacketForwarderEvent{}
|
|
mi := &file_gw_gw_proto_msgTypes[42]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RawPacketForwarderEvent) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RawPacketForwarderEvent) ProtoMessage() {}
|
|
|
|
func (x *RawPacketForwarderEvent) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[42]
|
|
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 RawPacketForwarderEvent.ProtoReflect.Descriptor instead.
|
|
func (*RawPacketForwarderEvent) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{42}
|
|
}
|
|
|
|
func (x *RawPacketForwarderEvent) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *RawPacketForwarderEvent) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RawPacketForwarderEvent) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// RawPacketForwarderEvent contains a raw packet-forwarder command.
|
|
// It can be used to access packet-forwarder features that are not (fully)
|
|
// integrated with the ChirpStack Gateway Bridge.
|
|
type RawPacketForwarderCommand struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,4,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
// Payload contains the raw payload.
|
|
Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RawPacketForwarderCommand) Reset() {
|
|
*x = RawPacketForwarderCommand{}
|
|
mi := &file_gw_gw_proto_msgTypes[43]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RawPacketForwarderCommand) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RawPacketForwarderCommand) ProtoMessage() {}
|
|
|
|
func (x *RawPacketForwarderCommand) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[43]
|
|
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 RawPacketForwarderCommand.ProtoReflect.Descriptor instead.
|
|
func (*RawPacketForwarderCommand) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{43}
|
|
}
|
|
|
|
func (x *RawPacketForwarderCommand) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *RawPacketForwarderCommand) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RawPacketForwarderCommand) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ConnState contains the connection state of a gateway.
|
|
type ConnState struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Gateway ID.
|
|
// Deprecated: use gateway_id.
|
|
GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"`
|
|
// Gateway ID.
|
|
GatewayId string `protobuf:"bytes,3,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
|
State ConnState_State `protobuf:"varint,2,opt,name=state,proto3,enum=gw.ConnState_State" json:"state,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ConnState) Reset() {
|
|
*x = ConnState{}
|
|
mi := &file_gw_gw_proto_msgTypes[44]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ConnState) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ConnState) ProtoMessage() {}
|
|
|
|
func (x *ConnState) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[44]
|
|
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 ConnState.ProtoReflect.Descriptor instead.
|
|
func (*ConnState) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{44}
|
|
}
|
|
|
|
func (x *ConnState) GetGatewayIdLegacy() []byte {
|
|
if x != nil {
|
|
return x.GatewayIdLegacy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ConnState) GetGatewayId() string {
|
|
if x != nil {
|
|
return x.GatewayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ConnState) GetState() ConnState_State {
|
|
if x != nil {
|
|
return x.State
|
|
}
|
|
return ConnState_OFFLINE
|
|
}
|
|
|
|
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
|
type MeshEventHeartbeat struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Relay path.
|
|
RelayPath []*MeshEventHeartbeatRelayPath `protobuf:"bytes,4,rep,name=relay_path,json=relayPath,proto3" json:"relay_path,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshEventHeartbeat) Reset() {
|
|
*x = MeshEventHeartbeat{}
|
|
mi := &file_gw_gw_proto_msgTypes[45]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshEventHeartbeat) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshEventHeartbeat) ProtoMessage() {}
|
|
|
|
func (x *MeshEventHeartbeat) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[45]
|
|
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 MeshEventHeartbeat.ProtoReflect.Descriptor instead.
|
|
func (*MeshEventHeartbeat) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{45}
|
|
}
|
|
|
|
func (x *MeshEventHeartbeat) GetRelayPath() []*MeshEventHeartbeatRelayPath {
|
|
if x != nil {
|
|
return x.RelayPath
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type MeshEventHeartbeatRelayPath struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Relay ID.
|
|
RelayId string `protobuf:"bytes,1,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"`
|
|
// RSSI.
|
|
Rssi int32 `protobuf:"varint,2,opt,name=rssi,proto3" json:"rssi,omitempty"`
|
|
// SNR.
|
|
Snr int32 `protobuf:"varint,3,opt,name=snr,proto3" json:"snr,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) Reset() {
|
|
*x = MeshEventHeartbeatRelayPath{}
|
|
mi := &file_gw_gw_proto_msgTypes[46]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshEventHeartbeatRelayPath) ProtoMessage() {}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[46]
|
|
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 MeshEventHeartbeatRelayPath.ProtoReflect.Descriptor instead.
|
|
func (*MeshEventHeartbeatRelayPath) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{46}
|
|
}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) GetRelayId() string {
|
|
if x != nil {
|
|
return x.RelayId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) GetRssi() int32 {
|
|
if x != nil {
|
|
return x.Rssi
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *MeshEventHeartbeatRelayPath) GetSnr() int32 {
|
|
if x != nil {
|
|
return x.Snr
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// Proprietary mesh event.
|
|
type MeshEventProprietary struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Event type.
|
|
EventType uint32 `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
|
|
// Payload.
|
|
Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshEventProprietary) Reset() {
|
|
*x = MeshEventProprietary{}
|
|
mi := &file_gw_gw_proto_msgTypes[47]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshEventProprietary) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshEventProprietary) ProtoMessage() {}
|
|
|
|
func (x *MeshEventProprietary) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[47]
|
|
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 MeshEventProprietary.ProtoReflect.Descriptor instead.
|
|
func (*MeshEventProprietary) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{47}
|
|
}
|
|
|
|
func (x *MeshEventProprietary) GetEventType() uint32 {
|
|
if x != nil {
|
|
return x.EventType
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *MeshEventProprietary) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Proprietary mesh command.
|
|
type MeshCommandProprietary struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Command type.
|
|
CommandType uint32 `protobuf:"varint,1,opt,name=command_type,json=commandType,proto3" json:"command_type,omitempty"`
|
|
// Payload.
|
|
Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MeshCommandProprietary) Reset() {
|
|
*x = MeshCommandProprietary{}
|
|
mi := &file_gw_gw_proto_msgTypes[48]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MeshCommandProprietary) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MeshCommandProprietary) ProtoMessage() {}
|
|
|
|
func (x *MeshCommandProprietary) ProtoReflect() protoreflect.Message {
|
|
mi := &file_gw_gw_proto_msgTypes[48]
|
|
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 MeshCommandProprietary.ProtoReflect.Descriptor instead.
|
|
func (*MeshCommandProprietary) Descriptor() ([]byte, []int) {
|
|
return file_gw_gw_proto_rawDescGZIP(), []int{48}
|
|
}
|
|
|
|
func (x *MeshCommandProprietary) GetCommandType() uint32 {
|
|
if x != nil {
|
|
return x.CommandType
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *MeshCommandProprietary) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
var File_gw_gw_proto protoreflect.FileDescriptor
|
|
|
|
const file_gw_gw_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\vgw/gw.proto\x12\x02gw\x1a\x13common/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa4\x01\n" +
|
|
"\x05Event\x124\n" +
|
|
"\fuplink_frame\x18\x01 \x01(\v2\x0f.gw.UplinkFrameH\x00R\vuplinkFrame\x127\n" +
|
|
"\rgateway_stats\x18\x02 \x01(\v2\x10.gw.GatewayStatsH\x00R\fgatewayStats\x12#\n" +
|
|
"\x04mesh\x18\x03 \x01(\v2\r.gw.MeshEventH\x00R\x04meshB\a\n" +
|
|
"\x05event\"\xd6\x02\n" +
|
|
"\aCommand\x12C\n" +
|
|
"\x13send_downlink_frame\x18\x01 \x01(\v2\x11.gw.DownlinkFrameH\x00R\x11sendDownlinkFrame\x12V\n" +
|
|
"\x19set_gateway_configuration\x18\x02 \x01(\v2\x18.gw.GatewayConfigurationH\x00R\x17setGatewayConfiguration\x12?\n" +
|
|
"\x0eget_gateway_id\x18\x03 \x01(\v2\x17.gw.GetGatewayIdRequestH\x00R\fgetGatewayId\x12;\n" +
|
|
"\fget_location\x18\x04 \x01(\v2\x16.gw.GetLocationRequestH\x00R\vgetLocation\x12%\n" +
|
|
"\x04mesh\x18\x05 \x01(\v2\x0f.gw.MeshCommandH\x00R\x04meshB\t\n" +
|
|
"\acommand\"\xa0\x01\n" +
|
|
"\tMeshEvent\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x19\n" +
|
|
"\brelay_id\x18\x02 \x01(\tR\arelayId\x12.\n" +
|
|
"\x04time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12)\n" +
|
|
"\x06events\x18\x04 \x03(\v2\x11.gw.MeshEventItemR\x06events\"\x8e\x01\n" +
|
|
"\rMeshEventItem\x12<\n" +
|
|
"\vproprietary\x18\x01 \x01(\v2\x18.gw.MeshEventProprietaryH\x00R\vproprietary\x126\n" +
|
|
"\theartbeat\x18\x02 \x01(\v2\x16.gw.MeshEventHeartbeatH\x00R\theartbeatB\a\n" +
|
|
"\x05event\"x\n" +
|
|
"\vMeshCommand\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x19\n" +
|
|
"\brelay_id\x18\x02 \x01(\tR\arelayId\x12/\n" +
|
|
"\bcommands\x18\x03 \x03(\v2\x13.gw.MeshCommandItemR\bcommands\"\\\n" +
|
|
"\x0fMeshCommandItem\x12>\n" +
|
|
"\vproprietary\x18\x01 \x01(\v2\x1a.gw.MeshCommandProprietaryH\x00R\vproprietaryB\t\n" +
|
|
"\acommand\"\xa8\x01\n" +
|
|
"\n" +
|
|
"Modulation\x12,\n" +
|
|
"\x04lora\x18\x03 \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x04lora\x12)\n" +
|
|
"\x03fsk\x18\x04 \x01(\v2\x15.gw.FskModulationInfoH\x00R\x03fsk\x123\n" +
|
|
"\alr_fhss\x18\x05 \x01(\v2\x18.gw.LrFhssModulationInfoH\x00R\x06lrFhssB\f\n" +
|
|
"\n" +
|
|
"parameters\"\xe1\x02\n" +
|
|
"\x12UplinkTxInfoLegacy\x12\x1c\n" +
|
|
"\tfrequency\x18\x01 \x01(\rR\tfrequency\x122\n" +
|
|
"\n" +
|
|
"modulation\x18\x02 \x01(\x0e2\x12.common.ModulationR\n" +
|
|
"modulation\x12J\n" +
|
|
"\x14lora_modulation_info\x18\x03 \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x12loraModulationInfo\x12G\n" +
|
|
"\x13fsk_modulation_info\x18\x04 \x01(\v2\x15.gw.FskModulationInfoH\x00R\x11fskModulationInfo\x12Q\n" +
|
|
"\x17lr_fhss_modulation_info\x18\x05 \x01(\v2\x18.gw.LrFhssModulationInfoH\x00R\x14lrFhssModulationInfoB\x11\n" +
|
|
"\x0fmodulation_info\"\\\n" +
|
|
"\fUplinkTxInfo\x12\x1c\n" +
|
|
"\tfrequency\x18\x01 \x01(\rR\tfrequency\x12.\n" +
|
|
"\n" +
|
|
"modulation\x18\x02 \x01(\v2\x0e.gw.ModulationR\n" +
|
|
"modulation\"\x9c\x02\n" +
|
|
"\x12LoraModulationInfo\x12\x1c\n" +
|
|
"\tbandwidth\x18\x01 \x01(\rR\tbandwidth\x12)\n" +
|
|
"\x10spreading_factor\x18\x02 \x01(\rR\x0fspreadingFactor\x12(\n" +
|
|
"\x10code_rate_legacy\x18\x03 \x01(\tR\x0ecodeRateLegacy\x12)\n" +
|
|
"\tcode_rate\x18\x05 \x01(\x0e2\f.gw.CodeRateR\bcodeRate\x125\n" +
|
|
"\x16polarization_inversion\x18\x04 \x01(\bR\x15polarizationInversion\x12\x1a\n" +
|
|
"\bpreamble\x18\x06 \x01(\rR\bpreamble\x12\x15\n" +
|
|
"\x06no_crc\x18\a \x01(\bR\x05noCrc\"`\n" +
|
|
"\x11FskModulationInfo\x12/\n" +
|
|
"\x13frequency_deviation\x18\x01 \x01(\rR\x12frequencyDeviation\x12\x1a\n" +
|
|
"\bdatarate\x18\x02 \x01(\rR\bdatarate\"\xc2\x01\n" +
|
|
"\x14LrFhssModulationInfo\x126\n" +
|
|
"\x17operating_channel_width\x18\x01 \x01(\rR\x15operatingChannelWidth\x12(\n" +
|
|
"\x10code_rate_legacy\x18\x02 \x01(\tR\x0ecodeRateLegacy\x12)\n" +
|
|
"\tcode_rate\x18\x04 \x01(\x0e2\f.gw.CodeRateR\bcodeRate\x12\x1d\n" +
|
|
"\n" +
|
|
"grid_steps\x18\x03 \x01(\rR\tgridSteps\"x\n" +
|
|
"\x16EncryptedFineTimestamp\x12\"\n" +
|
|
"\raes_key_index\x18\x01 \x01(\rR\vaesKeyIndex\x12!\n" +
|
|
"\fencrypted_ns\x18\x02 \x01(\fR\vencryptedNs\x12\x17\n" +
|
|
"\afpga_id\x18\x03 \x01(\fR\x06fpgaId\"D\n" +
|
|
"\x12PlainFineTimestamp\x12.\n" +
|
|
"\x04time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\"\x82\n" +
|
|
"\n" +
|
|
"\fGatewayStats\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x11 \x01(\tR\tgatewayId\x12.\n" +
|
|
"\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12,\n" +
|
|
"\blocation\x18\x03 \x01(\v2\x10.common.LocationR\blocation\x12%\n" +
|
|
"\x0econfig_version\x18\x04 \x01(\tR\rconfigVersion\x12.\n" +
|
|
"\x13rx_packets_received\x18\x05 \x01(\rR\x11rxPacketsReceived\x123\n" +
|
|
"\x16rx_packets_received_ok\x18\x06 \x01(\rR\x13rxPacketsReceivedOk\x12.\n" +
|
|
"\x13tx_packets_received\x18\a \x01(\rR\x11txPacketsReceived\x12,\n" +
|
|
"\x12tx_packets_emitted\x18\b \x01(\rR\x10txPacketsEmitted\x12:\n" +
|
|
"\bmetadata\x18\n" +
|
|
" \x03(\v2\x1e.gw.GatewayStats.MetadataEntryR\bmetadata\x12d\n" +
|
|
"\x18tx_packets_per_frequency\x18\f \x03(\v2+.gw.GatewayStats.TxPacketsPerFrequencyEntryR\x15txPacketsPerFrequency\x12d\n" +
|
|
"\x18rx_packets_per_frequency\x18\r \x03(\v2+.gw.GatewayStats.RxPacketsPerFrequencyEntryR\x15rxPacketsPerFrequency\x12Q\n" +
|
|
"\x19tx_packets_per_modulation\x18\x0e \x03(\v2\x16.gw.PerModulationCountR\x16txPacketsPerModulation\x12Q\n" +
|
|
"\x19rx_packets_per_modulation\x18\x0f \x03(\v2\x16.gw.PerModulationCountR\x16rxPacketsPerModulation\x12[\n" +
|
|
"\x15tx_packets_per_status\x18\x10 \x03(\v2(.gw.GatewayStats.TxPacketsPerStatusEntryR\x12txPacketsPerStatus\x12<\n" +
|
|
"\x10duty_cycle_stats\x18\x12 \x01(\v2\x12.gw.DutyCycleStatsR\x0edutyCycleStats\x1a;\n" +
|
|
"\rMetadataEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aH\n" +
|
|
"\x1aTxPacketsPerFrequencyEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1aH\n" +
|
|
"\x1aRxPacketsPerFrequencyEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1aE\n" +
|
|
"\x17TxPacketsPerStatusEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\"Z\n" +
|
|
"\x12PerModulationCount\x12.\n" +
|
|
"\n" +
|
|
"modulation\x18\x01 \x01(\v2\x0e.gw.ModulationR\n" +
|
|
"modulation\x12\x14\n" +
|
|
"\x05count\x18\x02 \x01(\rR\x05count\"\xa0\x01\n" +
|
|
"\x0eDutyCycleStats\x122\n" +
|
|
"\n" +
|
|
"regulation\x18\x01 \x01(\x0e2\x12.common.RegulationR\n" +
|
|
"regulation\x121\n" +
|
|
"\x06window\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x06window\x12'\n" +
|
|
"\x05bands\x18\x03 \x03(\v2\x11.gw.DutyCycleBandR\x05bands\"\xe1\x01\n" +
|
|
"\rDutyCycleBand\x12\x12\n" +
|
|
"\x04name\x18\x01 \x01(\tR\x04name\x12#\n" +
|
|
"\rfrequency_min\x18\x02 \x01(\rR\ffrequencyMin\x12#\n" +
|
|
"\rfrequency_max\x18\x03 \x01(\rR\ffrequencyMax\x124\n" +
|
|
"\bload_max\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\aloadMax\x12<\n" +
|
|
"\fload_tracked\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\vloadTracked\"\xd2\x06\n" +
|
|
"\x12UplinkRxInfoLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\fR\tgatewayId\x12.\n" +
|
|
"\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12J\n" +
|
|
"\x14time_since_gps_epoch\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\x12\x12\n" +
|
|
"\x04rssi\x18\x05 \x01(\x05R\x04rssi\x12\x19\n" +
|
|
"\blora_snr\x18\x06 \x01(\x01R\aloraSnr\x12\x18\n" +
|
|
"\achannel\x18\a \x01(\rR\achannel\x12\x19\n" +
|
|
"\brf_chain\x18\b \x01(\rR\arfChain\x12\x14\n" +
|
|
"\x05board\x18\t \x01(\rR\x05board\x12\x18\n" +
|
|
"\aantenna\x18\n" +
|
|
" \x01(\rR\aantenna\x12,\n" +
|
|
"\blocation\x18\v \x01(\v2\x10.common.LocationR\blocation\x12E\n" +
|
|
"\x13fine_timestamp_type\x18\f \x01(\x0e2\x15.gw.FineTimestampTypeR\x11fineTimestampType\x12V\n" +
|
|
"\x18encrypted_fine_timestamp\x18\r \x01(\v2\x1a.gw.EncryptedFineTimestampH\x00R\x16encryptedFineTimestamp\x12J\n" +
|
|
"\x14plain_fine_timestamp\x18\x0e \x01(\v2\x16.gw.PlainFineTimestampH\x00R\x12plainFineTimestamp\x12\x18\n" +
|
|
"\acontext\x18\x0f \x01(\fR\acontext\x12\x1b\n" +
|
|
"\tuplink_id\x18\x10 \x01(\fR\buplinkId\x12,\n" +
|
|
"\n" +
|
|
"crc_status\x18\x11 \x01(\x0e2\r.gw.CRCStatusR\tcrcStatus\x12@\n" +
|
|
"\bmetadata\x18\x12 \x03(\v2$.gw.UplinkRxInfoLegacy.MetadataEntryR\bmetadata\x1a;\n" +
|
|
"\rMetadataEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x10\n" +
|
|
"\x0efine_timestamp\"\xcf\x05\n" +
|
|
"\fUplinkRxInfo\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x1b\n" +
|
|
"\tuplink_id\x18\x02 \x01(\rR\buplinkId\x123\n" +
|
|
"\agw_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x06gwTime\x123\n" +
|
|
"\ans_time\x18\x11 \x01(\v2\x1a.google.protobuf.TimestampR\x06nsTime\x12J\n" +
|
|
"\x14time_since_gps_epoch\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\x12S\n" +
|
|
"\x19fine_time_since_gps_epoch\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\x15fineTimeSinceGpsEpoch\x12\x12\n" +
|
|
"\x04rssi\x18\x06 \x01(\x05R\x04rssi\x12\x10\n" +
|
|
"\x03snr\x18\a \x01(\x02R\x03snr\x12\x18\n" +
|
|
"\achannel\x18\b \x01(\rR\achannel\x12\x19\n" +
|
|
"\brf_chain\x18\t \x01(\rR\arfChain\x12\x14\n" +
|
|
"\x05board\x18\n" +
|
|
" \x01(\rR\x05board\x12\x18\n" +
|
|
"\aantenna\x18\v \x01(\rR\aantenna\x12,\n" +
|
|
"\blocation\x18\f \x01(\v2\x10.common.LocationR\blocation\x12\x18\n" +
|
|
"\acontext\x18\r \x01(\fR\acontext\x12:\n" +
|
|
"\bmetadata\x18\x0f \x03(\v2\x1e.gw.UplinkRxInfo.MetadataEntryR\bmetadata\x12,\n" +
|
|
"\n" +
|
|
"crc_status\x18\x10 \x01(\x0e2\r.gw.CRCStatusR\tcrcStatus\x1a;\n" +
|
|
"\rMetadataEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xaf\x05\n" +
|
|
"\x14DownlinkTxInfoLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\fR\tgatewayId\x12\x1c\n" +
|
|
"\tfrequency\x18\x05 \x01(\rR\tfrequency\x12\x14\n" +
|
|
"\x05power\x18\x06 \x01(\x05R\x05power\x122\n" +
|
|
"\n" +
|
|
"modulation\x18\a \x01(\x0e2\x12.common.ModulationR\n" +
|
|
"modulation\x12J\n" +
|
|
"\x14lora_modulation_info\x18\b \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x12loraModulationInfo\x12G\n" +
|
|
"\x13fsk_modulation_info\x18\t \x01(\v2\x15.gw.FskModulationInfoH\x00R\x11fskModulationInfo\x12\x14\n" +
|
|
"\x05board\x18\n" +
|
|
" \x01(\rR\x05board\x12\x18\n" +
|
|
"\aantenna\x18\v \x01(\rR\aantenna\x12*\n" +
|
|
"\x06timing\x18\f \x01(\x0e2\x12.gw.DownlinkTimingR\x06timing\x12S\n" +
|
|
"\x17immediately_timing_info\x18\r \x01(\v2\x19.gw.ImmediatelyTimingInfoH\x01R\x15immediatelyTimingInfo\x12A\n" +
|
|
"\x11delay_timing_info\x18\x0e \x01(\v2\x13.gw.DelayTimingInfoH\x01R\x0fdelayTimingInfo\x12K\n" +
|
|
"\x15gps_epoch_timing_info\x18\x0f \x01(\v2\x16.gw.GPSEpochTimingInfoH\x01R\x12gpsEpochTimingInfo\x12\x18\n" +
|
|
"\acontext\x18\x10 \x01(\fR\acontextB\x11\n" +
|
|
"\x0fmodulation_infoB\r\n" +
|
|
"\vtiming_info\"\xe2\x01\n" +
|
|
"\x0eDownlinkTxInfo\x12\x1c\n" +
|
|
"\tfrequency\x18\x01 \x01(\rR\tfrequency\x12\x14\n" +
|
|
"\x05power\x18\x02 \x01(\x05R\x05power\x12.\n" +
|
|
"\n" +
|
|
"modulation\x18\x03 \x01(\v2\x0e.gw.ModulationR\n" +
|
|
"modulation\x12\x14\n" +
|
|
"\x05board\x18\x04 \x01(\rR\x05board\x12\x18\n" +
|
|
"\aantenna\x18\x05 \x01(\rR\aantenna\x12\"\n" +
|
|
"\x06timing\x18\x06 \x01(\v2\n" +
|
|
".gw.TimingR\x06timing\x12\x18\n" +
|
|
"\acontext\x18\a \x01(\fR\acontext\"\xb9\x01\n" +
|
|
"\x06Timing\x12=\n" +
|
|
"\vimmediately\x18\x01 \x01(\v2\x19.gw.ImmediatelyTimingInfoH\x00R\vimmediately\x12+\n" +
|
|
"\x05delay\x18\x02 \x01(\v2\x13.gw.DelayTimingInfoH\x00R\x05delay\x125\n" +
|
|
"\tgps_epoch\x18\x03 \x01(\v2\x16.gw.GPSEpochTimingInfoH\x00R\bgpsEpochB\f\n" +
|
|
"\n" +
|
|
"parameters\"\x17\n" +
|
|
"\x15ImmediatelyTimingInfo\"B\n" +
|
|
"\x0fDelayTimingInfo\x12/\n" +
|
|
"\x05delay\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x05delay\"`\n" +
|
|
"\x12GPSEpochTimingInfo\x12J\n" +
|
|
"\x14time_since_gps_epoch\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\"\x80\x02\n" +
|
|
"\vUplinkFrame\x12\x1f\n" +
|
|
"\vphy_payload\x18\x01 \x01(\fR\n" +
|
|
"phyPayload\x12<\n" +
|
|
"\x0etx_info_legacy\x18\x02 \x01(\v2\x16.gw.UplinkTxInfoLegacyR\ftxInfoLegacy\x12<\n" +
|
|
"\x0erx_info_legacy\x18\x03 \x01(\v2\x16.gw.UplinkRxInfoLegacyR\frxInfoLegacy\x12)\n" +
|
|
"\atx_info\x18\x04 \x01(\v2\x10.gw.UplinkTxInfoR\x06txInfo\x12)\n" +
|
|
"\arx_info\x18\x05 \x01(\v2\x10.gw.UplinkRxInfoR\x06rxInfo\"\x87\x01\n" +
|
|
"\x0eUplinkFrameSet\x12\x1f\n" +
|
|
"\vphy_payload\x18\x01 \x01(\fR\n" +
|
|
"phyPayload\x12)\n" +
|
|
"\atx_info\x18\x02 \x01(\v2\x10.gw.UplinkTxInfoR\x06txInfo\x12)\n" +
|
|
"\arx_info\x18\x03 \x03(\v2\x10.gw.UplinkRxInfoR\x06rxInfo\"\xd6\x01\n" +
|
|
"\rDownlinkFrame\x12\x1f\n" +
|
|
"\vdownlink_id\x18\x03 \x01(\rR\n" +
|
|
"downlinkId\x12,\n" +
|
|
"\x12downlink_id_legacy\x18\x04 \x01(\fR\x10downlinkIdLegacy\x12+\n" +
|
|
"\x05items\x18\x05 \x03(\v2\x15.gw.DownlinkFrameItemR\x05items\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x06 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\a \x01(\tR\tgatewayId\"\xa1\x01\n" +
|
|
"\x11DownlinkFrameItem\x12\x1f\n" +
|
|
"\vphy_payload\x18\x01 \x01(\fR\n" +
|
|
"phyPayload\x12>\n" +
|
|
"\x0etx_info_legacy\x18\x02 \x01(\v2\x18.gw.DownlinkTxInfoLegacyR\ftxInfoLegacy\x12+\n" +
|
|
"\atx_info\x18\x03 \x01(\v2\x12.gw.DownlinkTxInfoR\x06txInfo\"\xd6\x01\n" +
|
|
"\rDownlinkTxAck\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x1f\n" +
|
|
"\vdownlink_id\x18\x02 \x01(\rR\n" +
|
|
"downlinkId\x12,\n" +
|
|
"\x12downlink_id_legacy\x18\x04 \x01(\fR\x10downlinkIdLegacy\x12+\n" +
|
|
"\x05items\x18\x05 \x03(\v2\x15.gw.DownlinkTxAckItemR\x05items\"<\n" +
|
|
"\x11DownlinkTxAckItem\x12'\n" +
|
|
"\x06status\x18\x01 \x01(\x0e2\x0f.gw.TxAckStatusR\x06status\"\xf3\x01\n" +
|
|
"\x14GatewayConfiguration\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x05 \x01(\tR\tgatewayId\x12\x18\n" +
|
|
"\aversion\x18\x02 \x01(\tR\aversion\x124\n" +
|
|
"\bchannels\x18\x03 \x03(\v2\x18.gw.ChannelConfigurationR\bchannels\x12@\n" +
|
|
"\x0estats_interval\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\rstatsInterval\"\x15\n" +
|
|
"\x13GetGatewayIdRequest\"5\n" +
|
|
"\x14GetGatewayIdResponse\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x01 \x01(\tR\tgatewayId\"\x14\n" +
|
|
"\x12GetLocationRequest\"~\n" +
|
|
"\x13GetLocationResponse\x12,\n" +
|
|
"\blocation\x18\x01 \x01(\v2\x10.common.LocationR\blocation\x129\n" +
|
|
"\n" +
|
|
"updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"\xe3\x02\n" +
|
|
"\x14ChannelConfiguration\x12\x1c\n" +
|
|
"\tfrequency\x18\x01 \x01(\rR\tfrequency\x12?\n" +
|
|
"\x11modulation_legacy\x18\x02 \x01(\x0e2\x12.common.ModulationR\x10modulationLegacy\x12P\n" +
|
|
"\x16lora_modulation_config\x18\x03 \x01(\v2\x18.gw.LoraModulationConfigH\x00R\x14loraModulationConfig\x12M\n" +
|
|
"\x15fsk_modulation_config\x18\x04 \x01(\v2\x17.gw.FskModulationConfigH\x00R\x13fskModulationConfig\x12\x14\n" +
|
|
"\x05board\x18\x05 \x01(\rR\x05board\x12 \n" +
|
|
"\vdemodulator\x18\x06 \x01(\rR\vdemodulatorB\x13\n" +
|
|
"\x11modulation_config\"\x8c\x01\n" +
|
|
"\x14LoraModulationConfig\x12)\n" +
|
|
"\x10bandwidth_legacy\x18\x01 \x01(\rR\x0fbandwidthLegacy\x12\x1c\n" +
|
|
"\tbandwidth\x18\x03 \x01(\rR\tbandwidth\x12+\n" +
|
|
"\x11spreading_factors\x18\x02 \x03(\rR\x10spreadingFactors\"x\n" +
|
|
"\x13FskModulationConfig\x12)\n" +
|
|
"\x10bandwidth_legacy\x18\x01 \x01(\rR\x0fbandwidthLegacy\x12\x1c\n" +
|
|
"\tbandwidth\x18\x03 \x01(\rR\tbandwidth\x12\x18\n" +
|
|
"\abitrate\x18\x02 \x01(\rR\abitrate\"\xc1\x02\n" +
|
|
"\x19GatewayCommandExecRequest\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x18\n" +
|
|
"\acommand\x18\x02 \x01(\tR\acommand\x12\x17\n" +
|
|
"\aexec_id\x18\a \x01(\rR\x06execId\x12\x14\n" +
|
|
"\x05stdin\x18\x04 \x01(\fR\x05stdin\x12P\n" +
|
|
"\venvironment\x18\x05 \x03(\v2..gw.GatewayCommandExecRequest.EnvironmentEntryR\venvironment\x1a>\n" +
|
|
"\x10EnvironmentEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc6\x01\n" +
|
|
"\x1aGatewayCommandExecResponse\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x17\n" +
|
|
"\aexec_id\x18\a \x01(\rR\x06execId\x12\x16\n" +
|
|
"\x06stdout\x18\x03 \x01(\fR\x06stdout\x12\x16\n" +
|
|
"\x06stderr\x18\x04 \x01(\fR\x06stderr\x12\x14\n" +
|
|
"\x05error\x18\x05 \x01(\tR\x05error\"~\n" +
|
|
"\x17RawPacketForwarderEvent\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x04 \x01(\tR\tgatewayId\x12\x18\n" +
|
|
"\apayload\x18\x03 \x01(\fR\apayload\"\x80\x01\n" +
|
|
"\x19RawPacketForwarderCommand\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x04 \x01(\tR\tgatewayId\x12\x18\n" +
|
|
"\apayload\x18\x03 \x01(\fR\apayload\"\xa3\x01\n" +
|
|
"\tConnState\x12*\n" +
|
|
"\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" +
|
|
"\n" +
|
|
"gateway_id\x18\x03 \x01(\tR\tgatewayId\x12)\n" +
|
|
"\x05state\x18\x02 \x01(\x0e2\x13.gw.ConnState.StateR\x05state\" \n" +
|
|
"\x05State\x12\v\n" +
|
|
"\aOFFLINE\x10\x00\x12\n" +
|
|
"\n" +
|
|
"\x06ONLINE\x10\x01\"T\n" +
|
|
"\x12MeshEventHeartbeat\x12>\n" +
|
|
"\n" +
|
|
"relay_path\x18\x04 \x03(\v2\x1f.gw.MeshEventHeartbeatRelayPathR\trelayPath\"^\n" +
|
|
"\x1bMeshEventHeartbeatRelayPath\x12\x19\n" +
|
|
"\brelay_id\x18\x01 \x01(\tR\arelayId\x12\x12\n" +
|
|
"\x04rssi\x18\x02 \x01(\x05R\x04rssi\x12\x10\n" +
|
|
"\x03snr\x18\x03 \x01(\x05R\x03snr\"O\n" +
|
|
"\x14MeshEventProprietary\x12\x1d\n" +
|
|
"\n" +
|
|
"event_type\x18\x01 \x01(\rR\teventType\x12\x18\n" +
|
|
"\apayload\x18\x02 \x01(\fR\apayload\"U\n" +
|
|
"\x16MeshCommandProprietary\x12!\n" +
|
|
"\fcommand_type\x18\x01 \x01(\rR\vcommandType\x12\x18\n" +
|
|
"\apayload\x18\x02 \x01(\fR\apayload*\xb5\x01\n" +
|
|
"\bCodeRate\x12\x10\n" +
|
|
"\fCR_UNDEFINED\x10\x00\x12\n" +
|
|
"\n" +
|
|
"\x06CR_4_5\x10\x01\x12\n" +
|
|
"\n" +
|
|
"\x06CR_4_6\x10\x02\x12\n" +
|
|
"\n" +
|
|
"\x06CR_4_7\x10\x03\x12\n" +
|
|
"\n" +
|
|
"\x06CR_4_8\x10\x04\x12\n" +
|
|
"\n" +
|
|
"\x06CR_3_8\x10\x05\x12\n" +
|
|
"\n" +
|
|
"\x06CR_2_6\x10\x06\x12\n" +
|
|
"\n" +
|
|
"\x06CR_1_4\x10\a\x12\n" +
|
|
"\n" +
|
|
"\x06CR_1_6\x10\b\x12\n" +
|
|
"\n" +
|
|
"\x06CR_5_6\x10\t\x12\r\n" +
|
|
"\tCR_LI_4_5\x10\n" +
|
|
"\x12\r\n" +
|
|
"\tCR_LI_4_6\x10\v\x12\r\n" +
|
|
"\tCR_LI_4_8\x10\f*;\n" +
|
|
"\x0eDownlinkTiming\x12\x0f\n" +
|
|
"\vIMMEDIATELY\x10\x00\x12\t\n" +
|
|
"\x05DELAY\x10\x01\x12\r\n" +
|
|
"\tGPS_EPOCH\x10\x02*7\n" +
|
|
"\x11FineTimestampType\x12\b\n" +
|
|
"\x04NONE\x10\x00\x12\r\n" +
|
|
"\tENCRYPTED\x10\x01\x12\t\n" +
|
|
"\x05PLAIN\x10\x02*0\n" +
|
|
"\tCRCStatus\x12\n" +
|
|
"\n" +
|
|
"\x06NO_CRC\x10\x00\x12\v\n" +
|
|
"\aBAD_CRC\x10\x01\x12\n" +
|
|
"\n" +
|
|
"\x06CRC_OK\x10\x02*\xd5\x01\n" +
|
|
"\vTxAckStatus\x12\v\n" +
|
|
"\aIGNORED\x10\x00\x12\x06\n" +
|
|
"\x02OK\x10\x01\x12\f\n" +
|
|
"\bTOO_LATE\x10\x02\x12\r\n" +
|
|
"\tTOO_EARLY\x10\x03\x12\x14\n" +
|
|
"\x10COLLISION_PACKET\x10\x04\x12\x14\n" +
|
|
"\x10COLLISION_BEACON\x10\x05\x12\v\n" +
|
|
"\aTX_FREQ\x10\x06\x12\f\n" +
|
|
"\bTX_POWER\x10\a\x12\x10\n" +
|
|
"\fGPS_UNLOCKED\x10\b\x12\x0e\n" +
|
|
"\n" +
|
|
"QUEUE_FULL\x10\t\x12\x12\n" +
|
|
"\x0eINTERNAL_ERROR\x10\n" +
|
|
"\x12\x17\n" +
|
|
"\x13DUTY_CYCLE_OVERFLOW\x10\vB\xa0\x01\n" +
|
|
"\x14io.chirpstack.api.gwB\fGatewayProtoP\x01Z-github.com/chirpstack/chirpstack/api/go/v4/gw\xaa\x02\x12Chirpstack.Gateway\xca\x02\x12Chirpstack\\Gateway\xe2\x02\x1eGPBMetadata\\Chirpstack\\Gatewayb\x06proto3"
|
|
|
|
var (
|
|
file_gw_gw_proto_rawDescOnce sync.Once
|
|
file_gw_gw_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_gw_gw_proto_rawDescGZIP() []byte {
|
|
file_gw_gw_proto_rawDescOnce.Do(func() {
|
|
file_gw_gw_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_gw_gw_proto_rawDesc), len(file_gw_gw_proto_rawDesc)))
|
|
})
|
|
return file_gw_gw_proto_rawDescData
|
|
}
|
|
|
|
var file_gw_gw_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
|
|
var file_gw_gw_proto_msgTypes = make([]protoimpl.MessageInfo, 56)
|
|
var file_gw_gw_proto_goTypes = []any{
|
|
(CodeRate)(0), // 0: gw.CodeRate
|
|
(DownlinkTiming)(0), // 1: gw.DownlinkTiming
|
|
(FineTimestampType)(0), // 2: gw.FineTimestampType
|
|
(CRCStatus)(0), // 3: gw.CRCStatus
|
|
(TxAckStatus)(0), // 4: gw.TxAckStatus
|
|
(ConnState_State)(0), // 5: gw.ConnState.State
|
|
(*Event)(nil), // 6: gw.Event
|
|
(*Command)(nil), // 7: gw.Command
|
|
(*MeshEvent)(nil), // 8: gw.MeshEvent
|
|
(*MeshEventItem)(nil), // 9: gw.MeshEventItem
|
|
(*MeshCommand)(nil), // 10: gw.MeshCommand
|
|
(*MeshCommandItem)(nil), // 11: gw.MeshCommandItem
|
|
(*Modulation)(nil), // 12: gw.Modulation
|
|
(*UplinkTxInfoLegacy)(nil), // 13: gw.UplinkTxInfoLegacy
|
|
(*UplinkTxInfo)(nil), // 14: gw.UplinkTxInfo
|
|
(*LoraModulationInfo)(nil), // 15: gw.LoraModulationInfo
|
|
(*FskModulationInfo)(nil), // 16: gw.FskModulationInfo
|
|
(*LrFhssModulationInfo)(nil), // 17: gw.LrFhssModulationInfo
|
|
(*EncryptedFineTimestamp)(nil), // 18: gw.EncryptedFineTimestamp
|
|
(*PlainFineTimestamp)(nil), // 19: gw.PlainFineTimestamp
|
|
(*GatewayStats)(nil), // 20: gw.GatewayStats
|
|
(*PerModulationCount)(nil), // 21: gw.PerModulationCount
|
|
(*DutyCycleStats)(nil), // 22: gw.DutyCycleStats
|
|
(*DutyCycleBand)(nil), // 23: gw.DutyCycleBand
|
|
(*UplinkRxInfoLegacy)(nil), // 24: gw.UplinkRxInfoLegacy
|
|
(*UplinkRxInfo)(nil), // 25: gw.UplinkRxInfo
|
|
(*DownlinkTxInfoLegacy)(nil), // 26: gw.DownlinkTxInfoLegacy
|
|
(*DownlinkTxInfo)(nil), // 27: gw.DownlinkTxInfo
|
|
(*Timing)(nil), // 28: gw.Timing
|
|
(*ImmediatelyTimingInfo)(nil), // 29: gw.ImmediatelyTimingInfo
|
|
(*DelayTimingInfo)(nil), // 30: gw.DelayTimingInfo
|
|
(*GPSEpochTimingInfo)(nil), // 31: gw.GPSEpochTimingInfo
|
|
(*UplinkFrame)(nil), // 32: gw.UplinkFrame
|
|
(*UplinkFrameSet)(nil), // 33: gw.UplinkFrameSet
|
|
(*DownlinkFrame)(nil), // 34: gw.DownlinkFrame
|
|
(*DownlinkFrameItem)(nil), // 35: gw.DownlinkFrameItem
|
|
(*DownlinkTxAck)(nil), // 36: gw.DownlinkTxAck
|
|
(*DownlinkTxAckItem)(nil), // 37: gw.DownlinkTxAckItem
|
|
(*GatewayConfiguration)(nil), // 38: gw.GatewayConfiguration
|
|
(*GetGatewayIdRequest)(nil), // 39: gw.GetGatewayIdRequest
|
|
(*GetGatewayIdResponse)(nil), // 40: gw.GetGatewayIdResponse
|
|
(*GetLocationRequest)(nil), // 41: gw.GetLocationRequest
|
|
(*GetLocationResponse)(nil), // 42: gw.GetLocationResponse
|
|
(*ChannelConfiguration)(nil), // 43: gw.ChannelConfiguration
|
|
(*LoraModulationConfig)(nil), // 44: gw.LoraModulationConfig
|
|
(*FskModulationConfig)(nil), // 45: gw.FskModulationConfig
|
|
(*GatewayCommandExecRequest)(nil), // 46: gw.GatewayCommandExecRequest
|
|
(*GatewayCommandExecResponse)(nil), // 47: gw.GatewayCommandExecResponse
|
|
(*RawPacketForwarderEvent)(nil), // 48: gw.RawPacketForwarderEvent
|
|
(*RawPacketForwarderCommand)(nil), // 49: gw.RawPacketForwarderCommand
|
|
(*ConnState)(nil), // 50: gw.ConnState
|
|
(*MeshEventHeartbeat)(nil), // 51: gw.MeshEventHeartbeat
|
|
(*MeshEventHeartbeatRelayPath)(nil), // 52: gw.MeshEventHeartbeatRelayPath
|
|
(*MeshEventProprietary)(nil), // 53: gw.MeshEventProprietary
|
|
(*MeshCommandProprietary)(nil), // 54: gw.MeshCommandProprietary
|
|
nil, // 55: gw.GatewayStats.MetadataEntry
|
|
nil, // 56: gw.GatewayStats.TxPacketsPerFrequencyEntry
|
|
nil, // 57: gw.GatewayStats.RxPacketsPerFrequencyEntry
|
|
nil, // 58: gw.GatewayStats.TxPacketsPerStatusEntry
|
|
nil, // 59: gw.UplinkRxInfoLegacy.MetadataEntry
|
|
nil, // 60: gw.UplinkRxInfo.MetadataEntry
|
|
nil, // 61: gw.GatewayCommandExecRequest.EnvironmentEntry
|
|
(*timestamppb.Timestamp)(nil), // 62: google.protobuf.Timestamp
|
|
(common.Modulation)(0), // 63: common.Modulation
|
|
(*common.Location)(nil), // 64: common.Location
|
|
(common.Regulation)(0), // 65: common.Regulation
|
|
(*durationpb.Duration)(nil), // 66: google.protobuf.Duration
|
|
}
|
|
var file_gw_gw_proto_depIdxs = []int32{
|
|
32, // 0: gw.Event.uplink_frame:type_name -> gw.UplinkFrame
|
|
20, // 1: gw.Event.gateway_stats:type_name -> gw.GatewayStats
|
|
8, // 2: gw.Event.mesh:type_name -> gw.MeshEvent
|
|
34, // 3: gw.Command.send_downlink_frame:type_name -> gw.DownlinkFrame
|
|
38, // 4: gw.Command.set_gateway_configuration:type_name -> gw.GatewayConfiguration
|
|
39, // 5: gw.Command.get_gateway_id:type_name -> gw.GetGatewayIdRequest
|
|
41, // 6: gw.Command.get_location:type_name -> gw.GetLocationRequest
|
|
10, // 7: gw.Command.mesh:type_name -> gw.MeshCommand
|
|
62, // 8: gw.MeshEvent.time:type_name -> google.protobuf.Timestamp
|
|
9, // 9: gw.MeshEvent.events:type_name -> gw.MeshEventItem
|
|
53, // 10: gw.MeshEventItem.proprietary:type_name -> gw.MeshEventProprietary
|
|
51, // 11: gw.MeshEventItem.heartbeat:type_name -> gw.MeshEventHeartbeat
|
|
11, // 12: gw.MeshCommand.commands:type_name -> gw.MeshCommandItem
|
|
54, // 13: gw.MeshCommandItem.proprietary:type_name -> gw.MeshCommandProprietary
|
|
15, // 14: gw.Modulation.lora:type_name -> gw.LoraModulationInfo
|
|
16, // 15: gw.Modulation.fsk:type_name -> gw.FskModulationInfo
|
|
17, // 16: gw.Modulation.lr_fhss:type_name -> gw.LrFhssModulationInfo
|
|
63, // 17: gw.UplinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
|
15, // 18: gw.UplinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo
|
|
16, // 19: gw.UplinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo
|
|
17, // 20: gw.UplinkTxInfoLegacy.lr_fhss_modulation_info:type_name -> gw.LrFhssModulationInfo
|
|
12, // 21: gw.UplinkTxInfo.modulation:type_name -> gw.Modulation
|
|
0, // 22: gw.LoraModulationInfo.code_rate:type_name -> gw.CodeRate
|
|
0, // 23: gw.LrFhssModulationInfo.code_rate:type_name -> gw.CodeRate
|
|
62, // 24: gw.PlainFineTimestamp.time:type_name -> google.protobuf.Timestamp
|
|
62, // 25: gw.GatewayStats.time:type_name -> google.protobuf.Timestamp
|
|
64, // 26: gw.GatewayStats.location:type_name -> common.Location
|
|
55, // 27: gw.GatewayStats.metadata:type_name -> gw.GatewayStats.MetadataEntry
|
|
56, // 28: gw.GatewayStats.tx_packets_per_frequency:type_name -> gw.GatewayStats.TxPacketsPerFrequencyEntry
|
|
57, // 29: gw.GatewayStats.rx_packets_per_frequency:type_name -> gw.GatewayStats.RxPacketsPerFrequencyEntry
|
|
21, // 30: gw.GatewayStats.tx_packets_per_modulation:type_name -> gw.PerModulationCount
|
|
21, // 31: gw.GatewayStats.rx_packets_per_modulation:type_name -> gw.PerModulationCount
|
|
58, // 32: gw.GatewayStats.tx_packets_per_status:type_name -> gw.GatewayStats.TxPacketsPerStatusEntry
|
|
22, // 33: gw.GatewayStats.duty_cycle_stats:type_name -> gw.DutyCycleStats
|
|
12, // 34: gw.PerModulationCount.modulation:type_name -> gw.Modulation
|
|
65, // 35: gw.DutyCycleStats.regulation:type_name -> common.Regulation
|
|
66, // 36: gw.DutyCycleStats.window:type_name -> google.protobuf.Duration
|
|
23, // 37: gw.DutyCycleStats.bands:type_name -> gw.DutyCycleBand
|
|
66, // 38: gw.DutyCycleBand.load_max:type_name -> google.protobuf.Duration
|
|
66, // 39: gw.DutyCycleBand.load_tracked:type_name -> google.protobuf.Duration
|
|
62, // 40: gw.UplinkRxInfoLegacy.time:type_name -> google.protobuf.Timestamp
|
|
66, // 41: gw.UplinkRxInfoLegacy.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
|
64, // 42: gw.UplinkRxInfoLegacy.location:type_name -> common.Location
|
|
2, // 43: gw.UplinkRxInfoLegacy.fine_timestamp_type:type_name -> gw.FineTimestampType
|
|
18, // 44: gw.UplinkRxInfoLegacy.encrypted_fine_timestamp:type_name -> gw.EncryptedFineTimestamp
|
|
19, // 45: gw.UplinkRxInfoLegacy.plain_fine_timestamp:type_name -> gw.PlainFineTimestamp
|
|
3, // 46: gw.UplinkRxInfoLegacy.crc_status:type_name -> gw.CRCStatus
|
|
59, // 47: gw.UplinkRxInfoLegacy.metadata:type_name -> gw.UplinkRxInfoLegacy.MetadataEntry
|
|
62, // 48: gw.UplinkRxInfo.gw_time:type_name -> google.protobuf.Timestamp
|
|
62, // 49: gw.UplinkRxInfo.ns_time:type_name -> google.protobuf.Timestamp
|
|
66, // 50: gw.UplinkRxInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
|
66, // 51: gw.UplinkRxInfo.fine_time_since_gps_epoch:type_name -> google.protobuf.Duration
|
|
64, // 52: gw.UplinkRxInfo.location:type_name -> common.Location
|
|
60, // 53: gw.UplinkRxInfo.metadata:type_name -> gw.UplinkRxInfo.MetadataEntry
|
|
3, // 54: gw.UplinkRxInfo.crc_status:type_name -> gw.CRCStatus
|
|
63, // 55: gw.DownlinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
|
15, // 56: gw.DownlinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo
|
|
16, // 57: gw.DownlinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo
|
|
1, // 58: gw.DownlinkTxInfoLegacy.timing:type_name -> gw.DownlinkTiming
|
|
29, // 59: gw.DownlinkTxInfoLegacy.immediately_timing_info:type_name -> gw.ImmediatelyTimingInfo
|
|
30, // 60: gw.DownlinkTxInfoLegacy.delay_timing_info:type_name -> gw.DelayTimingInfo
|
|
31, // 61: gw.DownlinkTxInfoLegacy.gps_epoch_timing_info:type_name -> gw.GPSEpochTimingInfo
|
|
12, // 62: gw.DownlinkTxInfo.modulation:type_name -> gw.Modulation
|
|
28, // 63: gw.DownlinkTxInfo.timing:type_name -> gw.Timing
|
|
29, // 64: gw.Timing.immediately:type_name -> gw.ImmediatelyTimingInfo
|
|
30, // 65: gw.Timing.delay:type_name -> gw.DelayTimingInfo
|
|
31, // 66: gw.Timing.gps_epoch:type_name -> gw.GPSEpochTimingInfo
|
|
66, // 67: gw.DelayTimingInfo.delay:type_name -> google.protobuf.Duration
|
|
66, // 68: gw.GPSEpochTimingInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
|
13, // 69: gw.UplinkFrame.tx_info_legacy:type_name -> gw.UplinkTxInfoLegacy
|
|
24, // 70: gw.UplinkFrame.rx_info_legacy:type_name -> gw.UplinkRxInfoLegacy
|
|
14, // 71: gw.UplinkFrame.tx_info:type_name -> gw.UplinkTxInfo
|
|
25, // 72: gw.UplinkFrame.rx_info:type_name -> gw.UplinkRxInfo
|
|
14, // 73: gw.UplinkFrameSet.tx_info:type_name -> gw.UplinkTxInfo
|
|
25, // 74: gw.UplinkFrameSet.rx_info:type_name -> gw.UplinkRxInfo
|
|
35, // 75: gw.DownlinkFrame.items:type_name -> gw.DownlinkFrameItem
|
|
26, // 76: gw.DownlinkFrameItem.tx_info_legacy:type_name -> gw.DownlinkTxInfoLegacy
|
|
27, // 77: gw.DownlinkFrameItem.tx_info:type_name -> gw.DownlinkTxInfo
|
|
37, // 78: gw.DownlinkTxAck.items:type_name -> gw.DownlinkTxAckItem
|
|
4, // 79: gw.DownlinkTxAckItem.status:type_name -> gw.TxAckStatus
|
|
43, // 80: gw.GatewayConfiguration.channels:type_name -> gw.ChannelConfiguration
|
|
66, // 81: gw.GatewayConfiguration.stats_interval:type_name -> google.protobuf.Duration
|
|
64, // 82: gw.GetLocationResponse.location:type_name -> common.Location
|
|
62, // 83: gw.GetLocationResponse.updated_at:type_name -> google.protobuf.Timestamp
|
|
63, // 84: gw.ChannelConfiguration.modulation_legacy:type_name -> common.Modulation
|
|
44, // 85: gw.ChannelConfiguration.lora_modulation_config:type_name -> gw.LoraModulationConfig
|
|
45, // 86: gw.ChannelConfiguration.fsk_modulation_config:type_name -> gw.FskModulationConfig
|
|
61, // 87: gw.GatewayCommandExecRequest.environment:type_name -> gw.GatewayCommandExecRequest.EnvironmentEntry
|
|
5, // 88: gw.ConnState.state:type_name -> gw.ConnState.State
|
|
52, // 89: gw.MeshEventHeartbeat.relay_path:type_name -> gw.MeshEventHeartbeatRelayPath
|
|
90, // [90:90] is the sub-list for method output_type
|
|
90, // [90:90] is the sub-list for method input_type
|
|
90, // [90:90] is the sub-list for extension type_name
|
|
90, // [90:90] is the sub-list for extension extendee
|
|
0, // [0:90] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_gw_gw_proto_init() }
|
|
func file_gw_gw_proto_init() {
|
|
if File_gw_gw_proto != nil {
|
|
return
|
|
}
|
|
file_gw_gw_proto_msgTypes[0].OneofWrappers = []any{
|
|
(*Event_UplinkFrame)(nil),
|
|
(*Event_GatewayStats)(nil),
|
|
(*Event_Mesh)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[1].OneofWrappers = []any{
|
|
(*Command_SendDownlinkFrame)(nil),
|
|
(*Command_SetGatewayConfiguration)(nil),
|
|
(*Command_GetGatewayId)(nil),
|
|
(*Command_GetLocation)(nil),
|
|
(*Command_Mesh)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[3].OneofWrappers = []any{
|
|
(*MeshEventItem_Proprietary)(nil),
|
|
(*MeshEventItem_Heartbeat)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[5].OneofWrappers = []any{
|
|
(*MeshCommandItem_Proprietary)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[6].OneofWrappers = []any{
|
|
(*Modulation_Lora)(nil),
|
|
(*Modulation_Fsk)(nil),
|
|
(*Modulation_LrFhss)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[7].OneofWrappers = []any{
|
|
(*UplinkTxInfoLegacy_LoraModulationInfo)(nil),
|
|
(*UplinkTxInfoLegacy_FskModulationInfo)(nil),
|
|
(*UplinkTxInfoLegacy_LrFhssModulationInfo)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[18].OneofWrappers = []any{
|
|
(*UplinkRxInfoLegacy_EncryptedFineTimestamp)(nil),
|
|
(*UplinkRxInfoLegacy_PlainFineTimestamp)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[20].OneofWrappers = []any{
|
|
(*DownlinkTxInfoLegacy_LoraModulationInfo)(nil),
|
|
(*DownlinkTxInfoLegacy_FskModulationInfo)(nil),
|
|
(*DownlinkTxInfoLegacy_ImmediatelyTimingInfo)(nil),
|
|
(*DownlinkTxInfoLegacy_DelayTimingInfo)(nil),
|
|
(*DownlinkTxInfoLegacy_GpsEpochTimingInfo)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[22].OneofWrappers = []any{
|
|
(*Timing_Immediately)(nil),
|
|
(*Timing_Delay)(nil),
|
|
(*Timing_GpsEpoch)(nil),
|
|
}
|
|
file_gw_gw_proto_msgTypes[37].OneofWrappers = []any{
|
|
(*ChannelConfiguration_LoraModulationConfig)(nil),
|
|
(*ChannelConfiguration_FskModulationConfig)(nil),
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_gw_gw_proto_rawDesc), len(file_gw_gw_proto_rawDesc)),
|
|
NumEnums: 6,
|
|
NumMessages: 56,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_gw_gw_proto_goTypes,
|
|
DependencyIndexes: file_gw_gw_proto_depIdxs,
|
|
EnumInfos: file_gw_gw_proto_enumTypes,
|
|
MessageInfos: file_gw_gw_proto_msgTypes,
|
|
}.Build()
|
|
File_gw_gw_proto = out.File
|
|
file_gw_gw_proto_goTypes = nil
|
|
file_gw_gw_proto_depIdxs = nil
|
|
}
|