From 523652cdee17b046a86495aac301ed65bb3334d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20=C3=87olako=C4=9Flu?= Date: Wed, 10 Jul 2019 13:10:24 +0300 Subject: [PATCH] EWERWER --- Ev3/.idea/misc.xml | 7 - Ev3/.idea/modules.xml | 8 - Ev3/.idea/serialmonitor_settings.xml | 4 - Ev3/.idea/vcs.xml | 6 - Ev3/.idea/workspace.xml | 158 ------ Ev3/CMakeLists.txt | 6 - Ev3/main.cpp | 6 - Ev3/main.py | 43 ++ .../yigitcolakoglu/master_app/cameraForm.form | 253 +++++++-- .../yigitcolakoglu/master_app/cameraForm.java | 486 ++++++++++++------ .../target/classes/.netbeans_automatic_build | 0 .../me/yigitcolakoglu/master_app/Main.class | Bin 605 -> 575 bytes .../master_app/cameraForm$1.class | Bin 987 -> 987 bytes .../master_app/cameraForm$2.class | Bin 879 -> 885 bytes .../master_app/cameraForm$3.class | Bin 888 -> 882 bytes .../master_app/cameraForm$4.class | Bin 885 -> 616 bytes .../master_app/cameraForm$5.class | Bin 882 -> 0 bytes .../master_app/cameraForm$6.class | Bin 616 -> 0 bytes .../master_app/cameraForm.class | Bin 17898 -> 21319 bytes .../master_app/managementForm$1.class | Bin 904 -> 863 bytes .../master_app/managementForm$2.class | Bin 901 -> 860 bytes .../master_app/managementForm$3.class | Bin 905 -> 864 bytes .../master_app/managementForm$4.class | Bin 908 -> 867 bytes .../master_app/managementForm$5.class | Bin 911 -> 870 bytes .../master_app/managementForm$6.class | Bin 908 -> 867 bytes .../master_app/managementForm$7.class | Bin 901 -> 860 bytes .../master_app/managementForm$8.class | Bin 907 -> 866 bytes .../master_app/managementForm.class | Bin 13896 -> 13755 bytes master_app/target/master_app-1.0-SNAPSHOT.jar | Bin 24367 -> 26188 bytes .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 5 +- .../compile/default-compile/inputFiles.lst | 6 +- .../test-classes/.netbeans_automatic_build | 0 33 files changed, 603 insertions(+), 387 deletions(-) delete mode 100644 Ev3/.idea/misc.xml delete mode 100644 Ev3/.idea/modules.xml delete mode 100644 Ev3/.idea/serialmonitor_settings.xml delete mode 100644 Ev3/.idea/vcs.xml delete mode 100644 Ev3/.idea/workspace.xml delete mode 100644 Ev3/CMakeLists.txt delete mode 100644 Ev3/main.cpp create mode 100644 Ev3/main.py create mode 100644 master_app/target/classes/.netbeans_automatic_build delete mode 100644 master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$5.class delete mode 100644 master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$6.class create mode 100644 master_app/target/test-classes/.netbeans_automatic_build diff --git a/Ev3/.idea/misc.xml b/Ev3/.idea/misc.xml deleted file mode 100644 index 8822db8..0000000 --- a/Ev3/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Ev3/.idea/modules.xml b/Ev3/.idea/modules.xml deleted file mode 100644 index 1af4d3a..0000000 --- a/Ev3/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Ev3/.idea/serialmonitor_settings.xml b/Ev3/.idea/serialmonitor_settings.xml deleted file mode 100644 index b45564e..0000000 --- a/Ev3/.idea/serialmonitor_settings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Ev3/.idea/vcs.xml b/Ev3/.idea/vcs.xml deleted file mode 100644 index 6c0b863..0000000 --- a/Ev3/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Ev3/.idea/workspace.xml b/Ev3/.idea/workspace.xml deleted file mode 100644 index 6c9ed69..0000000 --- a/Ev3/.idea/workspace.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1562175685444 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Ev3/CMakeLists.txt b/Ev3/CMakeLists.txt deleted file mode 100644 index ca47590..0000000 --- a/Ev3/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(Ev3) - -set(CMAKE_CXX_STANDARD 14) - -add_executable(Ev3 main.cpp) \ No newline at end of file diff --git a/Ev3/main.cpp b/Ev3/main.cpp deleted file mode 100644 index f253cbe..0000000 --- a/Ev3/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main() { - std::cout << "Hello, World!" << std::endl; - return 0; -} \ No newline at end of file diff --git a/Ev3/main.py b/Ev3/main.py new file mode 100644 index 0000000..289e991 --- /dev/null +++ b/Ev3/main.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +print("[INFO]: Interpreter started") +from ev3dev.core import * +print("[INFO]: Imported ev3dev.ev3") +import socket +print("[INFO]: Imported socket") +import os +print("[INFO]: Imported os") +import json +print("[INFO]: Imported json") + + +HOST = '0.0.0.0' +PORT = 3131 +mjpeg_loc = "/home/robot/mjpeg-streamer/mjpeg-streamer-experimantal/mjpeg-streamer" +os.spawnl(os.P_DETACH, ' -i "./input_uvc.so -f 15 -r 640x480" -o "./output_http.so -w ./www"') +power = PowerSupply() + +with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + try: + s.bind((HOST, PORT)) + while True: + s.listen() + print("[INFO]: Listening...") + conn, addr = s.accept() + with conn: + print('[INFO]: Connected by', addr) + while True: + try: + data = { + "battery_voltage":power.measured_volts, + "current_drawn":power.measured_amps, + "lat":31, + "lng":39 + } + conn.send((json.dumps(data, ensure_ascii=False)+"\n").encode('gbk')) + except BrokenPipeError: + print("[INFO]: Client disconnected") + break + + + except KeyboardInterrupt: + s.close() diff --git a/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.form b/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.form index 3ae0e7d..bfa45d6 100644 --- a/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.form +++ b/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.form @@ -79,18 +79,17 @@ - + - + + + + + - - - - + - - @@ -132,8 +131,6 @@ - - @@ -164,30 +161,14 @@ - - - - - - - - - - - - - - - - - + @@ -361,8 +342,8 @@ - - + + @@ -371,28 +352,230 @@ - + - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java b/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java index af568e6..07fb8f3 100644 --- a/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java +++ b/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java @@ -13,11 +13,13 @@ import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.util.Base64; import javax.imageio.ImageIO; +import javax.net.ssl.HttpsURLConnection; import javax.swing.ImageIcon; import javax.swing.JOptionPane; import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import net.schmizz.sshj.common.IOUtils; import org.json.JSONObject; /** @@ -35,6 +37,7 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ private ServerSocket server; private Socket client; private Thread running = null; + private boolean listening = false; /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always @@ -47,9 +50,7 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ jPanel1 = new javax.swing.JPanel(); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel2 = new javax.swing.JPanel(); - bus_button = new javax.swing.JButton(); camera_full_label = new javax.swing.JLabel(); - intersection_button = new javax.swing.JButton(); ambulance_button = new javax.swing.JButton(); camera_cut_label = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); @@ -70,7 +71,18 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ fps_label = new javax.swing.JLabel(); manage_button = new javax.swing.JButton(); jPanel4 = new javax.swing.JPanel(); + jPanel5 = new javax.swing.JPanel(); + intersect_1_Y = new javax.swing.JLabel(); + intersect_1_G = new javax.swing.JLabel(); + intersect_1_R = new javax.swing.JLabel(); + jPanel6 = new javax.swing.JPanel(); + intersect_2_Y = new javax.swing.JLabel(); + intersect_2_G = new javax.swing.JLabel(); + intersect_2_R = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); + jLabel9 = new javax.swing.JLabel(); + jPanel7 = new javax.swing.JPanel(); + robot_cam_label = new javax.swing.JLabel(); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); @@ -94,23 +106,9 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ } }); - bus_button.setText("Bus"); - bus_button.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - bus_buttonActionPerformed(evt); - } - }); - camera_full_label.setText(" "); - intersection_button.setText("Intersection"); - intersection_button.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - intersection_buttonActionPerformed(evt); - } - }); - - ambulance_button.setText("Ambulance"); + ambulance_button.setText("Start"); ambulance_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ambulance_buttonActionPerformed(evt); @@ -215,16 +213,14 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(29, 29, 29) + .addComponent(camera_full_label, javax.swing.GroupLayout.PREFERRED_SIZE, 1280, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) .addComponent(ambulance_button, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(intersection_button, javax.swing.GroupLayout.PREFERRED_SIZE, 248, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(242, 242, 242) - .addComponent(bus_button, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(camera_full_label, javax.swing.GroupLayout.PREFERRED_SIZE, 1280, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE) + .addGap(475, 475, 475))) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -255,8 +251,6 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ .addComponent(camera_full_label, javax.swing.GroupLayout.PREFERRED_SIZE, 720, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(bus_button) - .addComponent(intersection_button, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ambulance_button) .addComponent(manage_button)) .addContainerGap()) @@ -278,26 +272,137 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ jTabbedPane1.addTab("Cameras", jPanel2); - jLabel8.setText("deneme"); + jPanel5.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); + + intersect_1_Y.setBackground(new java.awt.Color(204, 204, 204)); + intersect_1_Y.setForeground(new java.awt.Color(204, 204, 204)); + intersect_1_Y.setOpaque(true); + + intersect_1_G.setBackground(new java.awt.Color(204, 204, 204)); + intersect_1_G.setForeground(new java.awt.Color(204, 204, 204)); + intersect_1_G.setOpaque(true); + + intersect_1_R.setBackground(new java.awt.Color(204, 204, 204)); + intersect_1_R.setForeground(new java.awt.Color(204, 204, 204)); + intersect_1_R.setOpaque(true); + + javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); + jPanel5.setLayout(jPanel5Layout); + jPanel5Layout.setHorizontalGroup( + jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() + .addContainerGap(109, Short.MAX_VALUE) + .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(intersect_1_G, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(intersect_1_R, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(intersect_1_Y, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(107, 107, 107)) + ); + jPanel5Layout.setVerticalGroup( + jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() + .addGap(54, 54, 54) + .addComponent(intersect_1_R, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(45, 45, 45) + .addComponent(intersect_1_Y, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(45, 45, 45) + .addComponent(intersect_1_G, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(49, Short.MAX_VALUE)) + ); + + jPanel6.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); + + intersect_2_Y.setBackground(new java.awt.Color(204, 204, 204)); + intersect_2_Y.setForeground(new java.awt.Color(204, 204, 204)); + intersect_2_Y.setOpaque(true); + + intersect_2_G.setBackground(new java.awt.Color(204, 204, 204)); + intersect_2_G.setForeground(new java.awt.Color(204, 204, 204)); + intersect_2_G.setOpaque(true); + + intersect_2_R.setBackground(new java.awt.Color(204, 204, 204)); + intersect_2_R.setForeground(new java.awt.Color(255, 153, 153)); + intersect_2_R.setOpaque(true); + + javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup() + .addContainerGap(159, Short.MAX_VALUE) + .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(intersect_2_G, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(intersect_2_R, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(intersect_2_Y, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(163, 163, 163)) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup() + .addGap(36, 36, 36) + .addComponent(intersect_2_R, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(53, 53, 53) + .addComponent(intersect_2_Y, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(intersect_2_G, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(38, 38, 38)) + ); + + jLabel8.setText("Intersection 1"); + + jLabel9.setText("Intersection 2"); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() - .addGap(493, 493, 493) + .addGap(276, 276, 276) .addComponent(jLabel8) - .addContainerGap(1074, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel9) + .addGap(241, 241, 241)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() + .addGap(125, 125, 125) + .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 526, Short.MAX_VALUE) + .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(33, 33, 33)) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() - .addGap(115, 115, 115) - .addComponent(jLabel8) - .addContainerGap(686, Short.MAX_VALUE)) + .addContainerGap() + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel9) + .addComponent(jLabel8)) + .addGap(4, 4, 4) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) + ); + + jTabbedPane1.addTab("Lights", jPanel4); + + javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); + jPanel7.setLayout(jPanel7Layout); + jPanel7Layout.setHorizontalGroup( + jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel7Layout.createSequentialGroup() + .addGap(449, 449, 449) + .addComponent(robot_cam_label) + .addContainerGap(1173, Short.MAX_VALUE)) + ); + jPanel7Layout.setVerticalGroup( + jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel7Layout.createSequentialGroup() + .addGap(243, 243, 243) + .addComponent(robot_cam_label) + .addContainerGap(573, Short.MAX_VALUE)) ); - jTabbedPane1.addTab("tab2", jPanel4); + jTabbedPane1.addTab("Robot Cam", jPanel7); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -324,7 +429,11 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ }//GEN-LAST:event_jTabbedPane1MouseExited private void jTabbedPane1MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTabbedPane1MouseEntered - + if(!listening){ + jTabbedPane1.addChangeListener(this); + System.out.println("Added listener"); + listening = true; + } }//GEN-LAST:event_jTabbedPane1MouseEntered private void manage_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manage_buttonActionPerformed @@ -344,60 +453,18 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ }catch(Exception e){ System.out.println(e.toString()); } + }else{ + running = new Thread(() -> { + try{ + onCreate(8485,"Ambulance"); + }catch(Exception e){ + System.out.println(e.toString()); + } + }); + running.start(); } - running = new Thread(() -> { - try{ - onCreate(8485,"Ambulance"); - }catch(Exception e){ - System.out.println(e.toString()); - } - }); - running.start(); }//GEN-LAST:event_ambulance_buttonActionPerformed - private void intersection_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_intersection_buttonActionPerformed - if(running!=null){ - try{ - server.close(); - client.close(); - running.stop(); - }catch(IOException e){ - System.out.println("IO Exception occured"); - }catch(Exception e){ - System.out.println(e.toString()); - } - } - running = new Thread(() -> { - try{ - onCreate(8486,"Intersection"); - }catch(Exception e){ - System.out.println(e.toString()); - } - }); - running.start(); - }//GEN-LAST:event_intersection_buttonActionPerformed - - private void bus_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bus_buttonActionPerformed - if(running!=null){ - try{ - server.close(); - client.close(); - running.stop(); - }catch(IOException e){ - System.out.println("IO Exception occured"); - }catch(Exception e){ - System.out.println(e.toString()); - } - } - running = new Thread(() -> { - try{ - onCreate(8487,"Bus"); - }catch(Exception e){ - System.out.println(e.toString()); - } - }); - }//GEN-LAST:event_bus_buttonActionPerformed - /** * @param args the command line arguments */ @@ -423,13 +490,50 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { + new cameraForm().setVisible(true); }}); } public void onCreate(int port, String name) throws Exception{ - + boolean run = true; + if (name == "robot") { + while (run) { + BufferedImage image = null; + URL img_url = new URL("http://10.10.26.141:8080/?action=snapshot"); + image = ImageIO.read(img_url); + robot_cam_label.setIcon(new ImageIcon(image)); + + URL obj = new URL("http://10.10.26.164:5001/ai"); + HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); + + con.setRequestMethod("POST"); + + byte[] imageBytes = IOUtils.toByteArray(img_url); + String base64 = Base64.getEncoder().encodeToString(imageBytes); + + String params = "type=coco&img=" + base64; + + con.setDoOutput(true); + DataOutputStream wr = new DataOutputStream(con.getOutputStream()); + wr.writeBytes(params); + wr.flush(); + wr.close(); + + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + JSONObject json = new JSONObject(response.toString()); + Graphics2D g2d = image.createGraphics(); + } + } this.camera_cut_label.setIcon(new ImageIcon()); this.camera_full_label.setIcon(new ImageIcon()); String fromClient = ""; @@ -438,7 +542,6 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ server = new ServerSocket(port); System.out.println("wait for connection on port " + port); jTabbedPane1.addChangeListener(this); - boolean run = true; client = server.accept(); System.out.println("got connection on port " + port); BufferedImage image = null; @@ -446,66 +549,99 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ int null_reps = 0; int fps_sum = 0; int reps = 0; - while(run) { - try{ - long start = System.currentTimeMillis(); - BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); - - fromClient = in.readLine(); - - if(fromClient != null) { - if(fromClient.trim().equals("Bye")) { - run = false; - System.out.println("socket closed"); - }else{ - System.out.println("received data in size: " + fromClient.length()); - JSONObject json = new JSONObject(fromClient); - byte[] decodedBytes = Base64.getDecoder().decode(json.getString("image_full")); - ByteArrayInputStream bis = new ByteArrayInputStream(decodedBytes); - image = ImageIO.read(bis); - bis.close(); - JSONObject dims = json.getJSONObject("image_sizes"); - this.camera_full_label.setIcon(new ImageIcon(resizeImage(image,1280,720))); - this.camera_cut_label.setIcon(new ImageIcon(resizeImage(image.getSubimage(dims.getInt("x"), dims.getInt("y"), dims.getInt("width"), dims.getInt("height")),300,300))); - JSONObject data = json.optJSONObject("load"); - this.gpu_temp.setText(data.getString("gpu_temp")); - this.gpu_usage.setText(data.getString("gpu_load")); - this.cpu_temp.setText(data.getString("cpu_temp")); - this.cpu_usage.setText(data.getString("cpu_load")); - this.ram_temp.setText(data.getString("mem_temp")); - this.ram_usage.setText(data.getString("mem_load")); - this.fan_rpm.setText(data.getString("fan_speed")); - null_reps=0; - long end = System.currentTimeMillis(); - float sec = (end - start) / 1000F; - fps_sum += Math.round(1/sec); - reps+=1; - if(reps%10==0){ - this.fps_label.setText(fps_sum/10 + " FPS"); - fps_sum=0; + if(name.equals("cams")){ + while(run) { + try{ + long start = System.currentTimeMillis(); + BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); + + fromClient = in.readLine(); + + if(fromClient != null) { + if(fromClient.trim().equals("Bye")) { + run = false; + System.out.println("socket closed"); + }else{ + System.out.println("received data in size: " + fromClient.length()); + JSONObject json = new JSONObject(fromClient); + byte[] decodedBytes = Base64.getDecoder().decode(json.getString("image_full")); + ByteArrayInputStream bis = new ByteArrayInputStream(decodedBytes); + image = ImageIO.read(bis); + bis.close(); + JSONObject dims = json.getJSONObject("image_sizes"); + this.camera_full_label.setIcon(new ImageIcon(resizeImage(image,1280,720))); + this.camera_cut_label.setIcon(new ImageIcon(resizeImage(image.getSubimage(dims.getInt("x"), dims.getInt("y"), dims.getInt("width"), dims.getInt("height")),300,300))); + JSONObject data = json.optJSONObject("load"); + this.gpu_temp.setText(data.getString("gpu_temp")); + this.gpu_usage.setText(data.getString("gpu_load")); + this.cpu_temp.setText(data.getString("cpu_temp")); + this.cpu_usage.setText(data.getString("cpu_load")); + this.ram_temp.setText(data.getString("mem_temp")); + this.ram_usage.setText(data.getString("mem_load")); + this.fan_rpm.setText(data.getString("fan_speed")); + null_reps=0; + long end = System.currentTimeMillis(); + float sec = (end - start) / 1000F; + fps_sum += Math.round(1/sec); + reps+=1; + if(reps%10==0){ + this.fps_label.setText(fps_sum/10 + " FPS"); + fps_sum=0; + } } + }else{ + null_reps +=1; } - }else{ - null_reps +=1; + } + catch(Exception e){ + System.out.println(fromClient); + System.out.println(e.toString()); + null_reps+=1; + } + if (null_reps >= 1000000000){ + run = false; + System.out.println("socket closed"); } } - catch(Exception e){ - System.out.println(fromClient); - System.out.println(e.toString()); - null_reps+=1; - } - if (null_reps >= 1000000000){ - run = false; - System.out.println("socket closed"); - } + server.close(); + client.close(); + this.camera_cut_label.setIcon(new ImageIcon()); + this.camera_full_label.setIcon(new ImageIcon()); + JOptionPane.showMessageDialog(this, name +" socket server down!"); + running.stop(); + }else if(name.equals("lights")){ + int[][] colors = {{204,0,0},{204,204,0},{0,204,0}}; + javax.swing.JLabel[][] labels = {{intersect_1_R,intersect_1_Y,intersect_1_G},{intersect_2_R,intersect_2_Y,intersect_2_G}}; + int[] lights = {0,0}; + while(run) { + BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); + + fromClient = in.readLine(); + + if(fromClient != null) { + if(fromClient.trim().equals("Bye")) { + run = false; + System.out.println("socket closed"); + }else{ + System.out.println("received data in size: " + fromClient.length()); + System.out.println(fromClient); + lights[0] = Character.getNumericValue(fromClient.charAt(0)); + lights[1] = Character.getNumericValue(fromClient.charAt(2)); + for(int i = 0;i < 2;i++){ + for(int j = 0;j<3;j++){ + if(lights[i] == j){ + labels[i][j].setBackground(new java.awt.Color(colors[j][0], colors[j][1], colors[j][2])); + continue; + } + labels[i][j].setBackground(new java.awt.Color(204,204,204)); + } + } + } + } + + + } } - server.close(); - client.close(); - this.camera_cut_label.setIcon(new ImageIcon()); - this.camera_full_label.setIcon(new ImageIcon()); - JOptionPane.showMessageDialog(this, name +" socket server down!"); - running.stop(); - } public static BufferedImage resizeImage(final Image image, int width, int height) { @@ -521,15 +657,55 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ return bufferedImage; } @Override - public void stateChanged(ChangeEvent changeEvent){ - System.out.println("TEST"); - JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource(); - int index = sourceTabbedPane.getSelectedIndex(); - System.out.println("Tab changed to: " + sourceTabbedPane.getTitleAt(index)); + public void stateChanged(ChangeEvent e){ + System.out.println("Tab: " + jTabbedPane1.getSelectedIndex()); + if(running!=null){ + try{ + server.close(); + client.close(); + running.stop(); + }catch(IOException ex){ + System.out.println("IO Exception occured"); + }catch(Exception ex){ + System.out.println(ex.toString()); + } + } + switch (jTabbedPane1.getSelectedIndex()) { + case 0: + running = new Thread(() -> { + try{ + onCreate(8485,"cams"); + }catch(Exception ex){ + System.out.println(e.toString()); + } + }); + running.start(); + break; + case 1: + running = new Thread(() -> { + try{ + onCreate(69,"lights"); + }catch(Exception ex){ + System.out.println(e.toString()); + } + }); + running.start(); + break; + case 2: + running = new Thread(() -> { + try{ + onCreate(0,"robot"); + }catch(Exception ex){ + System.out.println(e.toString()); + } + }); + running.start(); + break; + } + } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton ambulance_button; - private javax.swing.JButton bus_button; private javax.swing.JLabel camera_cut_label; private javax.swing.JLabel camera_full_label; private javax.swing.JLabel cpu_temp; @@ -538,7 +714,12 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ private javax.swing.JLabel fps_label; private javax.swing.JLabel gpu_temp; private javax.swing.JLabel gpu_usage; - private javax.swing.JButton intersection_button; + private javax.swing.JLabel intersect_1_G; + private javax.swing.JLabel intersect_1_R; + private javax.swing.JLabel intersect_1_Y; + private javax.swing.JLabel intersect_2_G; + private javax.swing.JLabel intersect_2_R; + private javax.swing.JLabel intersect_2_Y; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; @@ -547,14 +728,19 @@ public class cameraForm extends javax.swing.JFrame implements ChangeListener{ private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; + private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JPanel jPanel7; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JButton manage_button; private javax.swing.JLabel ram_temp; private javax.swing.JLabel ram_usage; + private javax.swing.JLabel robot_cam_label; // End of variables declaration//GEN-END:variables diff --git a/master_app/target/classes/.netbeans_automatic_build b/master_app/target/classes/.netbeans_automatic_build new file mode 100644 index 0000000..e69de29 diff --git a/master_app/target/classes/me/yigitcolakoglu/master_app/Main.class b/master_app/target/classes/me/yigitcolakoglu/master_app/Main.class index fc2d4c3f69b359c9e1c1819ed03e0c3f8c5cce4d..da2a957af1e841ade570397d1cd305e99842e27f 100644 GIT binary patch delta 77 zcmcc1vY$oi)W2Q(7#JAL8DzN_*cimv8N|65m>9%BgakW-Bs+uDM5Q~E1sOfqq#0xw e85AcQFv?D@VXS6kocx0^kdu)?1gM*dK@zEm>9%Cgd{tI6gz|TM5Q}|0=}sw8Tlyz ziA9OIsU@jJ#S{N{vB@yVGBPMmmSvQkoXJ?t$TayWW1xr#&@fg;1_2<&$RG+NnHaf|)0XvTuchnPZHix@ZjZem_ydg|nSrf9~qlTR~+vYuz)V7M?@l{pvy>m&>_ delta 41 xcmeyw_JeIh5)-ddW?o5ZQE_T=NoIcDb$#_Y*QnL=4}88{g7Cd)Gi0{}t{4YdFO diff --git a/master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$4.class b/master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$4.class index ee23802b1e1e6616662f58a4b87d3510c425922f..4a343a22e097f7fa1c1f6f9a956453b285e61b93 100644 GIT binary patch delta 368 zcmYjNO-sW-5Pg$uK1|oIYU8)7U|_51M|zz!N7Z1@hAJQ(ncwCrHT!K#Bbg1xV_ z$_@x-aCbWpX0NaFE^XB$*0DiwPm(k{x=Aw$7gKrNXju}QsOK+qIILdBgE;KOx*eYO zwT`bk2|;vYr3rp;c{~}PWj&?ad(DX8rAZd4RE^2OMKeMJ7OzNfcwd8qU*gW=Dr6)^ zt2F}Mm*WcOf(#nILvka>3`}E|JHp(bdY9b_wS0ncK7uJ8ASNcoPk=s9q0fIl^4CXT Zo|OiwSYQ-fEuvQ57?@%7KrXLco*!jRGwc8W literal 885 zcma)4%Wl&^6g|@J+|h(5}ZG>K06dp%0aDC30@`3WD7ql9N7=Lb5^cIeRysifIuc+#2s)z&dX zy|0IYp&3gh4$EvH@^^fYQe-*S2~UrCF0DTc)~z%K|CLfA@29*d1i8I=GltuwGfeU+rTkZLs58)}!VHZx#IOZgYGd%^5t6*q`% f#=J`4I;FS5Z{c?3wQvV_t4Iq?vL3t}3nTJlJ{(3d&qU7mbe?U|p=VM_v(50RHS?*B zBL=6d2ZEv2lS=H5vcAY)^L|Q|rJjy?dc<>S^J&qs(inmlN{PIi@}dxwc4oaX+$5#- zm%^Ot!2!=nKlMTcH69zO)q%)Qs2ee0SZnpp_?Soht%<}~C=>0JkX^gqvcfB3Y#5sV zgE9DrdX&dvPuh-Z7lu8yqCc&%!Y^x_}s$?m{!x`xr7VN;gIvZ+5o{)=`mi48Xam5pH z+#eaE)x@=PW3f)Jt_pfCVD-9fjUMA1{T_UZmua_6(N_F+=Mz}_3+6tQn1EI~Me7e- zq4nAXg$2|pBYermut@tVgZsWt;3X_iX?LcyUi%|h=QAo7toCN$Cu#Zh7qfTH>|q60 hiEPTeLSTokx5BUEMwvBm6SvAr12u|1!5xb9{Q-j5)<6IN diff --git a/master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$6.class b/master_app/target/classes/me/yigitcolakoglu/master_app/cameraForm$6.class deleted file mode 100644 index e1ada3f55fc90f401e618608bf59c2352cfa7331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 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 z 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 diff --git a/master_app/target/classes/me/yigitcolakoglu/master_app/managementForm$1.class b/master_app/target/classes/me/yigitcolakoglu/master_app/managementForm$1.class index 38933ebe0bbec17c5fc5b343ecf998263ba6a31e..705bb939c84ec27c59c9205e8f594676b973deb4 100644 GIT binary patch delta 151 zcmW-aJqp4=7)0L}qnj)XV*HE$aT5<ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>r7uFWZ7HkEXjaXZ_04o#SU|g~5^w;o(@6`%_UGl+X~781lORs(+jWO7;;(z&QlrnnGw^~TqpC@1dB)Yo2lxY?niGEj delta 208 zcmcb^*2=Db>ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>y^58E2e9%8g0)u=msD>U zhIwc8ZrJDV{s1ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>a p9}#y8c1mcIAg)>4t~+!Qf8FzzfIb7y&ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>a p9}#y8c1mcIAg)>4t~+!Qf8FzzfIb7y&ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>r7uFWZ7HkEXjaXZ_04o#SU|g~5^w;o(@6`%_UGl+X~781lORs(+jWO7;;(z&QlrnnGw^~TqpC@1dB)Yo2lxY?niGEj delta 208 zcmcb^*2=Db>ff$?3=9nB3~HPVEDSPS46F>YTnv&7a_kK9>D~MRv7cXXTPD43=Do4#%S0pNi6;hzv2gVM*d% p@)2>jV5fvO3F4Zy?Ycu3@z*_X3FtHM4835;sA^JLp1Ruj0Dr0k6P*A6 delta 208 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 diff --git a/master_app/target/master_app-1.0-SNAPSHOT.jar b/master_app/target/master_app-1.0-SNAPSHOT.jar index a2f1840ae81b1484460477a006c0da9af6a8c7d3..457235ed63e950548568464c02a73ab03fd8fc9c 100644 GIT binary patch literal 26188 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 BoAUqw literal 24367 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 LH?3^*?N9#)-&iH$ diff --git a/master_app/target/maven-archiver/pom.properties b/master_app/target/maven-archiver/pom.properties index 3e8e045..15fdcf1 100644 --- a/master_app/target/maven-archiver/pom.properties +++ b/master_app/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Fri May 24 18:58:10 EET 2019 +#Mon Jul 08 11:26:41 EET 2019 groupId=me.yigitcolakoglu artifactId=master_app version=1.0-SNAPSHOT diff --git a/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index bd2a493..bf5cbfb 100644 --- a/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -2,14 +2,13 @@ me/yigitcolakoglu/master_app/managementForm$4.class me/yigitcolakoglu/master_app/cameraForm$3.class me/yigitcolakoglu/master_app/cameraForm$2.class me/yigitcolakoglu/master_app/managementForm$3.class -me/yigitcolakoglu/master_app/cameraForm$5.class me/yigitcolakoglu/master_app/Main.class -me/yigitcolakoglu/master_app/managementForm$7.class me/yigitcolakoglu/master_app/cameraForm$1.class +me/yigitcolakoglu/master_app/managementForm$7.class me/yigitcolakoglu/master_app/managementForm.class me/yigitcolakoglu/master_app/managementForm$1.class -me/yigitcolakoglu/master_app/managementForm$2.class me/yigitcolakoglu/master_app/managementForm$8.class +me/yigitcolakoglu/master_app/managementForm$2.class me/yigitcolakoglu/master_app/managementForm$6.class me/yigitcolakoglu/master_app/managementForm$9.class me/yigitcolakoglu/master_app/cameraForm$4.class diff --git a/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ba9dad0..5252ff8 100644 --- a/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/master_app/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,3 +1,3 @@ -/home/yigit/projects/MyCity/traffic_analyzer/master_app/src/main/java/me/yigitcolakoglu/master_app/managementForm.java -/home/yigit/projects/MyCity/traffic_analyzer/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java -/home/yigit/projects/MyCity/traffic_analyzer/master_app/src/main/java/me/yigitcolakoglu/master_app/Main.java +/home/yigit/projects/MyCity/master_app/src/main/java/me/yigitcolakoglu/master_app/Main.java +/home/yigit/projects/MyCity/master_app/src/main/java/me/yigitcolakoglu/master_app/managementForm.java +/home/yigit/projects/MyCity/master_app/src/main/java/me/yigitcolakoglu/master_app/cameraForm.java diff --git a/master_app/target/test-classes/.netbeans_automatic_build b/master_app/target/test-classes/.netbeans_automatic_build new file mode 100644 index 0000000..e69de29