gsmAccess() 函数有什么作用(GSM.h 和 Arduino)

What does gsmAccess() function do (GSM.h and Arduino)

我有一个模块通过arduino+GSM shield连接和发送ussd。我对以下两个用 ?? 注释的命令有点模糊。 (第 4 行和第 7 行)。

谁能解释一下这两个是做什么的?

并加上gsmAccess.getStatus() == 3;除了 3 之外,此函数还可以 return 的其他值是什么?

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

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

行:

GSM gsmAccess(true);

初始化 GSM 库,使 Arduino 能够像移动(手机)一样工作 phone。 true 参数将库置于调试模式,这将打印出来自调制解调器 (reference) 的所有 AT 命令。

行:

if (gsmAccess.getStatus() == 3)

正在检查 GSM 库是否已准备好发送命令。 3GSM_READY as defined in the source code

的代码

为清楚起见,最好将此行写为:

if (gsmAccess.getStatus() == GSM_READY)

其他状态(在同一个源文件中定义)是:

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