Advertisement
Guest User

Untitled

a guest
Jan 5th, 2016
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.71 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Dimension;
  3. import java.awt.GridLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.awt.event.KeyEvent;
  7. import java.awt.event.KeyListener;
  8.  
  9. import javax.swing.AbstractButton;
  10. import javax.swing.Box;
  11. import javax.swing.JButton;
  12. import javax.swing.JComboBox;
  13. import javax.swing.JFrame;
  14. import javax.swing.JPanel;
  15. import javax.swing.JScrollPane;
  16. import javax.swing.JTextArea;
  17. import javax.swing.plaf.basic.BasicArrowButton;
  18.  
  19. import jssc.SerialPort;
  20. import jssc.SerialPortException;
  21.  
  22. public class Frame extends JFrame {
  23.    
  24.     private static final long serialVersionUID = 1L;
  25.     private final int FORWARD = 1;
  26.     private final int BACK = -1;
  27.     private final int FORWARD_RELEASE = 0;
  28.     private final int LEFT = 2;
  29.     private final int RIGHT = -2;
  30.     private final int TURN_RELEASE = 3;
  31.    
  32.     private JTextArea textArea;
  33.     private boolean connected = false;
  34.     private SerialPort serialPort;
  35.     private JComboBox<String> comBox;
  36.     private String selectedCOM = "";
  37.     private JButton up;
  38.     private JButton down;
  39.     private JButton right;
  40.     private JButton left;
  41.     private JPanel pane;
  42.    
  43.     public Frame(){
  44.        
  45.         setFocusable(true);
  46.        
  47.         pane = new JPanel();
  48.         pane.setLayout(new BorderLayout(3,1));
  49.         pane.setFocusable(true);
  50.        
  51.         textArea = new JTextArea(5, 20);
  52.         textArea.setEditable(false);
  53.         textArea.setFocusable(false);
  54.         JScrollPane scrollPane = new JScrollPane(textArea);
  55.         scrollPane.setPreferredSize(new Dimension(150,100));
  56.        
  57.         JPanel buttonPane = new JPanel();
  58.         String[] comList = {"COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9" };
  59.         comBox = new JComboBox<String>(comList);
  60.         comBox.setSelectedItem("COM7");
  61.         comBox.setFocusable(false);
  62.         buttonPane.add(comBox);
  63.         comBox.setEditable(true);
  64.         comBox.addActionListener(new ActionListener() {
  65.             @Override
  66.             public void actionPerformed(ActionEvent e) {
  67.                 selectedCOM = (String)comBox.getSelectedItem();
  68.             }
  69.         });
  70.        
  71.         // CONNECT BUTTON
  72.         JButton b1 = new JButton("Connect");
  73.         b1.setVerticalTextPosition(AbstractButton.CENTER);
  74.         b1.setHorizontalTextPosition(AbstractButton.CENTER);
  75.         b1.setMnemonic(KeyEvent.VK_C);
  76.         b1.setActionCommand("disable");
  77.         b1.setFocusable(false);
  78.        
  79.         b1.addActionListener(new ActionListener() {
  80.             public void actionPerformed(ActionEvent e) {
  81.                 if(!connected){
  82.                     textArea.append("Connecting to the device on port "+ selectedCOM + "....\n");
  83.                     try {
  84.                         serialPort = new SerialPort(selectedCOM);
  85.                         textArea.append("Port opened: " + serialPort.openPort() + "\n");
  86.                         textArea.append("Params set: " + serialPort.setParams(4800, 8, 1, 0) + "\n");
  87.                        
  88.                         textArea.append("Connected succesfully!\n");
  89.                         connected = true;
  90.    
  91.                     } catch (SerialPortException e1) {
  92.                         //e1.printStackTrace();
  93.                         textArea.append("Error: "+e1.getExceptionType()+"\n"); 
  94.                     }
  95.                    
  96.                 } else {
  97.                     textArea.append("You can't do that, you are already connected!\n");
  98.                 }
  99.             }
  100.         });
  101.        
  102.         // DISCONNECT BUTTON
  103.         JButton b2 = new JButton("Disonnect");
  104.         b2.setVerticalTextPosition(AbstractButton.CENTER);
  105.         b2.setHorizontalTextPosition(AbstractButton.CENTER);
  106.         b2.setMnemonic(KeyEvent.VK_D);
  107.         b2.setActionCommand("disable");
  108.         b2.setFocusable(false);
  109.        
  110.         b2.addActionListener(new ActionListener()
  111.         {
  112.           public void actionPerformed(ActionEvent e)
  113.           {
  114.               if(connected){
  115.                   textArea.append("Disconnectiong from the device....\n");
  116.                   try {
  117.                     textArea.append("Port closed: " + serialPort.closePort() + "\n");
  118.                 } catch (SerialPortException e1) {
  119.                         //e1.printStackTrace();
  120.                         textArea.append("Error: "+e1.getExceptionType()+"\n");
  121.                 }
  122.                  textArea.append("Disconnected succefully!\n");
  123.                  connected = false;
  124.               } else {
  125.                   textArea.append("You can't do that, you are already disconnected!\n");
  126.               }
  127.           }
  128.         });
  129.        
  130.        
  131.        
  132.         JPanel arrowsPane = new JPanel();
  133.         arrowsPane.setLayout(new GridLayout(3,3));
  134.         arrowsPane.setPreferredSize(new Dimension(150,150));
  135.         up = new BasicArrowButton(BasicArrowButton.NORTH);
  136.         down = new BasicArrowButton(BasicArrowButton.SOUTH);
  137.         right = new BasicArrowButton(BasicArrowButton.EAST);
  138.         left = new BasicArrowButton(BasicArrowButton.WEST);
  139.        
  140.         up.addActionListener(new ActionListener(){
  141.             @Override
  142.             public void actionPerformed(ActionEvent arg0) {
  143.                 // TODO Auto-generated method stub
  144.             }
  145.            
  146.         });
  147.        
  148.         arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
  149.         arrowsPane.add(up);
  150.         arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
  151.        
  152.         arrowsPane.add(left);
  153.         arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
  154.         arrowsPane.add(right);
  155.        
  156.         arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
  157.         arrowsPane.add(down);
  158.         arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
  159.        
  160.         buttonPane.add(b1);
  161.         buttonPane.add(b2);
  162.        
  163.         scrollPane.setFocusable(false);
  164.         buttonPane.setFocusable(false);
  165.        
  166.         pane.add(arrowsPane, BorderLayout.PAGE_START);
  167.         pane.add(scrollPane, BorderLayout.PAGE_END);
  168.         pane.add(buttonPane, BorderLayout.CENTER);
  169.         add(pane);
  170.        
  171.         addKeyListener(new KeyListener(){
  172.            
  173.             @Override
  174.             public void keyPressed(KeyEvent e) {
  175.                
  176.                 int key = e.getKeyCode();
  177.  
  178.                 if (key == KeyEvent.VK_UP) {
  179.                     up.getModel().setPressed(true);
  180.                    
  181.                     if(connected){
  182.                         try {
  183.                             serialPort.writeInt(1);
  184.                             System.out.println(FORWARD);
  185.                         } catch (SerialPortException e1) {
  186.                             textArea.append("Error: "+e1.getExceptionType()+"\n");
  187.                             e1.printStackTrace();
  188.                            
  189.                         }
  190.                     }
  191.                     else {
  192.                         textArea.append("You are not connected.\n");
  193.                     }  
  194.                 } else if (key == KeyEvent.VK_DOWN) {
  195.                     down.getModel().setPressed(true);
  196.                    
  197.                     if(connected){
  198.                         try {
  199.                             serialPort.writeInt(BACK);
  200.                             System.out.println(BACK);
  201.                         } catch (SerialPortException e1) {
  202.                             e1.printStackTrace();
  203.                         }
  204.                     }
  205.                     else {
  206.                         textArea.append("You are not connected.\n");
  207.                     }  
  208.                    
  209.                 } else if (key == KeyEvent.VK_LEFT) {
  210.                     left.getModel().setPressed(true);
  211.                     if(connected){
  212.                         try {
  213.                             serialPort.writeInt(LEFT);
  214.                             System.out.println(LEFT);
  215.                         } catch (SerialPortException e1) {
  216.                             e1.printStackTrace();
  217.                         }
  218.                     }
  219.                     else {
  220.                         textArea.append("You are not connected.\n");
  221.                     }  
  222.                 } else if (key == KeyEvent.VK_RIGHT) {
  223.                     right.getModel().setPressed(true);
  224.                     if(connected){
  225.                         try {
  226.                             serialPort.writeInt(RIGHT);
  227.                             System.out.println(RIGHT);
  228.                         } catch (SerialPortException e1) {
  229.                             e1.printStackTrace();
  230.                         }
  231.                     }
  232.                     else {
  233.                         textArea.append("You are not connected.\n");
  234.                     }  
  235.                 }
  236.             }
  237.  
  238.             @Override
  239.             public void keyReleased(KeyEvent e) {
  240.                
  241.                 int key = e.getKeyCode();
  242.                
  243.                 if (key == KeyEvent.VK_UP) {
  244.                     up.getModel().setPressed(false);
  245.                     if (connected) {
  246.                         try {
  247.                             serialPort.writeInt(FORWARD_RELEASE);
  248.                         } catch (SerialPortException e1) {
  249.                             //e1.printStackTrace();
  250.                             textArea.append("Error: "+e1.getExceptionType()+"\n");
  251.                         }
  252.                     }
  253.                 } else if (key == KeyEvent.VK_DOWN) {
  254.                     down.getModel().setPressed(false);
  255.                     if (connected) {
  256.                         try {
  257.                             serialPort.writeInt(FORWARD_RELEASE);
  258.                         } catch (SerialPortException e1) {
  259.                             //e1.printStackTrace();
  260.                             textArea.append("Error: "+e1.getExceptionType()+"\n");
  261.                         }
  262.                     }
  263.                 } else if (key == KeyEvent.VK_RIGHT) {
  264.                     right.getModel().setPressed(false);
  265.                    
  266.                     if (connected) {
  267.                         try {
  268.                             serialPort.writeInt(TURN_RELEASE);
  269.                         } catch (SerialPortException e1) {
  270.                             //e1.printStackTrace();
  271.                             textArea.append("Error: "+e1.getExceptionType()+"\n");
  272.                         }
  273.                     }
  274.                 } else if (key == KeyEvent.VK_LEFT) {
  275.                     left.getModel().setPressed(false);
  276.                    
  277.                     if (connected) {
  278.                         try {
  279.                             serialPort.writeInt(TURN_RELEASE);
  280.                         } catch (SerialPortException e1) {
  281.                             //e1.printStackTrace();
  282.                             textArea.append("Error: "+e1.getExceptionType()+"\n");
  283.                         }
  284.                     }
  285.                 }      
  286.             }
  287.  
  288.             @Override
  289.             public void keyTyped(KeyEvent e) {
  290.                 // TODO Auto-generated method stub
  291.                
  292.             }  
  293.         });
  294.        
  295.     }
  296.    
  297.    
  298. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement