Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - txenfsm

#1
Hola, estoy realizando una aplicacion en c que se comunica con un puerto com al cual esta conectado un moden, lo que intento es enviar mensajes mediante comandos at, todo funciona pero tengo una duda o un problema porque no se si esto debe ser asi siempre. Resulta que la aplicacion no guarda la configuracion del puerto es decir:
       

       dcbSerialParams.BaudRate=CBR_9600;
        dcbSerialParams.ByteSize=8;
        dcbSerialParams.StopBits=ONESTOPBIT;
        dcbSerialParams.Parity=NOPARITY;
      

      if(!SetCommState(hSerial, &dcbSerialParams))
         printf("\nSetCommState error!");
      else{
         printf("\nSetCommState ok.");
             }


No lo realiza bien no se porque pero si configuro el puerto por hyperterminal y le doy estos mismos valores luego todo funciona a la perfeccion, no encuentro manera de solucionarlo creo que esta todo bien pero aun asi os dejo el codigo para que podais verlo mejor:

int abrir_puerto(){   
    int bandera=0;
    char lineabaudio[30];
     hSerial = CreateFile(puerto, GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_EXISTING, 0,NULL);
    if(hSerial!=INVALID_HANDLE_VALUE)
   {
      DCB dcbSerialParams;
      if (!GetCommState(hSerial, &dcbSerialParams))
         printf("\nGetCommState error!");
      else
            printf("\nGetCommState ok.");
        dcbSerialParams.BaudRate=CBR_9600;
        dcbSerialParams.ByteSize=8;
        dcbSerialParams.StopBits=ONESTOPBIT;
        dcbSerialParams.Parity=NOPARITY;
      

      if(!SetCommState(hSerial, &dcbSerialParams))
         printf("\nSetCommState error!");
      else{
         printf("\nSetCommState ok.");
        }
       

    }
    else
         bandera=1;
    return bandera;
}
void comandos_inicio(){   //funcion que ejecuta los primeros comando necesarios para configurar el dispositivo
     char  *comando[4]={"AT \r","AT+CPIN? \r","AT+CMGF=1 \r","AT+CSCS=\"GSM\" \r"};
     char szBuff[2024];
     int i=0;
      while(i<4){
     
                     strcpy(szBuff,comando);
     
           
            if(!WriteFile(hSerial, szBuff,strlen(szBuff), &dwBytesRead, NULL))    //Escribe cada comando
                 printf("\nWriteFile error!");
             else{
                Sleep(waitsms);
                 dwBytesRead = 0;
                 
                 if(!ReadFile(hSerial, szBuff, sizeof(szBuff), &dwBytesRead, NULL))   //lee la respuesta de cada comando
                     printf("\nReadFile error!");
                 else{
                      szBuff[dwBytesRead] = '\0';
                     
                    printf(" ReadFile: %s\n", szBuff);
                 }
                if(i==1)
                 if( strstr(szBuff,"READY")==NULL)
                       i=5;
                   
                i++;
           }       
     }
     }
Espero que me podais ayudar, gracias de antemano.
#2
Hola amigos, estoy relizando una aplicacion en c que debe insertar valores de una variable en c, lo que realizo para ello es :
sprintf(consulta, "INSERT INTO mitabla (campo1,campo2,campo3) VALUES('%s','%s','%s')",vble_cadena1, vble_caracter2, vble_enterolargo3);
mysql_query(conn,consulta);

bien pues al relizar estas lineas me da error y no se si es porque las variables no son del mismo tipo que lo son en la base de datos. ¿tiene algo que ver?
Lo pregunto porque si en vez esas linea pongo:

sprintf(consulta, "INSERT INTO mitabla (campo1,campo2,campo3) VALUES('hola1','hola2','hola3')");
mysql_query(conn,consulta);

si que funciona.
Espero que me podais ayudar porque no se donde tengo el fallo. gracias de antemano.
Saludos
#3
Programación C/C++ / Escuchar puerto en c
10 Enero 2012, 14:08 PM
Hola, estoy realizando una aplicacion en c que necesita estar a la escucha de un puerto y para ello utilizo socket. se que la informacion que envia el cliente es una cadena de texto pero no se si el utiliza socket.
Mi aplicacion funciona lo que pasa es que no recibe nada y creo que es por esto porque no coincide el canal de conexion.
Existe alguna otra forma de escuchar un puerto para recibir informacion sin saber como lo manda el cliente??
Les agradeceria mucho si me pudieran ayudar. Gracias un saludo