/// <summary> /// Use this constructor only for tests. /// </summary> internal MessageDispatcher(NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry, ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider) : this(configuration, deviceRegistry, frameCounterUpdateStrategyProvider, new JoinRequestMessageHandler(configuration, concentratorDeduplication, deviceRegistry, NullLogger <JoinRequestMessageHandler> .Instance, null), NullLoggerFactory.Instance, NullLogger <MessageDispatcher> .Instance, null) { }
// Creates a new instance of UdpServer public UdpServer( NetworkServerConfiguration configuration, MessageDispatcher messageDispatcher, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceRegistry loRaDeviceRegistry) { this.configuration = configuration; this.messageDispatcher = messageDispatcher; this.loRaDeviceAPIService = loRaDeviceAPIService; this.loRaDeviceRegistry = loRaDeviceRegistry; }
public DefaultClassCDevicesMessageSender( NetworkServerConfiguration configuration, ILoRaDeviceRegistry loRaDeviceRegistry, IPacketForwarder packetForwarder, ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider) { this.configuration = configuration; this.loRaDeviceRegistry = loRaDeviceRegistry; this.packetForwarder = packetForwarder; this.frameCounterUpdateStrategyProvider = frameCounterUpdateStrategyProvider; }
public JoinRequestMessageHandler(NetworkServerConfiguration configuration, IConcentratorDeduplication concentratorDeduplication, ILoRaDeviceRegistry deviceRegistry, ILogger <JoinRequestMessageHandler> logger, Meter meter) { this.configuration = configuration; this.concentratorDeduplication = concentratorDeduplication; this.deviceRegistry = deviceRegistry; this.joinRequestCounter = meter?.CreateCounter <int>(MetricRegistry.JoinRequests); this.logger = logger; this.receiveWindowHits = meter?.CreateCounter <int>(MetricRegistry.ReceiveWindowHits); this.receiveWindowMisses = meter?.CreateCounter <int>(MetricRegistry.ReceiveWindowMisses); this.unhandledExceptionCount = meter?.CreateCounter <int>(MetricRegistry.UnhandledExceptions); }
public DefaultClassCDevicesMessageSender( NetworkServerConfiguration configuration, ILoRaDeviceRegistry loRaDeviceRegistry, IDownstreamMessageSender downstreamMessageSender, ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider, ILogger <DefaultClassCDevicesMessageSender> logger, Meter meter) { this.configuration = configuration; this.loRaDeviceRegistry = loRaDeviceRegistry; this.downstreamMessageSender = downstreamMessageSender; this.frameCounterUpdateStrategyProvider = frameCounterUpdateStrategyProvider; this.logger = logger; this.c2dMessageTooLong = meter?.CreateCounter <int>(MetricRegistry.C2DMessageTooLong); }
public MessageProcessor( NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry, ILoRaDeviceFrameCounterUpdateStrategyFactory frameCounterUpdateStrategyFactory, ILoRaPayloadDecoder payloadDecoder) { this.configuration = configuration; this.deviceRegistry = deviceRegistry; this.frameCounterUpdateStrategyFactory = frameCounterUpdateStrategyFactory; this.payloadDecoder = payloadDecoder; // Register frame counter initializer // It will take care of seeding ABP devices created here for single gateway scenarios this.deviceRegistry.RegisterDeviceInitializer(new FrameCounterLoRaDeviceInitializer(configuration.GatewayID, frameCounterUpdateStrategyFactory)); }
public MessageDispatcher( NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry, ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider, JoinRequestMessageHandler joinRequestHandler = null) { this.configuration = configuration; this.deviceRegistry = deviceRegistry; this.frameCounterUpdateStrategyProvider = frameCounterUpdateStrategyProvider; // Register frame counter initializer // It will take care of seeding ABP devices created here for single gateway scenarios this.deviceRegistry.RegisterDeviceInitializer(new FrameCounterLoRaDeviceInitializer(configuration.GatewayID, frameCounterUpdateStrategyProvider)); this.joinRequestHandler = joinRequestHandler ?? new JoinRequestMessageHandler(this.configuration, this.deviceRegistry); }
public ModuleConnectionHost( NetworkServerConfiguration networkServerConfiguration, IClassCDeviceMessageSender defaultClassCDevicesMessageSender, ILoRaModuleClientFactory loRaModuleClientFactory, ILoRaDeviceRegistry loRaDeviceRegistry, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILogger <ModuleConnectionHost> logger, Meter meter) { this.networkServerConfiguration = networkServerConfiguration ?? throw new ArgumentNullException(nameof(networkServerConfiguration)); this.classCMessageSender = defaultClassCDevicesMessageSender ?? throw new ArgumentNullException(nameof(defaultClassCDevicesMessageSender)); this.loRaDeviceRegistry = loRaDeviceRegistry ?? throw new ArgumentNullException(nameof(loRaDeviceRegistry)); this.loRaDeviceAPIService = loRaDeviceAPIService ?? throw new ArgumentNullException(nameof(loRaDeviceAPIService)); this.loRaModuleClientFactory = loRaModuleClientFactory ?? throw new ArgumentNullException(nameof(loRaModuleClientFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.unhandledExceptionCount = (meter ?? throw new ArgumentNullException(nameof(meter))).CreateCounter <int>(MetricRegistry.UnhandledExceptions); }
public MessageDispatcher( NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry, ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider, IJoinRequestMessageHandler joinRequestHandler, ILoggerFactory loggerFactory, ILogger <MessageDispatcher> logger, Meter meter) { this.configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); this.deviceRegistry = deviceRegistry; this.frameCounterUpdateStrategyProvider = frameCounterUpdateStrategyProvider; // Register frame counter initializer // It will take care of seeding ABP devices created here for single gateway scenarios this.deviceRegistry.RegisterDeviceInitializer(new FrameCounterLoRaDeviceInitializer(configuration.GatewayID, frameCounterUpdateStrategyProvider)); this.joinRequestHandler = joinRequestHandler; this.loggerFactory = loggerFactory; this.logger = logger; this.d2cMessageDeliveryLatencyHistogram = meter?.CreateHistogram <double>(MetricRegistry.D2CMessageDeliveryLatency); }
public JoinRequestMessageHandler(NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry) { this.deviceRegistry = deviceRegistry; this.configuration = configuration; }