Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 4 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Vie Feb 23, 2007 12:00 am
Mensajes: 9

Nota Publicado: Lun May 21, 2007 9:29 am 
Arriba  
Hola,

Me gustaría saber que función tengo que usar para recibir datos por el puerto serie. Para enviar datos uso el siguiente trozo de código y funciona.

SerialKiss mySerial = null;
byte[] buffer = new byte[ISerialConst.MAX_MSG_LENGTH];

Logger logger = Logger.getLogger("SerialLogger");

try {
mySerial = new SerialKiss("/dev/ttyS0", 19200, 8, "NONE", 1,"NONE");
mySerial.open();
mySerial.claim();
mySerial.setDeviceEnabled(true);
}
catch (Exception e) {
logger.error("Failed to initialize the serial port!");
System.exit(0);
}
try{
mySerial.send((MESSAGE).getBytes());
}
catch (SerialException ex) {
logger.warn ("Couldn't send the message!");
}

incluyendo:
import javax.comm.SerialPort;
import org.apache.log4j.Logger;
import com.bjooris.exceptions.SerialException;
import com.bjooris.serial.*;


El código anterior funciona, lo que quiero saber es que funcion usar para recibir. Yo he probado las funciones read, readBytes, getBytes... pero dice q no las reconoce. Alguien saber por que?

Gracias,

Un saludo,

Lis

 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Abr 18, 2007 11:00 pm
Mensajes: 1209
Ubicación: Cojutepeque, El Salvador C. A.

Nota Publicado: Vie May 25, 2007 8:21 am 
Arriba  
HOLA, Por favor prueba este código, pero está hecho para winbugs. Solo cambia la el string de los puertos...

import java.io.*;
import java.util.*;
import javax.comm.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import javax.swing.*;

public class Main {
static CommPortIdentifier idPuerto;
static SerialPort pSerial;
static String datos;
static InputStream datos0;
static BufferedInputStream lectura;

public Main() {
}
public static void main (String nyu[]){
JOptionPane.showMessageDialog(null,"Iniciando Nivel de Lectura");
try{
idPuerto=CommPortIdentifier.getPortIdentifier("COM1");
}catch(NoSuchPortException e){
JOptionPane.showMessageDialog(null,"El puerto COM1 presenta conflictos");
}

try{//se abrirá el puerto
pSerial=(SerialPort) idPuerto.open("Programa1(COM1)",30000);
try{
datos0 = pSerial.getInputStream();
lectura = new BufferedInputStream(datos0);
int c;
do{
c=lectura.read();
JOptionPane.showMessageDialog(null,"Tras todo ésto obtuve :"+c);
String z=JOptionPane.showInputDialog("Retirarse","Pregunta");
c=Integer.parseInt(z);
}while(c>-1);
}catch(IOException e){JOptionPane.showMessageDialog(null,e.getMessage());}
}catch(PortInUseException e){
JOptionPane.showMessageDialog(null,"El puerto está en uso por otra aplicación");
}
}
}

_________________
Grüße...
Maiku

Full linux alchemist!!!

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 11:05 am
Mensajes: 1

Nota Publicado: Mié Oct 19, 2011 12:35 pm 
Arriba  
Hola, probé el código que sugiere maiku y me tira lo siguiente por consola:

javax.comm: Can't find javax.comm.properties!

java.io.IOException: javax.comm: platform driver class name = null
(Check 'driver' property in javax.comm.properties)

at javax.comm.CommPortIdentifier.loadDriver(CommPortIdentifier.java:244)
at javax.comm.CommPortIdentifier.<clinit>(CommPortIdentifier.java:109)
at main.Main.main(Main.java:22)
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sun.comm.SunrayInfo.isSessionActive()Z
at com.sun.comm.SunrayInfo.isSessionActive(Native Method)
at com.sun.comm.Portmapping.registerCommPorts(Portmapping.java:155)
at com.sun.comm.Portmapping.refreshPortDatabase(Portmapping.java:100)
at javax.comm.CommPortIdentifier.<clinit>(CommPortIdentifier.java:138)
at main.Main.main(Main.java:22)

Descargué la API javax.comm
- win32com.dll: lo guardé en la carpeta ..\Java\jdk1.5.0_02\jre\bin

- javax.comm.properties: copiado en la carpeta ..\Java\jdk1.5.0_02\jre\lib

- comm.jar: copiado en la carpeta ..\Java\jdk1.5.0_02\jre\lib\ext

No sé por qué no encuentra javax.comm.properties.

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Abr 18, 2007 11:00 pm
Mensajes: 1209
Ubicación: Cojutepeque, El Salvador C. A.

Nota Publicado: Mié Oct 19, 2011 12:49 pm 
Arriba  
Hola.

Lo que no se; es si incluíste win32com.dll en la carpeta System32 (asumiendo estás trabajando en windows)

puedes seguir esta guía:

http://lefunes.wordpress.com/2009/02/27 ... n-windows/

Suerte.

_________________
Grüße...
Maiku

Full linux alchemist!!!

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 4 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO