Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Вниз

Код сочетания клавиш   Найти похожие ветки 

 
Pattern   (2007-04-10 10:59) [0]

Пишу программу по работе с 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);

но порт не получает нужной команды, а "висит" и ждёт посылки именно этого сочетания клавиш.
Может кто сталкивался с подобной проблемой, подскажите, как отослать это сочетание клавиш?
Спасибо всем отозвавшимся!


 
Leonid Troyanovsky ©   (2007-04-10 11:04) [1]


> Pattern   (10.04.07 10:59)  

> message"+#17#90);


Код Ctrl+Z - ^Z

--
Regards, LVT.


 
Pattern   (2007-04-10 11:14) [2]

Леонид, спасибо за ответ, только я его не понял...
Вместо #17#90 что я должен написать? #27#90? Или так и ввести текстом

..."Test message^Z");

???


 
Leonid Troyanovsky ©   (2007-04-10 11:28) [3]


> Pattern   (10.04.07 11:14) [2]

> ..."Test message^Z");


"Test message"+^Z

--
Regards, LVT.


 
Pattern   (2007-04-10 11:41) [4]

Спасибо огромное! Разобрался!


 
Pattern   (2007-04-10 12:37) [5]

Чтобы уж завершить эту эпопею (вдруг кому пригодится), напишу как на самом деле производится отправка:
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;

Ещё раз спасибо Леониду!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.042 c
11-1160821604
vampir_infernal
2006-10-14 14:26
2007.06.03
Exception, TNotifyEvent и не только


2-1179143083
Пун
2007-05-14 15:44
2007.06.03
как обратиться к столбцу?


15-1178373658
Poed
2007-05-05 18:00
2007.06.03
В Турбо паскале не создается исполняемый файл!


15-1178144706
Real
2007-05-03 02:25
2007.06.03
Хостинг в Украине


2-1179118293
vamp_avp
2007-05-14 08:51
2007.06.03
Как узнать дату изменения файла?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский