2

ArduinoGSMライブラリを使用して認証済みの通話とSMSを取得します。電話番号(多くのバイト)ではなく、許可された電話番号の位置(1バイト)を保存したい。

しかし、GetAuthorizedSmsは私に位置を教えてくれず、電話番号だけを教えてくれます

4

1 に答える 1

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を追加しました:SMSGSMCallGSM

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についても同じことをしました)。

于 2012-05-23T09:49:15.543 に答える