Package guiPilotoArduino

Source Code of guiPilotoArduino.GuiPilotoArduino

package guiPilotoArduino;

import guiPilotoArduino.cmp.Compass;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JSplitPane;

import java.awt.BorderLayout;

import javax.swing.BorderFactory;
import javax.swing.JFormattedTextField;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.JTabbedPane;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.BoxLayout;
import javax.swing.SpringLayout;

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Color;

import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import javax.swing.text.DefaultCaret;
import javax.swing.SwingConstants;

import java.awt.SystemColor;

import javax.swing.ScrollPaneConstants;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;

import javax.swing.JTextField;

import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

import java.awt.GridLayout;
import java.math.BigDecimal;

import javax.swing.JSeparator;
import javax.swing.border.EtchedBorder;

public class GuiPilotoArduino {

  private JFrame frame;
  private JTabbedPane tabbedPane;
  private JLabel lblCompas;
  private JTextPane textPane;
 
  public JLabel getLblCompas() {
    return lblCompas;
  }

  public JTabbedPane getTabbedPane() {
    return tabbedPane;
  }

  public static Compass compass;
  private JTextField textFieldPuertoArduino;
  private JFormattedTextField textFieldRumbo;
 
 

  public Compass getCompass() {
    return compass;
  }

  /**
   * Launch the application.
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          GuiPilotoArduino window = new GuiPilotoArduino();
          window.frame.setVisible(true);
         
          //Abriendo el listener de Arduino
         
          ArduinoSerialControl arduinoSerialControl = new ArduinoSerialControl();
          arduinoSerialControl.initialize();
          arduinoSerialControl.setCompassData(compass.getCompassData());
          Thread t=new Thread() {
            public void run() {
              //the following line will keep this app alive for 1000 seconds,
              //waiting for events to occur and responding to them (printing incoming messages to console).
              try {Thread.sleep(100000000);} catch (InterruptedException ie) {}
             
            }
          };
          t.start();
          System.out.println("Started");
         
         
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }

  /**
   * Create the application.
   */
  public GuiPilotoArduino() {
    initialize();
  }

  /**
   * Initialize the contents of the frame.
   */
  private void initialize() {
    frame = new JFrame();
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(GuiPilotoArduino.class.getResource("/guiPilotoArduino/arduino.jpg")));
    frame.setBounds(100, 100, 800, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setTitle("Consola Piloto Automatico - Arduino");
   
    JPanel panel = new JPanel();
    frame.getContentPane().add(panel, BorderLayout.NORTH);
   
    JLabel lblNewLabel = new JLabel("Consola Piloto Automatico - Arduino");
    lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 15));
    lblNewLabel.setHorizontalAlignment(SwingConstants.LEFT);
    panel.add(lblNewLabel);
   
    tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
    compass = new Compass();
    tabbedPane.addTab("Brujula", compass);
   
    JPanel panelLabelCompas = new JPanel();
    panelLabelCompas.setBackground(Color.WHITE);
    panelLabelCompas.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
    compass.add(panelLabelCompas, BorderLayout.SOUTH);
    panelLabelCompas.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
   
    lblCompas = new JLabel("0\u00BA");
    lblCompas.setBackground(new Color(255, 255, 255));
    lblCompas.setForeground(Color.BLUE);
    lblCompas.setOpaque(true);
    lblCompas.setFont(new Font("Tahoma", Font.BOLD, 51));
    lblCompas.setBorder(BorderFactory.createLineBorder(Color.WHITE,10));
    panelLabelCompas.add(lblCompas);
   
    JPanel parametros = new JPanel();
    tabbedPane.addTab("Par\u00E1metros", null, parametros, null);
    parametros.setLayout(new BorderLayout(0, 0));
   
    JPanel pnlCabVariables = new JPanel();
    pnlCabVariables.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
    parametros.add(pnlCabVariables, BorderLayout.NORTH);
    pnlCabVariables.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
   
    JLabel lblPuertoArduino = new JLabel("Puerto Arduino:");
    pnlCabVariables.add(lblPuertoArduino);
   
    textFieldPuertoArduino = new JTextField();
    textFieldPuertoArduino.setToolTipText("<html>\r\n<p>Puerto donde est&aacute; conectado el Arduino.</p>\r\n<p>Ejemplo por Sistema Operativo</p>\r\n<ul>\r\n<li><strong>Windows: </strong>COM3</li>\r\n<li><strong>Linux: </strong>/dev/ttyACM0</li>\r\n<li><strong>MAC OSX:</strong> /dev/tty.usbserial-A9007UX1</li>\r\n</ul>\r\n</html>");
    pnlCabVariables.add(textFieldPuertoArduino);
    textFieldPuertoArduino.setColumns(35);
   
    JButton btnConectar = new JButton("Conectar");
    btnConectar.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
      }
    });
    pnlCabVariables.add(btnConectar);
   
    JPanel pnlVariables = new JPanel();
    parametros.add(pnlVariables, BorderLayout.CENTER);
    GridBagLayout gbl_pnlVariables = new GridBagLayout();
    gbl_pnlVariables.columnWidths = new int[]{105, 126, 47, 68, 126, 0};
    gbl_pnlVariables.rowHeights = new int[]{20, 20, 0};
    gbl_pnlVariables.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
    gbl_pnlVariables.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
    pnlVariables.setLayout(gbl_pnlVariables);
   
    JLabel lblNewLabel_1 = new JLabel("Rumbo deseado:");
    GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints();
    gbc_lblNewLabel_1.anchor = GridBagConstraints.SOUTHWEST;
    gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5);
    gbc_lblNewLabel_1.gridx = 0;
    gbc_lblNewLabel_1.gridy = 0;
    pnlVariables.add(lblNewLabel_1, gbc_lblNewLabel_1);
   
    textFieldRumbo = new JFormattedTextField(new Integer(90));
    textFieldRumbo.setToolTipText("Rumbo deseado a seguir, introduce un rumbo valido entre 0 y 360 grados.");
    textFieldRumbo.setHorizontalAlignment(SwingConstants.RIGHT);
    GridBagConstraints gbc_textFieldRumbo = new GridBagConstraints();
    gbc_textFieldRumbo.anchor = GridBagConstraints.NORTHWEST;
    gbc_textFieldRumbo.insets = new Insets(0, 0, 5, 5);
    gbc_textFieldRumbo.gridx = 1;
    gbc_textFieldRumbo.gridy = 0;
    pnlVariables.add(textFieldRumbo, gbc_textFieldRumbo);
    textFieldRumbo.setColumns(15);
   
    JLabel lblDesvioRumbo = new JLabel("Desvio Rumbo");
    GridBagConstraints gbc_lblDesvioRumbo = new GridBagConstraints();
    gbc_lblDesvioRumbo.anchor = GridBagConstraints.SOUTHWEST;
    gbc_lblDesvioRumbo.insets = new Insets(0, 0, 5, 5);
    gbc_lblDesvioRumbo.gridx = 3;
    gbc_lblDesvioRumbo.gridy = 0;
    pnlVariables.add(lblDesvioRumbo, gbc_lblDesvioRumbo);
   
    JFormattedTextField textFieldDesvioRumbo = new JFormattedTextField(new Integer(6));
    textFieldDesvioRumbo.setHorizontalAlignment(SwingConstants.RIGHT);
    textFieldDesvioRumbo.setToolTipText("<html><p>Desvi&oacute; m&aacute;ximo permitido sobre el rumbo sin aplicar cambio de rumbo<br />si los m&aacute;rgenes est&aacute;n (+/-) el desvi&oacute; permitido se hacen peque&ntilde;as correcciones <br />sobre el tim&oacute;n a Babor y Estribor para tener una tendencia de acuerdo al rumbo <br />requerido.</p></html>");
    textFieldDesvioRumbo.setColumns(15);
    GridBagConstraints gbc_textFieldDesvioRumbo = new GridBagConstraints();
    gbc_textFieldDesvioRumbo.anchor = GridBagConstraints.NORTHWEST;
    gbc_textFieldDesvioRumbo.insets = new Insets(0, 0, 5, 0);
    gbc_textFieldDesvioRumbo.gridx = 4;
    gbc_textFieldDesvioRumbo.gridy = 0;
    pnlVariables.add(textFieldDesvioRumbo, gbc_textFieldDesvioRumbo);
   
    JLabel lblDeclinacinMagnetica = new JLabel("Declinaci\u00F3n magnetica");
    GridBagConstraints gbc_lblDeclinacinMagnetica = new GridBagConstraints();
    gbc_lblDeclinacinMagnetica.anchor = GridBagConstraints.SOUTHWEST;
    gbc_lblDeclinacinMagnetica.insets = new Insets(0, 0, 0, 5);
    gbc_lblDeclinacinMagnetica.gridx = 0;
    gbc_lblDeclinacinMagnetica.gridy = 1;
    pnlVariables.add(lblDeclinacinMagnetica, gbc_lblDeclinacinMagnetica);
   
    JFormattedTextField textFieldDeclinacionMagnetica = new JFormattedTextField(new BigDecimal(-0.333) );
    textFieldDeclinacionMagnetica.setHorizontalAlignment(SwingConstants.RIGHT);
    textFieldDeclinacionMagnetica.setColumns(15);
    textFieldDeclinacionMagnetica.setToolTipText("Declinaci\u00F3n magnetica en grados UN grado igual a 60 minutos, Emplo para Alicante:-0.333 ");
    GridBagConstraints gbc_textFieldDeclinacionMagnetica = new GridBagConstraints();
    gbc_textFieldDeclinacionMagnetica.anchor = GridBagConstraints.NORTHWEST;
    gbc_textFieldDeclinacionMagnetica.insets = new Insets(0, 0, 0, 5);
    gbc_textFieldDeclinacionMagnetica.gridx = 1;
    gbc_textFieldDeclinacionMagnetica.gridy = 1;
    pnlVariables.add(textFieldDeclinacionMagnetica, gbc_textFieldDeclinacionMagnetica);
   
    JLabel lblCorrecinCuadrantes = new JLabel("Correci\u00F3n Cuadrantes");
    GridBagConstraints gbc_lblCorrecinCuadrantes = new GridBagConstraints();
    gbc_lblCorrecinCuadrantes.anchor = GridBagConstraints.EAST;
    gbc_lblCorrecinCuadrantes.insets = new Insets(0, 0, 0, 5);
    gbc_lblCorrecinCuadrantes.gridx = 3;
    gbc_lblCorrecinCuadrantes.gridy = 1;
    pnlVariables.add(lblCorrecinCuadrantes, gbc_lblCorrecinCuadrantes);
   
    JFormattedTextField textFieldCorrecionCuadrantes = new JFormattedTextField(new Integer(45));
    textFieldCorrecionCuadrantes.setHorizontalAlignment(SwingConstants.RIGHT);
    textFieldCorrecionCuadrantes.setColumns(15);
    GridBagConstraints gbc_textFieldCorrecionCuadrantes = new GridBagConstraints();
    gbc_textFieldCorrecionCuadrantes.anchor = GridBagConstraints.WEST;
    gbc_textFieldCorrecionCuadrantes.gridx = 4;
    gbc_textFieldCorrecionCuadrantes.gridy = 1;
    pnlVariables.add(textFieldCorrecionCuadrantes, gbc_textFieldCorrecionCuadrantes);
   
    JPanel pnlAplicarCambios = new JPanel();
    pnlAplicarCambios.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
    parametros.add(pnlAplicarCambios, BorderLayout.SOUTH);
   
    JButton btnAplicarCambios = new JButton("Aplicar cambios");
    btnAplicarCambios.setEnabled(false);
    btnAplicarCambios.setToolTipText("Envia los cambios realizados al Arduino");
    pnlAplicarCambios.add(btnAplicarCambios);
   
    JButton btnLeerVariables = new JButton("Leer variables");
    btnLeerVariables.setEnabled(false);
    btnLeerVariables.setToolTipText("Recupera las variables del arduino y actualiza nuestros valres");
    pnlAplicarCambios.add(btnLeerVariables);

   
    JPanel logEventos = new JPanel();
    tabbedPane.addTab("Log", null, logEventos, null);
    logEventos.setLayout(new BorderLayout(0, 0));
   
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
    logEventos.add(scrollPane);
   
    textPane = new JTextPane();
    textPane.setBackground(SystemColor.text);
    textPane.setEditable(false);
    scrollPane.setViewportView(textPane);
   
    JPanel pnlEvntLog = new JPanel();
    logEventos.add(pnlEvntLog, BorderLayout.NORTH);
   
    JButton btnClearLog = new JButton("Borrar Log");
    btnClearLog.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        textPane.setText("");
      }
    });
    pnlEvntLog.add(btnClearLog);
    DefaultCaret caret = (DefaultCaret)textPane.getCaret();
    caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  }
}
TOP

Related Classes of guiPilotoArduino.GuiPilotoArduino

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.