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); } }
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); }); }