Exemple #1
0
 /// <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);
 }
Exemple #9
0
        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);
        }
Exemple #10
0
 public JoinRequestMessageHandler(NetworkServerConfiguration configuration, ILoRaDeviceRegistry deviceRegistry)
 {
     this.deviceRegistry = deviceRegistry;
     this.configuration  = configuration;
 }