|
|
@@ -0,0 +1,99 @@
|
|
|
+package control;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.net.DatagramPacket;
|
|
|
+import java.net.DatagramSocket;
|
|
|
+import java.net.InetAddress;
|
|
|
+import java.net.SocketException;
|
|
|
+import java.net.UnknownHostException;
|
|
|
+
|
|
|
+import control.button.ButtonHandler;
|
|
|
+import control.joystick.JoystickHandler;
|
|
|
+
|
|
|
+public class NetworkHandler implements Runnable{
|
|
|
+
|
|
|
+ DatagramSocket udp;
|
|
|
+
|
|
|
+ String host;
|
|
|
+ int port;
|
|
|
+
|
|
|
+ boolean running;
|
|
|
+ Thread t;
|
|
|
+
|
|
|
+ byte[] send;
|
|
|
+ byte[] receive;
|
|
|
+
|
|
|
+ ButtonHandler bth;
|
|
|
+ JoystickHandler jth;
|
|
|
+
|
|
|
+ public NetworkHandler(String host, int port, ButtonHandler bth, JoystickHandler jth)
|
|
|
+ {
|
|
|
+ this.host = host;
|
|
|
+ this.port = port;
|
|
|
+
|
|
|
+ this.bth = bth;
|
|
|
+ this.jth = jth;
|
|
|
+
|
|
|
+ udp = null;
|
|
|
+
|
|
|
+ send = new byte[1024];
|
|
|
+ receive = new byte[1024];
|
|
|
+
|
|
|
+ try {
|
|
|
+ udp = new DatagramSocket();
|
|
|
+ udp.connect(InetAddress.getByName(host), port);
|
|
|
+ } catch (SocketException | UnknownHostException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ running = true;
|
|
|
+ t = new Thread(this);
|
|
|
+ t.start();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setLed(int led, int r, int g , int b)
|
|
|
+ {
|
|
|
+ String cmd = "1|" + led + "|" + r + "|" + g + "|" + b + "\n";
|
|
|
+ send(cmd);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void show(){
|
|
|
+ String cmd = "0\n";
|
|
|
+ send(cmd);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void send(String str)
|
|
|
+ {
|
|
|
+ send = str.getBytes();
|
|
|
+ try {
|
|
|
+ udp.send(new DatagramPacket(send, send.length));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void close()
|
|
|
+ {
|
|
|
+ running = false;
|
|
|
+ udp.disconnect();
|
|
|
+ udp.close();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+
|
|
|
+ while(running)
|
|
|
+ {
|
|
|
+ DatagramPacket pckg = new DatagramPacket(receive, receive.length);
|
|
|
+ try {
|
|
|
+ udp.receive(pckg);
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ String str = new String(pckg.getData());
|
|
|
+ System.out.println(str);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|