Java - Enviar dato a Puerto Com

 
Vista:

Enviar dato a Puerto Com

Publicado por Jaime (5 intervenciones) el 21/01/2013 21:42:56
Hola,

Soy estudiante de informática de primer año, y tengo una duda sobre el envió de datos por puerto COM, para ya que una PIC lo reciba y lo interprete Explico,

Tengo una placa PIC-IO , conectada por COM, pero en el manual dice que tengo que enviarle los caracteres "O1A", para activar el rele 1, pero se los envio y no pasa nada, alguien podria ayudarme?

Mi codigo es este...

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
import giovynet.nativelink.SerialPort;
import giovynet.serial.Baud;
import giovynet.serial.Com;
import giovynet.serial.Parameters;
import java.util.List;
 
public class RS232 {
 
    static SerialPort puerto = new SerialPort();
    static List<String> listaPuertos;
    static Com com1;
 
    //static char [] ReleEncendido
    public static void main(String[] args) throws Exception {
        // TODO code application logic here
        listaPuertos = puerto.getFreeSerialPort();
 
        Parameters settings = new Parameters();
        settings.setPort("COM6");
        settings.setBaudRate(Baud._9600);
        settings.setByteSize("8");// assigns byte size
        settings.setParity("N");//
 
        com1 = new Com(settings);
 
        com1.sendString("O2A");
    }
}


Le envio el dato, pero la placa no hace nada, creo que se lo estoy enviando bien,

Este es el manual
www.olimex.cl/pdf/PIC/PIC-IO-ENGLISH.pdf

si me podrian ayudar seria genial, ya que recien comienzo cn el mundo de las pics.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Enviar dato a Puerto Com

Publicado por Tom (1831 intervenciones) el 22/01/2013 15:51:42
Pues, si tienes el programita correspondiente corriendo en la PIC, según el pdf que has puesto tienes que enviar el carácter 0x0D al final de la cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar dato a Puerto Com

Publicado por Jaime (5 intervenciones) el 22/01/2013 17:55:24
Hola, Gracias por responder.

Entonces la parte final del código seria


com1.sendString("O2A");
com1.sendString("0x0D");


O

com1.sendString("O2A0x0D"); ?

Si me pudieras responder seria genial :), o el dato 0x0D tendria que enviarlo de otra manera?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar dato a Puerto Com

Publicado por Tom (1831 intervenciones) el 23/01/2013 10:39:08
0x0D es un carácter, corresponde a "Carriage Return" ó CR ó '\r'. Es un terminador de línea, no tienes más que mirar el código de la PIC que viene en el PDF que mencionas.

Echa un ojo a la documentacion de strings en Java, quizás valga "O2A\r"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar dato a Puerto Com

Publicado por Jaime (5 intervenciones) el 24/01/2013 01:22:54
Gracias por toda tu ayuda, ahora necesito la PIC para ir probando, que se la llevo mi tio xd, jajaj

Igualmente te contare cuando la tenga, gracias de todas maneras. :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar dato a Puerto Com

Publicado por jaime (5 intervenciones) el 25/01/2013 03:31:10
Hola, quisiera saber como traducir esto en JAVA, si me ayudan seria genial , entiendo cosas pero como por ejemplo, &H30,chr$, eso no entiendo como traducirlo en java, y ademas nose si se puede,

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
Private Sub OutOn_Click(Index As Integer)
    MSComm1.Output = "O"
  Delay
    MSComm1.Output = Chr$(Index + &H30 + 1)
 Delay
    MSComm1.Output = "A"
 Delay
    MSComm1.Output = Chr$(13)
    LedOn (4 + Index)
End Sub
 
Private Sub CmdOff_Click(Index As Integer)
    MSComm1.Output = "O"
    Delay
    MSComm1.Output = Chr$(Index + &H30 + 1)
    Delay
    MSComm1.Output = "D"
    Delay
    MSComm1.Output = Chr$(13)
    LedOff (4 + Index)
End Sub
 
Sub Delay()
 
   For iCount = 1 To 100000
   Next iCount
 
End Sub


, Gracias de antemanos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar