Еще одна багофича от телита, чтоб не создавать новую тему опишу здесь. Цифры перед сообщениями - системное время в мс.
//Нормальный входящий вызов 44475 ->gsm: AT+CSQ 44487 <-gsm: +CSQ: 17,0 44489 <-gsm: OK //Сообщение о входящем вызове 45451 <-gsm: #ECAM: 0,6,1,,, 45453 <-gsm: RING //В ответ на сообщение проверяем состояние модуля с помощью AT+CLCC 45453 ->gsm: AT+CLCC 45471 <-gsm: +CLCC: 1,1,4,0,0,"###########",145,"" 45473 <-gsm: OK gw: Alering //Переходим в состояние приема вызова //Повторно проверяем состояние непосредственно перед подачей ATA 45502 ->gsm: AT+CLCC 45517 <-gsm: +CLCC: 1,1,4,0,0,"###########",145,"" 45520 <-gsm: OK //Принимаем вызов 46028 ->gsm: ATA 46410 <-gsm: #ECAM: 0,3,1,,, 46412 <-gsm: OK 46432 ->gsm: AT+CLCC 46450 <-gsm: +CLCC: 1,1,0,0,0,"###########",145,"" 46452 <-gsm: OK .....................................................
//Системма переодически проверяет свое состояние с помощью CLCC //Перед этим сообщений #ECAM не было, т.е. CLCC "видит" изменение сотояния до прихода #ECAM 61839 ->gsm: AT+CLCC 61857 <-gsm: +CLCC: 1,1,4,0,0,"###########",145,"" 61860 <-gsm: OK //Тест состояния модуля получение текущего времени итд. 61860 ->Phone::Test() 61880 ->gsm: AT+CREG? 61902 <-gsm: +CREG: 0,1 61904 <-gsm: OK 61910 <-Phone::TestNetReg() 1 61924 ->gsm: AT+CCLK? 61940 <-gsm: +CCLK: "00/01/01,00:00:59+00" 61942 <-gsm: OK gw: Test OK
//Повторно проверяем состояние непосредственно перед подачей ATA 61971 ->gsm: AT+CLCC 61992 <-gsm: +CLCC: 1,1,4,0,0,"###########",145,"" 61995 <-gsm: OK //Принимаем вызов 62503 ->gsm: ATA 62521 <-gsm: NO CARRIER //В ответ NO CARRIER 63451 <-gsm: #ECAM: 0,6,1,,, //Наконец получаем сообщение о входящем вызове теперь можно давать ATA
6345 - 61857 = 1594mc AT+CLCC "увидила" входящий вызов на 1.6 сек раньше чем пришло сообщение #ECAM
|