|
|
@@ -6,6 +6,7 @@ import lombok.Data;
|
|
|
import org.hswebframework.ezorm.core.ValueCodec;
|
|
|
import org.jetlinks.core.message.ChildDeviceMessage;
|
|
|
import org.jetlinks.core.message.DeviceMessage;
|
|
|
+import org.jetlinks.core.message.Message;
|
|
|
import org.jetlinks.core.message.MessageType;
|
|
|
import org.jetlinks.core.message.function.FunctionInvokeMessage;
|
|
|
import org.jetlinks.core.message.property.ReadPropertyMessage;
|
|
|
@@ -31,24 +32,30 @@ public class MessageValueCodec implements ValueCodec<Object, Object> {
|
|
|
return decode(JSON.parseObject(String.valueOf(data)));
|
|
|
}
|
|
|
|
|
|
- private DeviceMessage decode(JSONObject jsonObject ){
|
|
|
+ private Message decode(JSONObject jsonObject ){
|
|
|
Object msgType = jsonObject.get("messageType");
|
|
|
- if(MessageType.WRITE_PROPERTY.name().equals(msgType)){
|
|
|
- return jsonObject.toJavaObject(WritePropertyMessage.class);
|
|
|
- }
|
|
|
- if(MessageType.READ_PROPERTY.name().equals(msgType)){
|
|
|
- return jsonObject.toJavaObject(ReadPropertyMessage.class);
|
|
|
- }
|
|
|
- if(MessageType.INVOKE_FUNCTION.name().equals(msgType)){
|
|
|
- return jsonObject.toJavaObject(FunctionInvokeMessage.class);
|
|
|
- }
|
|
|
- if (MessageType.STATE_CHECK.name().equals(msgType)) {
|
|
|
- return jsonObject.toJavaObject(DeviceStateCheckMessage.class);
|
|
|
- }
|
|
|
if(MessageType.CHILD.name().equals(msgType)){
|
|
|
JSONObject childDeviceMessage = (JSONObject) jsonObject.get("childDeviceMessage");
|
|
|
- return ChildDeviceMessage.create(String.valueOf(jsonObject.get("deviceId")), this.decode(childDeviceMessage));
|
|
|
+ return ChildDeviceMessage.create(String.valueOf(jsonObject.get("deviceId")), (DeviceMessage) this.decode(childDeviceMessage));
|
|
|
}
|
|
|
- return null;
|
|
|
+ MessageType messageType = MessageType.of(String.valueOf(msgType)).orElse(MessageType.UNKNOWN);
|
|
|
+ return jsonObject.toJavaObject(messageType.getNewInstance().get().getClass());
|
|
|
+// if(MessageType.WRITE_PROPERTY.name().equals(msgType)){
|
|
|
+// return jsonObject.toJavaObject(WritePropertyMessage.class);
|
|
|
+// }
|
|
|
+// if(MessageType.READ_PROPERTY.name().equals(msgType)){
|
|
|
+// return jsonObject.toJavaObject(ReadPropertyMessage.class);
|
|
|
+// }
|
|
|
+// if(MessageType.INVOKE_FUNCTION.name().equals(msgType)){
|
|
|
+// return jsonObject.toJavaObject(FunctionInvokeMessage.class);
|
|
|
+// }
|
|
|
+// if (MessageType.STATE_CHECK.name().equals(msgType)) {
|
|
|
+// return jsonObject.toJavaObject(DeviceStateCheckMessage.class);
|
|
|
+// }
|
|
|
+// if(MessageType.READ_PROPERTY_REPLY.name().equals(msgType)){
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// return null;
|
|
|
}
|
|
|
}
|