private async Task SendDataToAzureIOTSuite() { try { WeatherObject weather = await GetWeather(txtBoxCity.Text); string messageBody = DateTime.Now + " Temperature: " + Math.Round(weather.main.tempCelsius, 2) + ", Humidity: " + weather.main.humidity + "%" + ", External Temperature: " + Math.Round(weather.main.tempCelsius, 2); weatherLog.Add(messageBody); //We add rand value to see variation on graph Random rand = new Random(); double randHumidity = rand.Next(0, 5) * 0.1; double randTemperature = rand.Next(0, 5) * 0.1; RemoteMonitorTelemetryData monitorData = new RemoteMonitorTelemetryData() { DeviceId = deviceId, ExternalTemperature = Math.Round(weather.main.tempCelsius, 2) + randTemperature, Humidity = weather.main.humidity + randHumidity, Temperature = Math.Round(weather.main.tempCelsius, 2) + randTemperature }; var messageString = JsonConvert.SerializeObject(monitorData); var interactiveMessage = new Message(Encoding.ASCII.GetBytes(messageString)); interactiveMessage.Properties["messageType"] = "interactive"; interactiveMessage.MessageId = Guid.NewGuid().ToString(); await deviceClient.SendEventAsync(interactiveMessage); } catch (Exception) { } }
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); } }
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); } }
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); } }