2012-05-23 2 views
2

Использование библиотеки Arduino GSM для получения аутентифицированного вызова и смс. Я хочу сохранить позицию (один байт) авторизованного номера телефона, а не номер телефона (много байтов).Arduino GSM-номер телефона phonenumber

Но GetAuthorizedSms не дает мне позицию, только номер телефона

ответ

1

Если вы посмотрите в sms.cpp вы можете увидеть, что они используют gsm.ComparePhoneNumber (я, тела) сравнить PHONENUMBER на позицию я с одной у тебя есть.

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 я сделал то же самое).

+0

Спасибо, еще раз – user1400924

Смежные вопросы