Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Unable to send AT commands to the COM3 port. plz help.

Unable to send AT commands to the COM3 port. plz help.

Scheduled Pinned Locked Moved C / C++ / MFC
helptutorialquestion
19 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S SandipG

    OK is nothing but response from the modem. what is not working then for you???:confused:

    Regards, Sandip.

    A Offline
    A Offline
    AprNgp
    wrote on last edited by
    #10

    it is not dialing the number i provided .... ATDW2289759\r\n

    Apurv

    S 1 Reply Last reply
    0
    • A AprNgp

      my code is as follows ...

      DCB dcb;
      HANDLE hCom;
      BOOL fSuccess;
      TCHAR *pcCommPort = TEXT("COM3");
      char DataBuffer[] = "AT+FCLASS=8";
      DWORD dwBytesToWrite = (DWORD)strlen(DataBuffer);
      char Data2[]="ATDW2289759";

      DWORD dwBytesWritten = 0;
      DWORD dwBytesRead = 0;
      char ReadBuffer\[BUFFER\_SIZE\] = {0};
      

      hCom = CreateFile( pcCommPort,
      GENERIC_READ | GENERIC_WRITE,
      0, // must be opened with exclusive-access
      NULL, // default security attributes
      OPEN_EXISTING, // must use OPEN_EXISTING
      0, // not overlapped I/O
      NULL // hTemplate must be NULL for comm devices
      );

      if (hCom == INVALID_HANDLE_VALUE)
      {
      // Handle the error.
      printf ("CreateFile failed with error %d.\n", GetLastError());
      return (1);
      }

      // Build on the current configuration, and skip setting the size
      // of the input and output buffers with SetupComm.

      // SecureZeroMemory(&dcb, sizeof(DCB));
      dcb.DCBlength = sizeof(DCB);
      fSuccess = GetCommState(hCom, &dcb);

      if (!fSuccess)
      {
      // Handle the error.
      printf ("GetCommState failed with error %d.\n", GetLastError());
      return (2);
      }

      dcb.BaudRate = CBR\_2400;     // set the baud rate
      dcb.ByteSize = 8;             // data size, xmit, and rcv
      dcb.Parity = NOPARITY;        // no parity bit
      dcb.StopBits = ONESTOPBIT;    // one stop bit
      

      fSuccess = SetCommState(hCom, &dcb);

      if (!fSuccess)
      {
      // Handle the error.
      printf ("SetCommState failed with error %d.\n", GetLastError());
      return (3);
      }

      _tprintf (TEXT("Serial port %s successfully reconfigured.\n"),pcCommPort);

      //WriteFile(hCom,"AT+FCLASS=8",sizeof("AT+FCLASS=8"),&len,0);
      

      if( FALSE == WriteFile(hCom, // open file handle
      DataBuffer + dwBytesWritten, // start of data to write
      dwBytesToWrite - dwBytesWritten, // number of bytes to write
      &dwBytesWritten, // number of bytes that were written
      NULL)) // no overlapped structure
      printf("Could not write %s to file (error %d)\n",DataBuffer, GetLastError());
      else
      _tprintf(TEXT("Wrote %d bytes successfully.\n"), dwBytesWritten);
      if( FALSE == ReadFile(hCom, ReadBuffer, BUFFER_SIZE-2, &dwBytesRead,

      V Offline
      V Offline
      Vaclav_
      wrote on last edited by
      #11

      See documentation for SetCommTimeouts. After that verify your AT command string. As debugging tool, I would turn on modem speaker if you have one. Also verify that COM3 is valid and unused by other application. " When reading from a communications device, the behavior of ReadFile is governed by the current communication time-outs as set and retrieved using the SetCommTimeouts and GetCommTimeouts functions. Unpredictable results can occur if you fail to set the time-out values. For more information about communication time-outs, see COMMTIMEOUTS. "

      A 1 Reply Last reply
      0
      • V Vaclav_

        See documentation for SetCommTimeouts. After that verify your AT command string. As debugging tool, I would turn on modem speaker if you have one. Also verify that COM3 is valid and unused by other application. " When reading from a communications device, the behavior of ReadFile is governed by the current communication time-outs as set and retrieved using the SetCommTimeouts and GetCommTimeouts functions. Unpredictable results can occur if you fail to set the time-out values. For more information about communication time-outs, see COMMTIMEOUTS. "

        A Offline
        A Offline
        AprNgp
        wrote on last edited by
        #12

        THANX Vaclav_Sal .... will check it soon ....

        Apurv

        A 1 Reply Last reply
        0
        • A AprNgp

          THANX Vaclav_Sal .... will check it soon ....

          Apurv

          A Offline
          A Offline
          AprNgp
          wrote on last edited by
          #13

          :doh: how to set the timeouts ?? what should be the second parameter to SetCommTimeouts() function ?

          Apurv

          1 Reply Last reply
          0
          • A AprNgp

            it is not dialing the number i provided .... ATDW2289759\r\n

            Apurv

            S Offline
            S Offline
            SandipG
            wrote on last edited by
            #14

            Does this command work in HyperTerminal BTW:this link explains the AT commands might help you.. Modem commands[^]

            Regards, Sandip.

            A 1 Reply Last reply
            0
            • S SandipG

              Does this command work in HyperTerminal BTW:this link explains the AT commands might help you.. Modem commands[^]

              Regards, Sandip.

              A Offline
              A Offline
              AprNgp
              wrote on last edited by
              #15

              SandipG :) wrote:

              Does this command work in HyperTerminal

              yes ... the number is getting dialed thro' HyperTerminal ... it is working perfectly there ...

              Apurv

              S A 2 Replies Last reply
              0
              • A AprNgp

                SandipG :) wrote:

                Does this command work in HyperTerminal

                yes ... the number is getting dialed thro' HyperTerminal ... it is working perfectly there ...

                Apurv

                S Offline
                S Offline
                SandipG
                wrote on last edited by
                #16

                What does your program do after read buffer??

                Regards, Sandip.

                1 Reply Last reply
                0
                • A AprNgp

                  SandipG :) wrote:

                  Does this command work in HyperTerminal

                  yes ... the number is getting dialed thro' HyperTerminal ... it is working perfectly there ...

                  Apurv

                  A Offline
                  A Offline
                  AprNgp
                  wrote on last edited by
                  #17

                  in the HyperTerminal, when the command ATDW2289759 is given the response is VCON, but in my code the response is OK

                  Apurv

                  A 1 Reply Last reply
                  0
                  • A AprNgp

                    in the HyperTerminal, when the command ATDW2289759 is given the response is VCON, but in my code the response is OK

                    Apurv

                    A Offline
                    A Offline
                    AprNgp
                    wrote on last edited by
                    #18

                    there is a while loop as follows :

                    while(1)
                    {
                    if(kbhit())
                    {
                    key=getch();
                    if(key=='x')
                    {
                    CloseHandle(hCom);
                    exit(0);
                    }
                    switch(key)
                    {
                    case '1':
                    // code to issue command ATDW2289759\r\n
                    }
                    }
                    }

                    Apurv

                    A 1 Reply Last reply
                    0
                    • A AprNgp

                      there is a while loop as follows :

                      while(1)
                      {
                      if(kbhit())
                      {
                      key=getch();
                      if(key=='x')
                      {
                      CloseHandle(hCom);
                      exit(0);
                      }
                      switch(key)
                      {
                      case '1':
                      // code to issue command ATDW2289759\r\n
                      }
                      }
                      }

                      Apurv

                      A Offline
                      A Offline
                      AprNgp
                      wrote on last edited by
                      #19

                      well... its done ! the problem was, i was sending the command as a complete string, the modem needed the command in the pieces ... i mean character-by-character .... the problem is solved ... thanx to all of u .... :)

                      Apurv

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups