Страница 1 из 1

Help

Добавлено: Вс, 11 янв 2004 23:58:32
Andrey
Как можно обратиться к порту (COM2)
Через Delphi 6




(надо напрямую, через порт РАБОТАТЬ С МОДЕМОМ)
(Или как правильно работать со тандартным МОДЕМОМ)

подскажите, дайте исходники! ..... :( :( :( :(

ОТПРАВЬТЕ В ЛИЧКУ ...

Re: Help

Добавлено: Пн, 12 янв 2004 10:34:15
Dmitry
Andrey писал(а):Как можно обратиться к порту (COM2)
Через Delphi 6




(надо напрямую, через порт РАБОТАТЬ С МОДЕМОМ)
(Или как правильно работать со тандартным МОДЕМОМ)

подскажите, дайте исходники! ..... :( :( :( :(

ОТПРАВЬТЕ В ЛИЧКУ ...
Если писать от и до то у тебя получиться долго изучать что и как. Проще зайди на www.torry.net - там есть компоненты от простых (для прямого обращения к COM) до уже готовых компонентов для работы с голосовыми функциями и факсами всякими...

Re: Help

Добавлено: Пн, 12 янв 2004 21:06:28
Executor
Andrey писал(а):Как можно обратиться к порту (COM2)
Через Delphi 6




(надо напрямую, через порт РАБОТАТЬ С МОДЕМОМ)
(Или как правильно работать со тандартным МОДЕМОМ)

подскажите, дайте исходники! ..... :( :( :( :(

ОТПРАВЬТЕ В ЛИЧКУ ...
Ничего сложного тут нет... Можно конечно скачать какието компоненты, которые тебе облегчат жизнь, но я сторонник того, чтобы писать самому...

procedure CreateAndWrite;
var
hCOM: THandle;
Buf: array[0..127] of Char;
begin
hCOM:=CreateFile('COM1', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
if hCOM=INVALID_HANDLE_VALUE then raise EAbort.CreateFmt('Ошибка открытия порта: %d', [GetLastError]);
Buf:='ATDP321717'+#13+#10;
WriteFile(hCOM, Buf, SizeOf(Buf), N, nil);
end;

procedure Close;
begin
CloseHandle(hCOM);
end;

З.Ы. Толком этим не занимался - не было необходимости, так что детально помочь не смогу... А чтение осуществляется с помощью ReadFile... Работа анологичная как с обычными файлами...

Re: Help

Добавлено: Вт, 13 янв 2004 10:27:25
Dmitry
Executor писал(а): Ничего сложного тут нет... Можно конечно скачать какието компоненты, которые тебе облегчат жизнь, но я сторонник того, чтобы писать самому...

procedure CreateAndWrite;
var
hCOM: THandle;
Buf: array[0..127] of Char;
begin
hCOM:=CreateFile('COM1', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
if hCOM=INVALID_HANDLE_VALUE then raise EAbort.CreateFmt('Ошибка открытия порта: %d', [GetLastError]);
Buf:='ATDP321717'+#13+#10;
WriteFile(hCOM, Buf, SizeOf(Buf), N, nil);
end;
Один раз оно тебе даже позвонит, а второй нет - нужно еще команды инициализации и очистки писать, в большинстве они специфичны для каждого модема. А если работать с голосом и факсом то вообще будет засада. Комманды для модемов найти мягко говоря сложновато (исключения OMNI - они пихают полное описание на CD с дровами).

В тему: никто не занимался созданием АОН'ов? Как ни странно callerID, который можно стянуть стандартными коммандами всегда пуст. Все русские описания рассчитаны либо на Currier'ы либо на OMNI. Вот и интересно: при каких условиях модем вообще может распознать номер?

Re: Help

Добавлено: Вт, 13 янв 2004 18:34:22
Executor
Dmitry писал(а):Один раз оно тебе даже позвонит, а второй нет - нужно еще команды инициализации и очистки писать, в большинстве они специфичны для каждого модема. А если работать с голосом и факсом то вообще будет засада. Комманды для модемов найти мягко говоря сложновато (исключения OMNI - они пихают полное описание на CD с дровами).
Я ему привёл пример как с этим работать... А уже узнавать команды, и глубже в этом разбираться - это его проблемы... Не буду же я ему тут код ВентаФакса писать... :)
Я вообщето думал, что команды у всех модемов одинаковые, стандартные - AT команды!

Re: Help

Добавлено: Вт, 13 янв 2004 20:09:45
Dmitry
Executor писал(а):Не буду же я ему тут код ВентаФакса писать... :)
А что есть? Если есть - дай знать, мне бы не помешал :)
Executor писал(а):Я вообщето думал, что команды у всех модемов одинаковые, стандартные - AT команды!
Ну это Вы погорячились ;) Войсовые (я с ними работал) вобще почти у каждого свои... :-|

Re: Help

Добавлено: Вт, 13 янв 2004 22:24:07
Executor
Dmitry писал(а):А что есть? Если есть - дай знать, мне бы не помешал :)
Я имел ввиду, что не буду же я за него всю программу сидеть писать, делать второй ВентаФакс и выкладывать сюда... А как бы самого кода Венты у мя нет, я имел ввиду подобный код...
По работе с модемами у мя инфы нет никакой...
Ну это Вы погорячились ;) Войсовые (я с ними работал) вобще почти у каждого свои... :-|
Вполне возможно... Я просто не увлекался модемами както... :)
И работа через ком порт осуществлялась с другими устройствами, не с модемами, на модемах я только тестил, правильно ли отсылка и чтение работает или нет...