diff --git a/src/main/java/org/jetlinks/protocol/official/binary/BinaryEventMessage.java b/src/main/java/org/jetlinks/protocol/official/binary/BinaryEventMessage.java new file mode 100644 index 0000000..57bec13 --- /dev/null +++ b/src/main/java/org/jetlinks/protocol/official/binary/BinaryEventMessage.java @@ -0,0 +1,46 @@ +package org.jetlinks.protocol.official.binary; + +import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import org.jetlinks.core.message.event.EventMessage; + + +/** + * @since 1.0 + */ +@AllArgsConstructor +@NoArgsConstructor +public class BinaryEventMessage implements BinaryMessage { + + @Override + public BinaryMessageType getType() { + return BinaryMessageType.event; + } + + private EventMessage message; + + @Override + public void read(ByteBuf buf) { + message = new EventMessage(); + message.setEvent((String) DataType.STRING.read(buf)); + message.setData(DataType.OBJECT.read(buf)); + } + + @Override + public void write(ByteBuf buf) { + DataType.STRING.write(buf,message.getEvent()); + DataType.OBJECT.write(buf, message.getData()); + } + + @Override + public void setMessage(EventMessage message) { + this.message = message; + } + + @Override + public EventMessage getMessage() { + return message; + } + +} \ No newline at end of file diff --git a/src/main/java/org/jetlinks/protocol/official/binary/BinaryMessageType.java b/src/main/java/org/jetlinks/protocol/official/binary/BinaryMessageType.java index cdc1104..9f1fbce 100644 --- a/src/main/java/org/jetlinks/protocol/official/binary/BinaryMessageType.java +++ b/src/main/java/org/jetlinks/protocol/official/binary/BinaryMessageType.java @@ -8,6 +8,7 @@ import org.jetlinks.core.message.AcknowledgeDeviceMessage; import org.jetlinks.core.message.DeviceMessage; import org.jetlinks.core.message.DeviceOnlineMessage; import org.jetlinks.core.message.HeaderKey; +import org.jetlinks.core.message.event.EventMessage; import org.jetlinks.core.message.function.FunctionInvokeMessage; import org.jetlinks.core.message.function.FunctionInvokeMessageReply; import org.jetlinks.core.message.property.*; @@ -41,7 +42,9 @@ public enum BinaryMessageType { function(FunctionInvokeMessage.class, BinaryFunctionInvokeMessage::new), - functionReply(FunctionInvokeMessageReply.class, BinaryFunctionInvokeMessageReply::new); + functionReply(FunctionInvokeMessageReply.class, BinaryFunctionInvokeMessageReply::new), + + event(EventMessage.class, BinaryEventMessage::new); private final Class forDevice;