/// <summary> /// Initializes a new instance of the class. /// </summary> public FrmMqttDSO(ConfigDataset configDataset, DataSourceConfig dataSourceConfig) : this() { this.configDataset = configDataset ?? throw new ArgumentNullException(nameof(configDataset)); this.dataSourceConfig = dataSourceConfig ?? throw new ArgumentNullException(nameof(dataSourceConfig)); options = new MqttDSO(dataSourceConfig.CustomOptions); }
private int curDataSkipped; // the number of skipped slices of current data /// <summary> /// Initializes a new instance of the class. /// </summary> public MqttDSL(ICommContext commContext, DataSourceConfig dataSourceConfig) : base(commContext, dataSourceConfig) { dsOptions = new MqttDSO(dataSourceConfig.CustomOptions); dsLog = CreateLog(DriverUtils.DriverCode); mqttClientHelper = new MqttClientHelper(dsOptions.ConnectionOptions, dsLog); commandTopic = dsOptions.PublishOptions.RootTopic + CommandTopic; dataLifetime = TimeSpan.FromSeconds(dsOptions.PublishOptions.DataLifetime); deviceFilter = dsOptions.PublishOptions.DeviceFilter.Count > 0 ? new HashSet <int>(dsOptions.PublishOptions.DeviceFilter) : null; maxQueueSize = Math.Max(dsOptions.PublishOptions.MaxQueueSize, MinQueueSize); curDataQueue = new Queue <QueueItem <DeviceSlice> >(maxQueueSize); topicByDevice = new Dictionary <int, DeviceTopics>(); thread = null; terminated = false; curDataSkipped = 0; }