Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ClassBEnqueueMargin = time.Second * 5
ClassBEnqueueMargin contains the margin duration when scheduling Class-B messages.
var ClassCDownlinkLockDuration = time.Second * 2
ClassCDownlinkLockDuration contains the duration to lock the downlink Class-C transmissions after a preceeding downlink tx.
var MulticastClassCInterval = time.Second
MulticastClassCInterval defines the interval between the gateway scheduling for Class-C multicast.
var SchedulerBatchSize = 100
SchedulerBatchSize contains the batch size of the Class-C scheduler
var SchedulerInterval = time.Second
SchedulerInterval it the interval in which the a scheduler must run.
var SpreadFactorToRequiredSNRTable = map[int]float64{
6: -5,
7: -7.5,
8: -10,
9: -12.5,
10: -15,
11: -17.5,
12: -20,
}
SpreadFactorToRequiredSNRTable contains the required SNR to demodulate a LoRa frame for the given spreadfactor. These values are taken from the SX1276 datasheet.
var Version string
Version defines the LoRa Server version.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
General struct {
LogLevel int `mapstructure:"log_level"`
}
PostgreSQL struct {
DSN string `mapstructure:"dsn"`
Automigrate bool
DB *common.DBLogger
} `mapstructure:"postgresql"`
Redis struct {
URL string `mapstructure:"url"`
MaxIdle int `mapstructure:"max_idle"`
IdleTimeout time.Duration `mapstructure:"idle_timeout"`
Pool *redis.Pool
}
NetworkServer struct {
NetID lorawan.NetID
NetIDString string `mapstructure:"net_id"`
DeduplicationDelay time.Duration `mapstructure:"deduplication_delay"`
DeviceSessionTTL time.Duration `mapstructure:"device_session_ttl"`
GetDownlinkDataDelay time.Duration `mapstructure:"get_downlink_data_delay"`
Band struct {
Band band.Band
Name band.Name
DwellTime400ms bool `mapstructure:"dwell_time_400ms"`
RepeaterCompatible bool `mapstructure:"repeater_compatible"`
}
NetworkSettings struct {
InstallationMargin float64 `mapstructure:"installation_margin"`
RX1Delay int `mapstructure:"rx1_delay"`
RX1DROffset int `mapstructure:"rx1_dr_offset"`
RX2DR int `mapstructure:"rx2_dr"`
RX2Frequency int `mapstructure:"rx2_frequency"`
DownlinkTXPower int `mapstructure:"downlink_tx_power"`
EnabledUplinkChannels []int `mapstructure:"enabled_uplink_channels"`
DisableMACCommands bool `mapstructure:"disable_mac_commands"`
EnabledUplinkChannelsLegacy string `mapstructure:"enabled_uplink_channels_legacy"`
ExtraChannelsLegacy []int `mapstructure:"extra_channels_legacy"`
DisableADR bool `mapstructure:"disable_adr"`
ExtraChannels []struct {
Frequency int
MinDR int `mapstructure:"min_dr"`
MaxDR int `mapstructure:"max_dr"`
} `mapstructure:"extra_channels"`
ClassB struct {
PingSlotDR int `mapstructure:"ping_slot_dr"`
PingSlotFrequency int `mapstructure:"ping_slot_frequency"`
} `mapstructure:"class_b"`
RejoinRequest struct {
Enabled bool `mapstructure:"enabled"`
MaxCountN int `mapstructure:"max_count_n"`
MaxTimeN int `mapstructure:"max_time_n"`
} `mapstructure:"rejoin_request"`
} `mapstructure:"network_settings"`
API struct {
Bind string
CACert string `mapstructure:"ca_cert"`
TLSCert string `mapstructure:"tls_cert"`
TLSKey string `mapstructure:"tls_key"`
} `mapstructure:"api"`
Gateway struct {
Stats struct {
TimezoneLocation *time.Location
CreateGatewayOnStats bool `mapstructure:"create_gateway_on_stats"`
Timezone string
AggregationIntervals []string `mapstructure:"aggregation_intervals"`
}
Backend struct {
Backend backend.Gateway
MQTT gateway.MQTTBackendConfig
}
}
} `mapstructure:"network_server"`
JoinServer struct {
Pool jsclient.Pool
Default struct {
Server string
CACert string `mapstructure:"ca_cert"`
TLSCert string `mapstructure:"tls_cert"`
TLSKey string `mapstructure:"tls_key"`
}
KEK struct {
Set []struct {
Label string
KEK string `mapstructure:"kek"`
}
} `mapstructure:"kek"`
} `mapstructure:"join_server"`
ApplicationServer struct {
Pool asclient.Pool
}
NetworkController struct {
Client nc.NetworkControllerServiceClient
Server string
CACert string `mapstructure:"ca_cert"`
TLSCert string `mapstructure:"tls_cert"`
TLSKey string `mapstructure:"tls_key"`
} `mapstructure:"network_controller"`
}
Config defines the configuration structure.
var C Config
C holds the global configuration.