2 Star 0 Fork 0

成都极趣科技/chirpstack-api

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
profiles.pb.go 22.47 KB
Copy Edit Raw Blame History
Arya11111 authored 2024-04-23 10:55 +08:00 . V1.0
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: ns/profiles.proto
package ns
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
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_ee79be696a10f18b, []int{0}
}
type ServiceProfile struct {
// Service-profile ID.
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"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=ns.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=ns.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_ee79be696a10f18b, []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() []byte {
if m != nil {
return m.Id
}
return nil
}
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.
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"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"`
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_ee79be696a10f18b, []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() []byte {
if m != nil {
return m.Id
}
return nil
}
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
}
type RoutingProfile struct {
// ID of the routing profile.
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Application-server ID.
AsId string `protobuf:"bytes,2,opt,name=as_id,json=asId,proto3" json:"as_id,omitempty"`
// CA certificate for connecting to the AS.
CaCert string `protobuf:"bytes,3,opt,name=ca_cert,json=caCert,proto3" json:"ca_cert,omitempty"`
// TLS certificate for connecting to the AS.
TlsCert string `protobuf:"bytes,4,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"`
// TLS key for connecting to the AS.
// Note: when retrieving the routing-profile, the tls_key is not returned
// for security reasons. When updating the routing-profile, an empty tls_key
// does not clear the certificate, unless the tls_cert is also left blank.
TlsKey string `protobuf:"bytes,5,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RoutingProfile) Reset() { *m = RoutingProfile{} }
func (m *RoutingProfile) String() string { return proto.CompactTextString(m) }
func (*RoutingProfile) ProtoMessage() {}
func (*RoutingProfile) Descriptor() ([]byte, []int) {
return fileDescriptor_ee79be696a10f18b, []int{2}
}
func (m *RoutingProfile) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RoutingProfile.Unmarshal(m, b)
}
func (m *RoutingProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RoutingProfile.Marshal(b, m, deterministic)
}
func (m *RoutingProfile) XXX_Merge(src proto.Message) {
xxx_messageInfo_RoutingProfile.Merge(m, src)
}
func (m *RoutingProfile) XXX_Size() int {
return xxx_messageInfo_RoutingProfile.Size(m)
}
func (m *RoutingProfile) XXX_DiscardUnknown() {
xxx_messageInfo_RoutingProfile.DiscardUnknown(m)
}
var xxx_messageInfo_RoutingProfile proto.InternalMessageInfo
func (m *RoutingProfile) GetId() []byte {
if m != nil {
return m.Id
}
return nil
}
func (m *RoutingProfile) GetAsId() string {
if m != nil {
return m.AsId
}
return ""
}
func (m *RoutingProfile) GetCaCert() string {
if m != nil {
return m.CaCert
}
return ""
}
func (m *RoutingProfile) GetTlsCert() string {
if m != nil {
return m.TlsCert
}
return ""
}
func (m *RoutingProfile) GetTlsKey() string {
if m != nil {
return m.TlsKey
}
return ""
}
func init() {
proto.RegisterEnum("ns.RatePolicy", RatePolicy_name, RatePolicy_value)
proto.RegisterType((*ServiceProfile)(nil), "ns.ServiceProfile")
proto.RegisterType((*DeviceProfile)(nil), "ns.DeviceProfile")
proto.RegisterType((*RoutingProfile)(nil), "ns.RoutingProfile")
}
func init() {
proto.RegisterFile("ns/profiles.proto", fileDescriptor_ee79be696a10f18b)
}
var fileDescriptor_ee79be696a10f18b = []byte{
// 962 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x55, 0x5f, 0x6f, 0xdb, 0xb6,
0x17, 0xfd, 0x39, 0x4d, 0x1c, 0x9b, 0xb1, 0x1c, 0x87, 0x49, 0x7f, 0x55, 0xf7, 0xd7, 0x4b, 0x8b,
0xc1, 0x18, 0x50, 0x67, 0x71, 0x07, 0x0c, 0x03, 0xf6, 0xd2, 0xd8, 0x6b, 0xb0, 0x75, 0x41, 0x0d,
0x66, 0xd8, 0xc3, 0x5e, 0x08, 0x9a, 0xa4, 0x1d, 0xce, 0x92, 0xa8, 0x5c, 0x52, 0xb1, 0xdd, 0xc7,
0x7d, 0xde, 0x01, 0xfb, 0x0a, 0x03, 0xaf, 0x64, 0x3b, 0x4d, 0xb7, 0xbd, 0x49, 0xe7, 0x9c, 0xcb,
0xc3, 0x7b, 0x79, 0x28, 0x91, 0xa3, 0xcc, 0x9d, 0xe5, 0x60, 0xa7, 0x26, 0xd1, 0xae, 0x9f, 0x83,
0xf5, 0x96, 0xee, 0x64, 0xee, 0xf4, 0xcf, 0x3d, 0xd2, 0xbe, 0xd6, 0x70, 0x67, 0xa4, 0x1e, 0x97,
0x2c, 0x6d, 0x93, 0x1d, 0xa3, 0xe2, 0x5a, 0xb7, 0xd6, 0x6b, 0xb1, 0x1d, 0xa3, 0xe8, 0x13, 0xb2,
0x5f, 0x24, 0x1c, 0x84, 0xd7, 0xf1, 0x4e, 0xb7, 0xd6, 0x8b, 0x58, 0xbd, 0x48, 0x98, 0xf0, 0x9a,
0x3e, 0x27, 0xed, 0x22, 0xe1, 0x93, 0x42, 0xce, 0xb5, 0xe7, 0xce, 0xbc, 0xd3, 0xf1, 0x23, 0xe4,
0x5b, 0x45, 0x72, 0x81, 0xe0, 0xb5, 0x79, 0xa7, 0xe9, 0x37, 0xa8, 0x0a, 0xe5, 0x3c, 0xb7, 0x89,
0x91, 0xab, 0x78, 0xb7, 0x5b, 0xeb, 0xb5, 0x07, 0xed, 0x7e, 0xe6, 0xfa, 0x61, 0x9d, 0x31, 0xa2,
0xa1, 0x6a, 0xfb, 0x16, 0x4c, 0x55, 0x65, 0xba, 0x57, 0x9a, 0xaa, 0x8d, 0xa9, 0x7a, 0xdf, 0xb4,
0x5e, 0x9a, 0xaa, 0x07, 0xa6, 0xea, 0x7d, 0xd3, 0xfd, 0x7f, 0x36, 0x55, 0xf7, 0x4d, 0xbf, 0x24,
0x87, 0x42, 0x29, 0x3e, 0x5b, 0xf0, 0x54, 0x7b, 0xa1, 0x84, 0x17, 0x71, 0xa3, 0x5b, 0xeb, 0x35,
0x58, 0x24, 0x94, 0xba, 0x5c, 0x5c, 0x55, 0x20, 0x7d, 0x41, 0x8e, 0x95, 0xbe, 0xe3, 0xce, 0x0b,
0x5f, 0x38, 0x0e, 0xfa, 0x96, 0x4f, 0x41, 0xdf, 0xc6, 0x4d, 0xdc, 0x48, 0x47, 0xe9, 0xbb, 0x6b,
0x64, 0x98, 0xbe, 0x7d, 0x0d, 0xfa, 0x96, 0x7e, 0x47, 0x9e, 0x82, 0xce, 0x2d, 0x78, 0x7e, 0xaf,
0x6a, 0x22, 0xbc, 0xd7, 0xb0, 0x8a, 0x09, 0x1a, 0xfc, 0xbf, 0x14, 0x8c, 0xd6, 0xa5, 0x17, 0x25,
0x4b, 0xbf, 0x25, 0xf1, 0x87, 0xa5, 0xa9, 0x80, 0x99, 0xc9, 0xe2, 0x03, 0xac, 0x7c, 0xfc, 0xa0,
0xf2, 0x0a, 0x49, 0xfa, 0x98, 0xd4, 0x15, 0xf0, 0xd4, 0x64, 0x71, 0x0b, 0x77, 0xb5, 0xa7, 0xe0,
0x6a, 0x0b, 0x8b, 0x65, 0x1c, 0x6d, 0x60, 0xb1, 0xa4, 0x5f, 0x90, 0x96, 0xbc, 0x11, 0x59, 0xa6,
0x13, 0x9e, 0x0a, 0x37, 0x8f, 0xdb, 0x78, 0xf8, 0x07, 0x15, 0x76, 0x25, 0xdc, 0x9c, 0x7e, 0x4a,
0x48, 0x0e, 0x5c, 0x24, 0x89, 0x5d, 0x68, 0x15, 0x1f, 0xa2, 0x77, 0x33, 0x87, 0x57, 0x25, 0x10,
0xe8, 0x9b, 0x2d, 0xdd, 0x29, 0xe9, 0x9b, 0xfb, 0x34, 0x88, 0x0d, 0x7d, 0x54, 0xd2, 0x20, 0xd6,
0xf4, 0x67, 0xe4, 0x20, 0x5b, 0xcc, 0xf9, 0x4c, 0x5b, 0x9e, 0x58, 0x19, 0xd3, 0x92, 0xcf, 0x16,
0xf3, 0x4b, 0x6d, 0x7f, 0xb6, 0x32, 0x94, 0x7b, 0x01, 0x33, 0xed, 0x79, 0xae, 0x21, 0x3e, 0xc6,
0xad, 0x37, 0x4b, 0x64, 0xac, 0x81, 0xf6, 0x48, 0x27, 0x35, 0x59, 0x38, 0x37, 0x65, 0xee, 0x34,
0x38, 0xe3, 0x57, 0xf1, 0x09, 0x8a, 0xda, 0xa9, 0xc9, 0x2e, 0x17, 0xa3, 0x35, 0x7a, 0xfa, 0xd7,
0x1e, 0x89, 0x46, 0xfa, 0xbf, 0xd2, 0xde, 0x23, 0x1d, 0x57, 0xe4, 0x61, 0xa4, 0x8e, 0xcb, 0x44,
0x38, 0xc7, 0x27, 0x18, 0xfb, 0x06, 0x6b, 0xaf, 0xf1, 0x61, 0x80, 0x2f, 0x42, 0x5a, 0x2a, 0x01,
0xf7, 0x26, 0xd5, 0xb6, 0xf0, 0x55, 0xfe, 0x23, 0x84, 0x2f, 0x7e, 0x29, 0xc1, 0xb0, 0x62, 0x6e,
0xb2, 0x19, 0x77, 0x89, 0xc5, 0xfd, 0x1b, 0xab, 0xf0, 0x0a, 0x44, 0xac, 0x1d, 0xf0, 0xeb, 0xc4,
0x86, 0x26, 0x8c, 0x55, 0xb4, 0x4b, 0x5a, 0x5b, 0xa5, 0x82, 0x2a, 0xf9, 0x64, 0xad, 0x1a, 0x41,
0x48, 0xff, 0x56, 0x81, 0xa1, 0xab, 0xd2, 0xbf, 0xd6, 0x60, 0xe0, 0x3e, 0xec, 0x41, 0x62, 0xfe,
0x1f, 0xf6, 0x30, 0xdc, 0xf6, 0x20, 0x37, 0x3d, 0x34, 0xee, 0xf5, 0x30, 0x5c, 0xf7, 0xf0, 0x39,
0x39, 0x48, 0x85, 0xe4, 0x38, 0x46, 0x9b, 0x61, 0xd2, 0x9b, 0x8c, 0xa4, 0x42, 0xfe, 0x5a, 0x22,
0xb4, 0x4f, 0x8e, 0x41, 0xcf, 0x78, 0x2e, 0x40, 0xa4, 0xe1, 0x4a, 0xdc, 0x19, 0x14, 0x12, 0x14,
0x1e, 0x81, 0x9e, 0x8d, 0x91, 0x61, 0x15, 0x41, 0x3f, 0x21, 0x04, 0x96, 0x5c, 0xe9, 0x44, 0xac,
0xf8, 0x39, 0x46, 0x39, 0x62, 0x0d, 0x58, 0x8e, 0x02, 0x70, 0x4e, 0x9f, 0x91, 0x76, 0x60, 0x81,
0xdb, 0xe9, 0xd4, 0x69, 0xcf, 0xcf, 0xab, 0x14, 0x1f, 0xc0, 0x72, 0x04, 0x6f, 0x11, 0x3b, 0xa7,
0xa7, 0x24, 0x0a, 0x22, 0xe1, 0x05, 0xde, 0xf3, 0x41, 0x15, 0xe9, 0xa0, 0xa9, 0xb0, 0x01, 0xfd,
0x88, 0x34, 0x61, 0x89, 0x83, 0xe2, 0x03, 0x4c, 0x75, 0xc4, 0xf6, 0x61, 0x19, 0x86, 0x34, 0xa0,
0x5f, 0x93, 0x93, 0xa9, 0x90, 0xde, 0xc2, 0x8a, 0xe7, 0xa0, 0x83, 0x4d, 0xd0, 0xb9, 0xf8, 0xb0,
0xfb, 0xa8, 0x17, 0x31, 0x5a, 0x71, 0x63, 0xa4, 0x42, 0x85, 0xa3, 0x4f, 0x49, 0x23, 0x15, 0x4b,
0xae, 0x0d, 0xe4, 0x18, 0xf1, 0x88, 0xed, 0xa7, 0x62, 0xf9, 0x83, 0x81, 0x3c, 0x1c, 0x4c, 0xa0,
0x54, 0xe1, 0x57, 0x5c, 0xae, 0x64, 0xa2, 0x31, 0xe4, 0x11, 0x6b, 0xa5, 0x62, 0x39, 0x2a, 0xfc,
0x6a, 0x18, 0x30, 0xfa, 0x8c, 0x44, 0x9b, 0x83, 0xf9, 0xdd, 0x9a, 0xac, 0x4a, 0x7a, 0x6b, 0x0d,
0xfe, 0x64, 0x4d, 0x46, 0x3f, 0x26, 0x4d, 0x98, 0x72, 0xd0, 0xb3, 0x30, 0xc0, 0x63, 0x1c, 0x60,
0x03, 0xa6, 0x0c, 0xdf, 0xe9, 0x19, 0x39, 0xd9, 0xac, 0xf0, 0x72, 0x30, 0x31, 0x9e, 0x4f, 0xb9,
0xcc, 0x3c, 0xc6, 0xbd, 0xc1, 0x8e, 0xd6, 0x1c, 0x52, 0xaf, 0x87, 0x99, 0x3f, 0xfd, 0xa3, 0x46,
0xda, 0xcc, 0x16, 0xde, 0x64, 0xb3, 0x7f, 0x8b, 0xfc, 0x31, 0xd9, 0x13, 0x8e, 0x1b, 0x85, 0x39,
0x6f, 0xb2, 0x5d, 0xe1, 0x7e, 0xc4, 0xaf, 0xbe, 0x14, 0x5c, 0x6a, 0x28, 0x53, 0xdd, 0x64, 0x75,
0x29, 0x86, 0x1a, 0x7c, 0x18, 0x82, 0x4f, 0x5c, 0xc9, 0xec, 0x22, 0xb3, 0xef, 0x13, 0x87, 0xd4,
0x13, 0x12, 0x1e, 0xf9, 0x5c, 0xaf, 0x30, 0xba, 0x4d, 0x56, 0xf7, 0x89, 0x7b, 0xa3, 0x57, 0x5f,
0x75, 0x09, 0xb9, 0xf7, 0x99, 0x6d, 0x90, 0xdd, 0x11, 0x7b, 0x3b, 0xee, 0xfc, 0x2f, 0x3c, 0x5d,
0xbd, 0x62, 0x6f, 0x3a, 0xb5, 0x8b, 0xef, 0xc9, 0x89, 0xb1, 0x7d, 0x79, 0x63, 0x20, 0x77, 0x5e,
0xc8, 0x79, 0x5f, 0xe4, 0xa6, 0x9f, 0xb9, 0xdf, 0x9e, 0xcf, 0x8c, 0xbf, 0x29, 0x26, 0x7d, 0x69,
0xd3, 0xb3, 0x09, 0x58, 0x29, 0x04, 0x9c, 0x6d, 0x55, 0x2f, 0x44, 0x6e, 0xce, 0x32, 0x37, 0xa9,
0xe3, 0x0f, 0xed, 0xe5, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x01, 0xbb, 0x04, 0x21, 0xe5, 0x06,
0x00, 0x00,
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dfrobotcd/chirpstack-api.git
git@gitee.com:dfrobotcd/chirpstack-api.git
dfrobotcd
chirpstack-api
chirpstack-api
d91e8b8d685d

Search