Programación Específica > PDA
Recpcion Caracteres Puerto Com7
(1/1)
esilgar:
Hola a todos, soy nuevo en este foro y casi tambien en el tema de la programacion de PDA's
En estos momentos estoy programando una aplicacion para el envio de informacion por el puerto COM7 a traves de una antena de RF y la recepcion de datos por el mismo puerto por medio de esta antena.
El problema es que a la hora de recibir los caracteres me salen unas cosas muy raras, en codigo ascii corresponden a -16,16,1 y cosas asi, por que puede ser??
os envio parte del codigo de recepcion, a ver si me podeis ayudar.
muchas gracias.
DWORD WINAPI CommReadThreadFunc(LPVOID lpParam)
{
DWORD dwBytesRead;
DWORD fdwCommMask;
char Byte;
//Especificamos uns conjunto de eventos para que los monitorice el puerto
SetCommMask(hPort, EV_RXCHAR ); //configuramos la mascara para que nos avise cuando el puerto
haya recibido un byte
SetDlgItemText(hwndDialog,IDC_coger, TEXT("introducetexto"));
while (hPort != INVALID_HANDLE_VALUE)
{
//Esperamos a que ocurra un evento en el puerto
if(FALSE==WaitCommEvent(hPort,&fdwCommMask,0))
{
SetDlgItemText(hwndDialog,IDC_pegar, TEXT("err esperando evento"));
return 0;
}
//volvemos a indicar los eventos a monitorizar
SetCommMask(hPort,EV_RXCHAR);
MessageBox(hwndDialog, TEXT("ESPERANDO
LECTURA"),TEXT("error"),MB_OK);
if (fdwCommMask & EV_RXCHAR)
{
MessageBox(hwndDialog, TEXT("dentro rxchar"),TEXT("error"),MB_OK);
unsigned short szBuffer[128]=TEXT("");
int h=0;
for (int l=0;l<15;l++)
{
szBuffer[l]=' ';
}
//Loop para esperar el dato
do
{
ReadFile(hPort,&Byte,1,&dwBytesRead,NULL);
//Guardamos el byte nuevo en una variable
if( dwBytesRead!=0)
{
if (contador==0)
{
for (int l=0;l<15;l++)
{
szBuffer[l]=' ';
}
}
//szBuffer=Byte;
procesado(Byte,contador,szBuffer);
contador++;
//SetDlgItemText(hwndDialog,IDC_pegar, szBuffer);
}
}while (dwBytesRead!=0);
}
//Devolvemos los valores de registro-control
GetCommModemStatus(hPort, &fdwCommMask);
}
return 0;
}
© Jonathan ©:
Bienvenido.. mira, la radiofrecuencia puede llegar a sacarte canas verdes.. antes de estudiar y buscar errores en el codigo fuente seria mas eficaz conectar los dispositivos que se comunican entre si utilizando un Hilo.. osea.. conectarlos fisicamente.. si la comunicacion en fisico funciona bien el problema seria en antenas o Rx y Tx.. de lo contrario seria problema de codigo.. chequea y me cuentas. Saludos :)
esilgar:
gracias por la respuesta, pero no puedo hacer una conexion sin hilos.
yo conecto una antena a la PDA y cuando le mando el comando para pedir la version de la antena no responde bien.
Creo que el problema está en el código, pero no se muy bien.
no se si la funcion de escribir en el puerto es correcta o es a la hora de recibir los caracteres, al pasarlos de la antena a la PDA (hablando en una comunicacion sin hilos, solo del puerto).
No se si a la hora de leer lo leo muy rapido o muy despacion, he puesto 9600baudios a la hora de configurarlo, o si sq lee mal los caracteres :(
no se.
gracias por la ayuda.
lalo_soft:
Has intentado el uso de librerias especialisadas para PDA,yo tuve problemas similares con mi PocketPc y lo solucione de esa forma. :rolleyes:
Te dejo el link
http://franson.com/serialtools/
Navegación
Ir a la versión completa