Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }