ArduinoGSMライブラリを使用して認証済みの通話とSMSを取得します。電話番号(多くのバイト)ではなく、許可された電話番号の位置(1バイト)を保存したい。
しかし、GetAuthorizedSmsは私に位置を教えてくれず、電話番号だけを教えてくれます
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についても同じことをしました)。