Ver código fonte

ADD:添加ota上报

荭琪枫 2 anos atrás
pai
commit
899fa2b677

+ 12 - 0
iot-components/iot-component-server/src/main/java/cc/iotkit/comps/DeviceMessageHandler.java

@@ -131,6 +131,13 @@ public class DeviceMessageHandler implements IMessageHandler {
                         doAction(action);
                         onResult.accept(new ReceiveResult(message.getProductKey(), message.getDeviceName(), message));
                         return;
+                    case "ota":
+                        //上报数据
+                        DeviceMessage otaMessage = MessageParser.parse(new DeviceMessage(), data);
+                        doOta(otaMessage);
+                        doAction(action);
+                        onResult.accept(new ReceiveResult(otaMessage.getProductKey(), otaMessage.getDeviceName(), otaMessage));
+                        return;
                 }
 
             } catch (Throwable e) {
@@ -180,6 +187,11 @@ public class DeviceMessageHandler implements IMessageHandler {
         }
     }
 
+    private void doOta(DeviceMessage message) {
+        ThingModelMessage thingModelMessage = converter.decode(message);
+        deviceBehaviourService.reportMessage(thingModelMessage);
+    }
+
     private void doReport(DeviceMessage message) {
         ThingModelMessage thingModelMessage = converter.decode(message);
 

+ 7 - 2
iot-components/iot-mqtt-component/src/main/java/cc/iotkit/comp/mqtt/MqttVerticle.java

@@ -155,8 +155,13 @@ public class MqttVerticle extends AbstractVerticle {
 
                 try {
                     Map<String, Object> head = new HashMap<>();
-                    head.put("topic", message.topicName());
-                    executor.onReceive(head, "", payload);
+                    String topic = message.topicName();
+                    head.put("topic", topic);
+                    if (topic.toLowerCase().contains("ota")) {
+                        executor.onReceive(head, "ota", payload);
+                    } else {
+                        executor.onReceive(head, "", payload);
+                    }
                     if (message.qosLevel() == MqttQoS.AT_LEAST_ONCE) {
                         endpoint.publishAcknowledge(message.messageId());
                     } else if (message.qosLevel() == MqttQoS.EXACTLY_ONCE) {

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
iot-components/iot-mqtt-component/src/main/resources/component.js


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff