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;
}