Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: CL | DM;

Вниз

Опрос модема   Найти похожие ветки 

 
pfar ©   (2002-11-27 07:32) [0]

Как правильно опросить модем, послать к примеру ati2 и получить ответ от модема?


 
Vad ©   (2002-11-27 08:21) [1]

Тебе попроще или посложней?

Попроще: используй готовые компоненты.
На Torry их полно.

Посложней: поищи в поиске на этом сайте все, что связанно
с COM портами. Это регулярная тема... :-)


 
pfar ©   (2002-11-28 06:57) [2]

Откуда такие умныве, один пример мутыжут везде, а пример привести слабо Vad&


 
Vad ©   (2002-11-28 08:56) [3]

To:pfar
Думаешь, если не разобрался по поиску, то пример поможет?
Тебе зачем ATI2 ? Марку модема посмотреть?
А реестре посмотреть тяжелее?



 
pasha676   (2002-11-28 09:12) [4]


> Откуда такие умныве, один пример мутыжут везде, а пример
> привести слабо Vad&

Работа с сом-портом. Стандартные API функции. Пример привести не то что бы слабо, а просто за@@ало. Напиши мне. Пришлю на мыло пример работы. Еще пошарь на этом сайте. Тут вроде были статьи по работе с сом-ами.


 
Fel   (2002-11-28 11:04) [5]

Оттуда. Мог бы и сам не полениться поискать.
Лови ссылку.
http://www.delphikingdom.com/mastering/ports1.htm
Ройся. Там тебе с практичеси полным описанием работы с портами.


 
pfar ©   (2002-11-28 17:00) [6]

Да все я примеры смотрел, просто прога виснет при попытке считывания из порта. А отправляет все в норме. А в реестре каждый ковыряться может, но мне нужно именно модем опросить.
вот и выходит , что послать команду могу а принять нет. Просто бросте мож у кого завалялся готовый пример проги. Не из за лени я здесь


 
pfar ©   (2002-11-29 17:48) [7]

Ну куда же все подевались


 
Diamond Cat ©   (2002-11-30 02:37) [8]

unit Unit1;
interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
dcb : TDcb; // структура ( виндусовская ) с установками СОМ портов
hCom : THandle; // handler СОМ2
fSuccess : boolean;
dwRead : DWORD;
CharArray : array[0..10] of char; // временный массив данных в оперативной памяти
fileOut : file of char; // файл в который будут писаться данные из СОМ2
i : integer;
begin
hCom := CreateFile(PChar("COM2"),GENERIC_READ,0,nil,OPEN_EXISTING,0,0); //получение указателя на СОМ2
try
fSuccess:= GetCommState(hCom, dcb); // Получение данных о текущих установках СОМ2 и заполнение
// структуры dcb

dcb.BaudRate := CBR_38400; // Установка новых параметров
dcb.ByteSize := 8; // для СОМ2, скорость 38400, 8-ми битный обмен,
dcb.Parity := NOPARITY; // нет контроля четности,
dcb.StopBits := ONESTOPBIT; // один стоповый бит

fSuccess := SetCommState(hCom, dcb); // Установка новых параметров для СОМ2

except
ShowMessage("Error");
end;

if fSuccess then ShowMessage("Success!")
else ShowMessage("Error of initiate ComPort...");

for i:=0 to 10 do // цикл чтения из СОМ2 ( к примеру ) одиннадцати байт
begin
ReadFile(hCom, CharArray[i], 1, dwRead, nil); // чтение одного байта из порта
end;

AssignFile(FileOut,"c:\out.txt");
Rewrite(FileOut);
for i:=0 to 10 do // цикл записи полученной информации в файл на диске
begin
Application.ProcessMessages;
Write(FileOut,CharArray[i]);
end;

CloseFile(FileOut);
CloseHandle(hCom);
end;

end.


послать команду можно посредством записи в организованный файл hCom


 
pfar ©   (2002-11-30 10:23) [9]

Вот спасибо, Diamond Cat!!! Очень приятно, а то гоняют по ссылкам, на которых я был, перед тем как вопрос задавать, а там еще и ошибок полно. Очень выручил, а главное вовремя!!!


 
Diamond Cat ©   (2002-11-30 23:26) [10]

Что вы, что вы, какие деньги? :о)


 
pfar ©   (2002-12-01 06:52) [11]

Да действительно, но я не получаю ответа после Ati2? Хотя функция работает, но конечной цель не достигнута.


 
jack128 ©   (2002-12-02 17:33) [12]

а ты просто пример скомпилировал?
тогда с чего бы ты получил ответ, если не посылаешь запрос

а вообще если хочешь серьезно работать с модемом
используй TAPI


 
Diamond Cat ©   (2002-12-03 01:33) [13]

с Tapi какраз не серьезно, а только на уровне предлагаемых функций


 
iNew ©   (2002-12-03 13:03) [14]

Что такое TAPI?


 
Diamond Cat ©   (2002-12-04 03:26) [15]

это API для телефонии


 
pfar ©   (2002-12-04 09:16) [16]

Не ужели вы думаете, что я не могу разобрать код команды? jack128 это же просто наезд!
Вы все пишете код для работы с COM портом, а модемы чего-то не хватает. Например чтоб он стал набирать номер нужно кроме "atdp 555555" lj, добавить #10+#13 (что-то подобное). А что это такое, с чем его едят, а главное от куда берет?


 
pfar ©   (2002-12-04 09:43) [17]

При передаче модему команд они сначала заносятся во внутренний буфер, который, как правило, имеет размер 40 символов. Команды, записанные в буфер модема, исполняются после поступления символа возврата каретки (<CR>). Вследствие ограниченности размера буфера не следует передавать модему слишком длинные команды (больше размера буфера). Длинные команды можно разбивать на части и передавать в несколько заходов. При этом каждая часть должна начинаться префиксом AT и заканчиваться символом возврата каретки.


На счет +#10+13 вопрос снят.


 
Diamond Cat ©   (2002-12-05 03:55) [18]

2 pfar а что ты хочешь изобразить, присто я сейчас тоже работаю над комутацией модема, но к сожалению очень мало литературы, может объединить усилия, пиши на мыло diamond_cat@newmail.ru


 
pfar ©   (2002-12-05 07:31) [19]

Так все-таки, с посылкой команды я разобрался, надо не просто в порд послать AT команду, ну еще и #10+#13 или наоборот #13+#10 точно не помню, а ведь не кто не сказал. Так осталась проблема получить ответ, он получает, но понять что на трезву голову не удаеться. Да остроумно, но я думаю на пьяну тем более.


 
pfar ©   (2002-12-06 12:46) [20]

...


 
pfar ©   (2002-12-15 08:32) [21]

Всем спасибо, со всем разобрался!!!

P.S Не общайтесь с diamond_cat, я ему все инфу по модемам выслал,
а он даже спасибо не сказал


 
strelok   (2002-12-15 09:13) [22]

да, все быстро и дружно обижаемся на diamondcat :)


 
Diamond Cat ©   (2003-01-14 01:38) [23]

не нормально, предположить , что у человека почта не пришла по причине падения почтового сервака (у провайдера) никто не догадался , а как на него поклеп наводить и т.д. так это все ЗА. ладно-ладно.
2 Strelok , а на обиженых воду возят
2 Pfar ну не пришли исходники, причем не я виноват, яж ни на кого не обижаюсь, хотя мог подумать , что ты зажал!!!!!!!!!


 
Timon ©   (2003-01-14 10:53) [24]

Ну вы блин даёте!!!!!!!!!!!!!!!!!!!!!!!



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

Текущий архив: 2003.03.10;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.018 c
3-29709
Кило
2003-02-18 12:03
2003.03.10
Подскажите как оганизовать в IB(FB) ?


1-29790
Zn
2003-02-27 16:27
2003.03.10
Количество файлов в каталоге.


1-29939
Hill1
2003-02-27 10:32
2003.03.10
DLL + TWinControl + THint


6-29996
KoHe4Ho }|{e 6ot
2003-01-22 21:03
2003.03.10
Как написать свой DNS ?


1-29932
OneOfTheFew
2003-02-27 11:51
2003.03.10
Из дельфовой проги запустить внешнее приложение...