diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/libraries/tinylog.xml b/.idea/libraries/tinylog.xml new file mode 100644 index 0000000..6f50db9 --- /dev/null +++ b/.idea/libraries/tinylog.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..af89096 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,50 @@ + + + + + + + + + Android + + + CodePlugin DevKit + + + ComplianceLintAndroid + + + CorrectnessLintAndroid + + + Java + + + Java language level migration aidsJava + + + LintAndroid + + + PerformanceLintAndroid + + + Plugin DevKit + + + UsabilityLintAndroid + + + + + Android + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2f4c369 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ProtegeToAASMini.iml b/ProtegeToAASMini.iml new file mode 100644 index 0000000..994ace1 --- /dev/null +++ b/ProtegeToAASMini.iml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AASMini/AASMini.java b/src/AASMini/AASMini.java index 38a836b..76e9786 100644 --- a/src/AASMini/AASMini.java +++ b/src/AASMini/AASMini.java @@ -5,6 +5,7 @@ import org.pmw.tinylog.Logger; import java.net.InetAddress; import java.net.Socket; +@SuppressWarnings("unused") public class AASMini { private final String targetIP; private final int targetPort; @@ -20,6 +21,14 @@ public class AASMini { this.targetPort = port; } + /** + * Check if the AAS Mini is connected + * @return true if connected, false otherwise + */ + public boolean IsConnected(){ + return socket != null && socket.isConnected(); + } + /** * Connect to AAS Mini * @return true if connected, false otherwise @@ -42,6 +51,61 @@ public class AASMini { return false; } + /** + * Disconnect from AAS Mini + */ + public void Disconnect(){ + try{ + if (socket != null && socket.isConnected()){ + socket.close(); + Logger.info("Disconnected from {}:{}", targetIP, targetPort); + } + } catch (Exception e){ + Logger.error("Failed to disconnect from {}:{}, Error : {}", targetIP, targetPort, e.getMessage()); + } + socket = null; + } + //TODO protocol untuk kirim data ke AAS Mini + /** + * Send data to AAS Mini and receive response + * @param data Data to be sent + * @return byte array of response or null if failed + */ + private byte[] SendAndReceive(byte[] data){ + if (IsConnected()){ + if (data!=null && data.length>0){ + try{ + socket.getOutputStream().write(data); + byte[] buffer = new byte[1024]; + int read = socket.getInputStream().read(buffer); + if (read>0){ + byte[] result = new byte[read]; + System.arraycopy(buffer, 0, result, 0, read); + return result; + } + } catch (Exception e){ + Logger.error("Failed to send data to {}:{}, Error : {}", targetIP, targetPort, e.getMessage()); + } + } + } + return null; + } + + /** + * Send data to AAS Mini + * @param data Data to be sent + */ + private void SendData(byte[] data){ + if (IsConnected()){ + if (data!=null && data.length>0){ + try{ + socket.getOutputStream().write(data); + } catch (Exception e){ + Logger.error("Failed to send data to {}:{}, Error : {}", targetIP, targetPort, e.getMessage()); + } + } + } + } }