SoloCodigo

Programación Específica => Programación de Aplicaciones para Dispositivos => PDA => Mensaje iniciado por: esilgar en Miércoles 26 de Abril de 2006, 00:30

Título: Recpcion Caracteres Puerto Com7
Publicado por: esilgar 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;
}
Título: Re: Recpcion Caracteres Puerto Com7
Publicado por: © Jonathan © en Jueves 27 de Abril de 2006, 16:13
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 :)
Título: Re: Recpcion Caracteres Puerto Com7
Publicado por: esilgar en Jueves 27 de Abril de 2006, 22:10
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.
Título: Re: Recpcion Caracteres Puerto Com7
Publicado por: lalo_soft en Viernes 28 de Abril de 2006, 03:15
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/ (http://franson.com/serialtools/)