From f08fbeae7fba51e090ec12df0d25a9d08db9413c Mon Sep 17 00:00:00 2001 From: Peter Kohout Date: Sat, 17 Dec 2022 20:42:17 +0100 Subject: [PATCH] moved further code around. --- build.gradle | 2 +- .../BufferDecryptor.java | 5 +- .../BufferEncryptor.java | 5 +- .../rcll/{llsf_utils => llsf_comm}/Key.java | 2 +- .../KeyConverter.java | 4 +- .../com/rcll/llsf_comm/ProtobufMessage.java | 1 - .../rcll/llsf_comm/ProtobufTcpConnection.java | 1 - .../ProtobufUpdBroadcastConnection.java | 3 - .../java/com/rcll/llsf_tools/FakeRobot.java | 406 ------------------ .../com/rcll/llsf_tools/ReportMachine.java | 200 --------- .../com/rcll/llsf_utils/JavaTypeConvert.java | 104 ----- .../com/rcll/protobuf_lib/ProtobufServer.java | 2 +- .../protobuf_lib/RobotMessageRegister.java | 2 +- .../com/rcll/refbox/ExplorationClient.java | 2 +- .../java/com/rcll/refbox/MachineClient.java | 2 +- .../NanoSecondsTimestampProvider.java | 4 +- .../java/com/rcll/refbox/RobotClient.java | 3 +- 17 files changed, 15 insertions(+), 733 deletions(-) rename src/main/java/com/rcll/{llsf_encryption => llsf_comm}/BufferDecryptor.java (97%) rename src/main/java/com/rcll/{llsf_encryption => llsf_comm}/BufferEncryptor.java (97%) rename src/main/java/com/rcll/{llsf_utils => llsf_comm}/Key.java (84%) rename src/main/java/com/rcll/{llsf_encryption => llsf_comm}/KeyConverter.java (96%) delete mode 100755 src/main/java/com/rcll/llsf_tools/FakeRobot.java delete mode 100755 src/main/java/com/rcll/llsf_tools/ReportMachine.java delete mode 100755 src/main/java/com/rcll/llsf_utils/JavaTypeConvert.java rename src/main/java/com/rcll/{llsf_utils => refbox}/NanoSecondsTimestampProvider.java (91%) diff --git a/build.gradle b/build.gradle index 4c86f45..e49eb1b 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { group = 'io.github.robocup-logistics' archivesBaseName = "java-sdk" -version = '0.1.11.1' +version = '0.1.11.2' description = "" diff --git a/src/main/java/com/rcll/llsf_encryption/BufferDecryptor.java b/src/main/java/com/rcll/llsf_comm/BufferDecryptor.java similarity index 97% rename from src/main/java/com/rcll/llsf_encryption/BufferDecryptor.java rename to src/main/java/com/rcll/llsf_comm/BufferDecryptor.java index edafb4b..5759abb 100755 --- a/src/main/java/com/rcll/llsf_encryption/BufferDecryptor.java +++ b/src/main/java/com/rcll/llsf_comm/BufferDecryptor.java @@ -15,9 +15,8 @@ * */ -package com.rcll.llsf_encryption; +package com.rcll.llsf_comm; -import com.rcll.llsf_comm.ProtobufUpdBroadcastConnection; import com.rcll.llsf_exceptions.UnknownEncryptionMethodException; import javax.crypto.BadPaddingException; @@ -35,7 +34,7 @@ /** * The BufferDecryptor is responsible for decrypting incoming messages. */ -public class BufferDecryptor { +class BufferDecryptor { private byte[] keyBytes; diff --git a/src/main/java/com/rcll/llsf_encryption/BufferEncryptor.java b/src/main/java/com/rcll/llsf_comm/BufferEncryptor.java similarity index 97% rename from src/main/java/com/rcll/llsf_encryption/BufferEncryptor.java rename to src/main/java/com/rcll/llsf_comm/BufferEncryptor.java index ab9fba4..2a64a12 100755 --- a/src/main/java/com/rcll/llsf_encryption/BufferEncryptor.java +++ b/src/main/java/com/rcll/llsf_comm/BufferEncryptor.java @@ -1,6 +1,5 @@ -package com.rcll.llsf_encryption; +package com.rcll.llsf_comm; -import com.rcll.llsf_comm.ProtobufMessage; import com.rcll.llsf_exceptions.UnknownEncryptionMethodException; import javax.crypto.BadPaddingException; @@ -20,7 +19,7 @@ /** * The BufferEncryptor is responsible for encrypting messages. */ -public class BufferEncryptor { +class BufferEncryptor { private int cipher; diff --git a/src/main/java/com/rcll/llsf_utils/Key.java b/src/main/java/com/rcll/llsf_comm/Key.java similarity index 84% rename from src/main/java/com/rcll/llsf_utils/Key.java rename to src/main/java/com/rcll/llsf_comm/Key.java index 721515e..edeb792 100755 --- a/src/main/java/com/rcll/llsf_utils/Key.java +++ b/src/main/java/com/rcll/llsf_comm/Key.java @@ -1,4 +1,4 @@ -package com.rcll.llsf_utils; +package com.rcll.llsf_comm; public class Key { diff --git a/src/main/java/com/rcll/llsf_encryption/KeyConverter.java b/src/main/java/com/rcll/llsf_comm/KeyConverter.java similarity index 96% rename from src/main/java/com/rcll/llsf_encryption/KeyConverter.java rename to src/main/java/com/rcll/llsf_comm/KeyConverter.java index 2fb0af6..f305dbd 100755 --- a/src/main/java/com/rcll/llsf_encryption/KeyConverter.java +++ b/src/main/java/com/rcll/llsf_comm/KeyConverter.java @@ -1,4 +1,4 @@ -package com.rcll.llsf_encryption; +package com.rcll.llsf_comm; import java.security.MessageDigest; @@ -7,7 +7,7 @@ * used by the algorithm. Besides it creates the first initialization vector. * */ -public class KeyConverter { +class KeyConverter { /** * Thanks go to Ola Bini for releasing this source on his blog. The source was obtained from diff --git a/src/main/java/com/rcll/llsf_comm/ProtobufMessage.java b/src/main/java/com/rcll/llsf_comm/ProtobufMessage.java index 658f1a1..9984bee 100755 --- a/src/main/java/com/rcll/llsf_comm/ProtobufMessage.java +++ b/src/main/java/com/rcll/llsf_comm/ProtobufMessage.java @@ -1,7 +1,6 @@ package com.rcll.llsf_comm; import com.google.protobuf.GeneratedMessageV3; -import com.rcll.llsf_encryption.BufferEncryptor; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; diff --git a/src/main/java/com/rcll/llsf_comm/ProtobufTcpConnection.java b/src/main/java/com/rcll/llsf_comm/ProtobufTcpConnection.java index babb534..61593e0 100755 --- a/src/main/java/com/rcll/llsf_comm/ProtobufTcpConnection.java +++ b/src/main/java/com/rcll/llsf_comm/ProtobufTcpConnection.java @@ -5,7 +5,6 @@ import com.google.protobuf.GeneratedMessageV3; import com.rcll.llsf_exceptions.EncryptedStreamMessageException; import com.rcll.llsf_exceptions.UnknownProtocolVersionException; -import com.rcll.llsf_utils.Key; import java.io.IOException; import java.lang.reflect.InvocationTargetException; diff --git a/src/main/java/com/rcll/llsf_comm/ProtobufUpdBroadcastConnection.java b/src/main/java/com/rcll/llsf_comm/ProtobufUpdBroadcastConnection.java index d7607c1..a13e890 100755 --- a/src/main/java/com/rcll/llsf_comm/ProtobufUpdBroadcastConnection.java +++ b/src/main/java/com/rcll/llsf_comm/ProtobufUpdBroadcastConnection.java @@ -3,10 +3,7 @@ import com.google.protobuf.Descriptors.EnumDescriptor; import com.google.protobuf.GeneratedMessageV3; import lombok.extern.apachecommons.CommonsLog; -import com.rcll.llsf_encryption.BufferDecryptor; -import com.rcll.llsf_encryption.BufferEncryptor; import com.rcll.llsf_exceptions.UnknownProtocolVersionException; -import com.rcll.llsf_utils.Key; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; diff --git a/src/main/java/com/rcll/llsf_tools/FakeRobot.java b/src/main/java/com/rcll/llsf_tools/FakeRobot.java deleted file mode 100755 index f9d66b2..0000000 --- a/src/main/java/com/rcll/llsf_tools/FakeRobot.java +++ /dev/null @@ -1,406 +0,0 @@ -package com.rcll.llsf_tools; - -import com.google.protobuf.GeneratedMessageV3; -import com.google.protobuf.InvalidProtocolBufferException; -import com.rcll.llsf_comm.ProtobufUpdBroadcastConnection; -import com.rcll.llsf_comm.ProtobufMessage; -import com.rcll.llsf_comm.ProtobufMessageHandler; -import org.robocup_logistics.llsf_msgs.TeamProtos.*; -import org.robocup_logistics.llsf_msgs.BeaconSignalProtos.*; -import org.robocup_logistics.llsf_msgs.OrderInfoProtos.*; -import org.robocup_logistics.llsf_msgs.GameStateProtos.*; -import org.robocup_logistics.llsf_msgs.VersionProtos.*; -import org.robocup_logistics.llsf_msgs.ExplorationInfoProtos.*; -import org.robocup_logistics.llsf_msgs.MachineInfoProtos.*; -import org.robocup_logistics.llsf_msgs.MachineReportProtos.*; -import org.robocup_logistics.llsf_msgs.RobotInfoProtos.*; -import org.robocup_logistics.llsf_msgs.TimeProtos.*; -import org.robocup_logistics.llsf_msgs.Pose2DProtos.*; - -import com.rcll.llsf_utils.NanoSecondsTimestampProvider; - -import java.io.IOException; -import java.net.Inet4Address; -import java.net.UnknownHostException; -import java.nio.ByteBuffer; - -public class FakeRobot { - - private static String ROBOT_NAME; - private static String TEAM_NAME; - private static Team TEAM_COLOR; - private static String ENCRYPTION_KEY; - - private static String HOST; - private static boolean local = true; - - private final static int SENDPORT = 4445; - private final static int RECVPORT = 4444; - - private final static int CYAN_SENDPORT = 4446; - private final static int CYAN_RECVPORT = 4441; - - private final static int MAGENTA_SENDPORT = 4447; - private final static int MAGENTA_RECVPORT = 4442; - - private static ProtobufUpdBroadcastConnection peerPublic; - private static ProtobufUpdBroadcastConnection peerPrivate; - - private static boolean crypto_setup = false; - - public static void main(String[] args) { - - if (args.length < 3) { - System.out.println("Usage: FakeRobot.jar [-h (only for a remote refbox)]"); - System.exit(1); - } - - ROBOT_NAME = args[0]; - TEAM_NAME = args[1]; - ENCRYPTION_KEY = args[2]; - TEAM_COLOR = Team.CYAN; - - if (args.length > 3) { - if (args[3].equals("-h")) { - HOST = args[4]; - local = false; - } else { - System.out.println("Usage: FakeRobot.jar [-h (only for a remote refbox)]"); - System.exit(1); - } - } else { - try { - HOST = Inet4Address.getLocalHost().getHostAddress(); - if (!HOST.endsWith("255")) { - String[] address = HOST.split("\\."); - HOST = ""; - for (int i = 0; i <= 2; i++) { - HOST += address[i] + "."; - } - HOST += "255"; - } - local = true; - } catch (UnknownHostException e) { - e.printStackTrace(); - System.exit(1); - } - } - - System.out.println("Using host " + HOST); - - System.out.println("Using team color cyan for BeaconSignals"); - - peerPublic = new ProtobufUpdBroadcastConnection(HOST, local ? SENDPORT : RECVPORT, RECVPORT); - try { - peerPublic.start("FakeRobot"); - } catch (IOException e) { - e.printStackTrace(); - } - - peerPublic.add_message(BeaconSignal.class); - peerPublic.add_message(OrderInfo.class); - peerPublic.add_message(GameState.class); - peerPublic.add_message(VersionInfo.class); - peerPublic.add_message(ExplorationInfo.class); - peerPublic.add_message(MachineInfo.class); - peerPublic.add_message(MachineReportInfo.class); - peerPublic.add_message(RobotInfo.class); - - Handler handler = new Handler(); - peerPublic.register_handler(handler); - - BeaconThread thread = new BeaconThread(); - thread.start(); - - } - - private static class BeaconThread extends Thread { - - public void run() { - while(true) { - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - NanoSecondsTimestampProvider nstp = new NanoSecondsTimestampProvider(); - - long ms = System.currentTimeMillis(); - long ns = nstp.currentNanoSecondsTimestamp(); - - int sec = (int) (ms / 1000); - long nsec = ns - (ms * 1000000L); - - Time t = Time.newBuilder().setSec(sec).setNsec(nsec).build(); - BeaconSignal bs = BeaconSignal.newBuilder().setTime(t).setSeq(1).setNumber(1).setPeerName(ROBOT_NAME).setTeamName(TEAM_NAME).setTeamColor(TEAM_COLOR).build(); - - ProtobufMessage msg = new ProtobufMessage(2000, 1, bs); - - if (crypto_setup) { - peerPrivate.enqueue(msg); - } else { - peerPublic.enqueue(msg); - } - - } - } - - } - - private static class Handler implements ProtobufMessageHandler { - - public void handle_message(ByteBuffer in_msg, GeneratedMessageV3 msg) { - - if (msg instanceof BeaconSignal) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - BeaconSignal bs; - Time t; - - try { - bs = BeaconSignal.parseFrom(array); - t = bs.getTime(); - System.out.printf("Detected robot: %d %s:%s (seq %d)\n", bs.getNumber(), bs.getTeamName(), bs.getPeerName(), t.getSec()); - - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof OrderInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - OrderInfo info; - - try { - info = OrderInfo.parseFrom(array); - System.out.println("ProductOrder info received:"); - - for (int i = 0; i < info.getOrdersCount(); i++) { - Order order = info.getOrders(i); - - int begin = order.getDeliveryPeriodBegin(); - int end = order.getDeliveryPeriodEnd(); - - long min_begin = begin / 60; - long sec_begin = begin - min_begin * 60; - long min_end = end / 60; - long sec_end = end - min_end * 60; - - System.out.printf(" %d: %d/%d/%d from %02d:%02d to %02d:%02d at gate %s\n", - order.getId(), order.getQuantityDeliveredCyan(), order.getQuantityDeliveredMagenta(), - order.getQuantityRequested(), min_begin, sec_begin, min_end, sec_end, - order.getDeliveryGate()); - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof GameState) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - GameState state; - Time t; - - try { - state = GameState.parseFrom(array); - t = state.getGameTime(); - - long hour = t.getSec() / 3600; - long min = (t.getSec() - hour * 3600) / 60; - long sec = t.getSec() - hour * 3600 - min * 60; - - System.out.printf("GameState received: %02d:%02d:%02d.%02d %s %s %d:%d points, %s vs. %s\n", - hour, min, sec, t.getNsec() / 1000000, - state.getPhase().toString(), state.getState().toString(), - state.getPointsCyan(), state.getPointsMagenta(), - state.getTeamCyan(), state.getTeamMagenta()); - - if (!crypto_setup) { - crypto_setup = true; - - if (TEAM_NAME.equals(state.getTeamCyan())) { - TEAM_COLOR = Team.CYAN; - } else if (TEAM_NAME.equals(state.getTeamMagenta())) { - TEAM_COLOR = Team.MAGENTA; - } else { - System.out.println("Our team is not set, training game? Disabling crypto."); - crypto_setup = false; - return; - } - - switch (TEAM_COLOR) { - case CYAN: - peerPrivate = new ProtobufUpdBroadcastConnection(HOST, local ? CYAN_SENDPORT : CYAN_RECVPORT, CYAN_RECVPORT, true, 2, ENCRYPTION_KEY); - break; - case MAGENTA: - peerPrivate = new ProtobufUpdBroadcastConnection(HOST, local ? MAGENTA_SENDPORT : MAGENTA_RECVPORT, MAGENTA_RECVPORT, true, 2, ENCRYPTION_KEY); - break; - } - - if (peerPrivate != null) { - try { - peerPrivate.start("FakeRobot1"); - } catch (IOException e) { - e.printStackTrace(); - } - - peerPrivate.add_message(BeaconSignal.class); - peerPrivate.add_message(OrderInfo.class); - peerPrivate.add_message(GameState.class); - peerPrivate.add_message(VersionInfo.class); - peerPrivate.add_message(ExplorationInfo.class); - peerPrivate.add_message(MachineInfo.class); - peerPrivate.add_message(MachineReportInfo.class); - peerPrivate.add_message(RobotInfo.class); - - Handler handler = new Handler(); - peerPrivate.register_handler(handler); - } - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof VersionInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - VersionInfo version; - - try { - version = VersionInfo.parseFrom(array); - System.out.println("VersionInfo received: " + version.getVersionString()); - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof ExplorationInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - ExplorationInfo exploration; - - try { - exploration = ExplorationInfo.parseFrom(array); - System.out.println("ExplorationInfo received:"); - - for (int i = 0; i < exploration.getSignalsCount(); i++) { - ExplorationSignal signal = exploration.getSignals(i); - System.out.printf(" Machine type %s assignment:", signal.getType()); - - for (int j = 0; j < signal.getLightsCount(); j++) { - LightSpec light = signal.getLights(j); - System.out.printf(" %s=%s", light.getColor().toString(), light.getState().toString()); - } - System.out.printf("\n"); - } - System.out.printf(" --\n"); - - /* - for (int i = 0; i < exploration.getMachinesCount(); i++) { - ExplorationMachine machine = exploration.getMachines(i); - System.out.printf(" Machine %s at (%f, %f, %f)\n", - machine.getName(), machine.getPose().getX(), - machine.getPose().getY(), machine.getPose().getOri()); - } - */ - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof MachineInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - MachineInfo info; - - try { - info = MachineInfo.parseFrom(array); - System.out.println("MachineInfo received:"); - for (int i = 0; i < info.getMachinesCount(); i++) { - Machine machine = info.getMachines(i); - Pose2D pose = machine.getPose(); - - System.out.printf(" %-3s|%2s|%s @ (%f, %f, %f)\n", - machine.getName(), machine.getType().substring(0, 2), - machine.getTeamColor().toString().substring(0, 2), - pose.getX(), pose.getY(), pose.getOri()); - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof MachineReportInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - MachineReportInfo report; - - try { - report = MachineReportInfo.parseFrom(array); - System.out.println("MachineReportInfo received:"); - - if (report.getReportedMachinesCount() > 0) { - System.out.printf(" Reported machines:"); - for (int i = 0; i < report.getReportedMachinesCount(); i++) { - System.out.print(" " + report.getReportedMachines(i)); - } - System.out.printf("\n"); - } else { - System.out.println(" no machines reported, yet"); - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof RobotInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - RobotInfo info; - - try { - info = RobotInfo.parseFrom(array); - System.out.println("Robot info received:"); - - for (int i = 0; i < info.getRobotsCount(); i++) { - Robot r = info.getRobots(i); - Time t = r.getLastSeen(); - - long robotsec = t.getSec(); - long cursec = System.currentTimeMillis() / 1000; - long diff = (int) (cursec - robotsec); - - System.out.printf(" %d %s/%s @ %s: state %s, last seen %d sec ago Maint cyc: %d rem: %f\n", - r.getNumber(), r.getName(), r.getTeam(), r.getHost(), - r.getState().toString().substring(0, 3), - diff, r.getMaintenanceCycles(), r.getMaintenanceTimeRemaining()); - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } - } - - public void connection_lost(IOException e) { - System.out.println("Connection lost"); - } - - public void timeout() {} - } - -} - diff --git a/src/main/java/com/rcll/llsf_tools/ReportMachine.java b/src/main/java/com/rcll/llsf_tools/ReportMachine.java deleted file mode 100755 index 9b919be..0000000 --- a/src/main/java/com/rcll/llsf_tools/ReportMachine.java +++ /dev/null @@ -1,200 +0,0 @@ -package com.rcll.llsf_tools; - -public class ReportMachine { - /* - - private static String MACHINE_NAME; - private static String MACHINE_TYPE; - private static String TEAM_NAME; - private static Team TEAM_COLOR; - private static String ENCRYPTION_KEY; - - private static String HOST; - private static boolean local = true; - - private final static int SENDPORT = 4445; - private final static int RECVPORT = 4444; - - private final static int CYAN_SENDPORT = 4446; - private final static int CYAN_RECVPORT = 4441; - - private final static int MAGENTA_SENDPORT = 4447; - private final static int MAGENTA_RECVPORT = 4442; - - private static ProtobufBroadcastPeer peerPublic; - private static ProtobufBroadcastPeer peerPrivate; - - private static boolean crypto_setup = false; - - public static void main(String[] args) { - - if (args.length < 4) { - System.out.println("Usage: ReportMachine.jar [-h (only for a remote refbox)]"); - System.exit(1); - } - - MACHINE_NAME = args[0]; - MACHINE_TYPE = args[1]; - TEAM_NAME = args[2]; - ENCRYPTION_KEY = args[3]; - TEAM_COLOR = Team.CYAN; - - if (args.length > 4) { - if (args[4].equals("-h")) { - HOST = args[5]; - local = false; - } else { - System.out.println("Usage: ReportMachine.jar [-h (only for a remote refbox)]"); - System.exit(1); - } - } else { - try { - HOST = Inet4Address.getLocalHost().getHostAddress(); - if (!HOST.endsWith("255")) { - String[] address = HOST.split("\\."); - HOST = ""; - for (int i = 0; i <= 2; i++) { - HOST += address[i] + "."; - } - HOST += "255"; - } - local = true; - } catch (UnknownHostException e) { - e.printStackTrace(); - System.exit(1); - } - } - - System.out.println("Using host " + HOST); - - peerPublic = new ProtobufBroadcastPeer(HOST, local ? SENDPORT : RECVPORT, RECVPORT); - try { - peerPublic.start(); - } catch (IOException e) { - e.printStackTrace(); - } - - peerPublic.add_message(BeaconSignal.class); - peerPublic.add_message(GameState.class); - peerPublic.add_message(MachineReport.class); - peerPublic.add_message(MachineReportInfo.class); - - Handler handler = new Handler(); - peerPublic.register_handler(handler); - - System.out.println("Waiting for BeaconSignal..."); - - } - - private static class Handler implements ProtobufMessageHandler { - - public void handle_message(ByteBuffer in_msg, GeneratedMessage msg) { - - if (msg instanceof BeaconSignal) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - BeaconSignal bs; - - try { - bs = BeaconSignal.parseFrom(array); - - if (crypto_setup) { - if (bs.getTeamName().equals("LLSF") && bs.getPeerName().equals("RefBox")) { - System.out.println("Announcing machine type"); - MachineReportProtos.MachineReportEntry mi = MachineReportProtos.MachineReportEntry.newBuilder().setName(MACHINE_NAME).setType(MACHINE_TYPE).build(); - MachineReport mr = MachineReport.newBuilder().addMachines(mi).setTeamColor(TEAM_COLOR).build(); - ProtobufMessage machineReport = new ProtobufMessage(2000, 61, mr); - peerPrivate.enqueue(machineReport); - } - } - - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof GameState) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - GameState state; - - try { - state = GameState.parseFrom(array); - - if (!crypto_setup) { - crypto_setup = true; - - if (TEAM_NAME.equals(state.getTeamCyan())) { - TEAM_COLOR = Team.CYAN; - } else if (TEAM_NAME.equals(state.getTeamMagenta())) { - TEAM_COLOR = Team.MAGENTA; - } else { - crypto_setup = false; - return; - } - - switch (TEAM_COLOR) { - case CYAN: - peerPrivate = new ProtobufBroadcastPeer(HOST, local ? CYAN_SENDPORT : CYAN_RECVPORT, CYAN_RECVPORT, true, 2, ENCRYPTION_KEY); - break; - case MAGENTA: - peerPrivate = new ProtobufBroadcastPeer(HOST, local ? MAGENTA_SENDPORT : MAGENTA_RECVPORT, MAGENTA_RECVPORT, true, 2, ENCRYPTION_KEY); - break; - } - - if (peerPrivate != null) { - try { - peerPrivate.start(); - } catch (IOException e) { - e.printStackTrace(); - } - - peerPrivate.add_message(BeaconSignal.class); - peerPrivate.add_message(GameState.class); - peerPrivate.add_message(MachineReport.class); - peerPrivate.add_message(MachineReportInfo.class); - - Handler handler = new Handler(); - peerPrivate.register_handler(handler); - } - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } else if (msg instanceof MachineReportInfo) { - - byte[] array = new byte[in_msg.capacity()]; - in_msg.rewind(); - in_msg.get(array); - MachineReportInfo report; - - try { - report = MachineReportInfo.parseFrom(array); - - if (report.getTeamColor() == TEAM_COLOR) { - System.out.printf("Reported machines (%s):", report.getTeamColor().toString()); - for (int i = 0; i < report.getReportedMachinesCount(); i++) { - System.out.print(" " + report.getReportedMachines(i)); - } - System.out.printf("\n"); - } - } catch (InvalidProtocolBufferException e) { - e.printStackTrace(); - } - - } - } - - public void connection_lost(IOException e) { - System.out.println("Connection lost"); - } - - public void timeout() {} - } - */ -} - diff --git a/src/main/java/com/rcll/llsf_utils/JavaTypeConvert.java b/src/main/java/com/rcll/llsf_utils/JavaTypeConvert.java deleted file mode 100755 index 07ef955..0000000 --- a/src/main/java/com/rcll/llsf_utils/JavaTypeConvert.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.rcll.llsf_utils; - -import java.nio.ByteBuffer; - -public class JavaTypeConvert { - - public static short getUnsignedInt8(ByteBuffer data) { - byte bytes = data.get(); - int ints = 0xFF & bytes; - short n = (short) ints; - return n; - } - - public static int getUnsignedInt16(ByteBuffer data) { - byte[] bytes = new byte[2]; - for (int i = 1; i >= 0; i--) { - bytes[i] = data.get(); - } - int[] ints = new int[2]; - for (int i = 0; i < 2; i++) { - ints[i] = 0xFF & bytes[i]; - } - int n = ((int) (ints[0] << 8 - | ints[1])) - & 0xFFFF; //FIXED! 0xFF is too less for uint16_t! - return n; - } - - public static int getUnsignedInt16_BE(ByteBuffer data) { - byte[] bytes = new byte[2]; - for (int i = 0; i <= 1; i++) { - bytes[i] = data.get(); - } - int[] ints = new int[2]; - for (int i = 0; i < 2; i++) { - ints[i] = 0xFF & bytes[i]; - } - int n = ((int) (ints[0] << 8 - | ints[1])) - & 0xFFFF; //FIXED! 0xFF is too less for uint16_t! - return n; - } - - public static long getUnsignedInt32(ByteBuffer data) { - byte[] bytes = new byte[4]; - for (int i = 3; i >= 0; i--) { - bytes[i] = data.get(); - } - int[] ints = new int[4]; - for (int i = 0; i < 4; i++) { - ints[i] = 0xFF & bytes[i]; - } - long n = ((long) (ints[0] << 24 - | ints[1] << 16 - | ints[2] << 8 - | ints[3])) - & 0xFFFFFFFFL; - return n; - } - - public static long getUnsignedInt32_BE(ByteBuffer data) { - byte[] bytes = new byte[4]; - for (int i = 0; i <= 3; i++) { - bytes[i] = data.get(); - } - int[] ints = new int[4]; - for (int i = 0; i < 4; i++) { - ints[i] = 0xFF & bytes[i]; - } - long n = ((long) (ints[0] << 24 - | ints[1] << 16 - | ints[2] << 8 - | ints[3])) - & 0xFFFFFFFFL; - return n; - } - - public static String getString(ByteBuffer data, int length) { - byte[] bytes = new byte[length]; - for (int i = 0; i < length; i++) { - bytes[i] = data.get(); - } - String value = new String(bytes); - return value; - } - - public static boolean getBool(ByteBuffer data) { - byte b = data.get(); - if ((int) b == 0) { - return false; - } else { - return true; - } - } - - public static void putBool(ByteBuffer data, boolean b) { - if (b) { - data.put((byte) 42); - } else { - data.put((byte) 0); - } - } - -} diff --git a/src/main/java/com/rcll/protobuf_lib/ProtobufServer.java b/src/main/java/com/rcll/protobuf_lib/ProtobufServer.java index 0389967..d7527d0 100755 --- a/src/main/java/com/rcll/protobuf_lib/ProtobufServer.java +++ b/src/main/java/com/rcll/protobuf_lib/ProtobufServer.java @@ -20,7 +20,7 @@ import com.google.protobuf.GeneratedMessageV3; import lombok.extern.apachecommons.CommonsLog; import com.rcll.llsf_comm.ProtobufMessage; -import com.rcll.llsf_utils.Key; +import com.rcll.llsf_comm.Key; import java.io.DataOutputStream; import java.io.IOException; diff --git a/src/main/java/com/rcll/protobuf_lib/RobotMessageRegister.java b/src/main/java/com/rcll/protobuf_lib/RobotMessageRegister.java index 6a415b5..a98b8b2 100755 --- a/src/main/java/com/rcll/protobuf_lib/RobotMessageRegister.java +++ b/src/main/java/com/rcll/protobuf_lib/RobotMessageRegister.java @@ -19,7 +19,7 @@ import com.google.protobuf.Descriptors; import com.google.protobuf.GeneratedMessageV3; -import com.rcll.llsf_utils.Key; +import com.rcll.llsf_comm.Key; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/src/main/java/com/rcll/refbox/ExplorationClient.java b/src/main/java/com/rcll/refbox/ExplorationClient.java index 60121ae..52ea0cf 100644 --- a/src/main/java/com/rcll/refbox/ExplorationClient.java +++ b/src/main/java/com/rcll/refbox/ExplorationClient.java @@ -8,7 +8,7 @@ import com.rcll.llsf_comm.ProtobufMessage; import org.robocup_logistics.llsf_msgs.MachineReportProtos; import org.robocup_logistics.llsf_msgs.TeamProtos; -import com.rcll.llsf_utils.Key; +import com.rcll.llsf_comm.Key; import java.util.Collections; import java.util.List; diff --git a/src/main/java/com/rcll/refbox/MachineClient.java b/src/main/java/com/rcll/refbox/MachineClient.java index 7074edc..58dcb16 100644 --- a/src/main/java/com/rcll/refbox/MachineClient.java +++ b/src/main/java/com/rcll/refbox/MachineClient.java @@ -8,7 +8,7 @@ import lombok.extern.java.Log; import com.rcll.llsf_comm.ProtobufMessage; import org.robocup_logistics.llsf_msgs.*; -import com.rcll.llsf_utils.Key; +import com.rcll.llsf_comm.Key; import java.util.*; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/com/rcll/llsf_utils/NanoSecondsTimestampProvider.java b/src/main/java/com/rcll/refbox/NanoSecondsTimestampProvider.java similarity index 91% rename from src/main/java/com/rcll/llsf_utils/NanoSecondsTimestampProvider.java rename to src/main/java/com/rcll/refbox/NanoSecondsTimestampProvider.java index 60c458c..976401f 100755 --- a/src/main/java/com/rcll/llsf_utils/NanoSecondsTimestampProvider.java +++ b/src/main/java/com/rcll/refbox/NanoSecondsTimestampProvider.java @@ -1,9 +1,9 @@ -package com.rcll.llsf_utils; +package com.rcll.refbox; /** * The Class NanoSecondsTimestampProvider provides a timestamp in nanoseconds. */ -public class NanoSecondsTimestampProvider { +class NanoSecondsTimestampProvider { private long nanoSecondsOffset; diff --git a/src/main/java/com/rcll/refbox/RobotClient.java b/src/main/java/com/rcll/refbox/RobotClient.java index 76807e3..832cb1a 100644 --- a/src/main/java/com/rcll/refbox/RobotClient.java +++ b/src/main/java/com/rcll/refbox/RobotClient.java @@ -7,8 +7,7 @@ import org.robocup_logistics.llsf_msgs.Pose2DProtos; import org.robocup_logistics.llsf_msgs.TeamProtos; import org.robocup_logistics.llsf_msgs.TimeProtos; -import com.rcll.llsf_utils.Key; -import com.rcll.llsf_utils.NanoSecondsTimestampProvider; +import com.rcll.llsf_comm.Key; import java.util.HashMap; import java.util.List;