Пример #1
0
        private void ConfigureGenerator(TemperatureTwin twin)
        {
            lock (_sync)
            {
                if (twin == null ||
                    twin.SamplingHz <= 0 ||
                    twin.Amplitude <= 0 ||
                    twin.Frequency <= 0)
                {
                    return;
                }

                _samplingRateHz = twin.SamplingHz;
                var waveConfiguration = new[]
                {
                    new WaveConfig
                    {
                        Amplitude            = twin.Amplitude,
                        FrequencyInKilohertz = twin.Frequency / 1000,
                        WaveType             = (WaveType)(int)twin.WaveType,
                        Offset = twin.Offset
                    }
                };

                _dataGenerator = new WaveGenerator.WaveGenerator(waveConfiguration);
            }
        }
Пример #2
0
        public TemperatureSensor(TemperatureTwin defaultTwin = null)
        {
            _startTimeStamp = DateTime.Now;

            Twin.SetDefault(defaultTwin ?? _defaultTwin);

            Twin.Subscribe(async twin =>
            {
                Logger.LogInformation("Twin update");

                ConfigureGenerator(twin);
                await Twin.ReportAsync(twin);
                return(TwinResult.Ok);
            });
        }