Arduino GSM库的语音位置

时间:2012-05-23 07:27:07

标签: arduino gsm

使用Arduino GSM库获取经过身份验证的呼叫和短信。 我想存储授权电话号码的位置(一个字节)而不是电话号码(许多字节)。

但GetAuthorizedSms不给我定位,只是电话号码

1 个答案:

答案 0 :(得分:1)

如果您查看sms.cpp,您可以看到他们使用gsm.ComparePhoneNumber(i,ph)来比较位置i上的电话号码与您拥有的电话号码。

byte get_phonenr_position(char *ph)
{
    byte i;
    for(i = 1; i <= 20; i++)
        if (gsm.ComparePhoneNumber(i, ph))
            return i;
    return 0;
}

应该工作,但效率不高,因为你必须通过串行接口询问模块。我已将变量last_authorized添加到SMSGSM(和CallGSM)类:

sms.cpp:
                     // phone numbers are identical
                     // authorization is OK
                     // ---------------------------
+                    last_authorized = i;
                     ret_val = GETSMS_AUTH_SMS;
                     break;  // and finish authorization
                 }
sms.h:
      char GetAuthorizedSMS(byte position, char *phone_number, char *SMS_text, byte max_SMS_len,
                           byte first_authorized_pos, byte last_authorized_pos);
     char DeleteSMS(byte position);
+    // set by CallStatusWithAuth
+    byte last_authorized;
};

并从我的SMSGSM实例中读取该变量。 (对于CallGSM,我也做了同样的事情。)