Advertisement
Guest User

RXTX Interface http://darylrobotproject.wordpress.com/

a guest
Oct 1st, 2012
931
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.24 KB | None | 0 0
  1. package com.daryl.ihm;
  2.  
  3. import com.cloudgarden.layout.AnchorConstraint;
  4. import com.cloudgarden.layout.AnchorLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import javax.swing.BorderFactory;
  8. import javax.swing.ComboBoxModel;
  9. import javax.swing.DefaultComboBoxModel;
  10. import javax.swing.JButton;
  11. import javax.swing.JComboBox;
  12. import javax.swing.JLabel;
  13. import javax.swing.JScrollPane;
  14. import javax.swing.JSlider;
  15. import javax.swing.JTextArea;
  16. import javax.swing.JToggleButton;
  17. import javax.swing.WindowConstants;
  18. import javax.swing.event.ChangeEvent;
  19. import javax.swing.event.ChangeListener;
  20. import javax.swing.SwingUtilities;
  21.  
  22.  
  23. /**
  24. * This code was edited or generated using CloudGarden's Jigloo
  25. * SWT/Swing GUI Builder, which is free for non-commercial
  26. * use. If Jigloo is being used commercially (ie, by a corporation,
  27. * company or business for any purpose whatever) then you
  28. * should purchase a license for each developer using Jigloo.
  29. * Please visit www.cloudgarden.com for details.
  30. * Use of Jigloo implies acceptance of these licensing terms.
  31. * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
  32. * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
  33. * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
  34. */
  35. public class Interface extends javax.swing.JFrame {
  36.  
  37.     private static final long serialVersionUID = 1L;
  38.  
  39.     {
  40.         //Set Look & Feel
  41.         try {
  42.             javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
  43.         } catch(Exception e) {
  44.             e.printStackTrace();
  45.         }
  46.     }
  47.  
  48.     //Communicator object
  49.     Communicator communicator = null;
  50.    
  51.     @SuppressWarnings("rawtypes")
  52.     private JComboBox jComboBoxListePort;
  53.     private JButton jButtonConnect;
  54.     private JToggleButton jToggleButtonLed;
  55.     private JLabel jLabelValeurSlider;
  56.     private JTextArea jTextAreaLogInput;
  57.     private JScrollPane jScrollPaneLogInput;
  58.     private JTextArea jTextAreaLogOutput;
  59.     private JScrollPane jScrollPaneLogOutput;
  60.     private JLabel jLabelPotar;
  61.     private JLabel jLabelLed;
  62.     private JSlider jSliderServo;
  63.     private JButton jButtonDisconnect;
  64.     private boolean ledOn = false;
  65.     private JLabel jLabelOutput;
  66.     private JLabel jLabelLogInput;
  67.     private JLabel jLabelServo;
  68.     private JLabel jLabelValeurPotar;
  69.     private JSlider jSliderPotar;
  70.     private int servoValue;
  71.    
  72.  
  73.     /**
  74.     * Auto-generated main method to display this JFrame
  75.     */
  76.     public static void main(String[] args) {
  77.         SwingUtilities.invokeLater(new Runnable() {
  78.             public void run() {
  79.                 Interface inst = new Interface();
  80.                 inst.setLocationRelativeTo(null);
  81.                 inst.setVisible(true);
  82.             }
  83.         });
  84.     }
  85.    
  86.     public Interface() {
  87.         super();
  88.         initGUI();
  89.     }
  90.    
  91.     private void initGUI() {
  92.         try {
  93.             setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  94.             AnchorLayout thisLayout = new AnchorLayout();
  95.             this.setTitle("Daryl Robot Project");
  96.             getContentPane().setLayout(thisLayout);
  97.             {
  98.                 jTextAreaLogInput = new JTextArea();
  99.                
  100.                 jScrollPaneLogInput = new JScrollPane(jTextAreaLogInput);
  101.                 getContentPane().add(jScrollPaneLogInput, new AnchorConstraint(61, 665, 983, 347, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  102.                 {
  103.        
  104.                 }
  105.                
  106.                 jTextAreaLogOutput = new JTextArea();
  107.                
  108.                 jScrollPaneLogOutput = new JScrollPane(jTextAreaLogOutput);
  109.                 getContentPane().add(jScrollPaneLogOutput, new AnchorConstraint(61, 990, 983, 675, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  110.                 jScrollPaneLogOutput.setPreferredSize(new java.awt.Dimension(318, 520));
  111.                 {
  112.        
  113.                 }
  114.             }
  115.             {
  116.                 jLabelOutput = new JLabel();
  117.                 getContentPane().add(jLabelOutput, new AnchorConstraint(29, 739, 52, 680, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  118.                 jLabelOutput.setText("Output:");
  119.                 jLabelOutput.setPreferredSize(new java.awt.Dimension(55, 13));
  120.             }
  121.             {
  122.                 jLabelLogInput = new JLabel();
  123.                 getContentPane().add(jLabelLogInput, new AnchorConstraint(27, 400, 52, 349, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  124.                 jLabelLogInput.setText("Input:");
  125.                 jLabelLogInput.setPreferredSize(new java.awt.Dimension(51, 14));
  126.             }
  127.             {
  128.                 jLabelPotar = new JLabel();
  129.                 getContentPane().add(jLabelPotar, new AnchorConstraint(350, 42, 380, 10, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  130.                 jLabelPotar.setText("Potar:");
  131.                 jLabelPotar.setPreferredSize(new java.awt.Dimension(32, 17));
  132.             }
  133.             {
  134.                 jLabelServo = new JLabel();
  135.                 getContentPane().add(jLabelServo, new AnchorConstraint(190, 43, 217, 9, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  136.                 jLabelServo.setText("Servo:");
  137.                 jLabelServo.setPreferredSize(new java.awt.Dimension(34, 15));
  138.             }
  139.             {
  140.                 jLabelValeurSlider = new JLabel();
  141.                 getContentPane().add(jLabelValeurSlider, new AnchorConstraint(188, 110, 217, 51, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  142.                 jLabelValeurSlider.setText("0");
  143.                 jLabelValeurSlider.setPreferredSize(new java.awt.Dimension(60, 16));
  144.             }
  145.             {
  146.                 jLabelLed = new JLabel();
  147.                 getContentPane().add(jLabelLed, new AnchorConstraint(100, 232, 128, 148, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  148.                 jLabelLed.setText("OFF");
  149.                 jLabelLed.setPreferredSize(new java.awt.Dimension(85, 16));
  150.             }
  151.             {
  152.                 jSliderServo = new JSlider();
  153.                 getContentPane().add(jSliderServo, new AnchorConstraint(238, 326, 265, 6, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  154.                 jSliderServo.setPreferredSize(new java.awt.Dimension(323, 15));
  155.                 jSliderServo.setMaximum(180);
  156.                 jSliderServo.setValue(0);
  157.                 jSliderServo.setMinorTickSpacing(1);
  158.                 jSliderServo.setEnabled(false);
  159.                 jSliderServo.addChangeListener(new ChangeListener() {
  160.                     public void stateChanged(ChangeEvent evt) {
  161.                         jSliderServoStateChanged(evt);
  162.                     }
  163.                 });
  164.             }
  165.             {
  166.                 jToggleButtonLed = new JToggleButton();
  167.                 getContentPane().add(jToggleButtonLed, new AnchorConstraint(98, 137, 133, 12, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  168.                 jToggleButtonLed.setText("Led");
  169.                 jToggleButtonLed.setEnabled(false);
  170.                 jToggleButtonLed.setPreferredSize(new java.awt.Dimension(126, 20));
  171.                 jToggleButtonLed.addActionListener(new ActionListener() {
  172.                     public void actionPerformed(ActionEvent evt) {
  173.                         jToggleButtonLedAction(evt);
  174.                     }
  175.                 });
  176.  
  177.             }
  178.             {
  179.                 jButtonDisconnect = new JButton();
  180.                 getContentPane().add(jButtonDisconnect, new AnchorConstraint(22, 328, 59, 240, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  181.                 jButtonDisconnect.setText("Disconnect");
  182.                 jButtonDisconnect.setEnabled(false);
  183.                 jButtonDisconnect.setPreferredSize(new java.awt.Dimension(89, 21));
  184.                 jButtonDisconnect.addActionListener(new ActionListener() {
  185.                     public void actionPerformed(ActionEvent evt) {
  186.                         jButtonDisconnectAction(evt);
  187.                     }
  188.                 });
  189.             }
  190.             {
  191.                 jButtonConnect = new JButton();
  192.                 getContentPane().add(jButtonConnect, new AnchorConstraint(22, 233, 59, 149, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  193.                 jButtonConnect.setText("Connect");
  194.                 jButtonConnect.setPreferredSize(new java.awt.Dimension(85, 21));
  195.                 jButtonConnect.addActionListener(new ActionListener() {
  196.                     public void actionPerformed(ActionEvent evt) {
  197.                         jButtonConnectAction(evt);
  198.                     }
  199.                 });
  200.             }
  201.             {
  202.                 ComboBoxModel jComboBoxListePortModel = new DefaultComboBoxModel();
  203.                 jComboBoxListePort = new JComboBox();
  204.                 getContentPane().add(jComboBoxListePort, new AnchorConstraint(22, 137, 59, 12, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  205.                 {
  206.                     jSliderPotar = new JSlider();
  207.                     getContentPane().add(jSliderPotar, new AnchorConstraint(398, 325, 424, 6, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  208.                     jSliderPotar.setValue(0);
  209.                     jSliderPotar.setMaximum(1023);
  210.                     jSliderPotar.setPreferredSize(new java.awt.Dimension(322, 15));
  211.                     jSliderPotar.setMinorTickSpacing(1);
  212.                     jSliderPotar.setEnabled(false);
  213.  
  214.                 }
  215.                 {
  216.                     jLabelValeurPotar = new JLabel();
  217.                     getContentPane().add(jLabelValeurPotar, new AnchorConstraint(346, 114, 378, 51, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
  218.                     jLabelValeurPotar.setText("0");
  219.                     jLabelValeurPotar.setPreferredSize(new java.awt.Dimension(64, 18));
  220.                 }
  221.                 jComboBoxListePort.setModel(jComboBoxListePortModel);
  222.                 jComboBoxListePort.setPreferredSize(new java.awt.Dimension(126, 21));
  223.             }
  224.             pack();
  225.             this.setSize(1024, 600);
  226.             communicator = new Communicator(this);
  227.             communicator.searchForPorts();
  228.            
  229.         } catch (Exception e) {
  230.             //add your error handling code here
  231.             e.printStackTrace();
  232.         }
  233.     }
  234.    
  235.     private void jSliderServoStateChanged(ChangeEvent evt) {
  236.  
  237.         servoValue = jSliderServo.getValue();
  238.         jLabelValeurSlider.setText(Integer.toString(servoValue));
  239.         communicator.writeData('S', Integer.toString(servoValue));
  240.        
  241.     }
  242.    
  243.     private void jButtonConnectAction(ActionEvent evt) {
  244.  
  245.         communicator.connect();
  246.         if (communicator.getConnected() == true)
  247.         {
  248.             if (communicator.initIOStream() == true)
  249.             {
  250.                 communicator.initListener();
  251.                 jButtonConnect.setEnabled(false);
  252.                 jButtonDisconnect.setEnabled(true);
  253.                 jToggleButtonLed.setEnabled(true);
  254.                 jSliderServo.setEnabled(true);
  255.                 jComboBoxListePort.setEnabled(false);
  256.                
  257.             }
  258.         }
  259.        
  260.     }
  261.    
  262.     private void jButtonDisconnectAction(ActionEvent evt) {
  263.  
  264.         communicator.disconnect();
  265.         jButtonConnect.setEnabled(true);
  266.         jButtonDisconnect.setEnabled(false);
  267.         jToggleButtonLed.setEnabled(false);
  268.         jSliderServo.setEnabled(false);
  269.         jComboBoxListePort.setEnabled(true);
  270.        
  271.     }
  272.    
  273.     private void jToggleButtonLedAction(ActionEvent evt) {
  274.        
  275.         if (ledOn) {
  276.            
  277.             jLabelLed.setText("OFF");
  278.             ledOn = false;
  279.             communicator.writeData('L', "0000");
  280.            
  281.         } else {
  282.            
  283.             jLabelLed.setText("ON");
  284.             ledOn = true;
  285.             communicator.writeData('L', "0255");
  286.            
  287.         }
  288.  
  289.        
  290.     }
  291.  
  292.     public int getServoValue() {
  293.         return servoValue;
  294.     }
  295.  
  296.     public JComboBox getjComboBoxListePort() {
  297.         return jComboBoxListePort;
  298.     }
  299.  
  300.     public JTextArea getjTextAreaLogInput() {
  301.         return jTextAreaLogInput;
  302.     }
  303.  
  304.     public JTextArea getjTextAreaLogOutput() {
  305.         return jTextAreaLogOutput;
  306.     }
  307.  
  308.     public JSlider getjSliderPotar() {
  309.         return jSliderPotar;
  310.     }
  311.  
  312.     public JLabel getjLabelValeurPotar() {
  313.         return jLabelValeurPotar;
  314.     }
  315.  
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement