![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка Смс-сообщений через телефон, подключенный к ком-порт
Diss © (2006-09-30 16:05:00)Пытаюсь реализовать программу для посыла смсок через мобильный телефон, подключенный к компорту, работаю с компортом как с файлом...открыл, записал туда строку, закрыл...если послать в компорт команду 'atdt8910*******' , то телефон на эту команду реагирует и сответсвенно звонит...знаю, что при отправке смс также нужно посылать at-комманду, но как ни пробовал, не получается...
подскажите пожалуйста :
1) насколько знаю, там после посыла первой строки(содержащей в себе at комманду и номер телефона, на который эта смс должна уйти) нужно ещё как-то дождаться возврата от мобильного символа '>' а уже потом посылать ещё одну строку(с содержанием сообщения)...
как это реализовать я не знаю...
2) ещё читал, что надо передавать в строке номер смс-центра...а в струтуре комманды at+cmgs, комманды оправки смс, под этот номер место не отведено...
вот собственно 2 проблемы, если кто знает что-нибудь по этой проблеме, помогите пожалуйста советом...
упрощенный текст моей программы:
Var buff: string;
h:text;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
assignfile (h, 'COM8');
buff:= <строка>;
reset(h);
rewrite (h);
writeln (h , buff);
closefile (h);
Application.Run;
end.
Ketmar (2006-10-01 18:12:00) [1]>[5] Германн(c) 1-Oct-2006, 01:50
>последний предусмотрел в своём клиенте
>стандартный ответ про "метлу".
нет. я честно руками набираю каждый раз. хотя, если подумать -- это идея. надо бы макрос сделать. %-)
Германн (2006-10-01 01:50:00) [2]Блин.
Только что полностью прочитал сам вопрос автора!
Не. Ему лучше спросить совет у Кэтмара. Наверно последний предусмотрел в своём клиенте стандартный ответ про "метлу".
Германн (2006-10-01 01:45:00) [3]
> Обычно такое ожидание делается в цикле. Возможно - в отдельном
> потоке.
Хм. Хотелось бы знать, что тут понимается под "циклом"?
В отдельном потоке? Может быть, но имхо, не стОит.
Если принять во внимание
> Diss (30.09.06 23:40) [2]
>
> спасибо, что-то стало проясняться...
> пользуясь терминальной программой посылаю телефону
> 'at+cmgs=140'
> и действительно получаю ответ '>'
, то имхо "протоколы" и "разные модели" - "идут на север" вместе с верблюдами. :-)
Автору нужно было бы освоить работу с СОМ-портом в Windows! И задать вопрос именнооб этом!
Percent (2006-09-30 23:55:00) [4]или надо обязательно считать этот символ из компорта?
Есть подозрение, что надо дождаться.
Вообще, я бы посоветовал вам почитать про протоколы обмена данными с мобильными телефонами, про отличия в работе с различными моделями телефонов разных производителей.
теперь непонятно как мне в дельфи его дождаться
Обычно такое ожидание делается в цикле. Возможно - в отдельном потоке. Все зависит от логики работы программы.
Diss (2006-09-30 23:40:00) [5]спасибо, что-то стало проясняться...
пользуясь терминальной программой посылаю телефону
'at+cmgs=140'
и действительно получаю ответ '>'
теперь непонятно как мне в дельфи его дождаться...подскажите пожалуйста кто знает...достаточно ли просто какое-то время подождать (например процедурой sleep) или надо обязательно считать этот символ из компорта?
X9 (2006-09-30 17:51:00) [6]Телефоны разные бывают, и интерфейсы передачи у них тоже могут различаться.
Попробуйте отпраить сообщение с помощью "родной" программы для телефона и перехватить данные передаваемые в порт какой-нибудь утилитой (можно посмотреть на http://sysinternals.com).