Chat Serial--->código inconcluso
Publicado por Perla (2 intervenciones) el 10/04/2007 20:11:58
Hola!
Me dejaron hacer un chat que se comunique a través del puerto serie, para esto el profesor nos digo que bajaramos un programa que esta en la pagina rxtx.org, que allí venía un ejemplo de como comunicar dos computadoras a través de dicho puerto, que nosotros nos encargaramos de la interfaz gráfica, cosa que ya tengo, pero he estado analizando el código y hay partes que la verdad no se para que son, lo podría implementar así nomás a prueba y error con la interfaz gráfica y el profesor ni siquiera preguntaría como le hicimos, pero no quiero hacer esto, ya que me gusta comprender lo que estoy haciendo pero ya tengo varias semanas rompiendome la cabeza y nomás no logró entenderlo. A continuación les pegó el código para ver si alguien me puede dar una breve expliación de lo que hace cada método.
Me dejaron hacer un chat que se comunique a través del puerto serie, para esto el profesor nos digo que bajaramos un programa que esta en la pagina rxtx.org, que allí venía un ejemplo de como comunicar dos computadoras a través de dicho puerto, que nosotros nos encargaramos de la interfaz gráfica, cosa que ya tengo, pero he estado analizando el código y hay partes que la verdad no se para que son, lo podría implementar así nomás a prueba y error con la interfaz gráfica y el profesor ni siquiera preguntaría como le hicimos, pero no quiero hacer esto, ya que me gusta comprender lo que estoy haciendo pero ya tengo varias semanas rompiendome la cabeza y nomás no logró entenderlo. A continuación les pegó el código para ver si alguien me puede dar una breve expliación de lo que hace cada método.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
class PuertoSerial
{
public PuertoSerial()
{
super();
}
void connect ( String portName ) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if ( portIdentifier.isCurrentlyOwned() )
{
System.out.println("Error: Puerto en uso");
}
else
{
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
if ( commPort instanceof SerialPort )
{
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
}
else
{
System.out.println("Error: Solo soporta puerto serie");
}
}
}
public static class SerialReader implements Runnable
{
InputStream in;
public SerialReader ( InputStream in )
{
this.in = in;
}
public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter ( OutputStream out )
{
this.out = out;
}
public void run ()
{
try
{
int c = 0;
while ( ( c = System.in.read()) > -1 )
{
this.out.write(c);
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
public static void main ( String[] args )
{
try
{
(new PuertoSerial()).connect("COM1");
}
catch ( Exception e )
{
e.printStackTrace();
}
}
}
Valora esta pregunta


0