コード例 #1
0
        public async Task SendEventsAsync(CancellationToken token, Func <object, Task> sendMessageAsync)
        {
            var    monitorData = new RemoteMonitorTelemetryData();
            string messageBody;

            while (!token.IsCancellationRequested)
            {
                if (TelemetryActive)
                {
                    monitorData.DeviceId    = _deviceId;
                    monitorData.Temperature = _temperatureGenerator.GetNextValue();
                    monitorData.Humidity    = _humidityGenerator.GetNextValue();
                    messageBody             = "Temperature: " + Math.Round(monitorData.Temperature, 2)
                                              + " Humidity: " + Math.Round(monitorData.Humidity, 2);

                    if (ActivateExternalTemperature)
                    {
                        monitorData.ExternalTemperature = _externalTemperatureGenerator.GetNextValue();
                        messageBody += " External Temperature: " + Math.Round((double)monitorData.ExternalTemperature, 2);
                    }
                    else
                    {
                        monitorData.ExternalTemperature = null;
                    }

                    //_logger.LogInfo("Sending " + messageBody + " for Device: " + _deviceId);

                    await sendMessageAsync(monitorData);
                }
                await Task.Delay(TimeSpan.FromSeconds(REPORT_FREQUENCY_IN_SECONDS), token);
            }
        }
コード例 #2
0
        public void InspectMinimumLimits()
        {
            double           value           = 0;
            IRandomGenerator randomGenerator = new RandomGeneratorStub(0.01);
            var sampleData = new SampleDataGenerator(5, 10, randomGenerator);

            for (var i = 0; i < 100; i++)
            {
                value = Math.Round(sampleData.GetNextValue(), 2);
                Assert.True(value >= 5);
            }
        }
コード例 #3
0
        public void InspectMaximumLimits()
        {
            double           value           = 0;
            IRandomGenerator randomGenerator = new RandomGeneratorStub(0.99);
            var sampleData = new SampleDataGenerator(5, 10, randomGenerator);

            for (int i = 0; i < 100; i++)
            {
                value = Math.Round(sampleData.GetNextValue(), 2);
                Assert.LessOrEqual(value, 10);
            }
        }
コード例 #4
0
        public async Task SendEventsAsync(CancellationToken token, Func <object, Task> sendMessageAsync)
        {
            var    monitorData = new RemoteMonitorTelemetryData();
            string messageBody;

            while (!token.IsCancellationRequested)
            {
                if (TelemetryActive)
                {
                    monitorData.DeviceId    = _deviceId;
                    monitorData.Temperature = _temperatureGenerator.GetNextValue();
                    monitorData.Humidity    = _humidityGenerator.GetNextValue();
                    monitorData.Rpm         = _rpmGenerator.GetNextValue();
                    monitorData.Payload     = "'{ shfcnt:" + _rpmGenerator.GetNextValue().ToString() + "}'";
                    messageBody             = "Temperature: " + Math.Round(monitorData.Temperature, 2)
                                              + " Humidity: " + Math.Round(monitorData.Humidity, 2)
                                              + " RPM: " + Math.Round(monitorData.Rpm, 2)
                                              + " Payload: " + monitorData.Payload;

                    if (ActivateExternalTemperature)
                    {
                        monitorData.ExternalTemperature = _externalTemperatureGenerator.GetNextValue();
                        messageBody += " External Temperature: " + Math.Round((double)monitorData.ExternalTemperature, 2);
                    }
                    else
                    {
                        monitorData.ExternalTemperature = null;
                    }

                    //_logger.LogInfo("Sending " + messageBody + " for Device: " + _deviceId);

                    await sendMessageAsync(monitorData);
                }
                await Task.Delay(TimeSpan.FromSeconds(TelemetryIntervalInSeconds), token);
            }
        }
コード例 #5
0
        public async Task SendEventsAsync(CancellationToken token, Func <object, Task> sendMessageAsync)
        {
            var monitorData = new RemoteMonitorTelemetryData();

            while (!token.IsCancellationRequested)
            {
                if (TelemetryActive)
                {
                    monitorData.DeviceId = _deviceId;
                    monitorData.RfidTag  = _externalTemperatureGenerator.GetNextValue();

                    await sendMessageAsync(monitorData);
                }
                await Task.Delay(TimeSpan.FromSeconds(ReportFrequencyInSeconds), token);
            }
        }
コード例 #6
0
        public void ExcludingPeaks()
        {
            var    numberExpectedPeaks = 0;
            var    peaksSeen           = 0;
            double value;
            var    sampleData = new SampleDataGenerator(5, 10);

            for (var i = 0; i < 120; i++)
            {
                value = Math.Round(sampleData.GetNextValue(), 2);
                if (value > 10)
                {
                    ++peaksSeen;
                }
            }
            Assert.Equal(numberExpectedPeaks, peaksSeen);
        }
コード例 #7
0
        public void ExpectingPeaks()
        {
            int    numberExpectedPeaks = 4;
            int    peaksSeen           = 0;
            double value;
            var    sampleData = new SampleDataGenerator(5, 10, 15, 25);

            for (int i = 0; i < 120; i++)
            {
                value = Math.Round(sampleData.GetNextValue(), 2);
                if (value > 15)
                {
                    ++peaksSeen;
                }
            }
            Assert.That(numberExpectedPeaks, Is.EqualTo(peaksSeen));
        }
コード例 #8
0
        public void ChangingSetpointWorksRepeatably()
        {
            // this is to check for a bug that manifested when
            // ShiftSubsequentData() was called several times with
            // various values

            IRandomGenerator randomGenerator = new RandomGeneratorStub(0.95);

            var sampleData = new SampleDataGenerator(10, 20, randomGenerator);

            sampleData.GetNextValue();

            sampleData.ShiftSubsequentData(200);

            sampleData.GetNextValue();

            sampleData.ShiftSubsequentData(2000);

            // this one will just be 2000
            sampleData.GetNextValue();

            // this one will likely be different
            var result1 = sampleData.GetNextValue();

            Assert.True(result1 >= 1995);
            Assert.True(result1 <= 2005);

            sampleData.ShiftSubsequentData(-2000);

            // this one will just be -2000
            sampleData.GetNextValue();

            // this one will likely be different
            var result2 = sampleData.GetNextValue();

            Assert.True(result2 >= -2005);
            Assert.True(result2 <= -1995);
        }