コード例 #1
0
ファイル: FrmMqttDSO.cs プロジェクト: RapidScada/scada-v6
 /// <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);
 }
コード例 #2
0
        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;
        }