Форум: "Система";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизКак работать с модемом и СОМ портами, точнее как... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c