![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Код сочетания клавиш [D7, WinXP]
Pattern © (2007-04-10 10:59:00)Пишу программу по работе с GPRS модемом. В качестве обмена данными с COM-портом использую CPort310. Для отсылки команды Есть функция:
function WriteStr(const Str: string): Integer;
То есть для отправки AT-команды нужно выполнить следующее:
if ComPort.Connected then
ComPort.WriteStr('AT'+#13#10);
Тут всё понятно, проблем никаких нет. Однако для отправки SMS-сообщения используется следующая команда:
AT+CMGS=[номер получателя][CR]Текст сообщения[CTRL-Z]|[ESC]
[ESC]- для отмены команды
[CTRL-Z]- для отправки сообщения.
Вот тут получился стопор. При использовании ESCпроблем нет, это код #27. А вот с CTRL+Zпробовал отправить следующим образом:
if ComPort.Connected then
ComPort.WriteStr('AT+CMGS=+79211234567'+#13#10+'Test message'+#17#90);
но порт не получает нужной команды, а "висит" и ждёт посылки именно этого сочетания клавиш.
Может кто сталкивался с подобной проблемой, подскажите, как отослать это сочетание клавиш?
Спасибо всем отозвавшимся!
Pattern (2007-04-10 12:37:00) [1]Чтобы уж завершить эту эпопею (вдруг кому пригодится), напишу как на самом деле производится отправка:
var
AtIn: String;
Simb: Integer;
...
begin
...
if ComPort.Connected then
begin
//отправляем предварительную команду отправки SMS
ComPort.WriteStr('AT+CMGS=+79211234567'+#13);
//считываем данные, что модем готов для приёма сообщения
ComPort.ReadStr(AtIn,Simb);
// AtInдолжен вернуть строку
// AT+CMGS=+79211234567
// >
...
//далее идёт посылка на модем самого сообщения
ComPort.WriteStr('Test message'+' '+^Z);
//после тела сообщения обязателен пробел (??? не понятно почему)
//посылка SMS - [CTRL+Z], он же ^Z, он же #26
//считываем как завершилась операция
ComPort.ReadStr(AtIn,Simb);
//после считывания при успешной отправке AtInдолжен вернуть
// +CMGS: [номер отправленного сообщения]
end;
Ещё раз спасибо Леониду!
Pattern (2007-04-10 11:41:00) [2]Спасибо огромное! Разобрался!
Leonid Troyanovsky (2007-04-10 11:28:00) [3]
> Pattern (10.04.07 11:14) [2]
> ...'Test message^Z');
'Test message'+^Z
--
Regards, LVT.
Pattern (2007-04-10 11:14:00) [4]Леонид, спасибо за ответ, только я его не понял...
Вместо #17#90 что я должен написать? #27#90? Или так и ввести текстом
...'Test message^Z');
???
Leonid Troyanovsky (2007-04-10 11:04:00) [5]
> Pattern (10.04.07 10:59)
> message'+#17#90);
Код Ctrl+Z - ^Z
--
Regards, LVT.