Не могли бы вы помочь мне с кодом Java, который я использую в приложении-функции?
IoT Hub, встроенная конечная точка которого используется в качестве IoT Hub (концентратора событий) для приложения-функции, получает телеметрию от устройства. С помощью следующей функции я извлекаю значения из полученного сообщения, обрабатываю их и помещаю в CosmoDsB, как только конечная точка сборки IoT Hub получила сообщение от устройства!
Основная проблема заключается в том, что мне нужно отправлять каждое обработанное значение переменной "totalLevel" обратно на устройство через концентратор IoT.
Еще раз: вся структура представляет собой «OPC-сервер (MQTT)» <- / -> «IoT Hub» - «Конечная точка сборки IoT Hub» - «Функция APP» -> обратно на устройство.
C2D
Я не нашел ни одного простого примера, как сделать это на Java в дополнение к
существующая функция. Кто-нибудь знает какой-нибудь простой способ сделать это?
Я нашел эти примеры, но у меня недостаточно навыков для их модификации.
https://docs.microsoft.com/en-US/azure/iot-hub/quickstart-send-telemetry-java
https://docs.microsoft.com/en-US/azure/iot-hub/iot-hub-java-java-c2d
заранее спасибо
module.exports = function (context, IoTHubMessages) {
context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);
IoTHubMessages.forEach(message => {
context.log(`Processed message: ${message}`);
});
context.done();
};
module.exports = function (context, IoTHubMessages) {
context.log(`JavaScript eventhub trigger function called for message array:
${IoTHubMessages}`);
var count = 0;
var totalLevel = 0.0;
var totalHumidity = 0.0;
var deviceId = "";
IoTHubMessages.forEach(message => {
context.log(`Processed message: ${message}`);
count++;
totalLevel = message.L1 + message.L2 + message.L3;
RestartPLC = message.L4;
deviceId = message.deviceId;
});
var output = {
"deviceId": deviceId,
"PLC_Restart_state": RestartPLC,
// "measurementsCount": count,
"gemessener Gesamtabfluss, mm": totalLevel
//"averageHumidity": totalHumidity/count
};
context.log(`Output content: ${output}`);
context.bindings.outputDocument = output;
context.done();
};