|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - esilgar
Páginas: [1]
1
« en: Miércoles 26 de Abril de 2006, 00:30 »
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; }
2
« en: Miércoles 26 de Abril de 2006, 00:28 »
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);
Páginas: [1]
|
|
|