|
@@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
|
import org.hswebframework.ezorm.core.ValueCodec;
|
|
import org.hswebframework.ezorm.core.ValueCodec;
|
|
|
import org.jetlinks.core.message.ChildDeviceMessage;
|
|
import org.jetlinks.core.message.ChildDeviceMessage;
|
|
|
|
|
+import org.jetlinks.core.message.DeviceMessage;
|
|
|
import org.jetlinks.core.message.MessageType;
|
|
import org.jetlinks.core.message.MessageType;
|
|
|
import org.jetlinks.core.message.function.FunctionInvokeMessage;
|
|
import org.jetlinks.core.message.function.FunctionInvokeMessage;
|
|
|
import org.jetlinks.core.message.property.ReadPropertyMessage;
|
|
import org.jetlinks.core.message.property.ReadPropertyMessage;
|
|
|
import org.jetlinks.core.message.property.WritePropertyMessage;
|
|
import org.jetlinks.core.message.property.WritePropertyMessage;
|
|
|
|
|
+import org.jetlinks.core.message.state.DeviceStateCheckMessage;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author lifang
|
|
* @author lifang
|
|
@@ -26,7 +28,10 @@ public class MessageValueCodec implements ValueCodec<Object, Object> {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Object decode(Object data) {
|
|
public Object decode(Object data) {
|
|
|
- JSONObject jsonObject = JSON.parseObject(String.valueOf(data));
|
|
|
|
|
|
|
+ return decode(JSON.parseObject(String.valueOf(data)));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private DeviceMessage decode(JSONObject jsonObject ){
|
|
|
Object msgType = jsonObject.get("messageType");
|
|
Object msgType = jsonObject.get("messageType");
|
|
|
if(MessageType.WRITE_PROPERTY.name().equals(msgType)){
|
|
if(MessageType.WRITE_PROPERTY.name().equals(msgType)){
|
|
|
return jsonObject.toJavaObject(WritePropertyMessage.class);
|
|
return jsonObject.toJavaObject(WritePropertyMessage.class);
|
|
@@ -37,8 +42,12 @@ public class MessageValueCodec implements ValueCodec<Object, Object> {
|
|
|
if(MessageType.INVOKE_FUNCTION.name().equals(msgType)){
|
|
if(MessageType.INVOKE_FUNCTION.name().equals(msgType)){
|
|
|
return jsonObject.toJavaObject(FunctionInvokeMessage.class);
|
|
return jsonObject.toJavaObject(FunctionInvokeMessage.class);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (MessageType.STATE_CHECK.name().equals(msgType)) {
|
|
|
|
|
+ return jsonObject.toJavaObject(DeviceStateCheckMessage.class);
|
|
|
|
|
+ }
|
|
|
if(MessageType.CHILD.name().equals(msgType)){
|
|
if(MessageType.CHILD.name().equals(msgType)){
|
|
|
- return jsonObject.toJavaObject(ChildDeviceMessage.class);
|
|
|
|
|
|
|
+ JSONObject childDeviceMessage = (JSONObject) jsonObject.get("childDeviceMessage");
|
|
|
|
|
+ return ChildDeviceMessage.create(String.valueOf(jsonObject.get("deviceId")), this.decode(childDeviceMessage));
|
|
|
}
|
|
}
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|