maxntf
Aug 30 2009, 12:27
Люди подскажите АТ команду которой можно определить готовность SIM карты. А то лажа получается, у меня тут попалась карточка, которая расчехляется секунд 40-50 после регестрации в сети. Мало ли вдруг попадется еще более тормознутая. Нужно как то определять ее готовнось, а потом уж лесть к ней в мозги.
HARMHARM
Aug 30 2009, 17:51
Для SIM300 я после получения Call Ready даю команду AT+CPMS="SM","SM","SM".
Если в ответ приходит "+CMS ERROR: 517", значит карта еще не готова.
После получения "+CPMS: 0,50,0,50,0,50" (для примера) работаю дальше. Не совсем корректно, но работает. Заодно получаю информацию по хранилищу SMS.
maxntf
Aug 31 2009, 06:23
Цитата(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.
Это ясно, я тоже пока просто жду пока ошибку перестанет выдавать при попытки чтении ячейки с телефонной книги.
А может все же есть какая АТ команда, непосредственно для определения готовности симки.
на Wavecom GR64 использую команду "AT+CPIN?". Если ответит "READY", модем готов к работе (заодно по ответу ясно, требуется ли ввод пин-кода). Наличие регистрации в сети можно проверить командой "AT+CREG?".
av-master
Sep 3 2009, 20:34
AT+CPIN?
отвечает гораздо раньше готовности сим карты.. некатит вообще
Вот так это нужно делать:
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 в обработчик попадает еще масса всяких событий т.е. можно задать реакцию на неправильный пин, хреновую симку и т.д.
Alt.F4
Oct 10 2010, 20:19
Часто у людей встречаются такие "тормознутые" симки?
Си не знаю вообще и поэтому не понял, каким образом проверяет готовность сим-карты Chell из предыдущего поста.
Спасибо.
CADiLO
Oct 11 2010, 06:16
Добавлю что скорость готовности карточки еще сильно зависит от ее заполнености.
Если поставить карточку в старый Эриксон A1018 - там довольно неплохой нетмонитор - то увидим что оператор вычитывает телефонную книжку. И чем она полнее, тем дольше идет инициализация. Кроме того операторы любят баловаться карточками выпуская разные акционно-корпоративно-глючные с отступлением от стандартов. Тогда даже не все телефоны их понимают.
mempfis_
Oct 11 2010, 07:27
Цитата(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 поддерживают эту команду
Цитата(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);
ssokol
Oct 12 2010, 04:31
Цитата(CADiLO @ Oct 11 2010, 10:16)

Если поставить карточку в старый Эриксон A1018 - там довольно неплохой нетмонитор - то увидим что оператор вычитывает телефонную книжку.
А не подскажете зачем это оператору моя телефонная книжка, телефонная книжка- это моя собственность (личная жизнь), а воровство
собственности (вторжение в личную жизнь) преследуется по закону.
CADiLO
Oct 12 2010, 06:23
Вы карточку никогда с важными контактами не теряли? Я случайно сломал киевстаровскую - восстановили по заявлению полностью со всеми номерами.
И еще есть такая штука - СОРМ (оперативно разыскные мероприятия) которая обязывает операторов производит определенные действия по сбору информации.
Я сам в свое время офигел когда это в эфире увидел (у нас первые сотовые мосты из-за этого глючили), а потом ничего, даже пригодилось.
Ну а про личную жизнь.... Наверное это все-же вопрос к Европе, а в exUSSR как-то сомнительно......
ssokol
Oct 12 2010, 12:52
Цитата(CADiLO @ Oct 12 2010, 10:23)

восстановили по заявлению полностью со всеми номерами.
Мы тут теряли - восстанавливали и каточки были пустые (мегафон мтс билайн смартс), так что у вас КГБ более крутое ;-)))
Цитата(CADiLO @ Oct 12 2010, 13:23)

Вы карточку никогда с важными контактами не теряли? Я случайно сломал киевстаровскую - восстановили по заявлению полностью со всеми номерами.
И еще есть такая штука - СОРМ (оперативно разыскные мероприятия) которая обязывает операторов производит определенные действия по сбору информации.
Я сам в свое время офигел когда это в эфире увидел (у нас первые сотовые мосты из-за этого глючили), а потом ничего, даже пригодилось.
Ну а про личную жизнь.... Наверное это все-же вопрос к Европе, а в exUSSR как-то сомнительно......
Вопрос к CADiLO. Опсос не сможет считать контакты с сим карты без "согласия" модема (телефона). Вопрос: модули SIMXXX "отдают" оператору контакты?
Harbinger
Oct 13 2010, 04:11
Я бы сформулировал чуть иначе - есть ли у симкомов возможность запретить инициализацию телефонной книжки на SIM? Помимо прочего, поможет справиться с "экзотическими" SIM-картами.
У вейвкомов такая команда была, AT+WAIP.
Alechek
Oct 13 2010, 04:54
Цитата(sobr @ Oct 13 2010, 08:22)

Вопрос к CADiLO. Опсос не сможет считать контакты с сим карты без "согласия" модема (телефона). Вопрос: модули SIMXXX "отдают" оператору контакты?
Смею предположить что модуль здусь ни при чем. Вычитывание телефонной книги (как впрочем и всего относящегося к SIM карте) относится к SIM ATK, ИМХО.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.