|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как программно работать с внешними устройствами?
Здравствуйте, уважаемые дельфисты
Столкнулся с достаточно сложной проблемой: Как программно работать с внешними устройствами через Delphi? Общая задача сводится к элементарному: необходимо программно зажечь лампочку, внешне подключенную любыми средствами непосредственно к компьютеру. Поискав в интернете, ничего подходящего не нашел. Буду признателен тем, кто поможет мне разобраться с этой проблемой. Заранее спасибо! Жду ваших ответов |
#2
|
||||
|
||||
Цитата:
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#3
|
|||
|
|||
А можете поподробнее рассказать про CreateFile.
Думаю буду использовать com порт. Просто я нигде не нашел ничего про CreateFile Последний раз редактировалось cyberexpert, 20.07.2010 в 19:32. |
#4
|
||||
|
||||
Цитата:
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#5
|
|||
|
|||
спс))
довольно исчерпывающая ссылка |
#6
|
|||
|
|||
AleD, можете привести пример, как зажечь лампочку через COM??
|
#7
|
||||
|
||||
Цитата:
Код:
var port: Cardinal; ... function Init(): Boolean; begin port := CreateFile(‘COM1’, GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); Result := port<>INVALID_HANDLE_VALUE; end; function SwitchLight(): Boolean; var writed: Word; begin Result := WriteFile(port, 1, 1, writed, nil); Result := Result and (writed=1); end; TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#8
|
|||
|
|||
В платах и диодах всяких я разбираюсь, так что проблем не должно быть!
огромное спасибо, AleD! Очень мне помог! |
#9
|
||||
|
||||
Цитата:
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#10
|
|||
|
|||
хорошо, отпишусь
|
#11
|
|||
|
|||
Как вариант (использование LPT) - здесь есть инфа :
http://valery-us4leh.narod.ru/main.html http://www.pcports.ru/articles/2.php http://programmersclub.ru/lpt-delphi/ В частности: "XP LPT - программа управления LPT портами OC Windows 9x/2000/XP + исходный код." "Работа с LPT под Win 2000, XP: библиотека inpout32.dll" |
#12
|
|||
|
|||
Цитата:
Подойдет как запасной вариант |
#13
|
|||
|
|||
еще тут нашел материал
http://cxem.net/uprav/uprav14.php есть такой компонент TCommPortDriver но идет он только под Delphi 2 Последний раз редактировалось cyberexpert, 28.07.2010 в 16:04. |
#14
|
|||
|
|||
с лампочкой я разобрался - удалось ей поморгать!
Но поморгать удалось ей только через lpt. в моем случае Lpt использовать гораздо удобнее все классно работает я использовал библиотеку inpout32.dll - кому надо, тот может поискать в инете и скачать. там есть очень хорошие функции: inp32 и out32 inp32 возвращает значение заданного регистра lpt порта out32 записывает байт на заданный регистр порта вообщем достаточно рациональное и оптимальное решение которое не требует никаких микросхем припаивать к lpt можно напрямую подключить лампочку ко 2 разъему и 25 (земля) и смело юзать out32(888, 1); чтобы зажечь лампочку. чтобы погасить лампочку юзаем: out32(888, 0); Последний раз редактировалось cyberexpert, 28.07.2010 в 16:18. |
#15
|
|||
|
|||
А слаб'О действующий пример (вместе со всеми "причиндалами", подробным описанием и схемами) где-то выложить и ссылку сюда кинуть ?
А еще лучше - отдельную тему создать ??? Когда-то (еще по Win-95) делал ПО для замены телемеханики ТМ-322 (если не ошибаюсь) в контексте управления лифтами города (через LPT). Но в Win-95 была возможность обращаться к портам явно. С тех пор много чего изменилось. За всем не успеть. И такая инфа (конкретный опыт под WinXP, Win2000) была бы крайне интересна и полезна. Последний раз редактировалось roamer, 28.07.2010 в 20:24. |