From 598c3f5f5a7116575de24df5b7aed0a5686d479b Mon Sep 17 00:00:00 2001 From: liujq Date: Tue, 13 Dec 2022 17:59:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A03.0=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E5=8C=85=E4=BA=8B=E4=BB=B6=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../official/binary/BinaryEventMessage.java | 46 +++++++++++++++++++ .../official/binary/BinaryMessageType.java | 5 +- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/jetlinks/protocol/official/binary/BinaryEventMessage.java 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;