What Does gsmAccess() Function Do (Gsm. H and Arduino)

I have a module which connects and sends ussd through arduino+GSM shield. I am kind of fuzzy on the following two commands which are commented with ??. (line 4 and line 7).

Can someone explain what these two do?

And plus gsmAccess.getStatus() == 3; what are the other values that this function can return apart from 3?

#include <GSM.h>
#include <GSM3ShieldV1DirectModemProvider.h>
GSM3ShieldV1DirectModemProvider modemAccess;
GSM gsmAccess(true);                           // ??

void sendCommand(String com){                 // com is "AT+CUSD=1,\"#366#\",\0"
  if(gsmAccess.getStatus() == 3)              // ??
    Serial.println(modemAccess.writeModemCommand(com,comDelay));
  else{
    connectModule();
    sendCommand(com);
  }    
}

1 Answer

The line:

GSM gsmAccess(true);

initializes the GSM library to enable an Arduino to act as though it were a mobile (cell) phone. The true parameter puts the library into debug mode which will print out all the AT commands from the modem (reference).

The line:

if (gsmAccess.getStatus() == 3)

is checking that the GSM library is ready to send commands. The 3 is the code for GSM_READY as defined in the source code

For clarity it would be better to write this line as:

if (gsmAccess.getStatus() == GSM_READY)

The other statuses (defined in the same source file) are:

0: ERROR
1: IDLE
2: CONNECTING
3: GSM_READY
4: GPRS_READY
5: TRANSPARENT_CONNECTED
6: OFF
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Elena Rostova

Elena Rostova

Lead Health, Wellness & Medical Journalist

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.

Share this article
Twitter Facebook Pinterest