1 Star 0 Fork 0

Arya123 / chirpstack-api

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
profiles.pb.go 26.00 KB
一键复制 编辑 原始数据 按行查看 历史
Arya123 提交于 2023-07-31 14:27 . v3.8.1
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: as/external/api/profiles.proto
package api
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
durationpb "google.golang.org/protobuf/types/known/durationpb"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type RatePolicy int32
const (
// Drop
RatePolicy_DROP RatePolicy = 0
// Mark
RatePolicy_MARK RatePolicy = 1
)
var RatePolicy_name = map[int32]string{
0: "DROP",
1: "MARK",
}
var RatePolicy_value = map[string]int32{
"DROP": 0,
"MARK": 1,
}
func (x RatePolicy) String() string {
return proto.EnumName(RatePolicy_name, int32(x))
}
func (RatePolicy) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_a1c507fa3dbc9903, []int{0}
}
type ServiceProfile struct {
// Service-profile ID (UUID string).
// This will be automatically set on create.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Service-profile name.
Name string `protobuf:"bytes,21,opt,name=name,proto3" json:"name,omitempty"`
// Organization ID to which the service-profile is assigned.
OrganizationId int64 `protobuf:"varint,22,opt,name=organization_id,json=organizationID,proto3" json:"organization_id,omitempty"`
// Network-server ID on which the service-profile is provisioned.
NetworkServerId int64 `protobuf:"varint,23,opt,name=network_server_id,json=networkServerID,proto3" json:"network_server_id,omitempty"`
// Token bucket filling rate, including ACKs (packet/h).
UlRate uint32 `protobuf:"varint,2,opt,name=ul_rate,json=ulRate,proto3" json:"ul_rate,omitempty"`
// Token bucket burst size.
UlBucketSize uint32 `protobuf:"varint,3,opt,name=ul_bucket_size,json=ulBucketSize,proto3" json:"ul_bucket_size,omitempty"`
// Drop or mark when exceeding ULRate.
UlRatePolicy RatePolicy `protobuf:"varint,4,opt,name=ul_rate_policy,json=ulRatePolicy,proto3,enum=api.RatePolicy" json:"ul_rate_policy,omitempty"`
// Token bucket filling rate, including ACKs (packet/h).
DlRate uint32 `protobuf:"varint,5,opt,name=dl_rate,json=dlRate,proto3" json:"dl_rate,omitempty"`
// Token bucket burst size.
DlBucketSize uint32 `protobuf:"varint,6,opt,name=dl_bucket_size,json=dlBucketSize,proto3" json:"dl_bucket_size,omitempty"`
// Drop or mark when exceeding DLRate.
DlRatePolicy RatePolicy `protobuf:"varint,7,opt,name=dl_rate_policy,json=dlRatePolicy,proto3,enum=api.RatePolicy" json:"dl_rate_policy,omitempty"`
// GW metadata (RSSI, SNR, GW geoloc., etc.) are added to the packet sent to AS.
AddGwMetadata bool `protobuf:"varint,8,opt,name=add_gw_metadata,json=addGWMetaData,proto3" json:"add_gw_metadata,omitempty"`
// Frequency to initiate an End-Device status request (request/day).
DevStatusReqFreq uint32 `protobuf:"varint,9,opt,name=dev_status_req_freq,json=devStatusReqFreq,proto3" json:"dev_status_req_freq,omitempty"`
// Report End-Device battery level to AS.
ReportDevStatusBattery bool `protobuf:"varint,10,opt,name=report_dev_status_battery,json=reportDevStatusBattery,proto3" json:"report_dev_status_battery,omitempty"`
// Report End-Device margin to AS.
ReportDevStatusMargin bool `protobuf:"varint,11,opt,name=report_dev_status_margin,json=reportDevStatusMargin,proto3" json:"report_dev_status_margin,omitempty"`
// Minimum allowed data rate. Used for ADR.
DrMin uint32 `protobuf:"varint,12,opt,name=dr_min,json=drMin,proto3" json:"dr_min,omitempty"`
// Maximum allowed data rate. Used for ADR.
DrMax uint32 `protobuf:"varint,13,opt,name=dr_max,json=drMax,proto3" json:"dr_max,omitempty"`
// Channel mask. sNS does not have to obey (i.e., informative).
ChannelMask []byte `protobuf:"bytes,14,opt,name=channel_mask,json=channelMask,proto3" json:"channel_mask,omitempty"`
// Passive Roaming allowed.
PrAllowed bool `protobuf:"varint,15,opt,name=pr_allowed,json=prAllowed,proto3" json:"pr_allowed,omitempty"`
// Handover Roaming allowed.
HrAllowed bool `protobuf:"varint,16,opt,name=hr_allowed,json=hrAllowed,proto3" json:"hr_allowed,omitempty"`
// Roaming Activation allowed.
RaAllowed bool `protobuf:"varint,17,opt,name=ra_allowed,json=raAllowed,proto3" json:"ra_allowed,omitempty"`
// Enable network geolocation service.
NwkGeoLoc bool `protobuf:"varint,18,opt,name=nwk_geo_loc,json=nwkGeoLoc,proto3" json:"nwk_geo_loc,omitempty"`
// Target Packet Error Rate.
TargetPer uint32 `protobuf:"varint,19,opt,name=target_per,json=targetPER,proto3" json:"target_per,omitempty"`
// Minimum number of receiving GWs (informative).
MinGwDiversity uint32 `protobuf:"varint,20,opt,name=min_gw_diversity,json=minGWDiversity,proto3" json:"min_gw_diversity,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ServiceProfile) Reset() { *m = ServiceProfile{} }
func (m *ServiceProfile) String() string { return proto.CompactTextString(m) }
func (*ServiceProfile) ProtoMessage() {}
func (*ServiceProfile) Descriptor() ([]byte, []int) {
return fileDescriptor_a1c507fa3dbc9903, []int{0}
}
func (m *ServiceProfile) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServiceProfile.Unmarshal(m, b)
}
func (m *ServiceProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ServiceProfile.Marshal(b, m, deterministic)
}
func (m *ServiceProfile) XXX_Merge(src proto.Message) {
xxx_messageInfo_ServiceProfile.Merge(m, src)
}
func (m *ServiceProfile) XXX_Size() int {
return xxx_messageInfo_ServiceProfile.Size(m)
}
func (m *ServiceProfile) XXX_DiscardUnknown() {
xxx_messageInfo_ServiceProfile.DiscardUnknown(m)
}
var xxx_messageInfo_ServiceProfile proto.InternalMessageInfo
func (m *ServiceProfile) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *ServiceProfile) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *ServiceProfile) GetOrganizationId() int64 {
if m != nil {
return m.OrganizationId
}
return 0
}
func (m *ServiceProfile) GetNetworkServerId() int64 {
if m != nil {
return m.NetworkServerId
}
return 0
}
func (m *ServiceProfile) GetUlRate() uint32 {
if m != nil {
return m.UlRate
}
return 0
}
func (m *ServiceProfile) GetUlBucketSize() uint32 {
if m != nil {
return m.UlBucketSize
}
return 0
}
func (m *ServiceProfile) GetUlRatePolicy() RatePolicy {
if m != nil {
return m.UlRatePolicy
}
return RatePolicy_DROP
}
func (m *ServiceProfile) GetDlRate() uint32 {
if m != nil {
return m.DlRate
}
return 0
}
func (m *ServiceProfile) GetDlBucketSize() uint32 {
if m != nil {
return m.DlBucketSize
}
return 0
}
func (m *ServiceProfile) GetDlRatePolicy() RatePolicy {
if m != nil {
return m.DlRatePolicy
}
return RatePolicy_DROP
}
func (m *ServiceProfile) GetAddGwMetadata() bool {
if m != nil {
return m.AddGwMetadata
}
return false
}
func (m *ServiceProfile) GetDevStatusReqFreq() uint32 {
if m != nil {
return m.DevStatusReqFreq
}
return 0
}
func (m *ServiceProfile) GetReportDevStatusBattery() bool {
if m != nil {
return m.ReportDevStatusBattery
}
return false
}
func (m *ServiceProfile) GetReportDevStatusMargin() bool {
if m != nil {
return m.ReportDevStatusMargin
}
return false
}
func (m *ServiceProfile) GetDrMin() uint32 {
if m != nil {
return m.DrMin
}
return 0
}
func (m *ServiceProfile) GetDrMax() uint32 {
if m != nil {
return m.DrMax
}
return 0
}
func (m *ServiceProfile) GetChannelMask() []byte {
if m != nil {
return m.ChannelMask
}
return nil
}
func (m *ServiceProfile) GetPrAllowed() bool {
if m != nil {
return m.PrAllowed
}
return false
}
func (m *ServiceProfile) GetHrAllowed() bool {
if m != nil {
return m.HrAllowed
}
return false
}
func (m *ServiceProfile) GetRaAllowed() bool {
if m != nil {
return m.RaAllowed
}
return false
}
func (m *ServiceProfile) GetNwkGeoLoc() bool {
if m != nil {
return m.NwkGeoLoc
}
return false
}
func (m *ServiceProfile) GetTargetPer() uint32 {
if m != nil {
return m.TargetPer
}
return 0
}
func (m *ServiceProfile) GetMinGwDiversity() uint32 {
if m != nil {
return m.MinGwDiversity
}
return 0
}
type DeviceProfile struct {
// Device-profile ID (UUID string).
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Device-profile name.
Name string `protobuf:"bytes,21,opt,name=name,proto3" json:"name,omitempty"`
// Organization ID to which the service-profile is assigned.
OrganizationId int64 `protobuf:"varint,22,opt,name=organization_id,json=organizationID,proto3" json:"organization_id,omitempty"`
// Network-server ID on which the service-profile is provisioned.
NetworkServerId int64 `protobuf:"varint,23,opt,name=network_server_id,json=networkServerID,proto3" json:"network_server_id,omitempty"`
// End-Device supports Class B.
SupportsClassB bool `protobuf:"varint,2,opt,name=supports_class_b,json=supportsClassB,proto3" json:"supports_class_b,omitempty"`
// Maximum delay for the End-Device to answer a MAC request or a confirmed DL frame (mandatory if class B mode supported).
ClassBTimeout uint32 `protobuf:"varint,3,opt,name=class_b_timeout,json=classBTimeout,proto3" json:"class_b_timeout,omitempty"`
// Mandatory if class B mode supported.
PingSlotPeriod uint32 `protobuf:"varint,4,opt,name=ping_slot_period,json=pingSlotPeriod,proto3" json:"ping_slot_period,omitempty"`
// Mandatory if class B mode supported.
PingSlotDr uint32 `protobuf:"varint,5,opt,name=ping_slot_dr,json=pingSlotDR,proto3" json:"ping_slot_dr,omitempty"`
// Mandatory if class B mode supported.
PingSlotFreq uint32 `protobuf:"varint,6,opt,name=ping_slot_freq,json=pingSlotFreq,proto3" json:"ping_slot_freq,omitempty"`
// End-Device supports Class C.
SupportsClassC bool `protobuf:"varint,7,opt,name=supports_class_c,json=supportsClassC,proto3" json:"supports_class_c,omitempty"`
// Maximum delay for the End-Device to answer a MAC request or a confirmed DL frame (mandatory if class C mode supported).
ClassCTimeout uint32 `protobuf:"varint,8,opt,name=class_c_timeout,json=classCTimeout,proto3" json:"class_c_timeout,omitempty"`
// Version of the LoRaWAN supported by the End-Device.
MacVersion string `protobuf:"bytes,9,opt,name=mac_version,json=macVersion,proto3" json:"mac_version,omitempty"`
// Revision of the Regional Parameters document supported by the End-Device.
RegParamsRevision string `protobuf:"bytes,10,opt,name=reg_params_revision,json=regParamsRevision,proto3" json:"reg_params_revision,omitempty"`
// Class A RX1 delay (mandatory for ABP).
RxDelay_1 uint32 `protobuf:"varint,11,opt,name=rx_delay_1,json=rxDelay1,proto3" json:"rx_delay_1,omitempty"`
// RX1 data rate offset (mandatory for ABP).
RxDrOffset_1 uint32 `protobuf:"varint,12,opt,name=rx_dr_offset_1,json=rxDROffset1,proto3" json:"rx_dr_offset_1,omitempty"`
// RX2 data rate (mandatory for ABP).
RxDatarate_2 uint32 `protobuf:"varint,13,opt,name=rx_datarate_2,json=rxDataRate2,proto3" json:"rx_datarate_2,omitempty"`
// RX2 channel frequency (mandatory for ABP).
RxFreq_2 uint32 `protobuf:"varint,14,opt,name=rx_freq_2,json=rxFreq2,proto3" json:"rx_freq_2,omitempty"`
// List of factory-preset frequencies (mandatory for ABP).
FactoryPresetFreqs []uint32 `protobuf:"varint,15,rep,packed,name=factory_preset_freqs,json=factoryPresetFreqs,proto3" json:"factory_preset_freqs,omitempty"`
// Maximum EIRP supported by the End-Device.
MaxEirp uint32 `protobuf:"varint,16,opt,name=max_eirp,json=maxEIRP,proto3" json:"max_eirp,omitempty"`
// Maximum duty cycle supported by the End-Device.
MaxDutyCycle uint32 `protobuf:"varint,17,opt,name=max_duty_cycle,json=maxDutyCycle,proto3" json:"max_duty_cycle,omitempty"`
// End-Device supports Join (OTAA) or not (ABP).
SupportsJoin bool `protobuf:"varint,18,opt,name=supports_join,json=supportsJoin,proto3" json:"supports_join,omitempty"`
// RF region name.
RfRegion string `protobuf:"bytes,19,opt,name=rf_region,json=rfRegion,proto3" json:"rf_region,omitempty"`
// End-Device uses 32bit FCnt (mandatory for LoRaWAN 1.0 End-Device).
Supports_32BitFCnt bool `protobuf:"varint,20,opt,name=supports_32bit_f_cnt,json=supports32BitFCnt,proto3" json:"supports_32bit_f_cnt,omitempty"`
// Payload codec.
// Leave blank to disable the codec feature.
PayloadCodec string `protobuf:"bytes,24,opt,name=payload_codec,json=payloadCodec,proto3" json:"payload_codec,omitempty"`
// Payload encoder script.
// Depending the codec, it is possible to provide a script which implements
// the encoder function.
PayloadEncoderScript string `protobuf:"bytes,25,opt,name=payload_encoder_script,json=payloadEncoderScript,proto3" json:"payload_encoder_script,omitempty"`
// Payload decoder script.
// Depending the codec, it is possible to provide a script which implements
// the decoder function.
PayloadDecoderScript string `protobuf:"bytes,26,opt,name=payload_decoder_script,json=payloadDecoderScript,proto3" json:"payload_decoder_script,omitempty"`
// Geolocation buffer TTL (in seconds).
// When > 0, uplink RX meta-data will be stored in a buffer so that
// the meta-data of multiple uplinks can be used for geolocation.
GeolocBufferTtl uint32 `protobuf:"varint,27,opt,name=geoloc_buffer_ttl,json=geolocBufferTTL,proto3" json:"geoloc_buffer_ttl,omitempty"`
// Geolocation minimum buffer size.
// When > 0, geolocation will only be performed when the buffer has
// at least the given size.
GeolocMinBufferSize uint32 `protobuf:"varint,28,opt,name=geoloc_min_buffer_size,json=geolocMinBufferSize,proto3" json:"geoloc_min_buffer_size,omitempty"`
// User defined tags.
Tags map[string]string `protobuf:"bytes,29,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Uplink interval.
// This defines the expected uplink interval which the device uses for
// communication. When the uplink interval has expired and no uplink has
// been received, the device is considered inactive.
UplinkInterval *durationpb.Duration `protobuf:"bytes,30,opt,name=uplink_interval,json=uplinkInterval,proto3" json:"uplink_interval,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DeviceProfile) Reset() { *m = DeviceProfile{} }
func (m *DeviceProfile) String() string { return proto.CompactTextString(m) }
func (*DeviceProfile) ProtoMessage() {}
func (*DeviceProfile) Descriptor() ([]byte, []int) {
return fileDescriptor_a1c507fa3dbc9903, []int{1}
}
func (m *DeviceProfile) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeviceProfile.Unmarshal(m, b)
}
func (m *DeviceProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeviceProfile.Marshal(b, m, deterministic)
}
func (m *DeviceProfile) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeviceProfile.Merge(m, src)
}
func (m *DeviceProfile) XXX_Size() int {
return xxx_messageInfo_DeviceProfile.Size(m)
}
func (m *DeviceProfile) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceProfile.DiscardUnknown(m)
}
var xxx_messageInfo_DeviceProfile proto.InternalMessageInfo
func (m *DeviceProfile) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *DeviceProfile) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *DeviceProfile) GetOrganizationId() int64 {
if m != nil {
return m.OrganizationId
}
return 0
}
func (m *DeviceProfile) GetNetworkServerId() int64 {
if m != nil {
return m.NetworkServerId
}
return 0
}
func (m *DeviceProfile) GetSupportsClassB() bool {
if m != nil {
return m.SupportsClassB
}
return false
}
func (m *DeviceProfile) GetClassBTimeout() uint32 {
if m != nil {
return m.ClassBTimeout
}
return 0
}
func (m *DeviceProfile) GetPingSlotPeriod() uint32 {
if m != nil {
return m.PingSlotPeriod
}
return 0
}
func (m *DeviceProfile) GetPingSlotDr() uint32 {
if m != nil {
return m.PingSlotDr
}
return 0
}
func (m *DeviceProfile) GetPingSlotFreq() uint32 {
if m != nil {
return m.PingSlotFreq
}
return 0
}
func (m *DeviceProfile) GetSupportsClassC() bool {
if m != nil {
return m.SupportsClassC
}
return false
}
func (m *DeviceProfile) GetClassCTimeout() uint32 {
if m != nil {
return m.ClassCTimeout
}
return 0
}
func (m *DeviceProfile) GetMacVersion() string {
if m != nil {
return m.MacVersion
}
return ""
}
func (m *DeviceProfile) GetRegParamsRevision() string {
if m != nil {
return m.RegParamsRevision
}
return ""
}
func (m *DeviceProfile) GetRxDelay_1() uint32 {
if m != nil {
return m.RxDelay_1
}
return 0
}
func (m *DeviceProfile) GetRxDrOffset_1() uint32 {
if m != nil {
return m.RxDrOffset_1
}
return 0
}
func (m *DeviceProfile) GetRxDatarate_2() uint32 {
if m != nil {
return m.RxDatarate_2
}
return 0
}
func (m *DeviceProfile) GetRxFreq_2() uint32 {
if m != nil {
return m.RxFreq_2
}
return 0
}
func (m *DeviceProfile) GetFactoryPresetFreqs() []uint32 {
if m != nil {
return m.FactoryPresetFreqs
}
return nil
}
func (m *DeviceProfile) GetMaxEirp() uint32 {
if m != nil {
return m.MaxEirp
}
return 0
}
func (m *DeviceProfile) GetMaxDutyCycle() uint32 {
if m != nil {
return m.MaxDutyCycle
}
return 0
}
func (m *DeviceProfile) GetSupportsJoin() bool {
if m != nil {
return m.SupportsJoin
}
return false
}
func (m *DeviceProfile) GetRfRegion() string {
if m != nil {
return m.RfRegion
}
return ""
}
func (m *DeviceProfile) GetSupports_32BitFCnt() bool {
if m != nil {
return m.Supports_32BitFCnt
}
return false
}
func (m *DeviceProfile) GetPayloadCodec() string {
if m != nil {
return m.PayloadCodec
}
return ""
}
func (m *DeviceProfile) GetPayloadEncoderScript() string {
if m != nil {
return m.PayloadEncoderScript
}
return ""
}
func (m *DeviceProfile) GetPayloadDecoderScript() string {
if m != nil {
return m.PayloadDecoderScript
}
return ""
}
func (m *DeviceProfile) GetGeolocBufferTtl() uint32 {
if m != nil {
return m.GeolocBufferTtl
}
return 0
}
func (m *DeviceProfile) GetGeolocMinBufferSize() uint32 {
if m != nil {
return m.GeolocMinBufferSize
}
return 0
}
func (m *DeviceProfile) GetTags() map[string]string {
if m != nil {
return m.Tags
}
return nil
}
func (m *DeviceProfile) GetUplinkInterval() *durationpb.Duration {
if m != nil {
return m.UplinkInterval
}
return nil
}
func init() {
proto.RegisterEnum("api.RatePolicy", RatePolicy_name, RatePolicy_value)
proto.RegisterType((*ServiceProfile)(nil), "api.ServiceProfile")
proto.RegisterType((*DeviceProfile)(nil), "api.DeviceProfile")
proto.RegisterMapType((map[string]string)(nil), "api.DeviceProfile.TagsEntry")
}
func init() {
proto.RegisterFile("as/external/api/profiles.proto", fileDescriptor_a1c507fa3dbc9903)
}
var fileDescriptor_a1c507fa3dbc9903 = []byte{
// 1203 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdd, 0x6f, 0xdb, 0xb6,
0x16, 0xbf, 0x4e, 0xd2, 0xc4, 0x66, 0xfc, 0x91, 0x30, 0x69, 0xaa, 0xa4, 0x6d, 0xae, 0xdb, 0x5e,
0xdc, 0x6b, 0x14, 0xa8, 0xdd, 0x38, 0x77, 0xe8, 0xb6, 0xb7, 0x3a, 0x4e, 0x8b, 0x6c, 0x0d, 0x6a,
0x30, 0xc1, 0x3a, 0xec, 0x85, 0x38, 0x16, 0x69, 0x85, 0xb3, 0x24, 0x2a, 0x14, 0xe5, 0xd8, 0xfd,
0x47, 0xf7, 0xb7, 0xec, 0x6d, 0xe0, 0x91, 0xfc, 0x91, 0x14, 0x7b, 0xdf, 0x9b, 0xf4, 0xfb, 0xe0,
0xd1, 0x21, 0xf5, 0x23, 0x49, 0x8e, 0x21, 0xed, 0xc8, 0xa9, 0x95, 0x26, 0x86, 0xb0, 0x03, 0x89,
0xea, 0x24, 0x46, 0x8f, 0x54, 0x28, 0xd3, 0x76, 0x62, 0xb4, 0xd5, 0x74, 0x1d, 0x12, 0x75, 0x74,
0x1c, 0x68, 0x1d, 0x84, 0xb2, 0x83, 0xd0, 0x30, 0x1b, 0x75, 0x44, 0x66, 0xc0, 0x2a, 0x1d, 0xe7,
0xa2, 0x97, 0x7f, 0x6c, 0x92, 0xfa, 0x95, 0x34, 0x13, 0xe5, 0xcb, 0x41, 0x6e, 0xa7, 0x75, 0xb2,
0xa6, 0x84, 0x57, 0x6a, 0x96, 0x5a, 0x15, 0xb6, 0xa6, 0x04, 0xa5, 0x64, 0x23, 0x86, 0x48, 0x7a,
0x8f, 0x11, 0xc1, 0x67, 0xfa, 0x3f, 0xd2, 0xd0, 0x26, 0x80, 0x58, 0x7d, 0xc5, 0xc1, 0xb8, 0x12,
0xde, 0x41, 0xb3, 0xd4, 0x5a, 0x67, 0xf5, 0x55, 0xf8, 0xa2, 0x4f, 0x5f, 0x93, 0xdd, 0x58, 0xda,
0x3b, 0x6d, 0xc6, 0x3c, 0x95, 0x66, 0x22, 0x8d, 0x93, 0x3e, 0x41, 0x69, 0xa3, 0x20, 0xae, 0x10,
0xbf, 0xe8, 0xd3, 0x27, 0x64, 0x2b, 0x0b, 0xb9, 0x01, 0x2b, 0xbd, 0xb5, 0x66, 0xa9, 0x55, 0x63,
0x9b, 0x59, 0xc8, 0xc0, 0x4a, 0xfa, 0x1f, 0x52, 0xcf, 0x42, 0x3e, 0xcc, 0xfc, 0xb1, 0xb4, 0x3c,
0x55, 0x5f, 0xa5, 0xb7, 0x8e, 0x7c, 0x35, 0x0b, 0x7b, 0x08, 0x5e, 0xa9, 0xaf, 0x92, 0x7e, 0x87,
0x2a, 0x67, 0xe7, 0x89, 0x0e, 0x95, 0x3f, 0xf3, 0x36, 0x9a, 0xa5, 0x56, 0xbd, 0xdb, 0x68, 0x43,
0xa2, 0xda, 0x6e, 0xa0, 0x01, 0xc2, 0xce, 0xb6, 0x7c, 0x73, 0x55, 0x45, 0x51, 0xf5, 0x51, 0x5e,
0x55, 0x2c, 0xaa, 0x8a, 0xfb, 0x55, 0x37, 0xf3, 0xaa, 0xe2, 0x41, 0x55, 0x71, 0xbf, 0xea, 0xd6,
0xdf, 0x54, 0x15, 0xab, 0x55, 0xff, 0x4b, 0x1a, 0x20, 0x04, 0x0f, 0xee, 0x78, 0x24, 0x2d, 0x08,
0xb0, 0xe0, 0x95, 0x9b, 0xa5, 0x56, 0x99, 0xd5, 0x40, 0x88, 0x8f, 0x5f, 0x2e, 0xa5, 0x85, 0x3e,
0x58, 0xa0, 0x6f, 0xc8, 0x9e, 0x90, 0x13, 0x9e, 0x5a, 0xb0, 0x59, 0xca, 0x8d, 0xbc, 0xe5, 0x23,
0x23, 0x6f, 0xbd, 0x0a, 0x7e, 0xc9, 0x8e, 0x90, 0x93, 0x2b, 0x64, 0x98, 0xbc, 0xfd, 0x60, 0xe4,
0x2d, 0xfd, 0x81, 0x1c, 0x1a, 0x99, 0x68, 0x63, 0xf9, 0x8a, 0x6b, 0x08, 0xd6, 0x4a, 0x33, 0xf3,
0x08, 0x16, 0x38, 0xc8, 0x05, 0xfd, 0xb9, 0xb5, 0x97, 0xb3, 0xf4, 0x1d, 0xf1, 0xbe, 0xb5, 0x46,
0x60, 0x02, 0x15, 0x7b, 0xdb, 0xe8, 0x7c, 0xfc, 0xc0, 0x79, 0x89, 0x24, 0x7d, 0x4c, 0x36, 0x85,
0xe1, 0x91, 0x8a, 0xbd, 0x2a, 0x7e, 0xd5, 0x23, 0x61, 0x2e, 0x97, 0x30, 0x4c, 0xbd, 0xda, 0x02,
0x86, 0x29, 0x7d, 0x41, 0xaa, 0xfe, 0x0d, 0xc4, 0xb1, 0x0c, 0x79, 0x04, 0xe9, 0xd8, 0xab, 0x37,
0x4b, 0xad, 0x2a, 0xdb, 0x2e, 0xb0, 0x4b, 0x48, 0xc7, 0xf4, 0x39, 0x21, 0x89, 0xe1, 0x10, 0x86,
0xfa, 0x4e, 0x0a, 0xaf, 0x81, 0xb5, 0x2b, 0x89, 0x79, 0x9f, 0x03, 0x8e, 0xbe, 0x59, 0xd2, 0x3b,
0x39, 0x7d, 0xb3, 0x4a, 0x1b, 0x58, 0xd0, 0xbb, 0x39, 0x6d, 0x60, 0x4e, 0x1f, 0x93, 0xed, 0xf8,
0x6e, 0xcc, 0x03, 0xa9, 0x79, 0xa8, 0x7d, 0x8f, 0xe6, 0x7c, 0x7c, 0x37, 0xfe, 0x28, 0xf5, 0x27,
0xed, 0x3b, 0xbb, 0x05, 0x13, 0x48, 0xcb, 0x13, 0x69, 0xbc, 0x3d, 0xfc, 0xf4, 0x4a, 0x8e, 0x0c,
0xce, 0x19, 0x6d, 0x91, 0x9d, 0x48, 0xc5, 0x6e, 0xdd, 0x84, 0x9a, 0x48, 0x93, 0x2a, 0x3b, 0xf3,
0xf6, 0x51, 0x54, 0x8f, 0x54, 0xfc, 0xf1, 0x4b, 0x7f, 0x8e, 0xbe, 0xfc, 0xb3, 0x42, 0x6a, 0x7d,
0xf9, 0x8f, 0x08, 0x56, 0x8b, 0xec, 0xa4, 0x59, 0xe2, 0xd6, 0x2e, 0xe5, 0x7e, 0x08, 0x69, 0xca,
0x87, 0x98, 0xb0, 0x32, 0xab, 0xcf, 0xf1, 0x33, 0x07, 0xf7, 0xdc, 0x6f, 0x59, 0x08, 0xb8, 0x55,
0x91, 0xd4, 0x99, 0x2d, 0xa2, 0x56, 0x43, 0xb8, 0x77, 0x9d, 0x83, 0x6e, 0xc4, 0x44, 0xc5, 0x01,
0x4f, 0x43, 0x8d, 0x13, 0xa5, 0xb4, 0xc0, 0xb4, 0xd5, 0x58, 0xdd, 0xe1, 0x57, 0xa1, 0xb6, 0x03,
0x44, 0x69, 0x93, 0x54, 0x97, 0x4a, 0x61, 0x8a, 0x8c, 0x91, 0xb9, 0xaa, 0xcf, 0x5c, 0xce, 0x96,
0x0a, 0xfc, 0xbb, 0x8b, 0x9c, 0xcd, 0x35, 0xf8, 0x67, 0x7f, 0xdb, 0x83, 0x8f, 0x49, 0x7b, 0xd8,
0xc3, 0xd9, 0xb2, 0x07, 0x7f, 0xd1, 0x43, 0x79, 0xa5, 0x87, 0xb3, 0x79, 0x0f, 0xff, 0x26, 0xdb,
0x11, 0xf8, 0x1c, 0xd7, 0x4b, 0xc7, 0x18, 0xa9, 0x0a, 0x23, 0x11, 0xf8, 0xbf, 0xe4, 0x08, 0x6d,
0x93, 0x3d, 0x23, 0x03, 0x9e, 0x80, 0x81, 0xc8, 0x65, 0x6f, 0xa2, 0x50, 0x48, 0x50, 0xb8, 0x6b,
0x64, 0x30, 0x40, 0x86, 0x15, 0x04, 0x7d, 0x46, 0x88, 0x99, 0x72, 0x21, 0x43, 0x98, 0xf1, 0x13,
0xcc, 0x4c, 0x8d, 0x95, 0xcd, 0xb4, 0xef, 0x80, 0x13, 0xfa, 0x8a, 0xd4, 0x1d, 0x6b, 0xb8, 0x1e,
0x8d, 0x52, 0x69, 0xf9, 0x49, 0x11, 0x97, 0x6d, 0x33, 0xed, 0xb3, 0xcf, 0x88, 0x9d, 0xd0, 0x97,
0xa4, 0xe6, 0x44, 0x60, 0x01, 0x77, 0x94, 0x6e, 0x91, 0x1d, 0xa7, 0x01, 0x0b, 0x6e, 0xff, 0xe8,
0xd2, 0x23, 0x52, 0x31, 0x53, 0x9c, 0x28, 0xde, 0xc5, 0xf8, 0xd4, 0xd8, 0x96, 0x99, 0xba, 0x49,
0xea, 0xd2, 0xb7, 0x64, 0x7f, 0x04, 0xbe, 0xd5, 0x66, 0xc6, 0x13, 0x23, 0x5d, 0x19, 0xa7, 0x4b,
0xbd, 0x46, 0x73, 0xbd, 0x55, 0x63, 0xb4, 0xe0, 0x06, 0x48, 0x39, 0x47, 0x4a, 0x0f, 0x49, 0x39,
0x82, 0x29, 0x97, 0xca, 0x24, 0x98, 0xa5, 0x1a, 0xdb, 0x8a, 0x60, 0x7a, 0x7e, 0xc1, 0x06, 0x6e,
0x61, 0x1c, 0x25, 0x32, 0x3b, 0xe3, 0xfe, 0xcc, 0x0f, 0x25, 0xa6, 0xa9, 0xc6, 0xaa, 0x11, 0x4c,
0xfb, 0x99, 0x9d, 0x9d, 0x39, 0x8c, 0xbe, 0x22, 0xb5, 0xc5, 0xc2, 0xfc, 0xae, 0x55, 0x5c, 0x44,
0xaa, 0x3a, 0x07, 0x7f, 0xd2, 0x2a, 0xa6, 0x4f, 0x49, 0xc5, 0x8c, 0xb8, 0x91, 0x81, 0x9b, 0xc0,
0x3d, 0x9c, 0xc0, 0xb2, 0x19, 0x31, 0x7c, 0xa7, 0x1d, 0xb2, 0xbf, 0x18, 0xe1, 0xb4, 0x3b, 0x54,
0x96, 0x8f, 0xb8, 0x1f, 0x5b, 0xcc, 0x55, 0x99, 0xed, 0xce, 0xb9, 0xd3, 0x6e, 0x4f, 0xd9, 0x0f,
0x67, 0xb1, 0x75, 0x25, 0x13, 0x98, 0x85, 0x1a, 0x04, 0xf7, 0xb5, 0x90, 0xbe, 0xe7, 0xe1, 0x88,
0xd5, 0x02, 0x3c, 0x73, 0x18, 0xfd, 0x3f, 0x39, 0x98, 0x8b, 0x64, 0xec, 0x64, 0x86, 0xa7, 0xbe,
0x51, 0x89, 0xf5, 0x0e, 0x51, 0xbd, 0x5f, 0xb0, 0xe7, 0x39, 0x79, 0x85, 0xdc, 0xaa, 0x4b, 0xc8,
0x7b, 0xae, 0xa3, 0x7b, 0xae, 0xbe, 0x5c, 0x75, 0xbd, 0x26, 0xbb, 0x81, 0xd4, 0xa1, 0xf6, 0xf9,
0x30, 0x1b, 0x8d, 0xa4, 0xe1, 0xd6, 0x86, 0xde, 0x53, 0x9c, 0xac, 0x46, 0x4e, 0xf4, 0x10, 0xbf,
0xbe, 0xfe, 0x44, 0x4f, 0xc9, 0x41, 0xa1, 0x75, 0x1b, 0x49, 0xa1, 0xc7, 0xe3, 0xe5, 0x19, 0x1a,
0xf6, 0x72, 0xf6, 0x52, 0xc5, 0xb9, 0x07, 0x4f, 0x99, 0xb7, 0x64, 0xc3, 0x42, 0x90, 0x7a, 0xcf,
0x9b, 0xeb, 0xad, 0xed, 0xee, 0x33, 0x3c, 0x5b, 0xee, 0x6d, 0x2e, 0xed, 0x6b, 0x08, 0xd2, 0xf3,
0xd8, 0x9a, 0x19, 0x43, 0x25, 0xed, 0x91, 0x46, 0x96, 0x84, 0x2a, 0x1e, 0x73, 0x15, 0x5b, 0x69,
0x26, 0x10, 0x7a, 0xc7, 0xcd, 0x52, 0x6b, 0xbb, 0x7b, 0xd8, 0xce, 0xaf, 0x04, 0xed, 0xf9, 0x95,
0xa0, 0xdd, 0x2f, 0xae, 0x04, 0xac, 0x9e, 0x3b, 0x2e, 0x0a, 0xc3, 0xd1, 0x3b, 0x52, 0x59, 0x0c,
0x4b, 0x77, 0xc8, 0xfa, 0x58, 0xce, 0x8a, 0xed, 0xcb, 0x3d, 0xd2, 0x7d, 0xf2, 0x68, 0x02, 0x61,
0x96, 0x9f, 0xd6, 0x15, 0x96, 0xbf, 0xfc, 0xb8, 0xf6, 0x7d, 0xe9, 0x75, 0x93, 0x90, 0x95, 0xb3,
0xae, 0x4c, 0x36, 0xfa, 0xec, 0xf3, 0x60, 0xe7, 0x5f, 0xee, 0xe9, 0xf2, 0x3d, 0xfb, 0x79, 0xa7,
0xd4, 0xfb, 0x95, 0xbc, 0x50, 0xba, 0xed, 0xdf, 0x28, 0x93, 0xa4, 0x16, 0xfc, 0x31, 0x76, 0x04,
0x69, 0x7b, 0x7e, 0xa1, 0x71, 0xef, 0xbf, 0x9d, 0x06, 0xca, 0x4a, 0xd9, 0xf6, 0x75, 0xd4, 0x01,
0x33, 0x83, 0x93, 0xee, 0x69, 0x67, 0xe9, 0x78, 0xe3, 0xae, 0x3c, 0x81, 0xee, 0x3c, 0xb8, 0x05,
0x0d, 0x37, 0xb1, 0xaf, 0xd3, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x01, 0xe2, 0x27, 0x38, 0x1f,
0x09, 0x00, 0x00,
}
1
https://gitee.com/arya123/chirpstack-api.git
git@gitee.com:arya123/chirpstack-api.git
arya123
chirpstack-api
chirpstack-api
58627aede349

搜索帮助