private async Task SendTemperatureTelemetryAsync(string componentName, CancellationToken cancellationToken)
        {
            const string telemetryName      = "temperature";
            double       currentTemperature = _temperature[componentName];

            using Message msg = PnpConvention.CreateMessage(telemetryName, currentTemperature, componentName);

            await _deviceClient.SendEventAsync(msg, cancellationToken);

            _logger.LogDebug($"Telemetry: Sent - component=\"{componentName}\", {{ \"{telemetryName}\": {currentTemperature} }} in °C.");

            if (_temperatureReadingsDateTimeOffset.ContainsKey(componentName))
            {
                _temperatureReadingsDateTimeOffset[componentName].TryAdd(DateTimeOffset.UtcNow, currentTemperature);
            }
            else
            {
                _temperatureReadingsDateTimeOffset.TryAdd(
                    componentName,
                    new Dictionary <DateTimeOffset, double>
                {
                    { DateTimeOffset.UtcNow, currentTemperature },
                });
            }
        }
        // Send working set of device memory over telemetry.
        private async Task SendDeviceMemoryAsync(CancellationToken cancellationToken)
        {
            const string workingSetName = "workingSet";

            long workingSet = Process.GetCurrentProcess().PrivateMemorySize64 / 1024;

            var telemetry = new Dictionary <string, object>
            {
                { workingSetName, workingSet },
            };

            using Message msg = PnpConvention.CreateMessage(telemetry);

            await _deviceClient.SendEventAsync(msg, cancellationToken);

            _logger.LogDebug($"Telemetry: Sent - {JsonConvert.SerializeObject(telemetry)} in KB.");
        }
Exemple #3
0
        private async static void SendTelemetry(double temperature, string telemetryName, string componentName)
        {
            Message message;

            if (telemetryName == "temperature")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_temperature} }}";
                message = PnpConvention.CreateMessage(telemetryName, pt_temperature, componentName);
                await deviceClient.SendEventAsync(message);
            }
            if (telemetryName == "humidity")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_humidity} }}";
                message = PnpConvention.CreateMessage(telemetryName, pt_humidity, componentName);
                await deviceClient.SendEventAsync(message);
            }

            if (telemetryName == "inductance")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_humidity} }}";
                message = PnpConvention.CreateMessage(telemetryName, induc, componentName);
                await deviceClient.SendEventAsync(message);
            }

            if (telemetryName == "acceleration")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_humidity} }}";
                message = PnpConvention.CreateMessage(telemetryName, acceleration, componentName);
                await deviceClient.SendEventAsync(message);
            }

            if (telemetryName == "angularrate")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_humidity} }}";
                message = PnpConvention.CreateMessage(telemetryName, angularrate, componentName);
                await deviceClient.SendEventAsync(message);
            }

            if (telemetryName == "workingSet")
            {
                //telemetryPayload = $"{{ \"{telemetryName}\": {pt_humidity} }}";
                message = PnpConvention.CreateMessage(telemetryName, workingsetsize);
                await deviceClient.SendEventAsync(message);
            }
        }
Exemple #4
0
 private static async void SendTelemetry2(object v1, string telemetryName, string componentName)
 {
     var message = PnpConvention.CreateMessage(telemetryName, v1, componentName);
     await deviceClient.SendEventAsync(message);
 }