Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как работать с модемом и СОМ портами, точнее как... [D6, WinME]


Страницы:   1 2

Dennis S ©   (2001-11-06 10:45:00) 

Вопрос в следующем:
Есть модем (стоит в одном из портов - СОМ2).
Windows его не видит(не определяет), пока не начнешь устанавливать оригинальный пакет для этого модема с CD-ROM-а. Затем все ОК.
Так вот, как сделать чтобы, прога нашла и показала:
-все доступные порты на кампе
-иммено тот, в котором стоит модем (но Windows его не видит)
-и как протестировать его(модем)
Идея такая - сделать маленькую утилиту - бегает по портам, выводит список доступных, показывает (отдельно) тот, который с модемом, и "пробует" его(порт с модемом).
И еще с какого боку подходить к АТ командам модема?


Milz   (2001-11-29 15:34:00) [1]

Сколько COM портов можно узнать заглянув в BIOS, вот отрывок из Жордейна

Число портов коммуникации может быть получено из области дан-
ных BIOS. BIOS отводит четыре 2-байтных поля для хранения базовых
адресов вплоть до четырех COM портов (MS DOS использует только
два из них). Базовый адрес - это младший из адресов портов, отно-
сящихся к группе портов, имеющих доступ к данному каналу коммуни-
кации. Эти четыре поля начинаются с адреса 0040:0008. Порту COM1
соответствует адрес :0008, а COM2 - 000A. Если это поле содержит
0, то соответствующий порт отсутствует. Таким образом, если слово
по адресу :0008 отлично от нуля, а по адресу 000A - нулевое, то
имеется один порт коммуникации.


Alev   (2001-11-29 14:29:00) [2]

Спасибо!!!!!!!


pasha676   (2001-11-29 11:36:00) [3]

Dennis S
Так. Я чувствую в COM-портах и модемах новичок ты конкретный.
Напиши мне письмо. Намылю тебе пример. Я давно друга своего по нему учил.
Пример остался. Вроде даже рабочий.
SergeyDonetsk
Ты в курсе что есть такая штука как DCB. Ты не скорость ни биты четночти в своем примере порту не задал! Кстати тоже напиши.
Alev
В описании к конкретному модему обычно идет бук. В нем все расписано. Команды, управляющие регистры и т. д.


Alev   (2001-11-28 22:10:00) [4]

Хотелось бы узнать,
какие команды можно посылать модему?


Lelik   (2001-11-20 21:57:00) [5]

Там после того как откроешь КОМ добать строчку:
EscapeCommFunction(hCommFile, SetDtr);
У меня на модеме после этого лампочка TR загорается, и после этого модем начинает понимать команды (достаточно "TDXXX"#13)


Dennis S   (2001-11-19 11:23:00) [6]

И все-таки, как узнать сколько на "Базе" СОМ-портов
и в каком они состоянии(т.е. стоит на них сто-то или он пустой)???

>>SergeyDonetsk
PhoneNumber := "ATH1" + #13 + #10;
{PhoneNumber := "ATH1"^M^J}
{PhoneNumber := "ATH1"}
{и т.п. пробовал}
А этого я вообще не понимаю... :(
Это что? Команды модему???
У тебя в коде он сначала пробует открыть порт, а потом пробует писать в него... так что ли???


SergeyDonetsk   (2001-11-14 10:22:00) [7]

???


SergeyDonetsk   (2001-11-13 14:55:00) [8]

Тут сделал установку связи через TAPI но дальше незнаю как передать данные на другой модем?
Кто может подскажет литиретурку по работе с коммуникационными устройствами на АПИ или делфи???

Очень интересная тема.


SergeyDonetsk   (2001-11-13 14:51:00) [9]

Да если нетрудно научите ручками!

а по поводу компонентов и Async32 пробовал с портом и с устройством работает ОК! а вот модем номер нехочет набирать. Пробовал разные модемы. Пробовал все модемы в терминале, консоли и т.п. все РАБОТАЕТ!

Извеняюсь за огромную вставку но всеже приведу отрывок кода:

hCommFile := CreateFile(PChar("Com1"), GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

if hCommFile=INVALID_HANDLE_VALUE then
begin
ShowMessage("Unable to open "+ CommPort);
exit;
end;

PhoneNumber := "ATH1" + #13 + #10;
{PhoneNumber := "ATH1"^M^J}
{PhoneNumber := "ATH1"}
{и т.п. пробовал}

if
WriteFile(hCommFile, PChar(PhoneNumber)^, Length(PhoneNumber),
NumberWritten, nil) = false then
begin
ShowMessage("Unable to write");
end;

так не работает!


Dennis S   (2001-11-13 12:08:00) [10]

Компоненты - это хорошо!
А ручками то лучше...
Научите - век не забуду!!! :)


T2   (2001-11-13 02:31:00) [11]

Use component Varian (c) Asunc32


JB   (2001-11-13 01:12:00) [12]

Есть компонент который просто доставляется в Дельфи.
Нужно в меню дельфи выбрать Component->ImportActiveXControl.
И из списка представленного вам выбрать Microsoft Communicate Control.




valera_s   (2001-11-12 12:50:00) [13]

>SergeyDonetsk
с COM портами бывают такие запалы, что приходится их переинициализировать, я имею в виду, под Windows 9x, только перезагрузкой последней. Проверь в терминалке, работает ли твой модем вообще, пошли ему команду инициализации и посмотри ответит ли. Если все нормально, тогда что-то ты не настроил в своей программе.


SergeyDonetsk   (2001-11-12 09:25:00) [14]

Может немного не втему простите но вроде тут так умно отвечают может и мне кто поможет? плз. уже за тра..ся с этим модемом.

Как снять трубку на модеме и набрать номер?
обычной посылкой данных в порт "АТDР 123" НИЧЕГО НЕПОЛУЧАЕТСЯ только лампочки мигают на модеме!


valera_s   (2001-11-12 08:58:00) [15]

Для начала, если не хочешь работать с портом через API непосредственно, выбери какой-нибудь подходящий для этого инструментарий: AsyncPro3 скажем, или Varian Async на худой конец.
Через них работать с портом намного проще, особенно с первой. Она сама предложит тебе выбрать доступные COM-порты на машине и может автоматически открыть порт.
Удачи!
Много всякой всячины, может быть пригодится, на torry.ru


Anatoly Podgoretsky   (2001-11-09 21:58:00) [16]

1. Тебе надо самому писать, я тебе подсказал как определить наличие модема.
2. Опираться на реестр нельзя, только система знает, какие из этих 6 портов реальные.


Dennis S   (2001-11-09 17:23:00) [17]

2Anatoly Podgoretsky:
...послать команду с помощью терминала ATZ ответ должен быть ОК.
Как это делается программно??? Напиши строчку.

2savva:
...список портов HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
Это вообще интересная БАДЯГА - У меня выдает 6 СОМ портов, когда в системе стоит 3 СОМ порта... :))


savva   (2001-11-09 12:34:00) [18]

список портов HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM


Anatoly Podgoretsky   (2001-11-08 15:43:00) [19]

А вообщето странно что не определяет если порт в наличии и виден системе и к нему подключен модем.
Вот найти порты это проблема, а у тебя фраза "все доступные порты"
Пртестировать модем проще, послать команду с помощью терминала ATZ ответ должен быть ОК


Anatoly Podgoretsky   (2001-11-08 14:57:00) [20]

Select * from system where port = :system


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо