• Lunes 23 de Diciembre de 2024, 15:28

Autor Tema:  Recpcion Caracteres Puerto Com7  (Leído 2068 veces)

esilgar

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Recpcion Caracteres Puerto Com7
« en: Miércoles 26 de Abril de 2006, 00:28 »
0
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);