Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
6-9258
Lamok
2001-12-15 14:34
2002.03.04
TCP/IP


1-9138
kaif
2002-02-14 21:06
2002.03.04
Редактор свойства


3-9091
ava
2002-02-06 16:53
2002.03.04
Помогите срочно надо


1-9200
KS
2002-02-13 15:36
2002.03.04
Borland Delphi


1-9157
Мефодий
2002-02-13 12:54
2002.03.04
Загрузка всех юнитов проекта





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