Foros del Web » Programación para mayores de 30 ;) » Java »

de visual basic a java

Estas en el tema de de visual basic a java en el foro de Java en Foros del Web. Hola, a todos Llevo unas semanas pegandome con la libreria comm.jar de java. Ya he hecho varias cosillas y bueno... mejorando poco a poco. Tengo ...
  #1 (permalink)  
Antiguo 20/08/2007, 10:01
 
Fecha de Ingreso: junio-2004
Mensajes: 33
Antigüedad: 19 años, 10 meses
Puntos: 0
de visual basic a java

Hola, a todos
Llevo unas semanas pegandome con la libreria comm.jar de java. Ya he hecho varias cosillas y bueno... mejorando poco a poco.
Tengo una placa, con la que me comunico por rs232 (los fabricantes de esta placa la controlan con visual basic) Tienen hecho un programilla, con el que conectas la placa al com1 de tu pc y ves como te da los datos que recoge la placa.
una ventanita muy sencilla.
El caso es que yo programo en java pero no consigo que la placa me conteste
El siguiente codigo es el del fabricante, en visual basic:

/////CODIGO
Function Inicia_Comunicacion(ByVal Puerto As Integer)
On Error Resume Next
COM.CommPort = Puerto
If COM.PortOpen = True Then
Inicia_Comunicacion = 0
Exit Function
Else
COM.PortOpen = True
COM.Output = Chr(6)
t = Timer
While COM.InBufferCount < 1
If t + 2 < Timer Then
Inicia_Comunicacion = 0
COM.PortOpen = False
Exit Function
End If
Wend
A$ = COM.Input
If Len(A$) = 0 Then
d = 0
Else
d = Asc(A$)
End If
If d <> 6 Then
Inicia_Comunicacion = 0
COM.PortOpen = False
Exit Function
End If
Inicia_Comunicacion = 1
End If
End Function
///////////////////////////fin de codigo
A la placa hay que enviarle 06 en hexadecimal y ella te contesta 06. esto es para saber que la comunicacion esta bien.
El caso es que a mi no me dice nada. Yo tengo dividido el codigo en varios paquetes en definitiva desde uno escucho y desde otro gestiono los eventos y creo que mi problema es que no hay evento proque se queda clavada la ejecucion. al hacer:
...
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[1];

try{
System.out.print("estoy en data_available"+this.izena+"\n");
int numBytes=0;
InputStream entrada = sp.getInputStream();
numBytes = entrada.read(readBuffer);
String respo=new String(readBuffer,0 , numBytes);
System.out.print("estoy en data_available"+respo+"\n");

} catch(Exception e){System.err.println("Can not read available data.");}
break;
/////////////nunca hay data_available y no ejecuta esta parte del codigo.

puf!
ya me he liado el caso es que mi pregunta es la siguiente
este codigo que esta en visual basic
//COM.Output = Chr(6)
que escribe en java? me refiero a que tipo equivale CHR(6)?
porque creo que podria ser que le este pasando mal la orden. Yo en java hago:
//String msg ="6";
//output.write(msg.getBytes());

Un saludo,

Rowan
  #2 (permalink)  
Antiguo 21/08/2007, 04:30
 
Fecha de Ingreso: junio-2004
Mensajes: 33
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: de visual basic a java

Hola
Me voy a contestar a mi misma, y asi si alguien tiene esta duda pues ya sabe.
El problema era el tipo de datos.
En visual basic chr(6) te devuelve el codigo ascii 6 en un byte. Mi problema con java es que estaba enviando en String lo que debia envier en un byte. Aunque al escribir en el com hiciera getbytes, Java escribe un char en 2 bytes y la placa cogia 1 byte.
No se si me he explicado.
total que cambiando
String msg ="6";
por
byte msg =6;
funciona
Me encantan los veranos lluvioosos cuando no tengo vacaciones
  #3 (permalink)  
Antiguo 24/01/2008, 07:09
 
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: de visual basic a java

Hola,
Soy nuevo en el foro, he encontrado tus notas porque tengo un problema similar.
El caso es el siguiente, tengo una servicio Web hecho en Java donde uno de los parámetros es un xml que debo pasar a una aplicación Visual Basic, esta aplicación Visual Basic 6.0 (SP5) escucha en un puerto con sockets.
Y bien, ¿como puedo pasar el xml (o información) al socket de Visual Basic?

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:56.