Vous êtes sur la page 1sur 27

INTERFACES Y EQUIPOS PERIFRICOS

Titular: Dr. Renn Cntreras

INTERFAZ GRFICA DE UN AUTOMVIL

Luis Alberto Hernndez Crdova A00803664 Jos Luis Barragn Garca A01099012 Iliani Carro Prez A01096221

Enero - Mayo 2012

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla

La interfaz est creada con 3 clases en java y 1 programa en arduino. El programa de arduino consiste en mandar un carcter y mandar un carcter y posteriormente mandar la lectura de uno de los canales analgicos que se tienen y posteriormente con ese carcter que se mand, se informa al programa en java en donde tiene que asiganar el entero para que funcione el tacmetro, esto se hace para dos potencimetros. Posteriormente el programa de arduino tiene una funcin de evento serial para poder recibir los datos de entrada, este programa tiene un arreglo de banderas para que dependiendo del carcter que se reciba asigne un valor al PWM o prenda alguno de los focos. Por el lado de Java, se tienen tres clases las cuales son la MainSerial, la GUI y la Communicator, en las cuales se hace lo siguiente: MainSerial: est clase se encarga de inicializar la interfaz y de que la comunicacin se pueda ejecutar. GUI: esta clase se encarga de realizar al interfaz(botones, focos, tacmetros y sliders). Los cuales estn realizados con los mismos cdigos y libreras que se vieron en clase. Communicator: esta clase tiene como fin, recibir los datos que vienen del serial con el fin de que se puedan mostrar en la interfaz que se forma en la clase GUI. Especficamente, la forma en la que recibe y enva los datos en uno por uno, lo cual hace activa un pequeo sistema debanderas que se tiene para que dependiendo el carcter que reciba va a ser el valor y el lugar en donde se va a mostrar en la interfaz.

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla PROGRAMA DE ARDUINO int A = 0; int B = 0; int C = 0; int D = 0; int E = 0; int F = 0; const int ledPin = 6; int brightness=0; char data; char bandera=0,contador=1,contador1=1;

void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(2, INPUT); pinMode(3, INPUT); }

void loop() {

A=map(analogRead(A1),0,1023,0,255); Serial.write('a');

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla Serial.write(A);

delay(35);

B=map(analogRead(A2),0,1023,0,255); Serial.write('b'); Serial.write(B);

delay(35); if(digitalRead(2)==HIGH) { Serial.write('c'); } else { Serial.write('d'); } if(digitalRead(2)==HIGH) { Serial.write('c'); } else { Serial.write('d'); }

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla if(digitalRead(3)==HIGH) { Serial.write('e'); } else { Serial.write('f'); } analogWrite(ledPin, brightness);

delay(150);

void serialEvent() { if (Serial.available()) {

data=Serial.read();

if(bandera==0){ if(data=='h') { if (contador==1){

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla digitalWrite(11,HIGH); contador=0; } else{ digitalWrite(11,LOW); contador=1; } } if(data=='l') { if (contador1==1){ digitalWrite(10,HIGH); contador1=0; } else{ digitalWrite(10,LOW); contador1=1; } } if (data=='p'){ bandera=1; }

} else{

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla bandera=0; brightness= map(data,48,57,0,255);

Serial.println(brightness); } }

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla MAIN SERIAL
import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class MainSerial{

static int dataToSend; public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new GUI().setVisible(true); System.out.println("Started"); } }); } }

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla GUI
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import import import import import import import import import import import import import org.jfree.chart.ChartPanel; org.jfree.chart.JFreeChart; org.jfree.chart.plot.dial.DialBackground; org.jfree.chart.plot.dial.DialCap; org.jfree.chart.plot.dial.DialPlot; org.jfree.chart.plot.dial.DialTextAnnotation; org.jfree.chart.plot.dial.DialValueIndicator; org.jfree.chart.plot.dial.StandardDialFrame; org.jfree.chart.plot.dial.StandardDialRange; org.jfree.chart.plot.dial.StandardDialScale; org.jfree.data.general.DefaultValueDataset; org.jfree.ui.GradientPaintTransformType; org.jfree.ui.StandardGradientPaintTransformer;

public class GUI extends javax.swing.JFrame implements ChangeListener { // Communicator object Communicator communicator = null; /** Creates new form GUI Constructor */ StandardDialFrame standarddialframe = new StandardDialFrame(); public GUI() { initComponents(); createObjects(); communicator.searchForPorts(); } public void stateChanged(ChangeEvent changeevent) { dataset2.setValue(new Integer(slider2.getValue()));

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
// int integer1 = slider1.getValue(); char datoTx = 'p'; communicator.writeData(datoTx); communicator.writeData(new Integer(slider1.getValue())); System.out.println(slider1.getValue());

} private void createObjects() { communicator = new Communicator(this); } private void initComponents() {

jLabel00 = new javax.swing.JTextArea(); jLabel01 = new javax.swing.JTextArea();

cboxPorts = new javax.swing.JComboBox(); btnConnect = new javax.swing.JButton(); btnDisconnect = new javax.swing.JButton(); btnTransmit = new javax.swing.JButton(); btnLights = new javax.swing.JButton(); // BOTN DE PRUEBA btnRadio = new javax.swing.JButton();

txtLog = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Tablero Automovil"); //getContentPane().setLayout(new FlowLayout()); getContentPane().setLayout(new GridBagLayout());

jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); jTextArea1.setColumns(10); jTextArea1.setRows(1); jTextArea1.setLineWrap(true); jScrollPane1.setViewportView(jTextArea1);

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
GridBagConstraints constraints = new GridBagConstraints(); //////////////////////////////////////////////////////////////////////////////// ///////////////// /////////BOTONES DE ESTADO/////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////// jLabel00.setColumns(12); jLabel00.setEditable(false); jLabel00.setFont(new java.awt.Font("Cambria", 3, 15)); jLabel00.setText(" Fuel"); jLabel00.setBackground(Color.RED); constraints.gridx = 0; // El rea de texto empieza en la columna cero. constraints.gridy = 0; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (jLabel00, constraints); jLabel01.setColumns(12); jLabel01.setEditable(false); jLabel01.setFont(new java.awt.Font("Cambria", 3, 15)); jLabel01.setText(" Battery"); jLabel01.setBackground(Color.RED); constraints.gridx = 1; // El rea de texto empieza en la columna cero. constraints.gridy = 0; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (jLabel01, constraints);

btnLights.setFont(new java.awt.Font("Cambria", 3, 15)); btnLights.setText(" Lights"); btnLights.setBackground(Color.RED); constraints.gridx = 2; // El rea de texto empieza en la columna cero. constraints.gridy = 0; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (btnLights, constraints);

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
btnLights.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnLightsActionPerformed(evt); } }); btnRadio.setFont(new java.awt.Font("Cambria", 3, 15)); btnRadio.setText(" Radio"); btnRadio.setBackground(Color.RED); constraints.gridx = 3; // El rea de texto empieza en la columna cero. constraints.gridy = 0; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (btnRadio, constraints); btnRadio.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnRadioActionPerformed(evt); } }); //////////////////////////////////////////////////////////////////////////////// ///////////////// ////////////////////////////////BOTONES DE CONEXIN////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////// btnConnect.setText("Connect"); btnConnect.setFont(new java.awt.Font("Cambria", 1, 15)); btnConnect.setForeground(Color.RED); btnConnect.setBackground(Color.BLACK); btnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConnectActionPerformed(evt); } }); constraints.gridx = 5; // El rea de texto empieza en la columna cero. constraints.gridy = 9; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (btnConnect, constraints); //getContentPane().add(btnConnect); btnDisconnect.setText("Disconnect");

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
btnDisconnect.setForeground(Color.YELLOW); btnDisconnect.setBackground(Color.BLUE); btnDisconnect.addActionListener(new java.awt.event.ActionListener()

{ public void actionPerformed(java.awt.event.ActionEvent evt) { btnDisconnectActionPerformed(evt); } }); constraints.gridx = 6; // El rea de texto empieza en la columna cero. constraints.gridy = 9; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (btnDisconnect, constraints); constraints.gridx = 7; // El rea de texto empieza en la columna cero. constraints.gridy = 9; // El rea de texto empieza en la fila cero constraints.gridwidth = 1; // El rea de texto ocupa dos columnas. constraints.gridheight = 1; // El rea de texto ocupa 2 filas. constraints.fill = GridBagConstraints.BOTH; getContentPane().add (cboxPorts, constraints); /////////////////////////////////////////////////////////////////////////////// ////////////////////////////TACOMETROS GRANDES///////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

dataset1 = new DefaultValueDataset(10D); dataset2 = new DefaultValueDataset(50D); DialPlot dialplot = new DialPlot(); dialplot.setView(0.0D, 0.0D, 1.0D, 1.0D); dialplot.setDataset(0, dataset1); dialplot.setDataset(1, dataset2); //StandardDialFrame standarddialframe = new StandardDialFrame(); standarddialframe.setBackgroundPaint(Color.lightGray); standarddialframe.setForegroundPaint(Color.darkGray); dialplot.setDialFrame(standarddialframe); GradientPaint gradientpaint = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(), new Color(170, 170, 220)); DialBackground dialbackground = new DialBackground(gradientpaint); dialbackground.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL)); dialplot.setBackground(dialbackground); DialTextAnnotation dialtextannotation = new DialTextAnnotation("Km/h"); dialtextannotation.setFont(new Font("Dialog", 1, 14));

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
dialtextannotation.setRadius(0.69999999999999996D); dialplot.addLayer(dialtextannotation); DialValueIndicator dialvalueindicator = new DialValueIndicator(0); dialvalueindicator.setFont(new Font("Dialog", 0, 10)); dialvalueindicator.setOutlinePaint(Color.darkGray); dialvalueindicator.setRadius(0.59999999999999998D); dialvalueindicator.setAngle(-103D); dialplot.addLayer(dialvalueindicator); DialValueIndicator dialvalueindicator1 = new DialValueIndicator(1); dialvalueindicator1.setFont(new Font("Dialog", 0, 10)); dialvalueindicator1.setOutlinePaint(Color.red); dialvalueindicator1.setRadius(0.59999999999999998D); dialvalueindicator1.setAngle(-77D); dialplot.addLayer(dialvalueindicator1);

StandardDialScale standarddialscale = new StandardDialScale(0D, 255D, 270D, -270D, 25D, 4); standarddialscale.setTickRadius(0.88D); standarddialscale.setTickLabelOffset(0.14999999999999999D); standarddialscale.setTickLabelFont(new Font("Dialog", 0, 14)); dialplot.addScale(0, standarddialscale); StandardDialScale standarddialscale1 = new StandardDialScale(0D, 255D, 120D, -300D, 25D, 4); standarddialscale1.setTickRadius(0.5D); standarddialscale1.setTickLabelOffset(0.14999999999999999D); standarddialscale1.setTickLabelFont(new Font("Dialog", 0, 10)); standarddialscale1.setMajorTickPaint(Color.red); standarddialscale1.setMinorTickPaint(Color.red); dialplot.addScale(1, standarddialscale1); dialplot.mapDatasetToScale(1, 1); StandardDialRange standarddialrange = new StandardDialRange(90D, 100D, Color.blue); standarddialrange.setScaleIndex(1); standarddialrange.setInnerRadius(0.58999999999999997D); standarddialrange.setOuterRadius(0.58999999999999997D); dialplot.addLayer(standarddialrange); org.jfree.chart.plot.dial.DialPointer.Pin pin = new org.jfree.chart.plot.dial.DialPointer.Pin(1); pin.setRadius(0.55000000000000004D); dialplot.addPointer(pin); org.jfree.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.chart.plot.dial.DialPointer.Pointer(0); dialplot.addPointer(pointer); DialCap dialcap = new DialCap(); dialcap.setRadius(0.10000000000000001D); dialplot.setCap(dialcap);

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
JFreeChart jfreechart = new JFreeChart(dialplot); jfreechart.setTitle("VELOCIDAD"); ChartPanel chartpanel = new ChartPanel(jfreechart); chartpanel.setPreferredSize(new Dimension(300, 300));

dataset3 = new DefaultValueDataset(10D); dataset4 = new DefaultValueDataset(50D); DialPlot dialplot2 = new DialPlot(); dialplot2.setView(0.0D, 0.0D, 1.0D, 1.0D); dialplot2.setDataset(0, dataset3); dialplot2.setDataset(1, dataset4); StandardDialFrame standarddialframe2 = new StandardDialFrame(); standarddialframe2.setBackgroundPaint(Color.lightGray); standarddialframe2.setForegroundPaint(Color.darkGray); dialplot2.setDialFrame(standarddialframe2); GradientPaint gradientpaint2 = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(), new Color(170, 170, 220)); DialBackground dialbackground2 = new DialBackground(gradientpaint); dialbackground2.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL)); dialplot2.setBackground(dialbackground2); DialTextAnnotation dialtextannotation2 = new DialTextAnnotation("REVOLUCIONES"); dialtextannotation2.setFont(new Font("Dialog", 1, 14)); dialtextannotation2.setRadius(0.69999999999999996D); dialplot2.addLayer(dialtextannotation2); DialValueIndicator dialvalueindicator2 = new DialValueIndicator(0); dialvalueindicator2.setFont(new Font("Dialog", 0, 10)); dialvalueindicator2.setOutlinePaint(Color.darkGray); dialvalueindicator2.setRadius(0.59999999999999998D); dialvalueindicator2.setAngle(-103D); dialplot2.addLayer(dialvalueindicator2); DialValueIndicator dialvalueindicator3 = new DialValueIndicator(1); dialvalueindicator3.setFont(new Font("Dialog", 0, 10)); dialvalueindicator3.setOutlinePaint(Color.red); dialvalueindicator3.setRadius(0.59999999999999998D); dialvalueindicator3.setAngle(-77D); dialplot2.addLayer(dialvalueindicator1); StandardDialScale standarddialscale2 = new StandardDialScale(0D, 255D, 120D, -300D, 15D, 4); standarddialscale2.setTickRadius(0.88D); standarddialscale2.setTickLabelOffset(0.14999999999999999D); standarddialscale2.setTickLabelFont(new Font("Dialog", 0, 14));

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

dialplot2.addScale(0, standarddialscale2); StandardDialScale standarddialscale3 = new StandardDialScale(0D, 100D, 120D, -300D, 10D, 4); standarddialscale3.setTickRadius(0.5D); standarddialscale3.setTickLabelOffset(0.14999999999999999D); standarddialscale3.setTickLabelFont(new Font("Dialog", 0, 10)); standarddialscale3.setMajorTickPaint(Color.red); standarddialscale3.setMinorTickPaint(Color.red); dialplot2.addScale(1, standarddialscale3); dialplot2.mapDatasetToScale(1, 1); StandardDialRange standarddialrange2 = new StandardDialRange(90D, 100D, Color.blue); standarddialrange2.setScaleIndex(1); standarddialrange2.setInnerRadius(0.58999999999999997D); standarddialrange2.setOuterRadius(0.58999999999999997D); dialplot2.addLayer(standarddialrange2); org.jfree.chart.plot.dial.DialPointer.Pin pin2 = new org.jfree.chart.plot.dial.DialPointer.Pin(1); pin2.setRadius(0.55000000000000004D); dialplot2.addPointer(pin2); org.jfree.chart.plot.dial.DialPointer.Pointer pointer2 = new org.jfree.chart.plot.dial.DialPointer.Pointer(0); dialplot2.addPointer(pointer2); DialCap dialcap2 = new DialCap(); dialcap2.setRadius(0.10000000000000001D); dialplot2.setCap(dialcap2); JFreeChart jfreechart2 = new JFreeChart(dialplot2); jfreechart2.setTitle("RPMs"); ChartPanel chartpanel2 = new ChartPanel(jfreechart2); chartpanel2.setPreferredSize(new Dimension(300, 300));

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla

///////////////IMPRESIONES////////////////////////////////////////////////////// /////// constraints.gridx = 6; // El rea de texto empieza en la columna cero. constraints.gridy = 3; // El rea de texto empieza en la fila cero constraints.gridwidth = 3; // El rea de texto ocupa dos columnas. constraints.gridheight = 3; // El rea de texto ocupa 2 filas. constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; getContentPane().add (chartpanel, constraints); constraints.weightx = 0.0; constraints.weighty = 0.0;

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
constraints.gridx = 4; // El rea de texto empieza en la columna cero. constraints.gridy = 3; // El rea de texto empieza en la fila cero constraints.gridwidth = 2; // El rea de texto ocupa dos columnas. constraints.gridheight = 2; // El rea de texto ocupa 2 filas. constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; getContentPane().add (chartpanel2, constraints); constraints.weightx = 0.0; constraints.weighty = 0.0;

slider1 = new JSlider(0, 9); slider1.setMajorTickSpacing(1); slider1.setPaintTicks(true); slider1.setPaintLabels(true); slider1.addChangeListener(this); constraints.gridx = 0; // El rea de texto empieza en la columna cero. constraints.gridy = 4; // El rea de texto empieza en la fila cero constraints.gridwidth = 2; // El rea de texto ocupa dos columnas. constraints.gridheight = 2; // El rea de texto ocupa 2 filas. constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; getContentPane().add (slider1, constraints); constraints.weightx = 0.0; constraints.weighty = 0.0; slider2 = new JSlider(0, 255); slider2.setMajorTickSpacing(51); slider2.setPaintTicks(true); slider2.setPaintLabels(true); slider2.addChangeListener(this); constraints.gridx = 0; // El rea de texto empieza en la columna cero. constraints.gridy = 6; // El rea de texto empieza en la fila cero constraints.gridwidth = 2; // El rea de texto ocupa dos columnas. constraints.gridheight = 2; // El rea de texto ocupa 2 filas. constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; getContentPane().add (slider2, constraints); constraints.weightx = 0.0; constraints.weighty = 0.0;

pack();

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
} private void btnConnectActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnConnectActionPerformed // aqu se pone la funcin que va a tener el botn CONNECT communicator.connect(); btnConnect.setBackground(Color.WHITE); if (communicator.getConnected() == true) { if (communicator.initIOStream() == true) { communicator.initListener(); } } }// GEN-LAST:event_btnConnectActionPerformed private void btnDisconnectActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnDisconnectActionPerformed communicator.disconnect(); txtLog.setText("Disconnected"); }// GEN-LAST:event_btnDisconnectActionPerformed private void btnTransmitActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnDisconnectActionPerformed String dTx = jTextArea1.getText(); int datoTx = (int) Double.parseDouble(dTx);// PREGUNTAR communicator.writeData(datoTx); }// GEN-LAST:event_btnDisconnectActionPerformed private void btnLightsActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnDisconnectActionPerformed

char datoTx = 'h';// PREGUNTAR communicator.writeData(datoTx); } private void btnRadioActionPerformed(java.awt.event.ActionEvent evt) {// GENFIRST:event_btnDisconnectActionPerformed

char datoTx = 'l';// PREGUNTAR communicator.writeData(MainSerial.dataToSend); communicator.writeData(datoTx); }

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
// Variables declaration - do not modify//GEN-BEGIN:variables public javax.swing.JButton btnConnect; public javax.swing.JButton btnLights; public javax.swing.JButton btnDisconnect; public javax.swing.JButton btnTransmit; public javax.swing.JButton btnFuel;///BOTON DE PRUEBA public javax.swing.JButton btnRadio; public javax.swing.JComboBox cboxPorts; public static javax.swing.JTextArea jLabel00; public static javax.swing.JTextArea jLabel01; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea jTextArea1; public javax.swing.JTextArea txtLog; DefaultValueDataset dataset1; DefaultValueDataset dataset2; DefaultValueDataset dataset3; DefaultValueDataset dataset4; DefaultValueDataset DefaultValueDataset DefaultValueDataset DefaultValueDataset dataset5; dataset6; dataset7; dataset8;

JSlider slider1; JSlider slider2; // End of variables declaration//GEN-END:variables

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla COMMUNICATOR
import import import import import import import import // // gnu.io.*; java.awt.Color; java.io.IOException; java.io.InputStream; java.io.OutputStream; java.util.Enumeration; java.util.HashMap; java.util.TooManyListenersException;

This class should also implement the SerialPortEventListener class. this is a class in RXTX and is required in order to receive incoming data

public class Communicator implements SerialPortEventListener { // passed from main GUI GUI window = null; // for containing the ports that will be found private Enumeration ports = null; // map the port names to CommPortIdentifiers private HashMap portMap = new HashMap(); // this is the object that contains the opened port private CommPortIdentifier selectedPortIdentifier = null; private SerialPort serialPort = null; // input and output streams for sending and receiving data private InputStream input = null; private OutputStream output = null; // just a boolean flag that i use for enabling // and disabling buttons depending on whether the program // is connected to a serial port or not private boolean bConnected = false; // the timeout value for connecting with the port final static int TIMEOUT = 2000; // some ascii values for for certain things final static int SPACE_ASCII = 32; final static int DASH_ASCII = 45; final static int NEW_LINE_ASCII = 10; // a string for recording what goes on in the program // this string is written to the GUI String logText = "";

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
int War = 0; public Communicator(GUI window) { this.window = window; } // search for all the serial ports // pre: none // post: adds all the found ports to a combo box on the GUI public void searchForPorts() { ports = CommPortIdentifier.getPortIdentifiers(); while (ports.hasMoreElements()) { CommPortIdentifier curPort = (CommPortIdentifier) ports .nextElement(); // get only serial ports available if (curPort.getPortType() == CommPortIdentifier.PORT_SERIAL) { window.cboxPorts.addItem(curPort.getName()); portMap.put(curPort.getName(), curPort); System.out.println(curPort.getName()); } } } // connect to the selected port in the combo box // pre: ports are already found by using the searchForPorts method // post: the connected comm port is stored in commPort, otherwise, // an exception is generated public void connect() { String selectedPort = (String) window.cboxPorts.getSelectedItem(); selectedPortIdentifier = (CommPortIdentifier) portMap.get(selectedPort); CommPort commPort = null; try { // the method below returns an object of type CommPort commPort = selectedPortIdentifier.open("SerialControlPanel", TIMEOUT); // the CommPort object can be casted to a SerialPort object serialPort = (SerialPort) commPort; // for controlling GUI elements setConnected(true);

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
// logging logText = selectedPort + " opened successfully."; window.txtLog.setForeground(Color.black); window.txtLog.append(logText + "\n");

// CODE ON SETTING BAUD RATE ETC OMITTED // XBEE PAIR ASSUMED TO HAVE SAME SETTINGS ALREADY // enables the controls on the GUI if a successful connection is // made // window.keybindingController.toggleControls(); } catch (PortInUseException e) { logText = selectedPort + " is in use. (" + e.toString() + ")"; window.txtLog.setForeground(Color.RED); window.txtLog.append(logText + "\n"); } catch (Exception e) { logText = "Failed to open " + selectedPort + "(" + e.toString() + ")"; window.txtLog.append(logText + "\n"); window.txtLog.setForeground(Color.RED); } } // open the input and output streams // pre: an open port // post: initialized intput and output streams for use to communicate data public boolean initIOStream() { // return value for whather opening the streams is successful or not boolean successful = false; try { // input = serialPort.getInputStream(); output = serialPort.getOutputStream(); writeData(0); // , 0); successful = true; return successful; } catch (IOException e) { logText = "I/O Streams failed to open. (" + e.toString() + ")";

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n"); return successful;

} } // starts the event listener that knows whenever data is available to be // read // pre: an open serial port // post: an event listener for the serial port that knows when data is // recieved public void initListener() { try { serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (TooManyListenersException e) { logText = "Too many listeners. (" + e.toString() + ")"; window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n"); } } // disconnect the serial port // pre: an open serial port // post: clsoed serial port public void disconnect() { // close the serial port try { writeData(98); // , 0); serialPort.removeEventListener(); serialPort.close(); input.close(); output.close(); setConnected(false); // window.keybindingController.toggleControls(); logText = "Disconnected."; window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n"); } catch (Exception e) { logText = "Failed to close " + serialPort.getName() + "(" + e.toString() + ")"; window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n"); } }

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
final public boolean getConnected() { return bConnected; } public void setConnected(boolean bConnected) { this.bConnected = bConnected; } // what happens when data is received // pre: serial event is triggered // post: processing on the data it reads

public void serialEvent(SerialPortEvent evt) { if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int bandera = 0; int LecturaChar = 1; int LecturaDato = 0; //////////////////////////Lectura del char////////////////////// if(LecturaChar==1) { char singleData = (char) input.read(); if ( singleData == 'a' ) { bandera =1; LecturaChar=0; LecturaDato=1; } if ( singleData == 'b' ) { bandera =2; LecturaChar=0; LecturaDato=1; } if ( singleData == 'c' ) { bandera =3; GUI.jLabel00.setBackground(Color.white);

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
LecturaChar=0; LecturaDato=1; } if ( singleData == 'd' ) { bandera =4; GUI.jLabel00.setBackground(Color.red); LecturaChar=0; LecturaDato=1; } if ( singleData == 'e' ) { bandera =5; GUI.jLabel01.setBackground(Color.white);

LecturaChar=0; LecturaDato=1; } if ( singleData == 'f' ) { bandera =6; GUI.jLabel01.setBackground(Color.red); LecturaChar=0; LecturaDato=1; }

} ////////////////////////Lectura del entero////////////////////// if(LecturaDato==1) { int singleData = (int) input.read(); if (bandera==1) { window.dataset1.setValue(singleData); War =singleData; bandera=0;

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
LecturaChar=1; LecturaDato=0; } if (bandera==2) { window.dataset3.setValue(singleData); bandera=0; LecturaChar=1; LecturaDato=0; } if (bandera==3) { window.dataset5.setValue(singleData); bandera=0; LecturaChar=1; LecturaDato=0; } } } catch (Exception e) { logText = "Failed to read data. (" + e.toString() + ")"; window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n"); } } } // method that can be called to send data // pre: open serial port // post: data sent to the other device public void writeData(int data) { try { output.write(data); System.out.println(data); output.flush();

} catch (Exception e) { logText = "Failed to write data. (" + e.toString() + ")"; window.txtLog.setForeground(Color.red); window.txtLog.append(logText + "\n");

INTERFACES Y EQUIPOS PERIFRICOS

Interfaz Grfica
ENERO MAYO 2011 (Lunes, Mircoles Viernes, 12:00 am 13:00 pm)

Luis Alberto Hernndez Crdova A00803664, Jos Luis Barragn Garca A01099012, Iliani Carro Prez A01096221 ITESM Campus Puebla
} } }

Vous aimerez peut-être aussi