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

Вниз

Как работать с модемом и СОМ портами, точнее как...   Найти похожие ветки 

 
Dennis S ©   (2001-11-06 10:45) [0]

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


 
Dennis S ©   (2001-11-08 14:46) [1]

Ну, хоть скажите, где что-то толковое можно прочесть...!


 
Anatoly Podgoretsky ©   (2001-11-08 14:57) [2]

Select * from system where port = :system


 
Anatoly Podgoretsky ©   (2001-11-08 15:43) [3]

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


 
savva ©   (2001-11-09 12:34) [4]

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


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

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

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


 
Anatoly Podgoretsky ©   (2001-11-09 21:58) [6]

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


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

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


 
SergeyDonetsk ©   (2001-11-12 09:25) [8]

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

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


 
valera_s   (2001-11-12 12:50) [9]

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


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

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





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

Use component Varian (c) Asunc32


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

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


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

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

а по поводу компонентов и 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;

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


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

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

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


 
SergeyDonetsk ©   (2001-11-14 10:22) [15]

???


 
Dennis S ©   (2001-11-19 11:23) [16]

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

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


 
Lelik ©   (2001-11-20 21:57) [17]

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


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

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


 
pasha676   (2001-11-29 11:36) [19]

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


 
Alev   (2001-11-29 14:29) [20]

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


 
Milz ©   (2001-11-29 15:34) [21]

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

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



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

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

Наверх




Память: 0.52 MB
Время: 0.008 c
14-9285
Геннадий
2002-01-18 07:51
2002.03.04
Ребята, подскажите где можно скачать бесплатную версию InterBase


1-9209
Королев
2002-02-14 11:44
2002.03.04
как узнать параметры функции импортируемые из DLL?


7-9311
Никто
2001-11-30 04:20
2002.03.04
Системный таймер в XP (55 or 10 ms)


4-9328
Evgeny
2001-12-22 12:53
2002.03.04
URL


1-9205
Stormick
2002-02-13 23:19
2002.03.04
Помогите плиззз