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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
14-30056
Ricks
2003-02-20 12:07
2003.03.10
Старая игра


14-30081
vic_774N
2003-02-20 11:30
2003.03.10
Дополнение к теме - ... имея нелицензионную Delphi


3-29726
Al11
2003-02-19 11:12
2003.03.10
Можно ли Фильтровать полученный Query по выч.полям.


4-30176
top100
2003-01-18 01:25
2003.03.10
как проверить соединение с инетом


1-29875
AM
2003-02-26 13:22
2003.03.10
RichEdit и его макисмальный размер...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский