Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Dimension;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.swing.AbstractButton;
- import javax.swing.Box;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.plaf.basic.BasicArrowButton;
- import jssc.SerialPort;
- import jssc.SerialPortException;
- public class Frame extends JFrame {
- private static final long serialVersionUID = 1L;
- private final int FORWARD = 1;
- private final int BACK = -1;
- private final int FORWARD_RELEASE = 0;
- private final int LEFT = 2;
- private final int RIGHT = -2;
- private final int TURN_RELEASE = 3;
- private JTextArea textArea;
- private boolean connected = false;
- private SerialPort serialPort;
- private JComboBox<String> comBox;
- private String selectedCOM = "";
- private JButton up;
- private JButton down;
- private JButton right;
- private JButton left;
- private JPanel pane;
- public Frame(){
- setFocusable(true);
- pane = new JPanel();
- pane.setLayout(new BorderLayout(3,1));
- pane.setFocusable(true);
- textArea = new JTextArea(5, 20);
- textArea.setEditable(false);
- textArea.setFocusable(false);
- JScrollPane scrollPane = new JScrollPane(textArea);
- scrollPane.setPreferredSize(new Dimension(150,100));
- JPanel buttonPane = new JPanel();
- String[] comList = {"COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9" };
- comBox = new JComboBox<String>(comList);
- comBox.setSelectedItem("COM7");
- comBox.setFocusable(false);
- buttonPane.add(comBox);
- comBox.setEditable(true);
- comBox.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- selectedCOM = (String)comBox.getSelectedItem();
- }
- });
- // CONNECT BUTTON
- JButton b1 = new JButton("Connect");
- b1.setVerticalTextPosition(AbstractButton.CENTER);
- b1.setHorizontalTextPosition(AbstractButton.CENTER);
- b1.setMnemonic(KeyEvent.VK_C);
- b1.setActionCommand("disable");
- b1.setFocusable(false);
- b1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if(!connected){
- textArea.append("Connecting to the device on port "+ selectedCOM + "....\n");
- try {
- serialPort = new SerialPort(selectedCOM);
- textArea.append("Port opened: " + serialPort.openPort() + "\n");
- textArea.append("Params set: " + serialPort.setParams(4800, 8, 1, 0) + "\n");
- textArea.append("Connected succesfully!\n");
- connected = true;
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- } else {
- textArea.append("You can't do that, you are already connected!\n");
- }
- }
- });
- // DISCONNECT BUTTON
- JButton b2 = new JButton("Disonnect");
- b2.setVerticalTextPosition(AbstractButton.CENTER);
- b2.setHorizontalTextPosition(AbstractButton.CENTER);
- b2.setMnemonic(KeyEvent.VK_D);
- b2.setActionCommand("disable");
- b2.setFocusable(false);
- b2.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- if(connected){
- textArea.append("Disconnectiong from the device....\n");
- try {
- textArea.append("Port closed: " + serialPort.closePort() + "\n");
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- textArea.append("Disconnected succefully!\n");
- connected = false;
- } else {
- textArea.append("You can't do that, you are already disconnected!\n");
- }
- }
- });
- JPanel arrowsPane = new JPanel();
- arrowsPane.setLayout(new GridLayout(3,3));
- arrowsPane.setPreferredSize(new Dimension(150,150));
- up = new BasicArrowButton(BasicArrowButton.NORTH);
- down = new BasicArrowButton(BasicArrowButton.SOUTH);
- right = new BasicArrowButton(BasicArrowButton.EAST);
- left = new BasicArrowButton(BasicArrowButton.WEST);
- up.addActionListener(new ActionListener(){
- @Override
- public void actionPerformed(ActionEvent arg0) {
- // TODO Auto-generated method stub
- }
- });
- arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
- arrowsPane.add(up);
- arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
- arrowsPane.add(left);
- arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
- arrowsPane.add(right);
- arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
- arrowsPane.add(down);
- arrowsPane.add(Box.createRigidArea(new Dimension(5,0)));
- buttonPane.add(b1);
- buttonPane.add(b2);
- scrollPane.setFocusable(false);
- buttonPane.setFocusable(false);
- pane.add(arrowsPane, BorderLayout.PAGE_START);
- pane.add(scrollPane, BorderLayout.PAGE_END);
- pane.add(buttonPane, BorderLayout.CENTER);
- add(pane);
- addKeyListener(new KeyListener(){
- @Override
- public void keyPressed(KeyEvent e) {
- int key = e.getKeyCode();
- if (key == KeyEvent.VK_UP) {
- up.getModel().setPressed(true);
- if(connected){
- try {
- serialPort.writeInt(1);
- System.out.println(FORWARD);
- } catch (SerialPortException e1) {
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- e1.printStackTrace();
- }
- }
- else {
- textArea.append("You are not connected.\n");
- }
- } else if (key == KeyEvent.VK_DOWN) {
- down.getModel().setPressed(true);
- if(connected){
- try {
- serialPort.writeInt(BACK);
- System.out.println(BACK);
- } catch (SerialPortException e1) {
- e1.printStackTrace();
- }
- }
- else {
- textArea.append("You are not connected.\n");
- }
- } else if (key == KeyEvent.VK_LEFT) {
- left.getModel().setPressed(true);
- if(connected){
- try {
- serialPort.writeInt(LEFT);
- System.out.println(LEFT);
- } catch (SerialPortException e1) {
- e1.printStackTrace();
- }
- }
- else {
- textArea.append("You are not connected.\n");
- }
- } else if (key == KeyEvent.VK_RIGHT) {
- right.getModel().setPressed(true);
- if(connected){
- try {
- serialPort.writeInt(RIGHT);
- System.out.println(RIGHT);
- } catch (SerialPortException e1) {
- e1.printStackTrace();
- }
- }
- else {
- textArea.append("You are not connected.\n");
- }
- }
- }
- @Override
- public void keyReleased(KeyEvent e) {
- int key = e.getKeyCode();
- if (key == KeyEvent.VK_UP) {
- up.getModel().setPressed(false);
- if (connected) {
- try {
- serialPort.writeInt(FORWARD_RELEASE);
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- }
- } else if (key == KeyEvent.VK_DOWN) {
- down.getModel().setPressed(false);
- if (connected) {
- try {
- serialPort.writeInt(FORWARD_RELEASE);
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- }
- } else if (key == KeyEvent.VK_RIGHT) {
- right.getModel().setPressed(false);
- if (connected) {
- try {
- serialPort.writeInt(TURN_RELEASE);
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- }
- } else if (key == KeyEvent.VK_LEFT) {
- left.getModel().setPressed(false);
- if (connected) {
- try {
- serialPort.writeInt(TURN_RELEASE);
- } catch (SerialPortException e1) {
- //e1.printStackTrace();
- textArea.append("Error: "+e1.getExceptionType()+"\n");
- }
- }
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- // TODO Auto-generated method stub
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement