|
определение готовности SIM карты |
|
|
|
Aug 30 2009, 17:51
|

читатель даташитов
   
Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999

|
Для SIM300 я после получения Call Ready даю команду AT+CPMS="SM","SM","SM". Если в ответ приходит "+CMS ERROR: 517", значит карта еще не готова. После получения "+CPMS: 0,50,0,50,0,50" (для примера) работаю дальше. Не совсем корректно, но работает. Заодно получаю информацию по хранилищу SMS.
|
|
|
|
|
Aug 31 2009, 06:23
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 13-05-09
Пользователь №: 49 008

|
Цитата(HARMHARM @ Aug 30 2009, 21:51)  Для SIM300 я после получения Call Ready даю команду AT+CPMS="SM","SM","SM". Если в ответ приходит "+CMS ERROR: 517", значит карта еще не готова. После получения "+CPMS: 0,50,0,50,0,50" (для примера) работаю дальше. Не совсем корректно, но работает. Заодно получаю информацию по хранилищу SMS. Это ясно, я тоже пока просто жду пока ошибку перестанет выдавать при попытки чтении ячейки с телефонной книги. А может все же есть какая АТ команда, непосредственно для определения готовности симки.
|
|
|
|
|
Sep 3 2009, 19:00
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 30-11-07
Пользователь №: 32 845

|
на Wavecom GR64 использую команду "AT+CPIN?". Если ответит "READY", модем готов к работе (заодно по ответу ясно, требуется ли ввод пин-кода). Наличие регистрации в сети можно проверить командой "AT+CREG?".
|
|
|
|
|
Sep 29 2009, 03:44
|
Группа: Участник
Сообщений: 13
Регистрация: 20-02-09
Пользователь №: 45 129

|
Вот так это нужно делать:
adl_tmrHandler_t Check_SIM(void) { adl_simState_e SIM_event; SIM_event = adl_simGetState (); switch (SIM_event) { ... case ADL_SIM_STATE_FULL_INIT: { My_tmr_1 = (adl_tmr_t *)adl_tmrUnSubscribe( (adl_tmr_t *)My_tmr_1, (adl_tmrHandler_t)Check_SIM, ADL_TMR_TYPE_100MS ); // симка готова - едем дальше }break; ... }
}
adl_tmr_t * My_tmr_1 = (adl_tmr_t *)adl_tmrSubscribe ( TRUE, 10, ADL_TMR_TYPE_100MS, (adl_tmrHandler_t)Check_SIM );
кроме события ADL_SIM_STATE_FULL_INIT в обработчик попадает еще масса всяких событий т.е. можно задать реакцию на неправильный пин, хреновую симку и т.д.
|
|
|
|
|
Oct 11 2010, 07:27
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Цитата(maxntf @ Aug 30 2009, 15:27)  Люди подскажите АТ команду которой можно определить готовность SIM карты. А то лажа получается, у меня тут попалась карточка, которая расчехляется секунд 40-50 после регестрации в сети. Мало ли вдруг попадется еще более тормознутая. Нужно как то определять ее готовнось, а потом уж лесть к ней в мозги. Использую Код AT#QSS=2 - настройка вывода статуса
AT#QSS? - запрос статуса sim
QSS: 2,0 - sim отсутствует QSS: 2,1 - sim ещё не готова QSS: 2,2 - sim ещё не готова QSS: 2,3 - sim готова ко всему Модемы telit поддерживают эту команду
|
|
|
|
|
Oct 11 2010, 10:20
|

Знающий
   
Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552

|
Цитата(Chell @ Sep 29 2009, 10:44)  Вот так это нужно делать:
adl_tmrHandler_t Check_SIM(void) { adl_simState_e SIM_event; SIM_event = adl_simGetState (); switch (SIM_event) { ... case ADL_SIM_STATE_FULL_INIT: { My_tmr_1 = (adl_tmr_t *)adl_tmrUnSubscribe( (adl_tmr_t *)My_tmr_1, (adl_tmrHandler_t)Check_SIM, ADL_TMR_TYPE_100MS ); // симка готова - едем дальше }break; ... }
}
adl_tmr_t * My_tmr_1 = (adl_tmr_t *)adl_tmrSubscribe ( TRUE, 10, ADL_TMR_TYPE_100MS, (adl_tmrHandler_t)Check_SIM );
кроме события ADL_SIM_STATE_FULL_INIT в обработчик попадает еще масса всяких событий т.е. можно задать реакцию на неправильный пин, хреновую симку и т.д. +1 Ну или так: Код void simHandler (u8 event) { switch(event) { case ADL_SIM_EVENT_FULL_INIT: TRACE (( 1, "SIM OK" )); adl_simUnsubscribe ( (adl_simHdlr_f) simHandler); break; case ADL_SIM_EVENT_REMOVED: break; case ADL_SIM_EVENT_INSERTED: break; case ADL_SIM_EVENT_PIN_ERROR: break; case ADL_SIM_EVENT_PIN_OK: break; case ADL_SIM_EVENT_PIN_WAIT: break; case ADL_SIM_EVENT_PUK_WAIT: break; case ADL_SIM_EVENT_PUK_ERROR: break; case ADL_SIM_EVENT_FAILURE: break; case ADL_SIM_EVENT_NET_LOCK: break;
} }
adl_simSubscribe(simHandler,NULL);
|
|
|
|
|
Oct 12 2010, 04:31
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(CADiLO @ Oct 11 2010, 10:16)  Если поставить карточку в старый Эриксон A1018 - там довольно неплохой нетмонитор - то увидим что оператор вычитывает телефонную книжку. А не подскажете зачем это оператору моя телефонная книжка, телефонная книжка- это моя собственность (личная жизнь), а воровство собственности (вторжение в личную жизнь) преследуется по закону.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|