From 447d7b70fd972ab1bb98544093bd70b9335e75ae Mon Sep 17 00:00:00 2001 From: Martin Hustoles <martin.hustoles@student.reutlingen-university.de> Date: Wed, 8 Nov 2023 09:30:31 +0100 Subject: [PATCH] added further implementation --- CPClient_main.txt | 10 +++------- pom.xml | 5 +++++ src/main/java/cp/CPCommandMsg.java | 25 ++++++++++++++++++++++++- src/main/java/cp/CPProtocol.java | 26 +++++++++++++++++++++++++- 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/CPClient_main.txt b/CPClient_main.txt index f0f86aa..41d578f 100644 --- a/CPClient_main.txt +++ b/CPClient_main.txt @@ -16,16 +16,12 @@ participant PhyMsg participant CPMsg participant CPCookieRequestMsg - participant CPCookieResponseMsg -participant Protocol #To-Do #Sort into Blocks #Add Datagram Socket -participant [ - [->CPClient:main activate CPClient @@ -104,13 +100,13 @@ CPProtocol->CPMsg:<<create>> activate CPMsg CPMsg-->CPProtocol: deactivate CPMsg -CPProtocol->PhyProtocol:receive +CPProtocol->PhyProtocol:receive() activate PhyProtocol PhyProtocol->DatagramSocket:setSoTimeout() activate DatagramSocket DatagramSocket-->PhyProtocol: deactivate DatagramSocket -PhyProtocol->PhyProtocol:receive +PhyProtocol->PhyProtocol:receive() activate PhyProtocol PhyProtocol->DatagramPacket:<<create>> activate DatagramPacket @@ -169,7 +165,7 @@ deactivate CPProtocol CPProtocol-->CPClient: deactivate CPProtocol -CPClient->CPProtocol:receive +CPClient->CPProtocol:receive() activate CPProtocol CPProtocol-->CPClient: deactivate CPProtocol diff --git a/pom.xml b/pom.xml index 0a62eb6..2c1b211 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,11 @@ <artifactId>junit-jupiter-engine</artifactId> <version>5.9.0</version> </dependency> + <dependency> + <groupId>net.bytebuddy</groupId> + <artifactId>byte-buddy</artifactId> + <version>1.14.6</version> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/src/main/java/cp/CPCommandMsg.java b/src/main/java/cp/CPCommandMsg.java index 8b615dc..20a4fb7 100644 --- a/src/main/java/cp/CPCommandMsg.java +++ b/src/main/java/cp/CPCommandMsg.java @@ -1,2 +1,25 @@ -package cp;public class CPCommandMsg { +package cp; + +import java.util.zip.CRC32; + +public class CPCommandMsg extends CPMsg{ + + private String cmd; + private long crc; + protected static final String HEADER = "command"; + + public CPCommandMsg(String cookie, String cmd){ + this.cmd = cmd; + this.crc = calcCRC(cookie, cmd); + } + + public long getCRC(){ + return this.crc; + } + + private long calcCRC(String cookie, String cmd) { + CRC32 crc = new CRC32(); + //crc.update(); + return 0; + } } diff --git a/src/main/java/cp/CPProtocol.java b/src/main/java/cp/CPProtocol.java index fc58dad..3a075e2 100644 --- a/src/main/java/cp/CPProtocol.java +++ b/src/main/java/cp/CPProtocol.java @@ -44,12 +44,36 @@ public class CPProtocol extends Protocol { requestCookie(0); } + //1.2: 1 a + if(cookie != null) { + //1.2: 1 b + CPCommandMsg cmdMsg = new CPCommandMsg(cookie, s); + + //1.2: 1 c + PhyProto.send(s, this.PhyConfig); + } } @Override public Msg receive() throws IOException { - return null; + + //1.2: 2 a + Msg in = this.PhyProto.receive(CP_TIMEOUT); + + //1.2: 2 b + CPMsg cpmsg = new CPMsg(); + cpmsg.create(in.getData()); + + try { + //1.2: 2 b + in = cpmsg.parse(in.getData()); + } catch (Exception e) { + //Discard Message + return null; + } + + return in; } -- GitLab