 |
 |
|
Обработка AT-команд
ВНИМАНИЕ! Вы просматриваете архив форума.
Этот форум работает только в режиме просмотра и поиска.
Действующий форум переведен на новый движок и
находится по адресу www.microchip.su
|
Автор: AndreyV ()
Дата: 22/02/2007 05:46
Ну вот наконец-то получилось в Протеусе принять байт и теперь соображаю как
грамотно обработать ответ телефона о входящем звонке. Надо просто проверить тот ли
номер звонит. Телефон выдает примерно следующее ..RING.. А пик в ответ должен
заслать команду (точно не помню дома осталось) типа AT+CLCC В ответ телефон
посылает номер телефона с котрого звонят.
Если каждый символ команды это 1 байт то если все в регистрах общего назанчения
хранить а потом сравнивать с принятым никаких регистров не хватит.
Вообщем прошу помощи у умудренных опытом повелителей контроллеров.
Кто как проверяет тот или не тот телефон звонит?
|
|
|
|
Автор: AndreyV ()
Дата: 22/02/2007 09:42
Не могу сообразить сижу за протеусом уже долго. Жена ругается, ей без разницы она
по-моему думает что Proteus это какая-то игра.
|
|
|
|
Автор: Romchik ()
Дата: 22/02/2007 10:38
"Жена ругается, ей без разницы она
по-моему думает что Proteus это какая-то игра."
Ваша жена права, Протеус это и есть игрушка.
Может с цифрой он ещё как то и работает а вот с аналоговой схемотехникой
не дружит, даже простейшие схемы частенько симулирует неверное.
|
|
|
|
Автор: AndreyV ()
Дата: 22/02/2007 10:59
Да аналоговые схемы врет страшно. Например падения напряжения на транзисторах там
нет.
|
|
|
|
Автор: Lexi ()
Дата: 22/02/2007 16:02
Какой телефон используете??
Если семён, то закажите командой AT+CLIP отображение номера звонившего, затем
запишите этот номер в регистры и сравните со списком разрешенных номеров на симке.
если номер из разрешенных последует команда ATA, из запрещенных ATH. Или то, что Вы
напишете.
Меньше слов - больше дела
|
|
|
|
Автор: AndreyV ()
Дата: 23/02/2007 05:56
Да телефон siemens с35
То есть последовательно каждый символ старательно записываем в свой регистр, а
потом также старательно записываем ответ с сим телефона в другие регистры, а потом
сравниваем. Вот я и соображаю. Может пришлешь кусок кода как реализовать это.
|
|
|
|
Автор: NSS ()
Дата: 23/02/2007 07:47
Где то в инклудах HTPICC есть готовая функция для сравнения строк. чего то там про cmp.
Поистчи - там точно есть. :)
"Ignoramus et ignorabimus..."
(Не знаем и не будем знать...)
|
|
|
|
Автор: Wanderer ()
Дата: 23/02/2007 12:18
В любом аппарате который поддерживает ITU0707-700 есть команда переключающая тип
обмена - <string> или , смотрите в списке AT-комманд. в режиме вместо
строки получаем код команды+параметры.
|
|
|
|
Автор: NSS ()
Дата: 23/02/2007 12:50
-
"Ignoramus et ignorabimus..."
(Не знаем и не будем знать...)
|
|
|
|
Автор: Lexi ()
Дата: 24/02/2007 01:54
AndreyV писал(а):
> Да телефон siemens с35
> То есть последовательно каждый символ старательно записываем в
> свой регистр, а
> потом также старательно записываем ответ с сим телефона в
> другие регистры, а потом
> сравниваем. Вот я и соображаю. Может пришлешь кусок кода как
> реализовать это.
вот к примеру кусод кода если кто звонить, то просто отрубает звонящего
#include <16F628.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP, NOMCLR, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=19200, xmit=PIN_B2, rcv=PIN_B1) // Jumpers: 8 to 11, 7 to 12
byte a, s=0, nrx=0,srx[30];
#int_RDA
RDA_isr()
{
srx[nrx++]=getc();
}
void main()
{
enable_interrupts(INT_RDA);
enable_interrupts(global);
delay_ms(1000);
printf("ATE0\r");
delay_ms(500);
for(;;)
{
if ((srx[2]==0x52)&&(srx[3]==0x49)&&(srx[4]==0x4E)&&(srx[5]==0x47))
{
output_bit(pin_a1,1);
printf("ATH\r");
delay_ms(500);
nrx=0;
output_bit(pin_a1,0);
}
}
}
Меньше слов - больше дела
|
|
|
|
Автор: NSS ()
Дата: 24/02/2007 13:29
-
"Ignoramus et ignorabimus..."
(Не знаем и не будем знать...)
Отправка отредактированного (24/02/2007 13:33)
|
|
|
|
 |
|