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 DefaultLoRaDataRequestHandler(
     NetworkServerConfiguration configuration,
     ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider,
     ILoRaPayloadDecoder payloadDecoder,
     IDeduplicationStrategyFactory deduplicationFactory,
     ILoRaADRStrategyProvider loRaADRStrategyProvider,
     ILoRAADRManagerFactory loRaADRManagerFactory,
     IFunctionBundlerProvider functionBundlerProvider,
     IClassCDeviceMessageSender classCDeviceMessageSender = null)
 {
     this.configuration = configuration;
     this.frameCounterUpdateStrategyProvider = frameCounterUpdateStrategyProvider;
     this.payloadDecoder            = payloadDecoder;
     this.deduplicationFactory      = deduplicationFactory;
     this.classCDeviceMessageSender = classCDeviceMessageSender;
     this.loRaADRStrategyProvider   = loRaADRStrategyProvider;
     this.loRaADRManagerFactory     = loRaADRManagerFactory;
     this.functionBundlerProvider   = functionBundlerProvider;
 }
 public TestDefaultLoRaRequestHandler(
     NetworkServerConfiguration configuration,
     ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider,
     IConcentratorDeduplication concentratorDeduplication,
     ILoRaPayloadDecoder payloadDecoder,
     IDeduplicationStrategyFactory deduplicationFactory,
     ILoRaADRStrategyProvider loRaADRStrategyProvider,
     ILoRAADRManagerFactory loRaADRManagerFactory,
     IFunctionBundlerProvider functionBundlerProvider,
     ITestOutputHelper testOutputHelper) : base(
         configuration,
         frameCounterUpdateStrategyProvider,
         concentratorDeduplication,
         payloadDecoder,
         deduplicationFactory,
         loRaADRStrategyProvider,
         loRaADRManagerFactory,
         functionBundlerProvider,
         new TestOutputLogger <DefaultLoRaDataRequestHandler>(testOutputHelper),
         TestMeter.Instance)
 {
     this.configuration = configuration;
 }
 public void SetDecoder(ILoRaPayloadDecoder decoder) => this.decoder = decoder;
 public TestLoRaPayloadDecoder(ILoRaPayloadDecoder decoder)
 {
     this.decoder = decoder;
 }