private async Task SendTelemetryAsync() { using (DeviceClient iotClient = CreateDeviceClient()) { Console.WriteLine("DeviceClient OpenAsync."); await iotClient.OpenAsync().ConfigureAwait(false); Console.WriteLine("Receiving cloud configuration..."); await GetCloudConfiguration(iotClient); var i = 0; _sendTelemetry = true; var telemetryGenerator = new RandomTelemetry(); while (i++ < 100 && _sendTelemetry) { Console.WriteLine("DeviceClient SendEventAsync."); #if true foreach (var line in telemetryGenerator.GenerateTelemetryLines()) { var message = new Message(Encoding.UTF8.GetBytes(line)); message.ContentType = "application/JSON"; message.ContentEncoding = "utf-8"; Console.WriteLine($"Sending telemetry...{line}"); await iotClient.SendEventAsync(message).ConfigureAwait(false); await Task.Delay(1000 * 3); } #else var body = telemetryGenerator.GenerateTelemetry(); var message = new Message(Encoding.UTF8.GetBytes(body)); message.ContentType = "application/JSON"; message.ContentEncoding = "utf-8"; await iotClient.SendEventAsync(message).ConfigureAwait(false); await Task.Delay(1000 * 3); #endif } Console.WriteLine("DeviceClient CloseAsync."); await iotClient.CloseAsync().ConfigureAwait(false); } }
private async Task SendTelemetryAsync(DeviceClient iotClient) { using (iotClient) { Console.WriteLine("DeviceClient OpenAsync."); await iotClient.OpenAsync().ConfigureAwait(false); Console.WriteLine("Receiving cloud configuration..."); await GetCloudConfiguration(iotClient); var i = 0; _sendTelemetry = true; var telemetryGenerator = new RandomTelemetry(new TelemetryDataFormatter()); while (i++ < 100 && _sendTelemetry) { Console.WriteLine("DeviceClient SendEventAsync."); foreach (var line in telemetryGenerator.GenerateTelemetryLines()) { var message = new Message(Encoding.UTF8.GetBytes(line)); message.ContentType = "application/JSON"; message.ContentEncoding = "utf-8"; Console.WriteLine($"Sending telemetry...{line}"); if (new Random().Next(1, 100) >= 50) { Console.WriteLine($"** Updating Reported Property..."); var property = new { reported_temperature = new Random().Next(1, 50) }; await iotClient.UpdateReportedPropertiesAsync(new TwinCollection(JsonConvert.SerializeObject(property))); } await iotClient.SendEventAsync(message).ConfigureAwait(false); await Task.Delay(1000 * 3); } } Console.WriteLine("DeviceClient CloseAsync."); await iotClient.CloseAsync().ConfigureAwait(false); } }