![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте, уважаемые дельфисты
Столкнулся с достаточно сложной проблемой: Как программно работать с внешними устройствами через Delphi? Общая задача сводится к элементарному: необходимо программно зажечь лампочку, внешне подключенную любыми средствами непосредственно к компьютеру. Поискав в интернете, ничего подходящего не нашел. Буду признателен тем, кто поможет мне разобраться с этой проблемой. Заранее спасибо! Жду ваших ответов ![]() |
|
#2
|
||||
|
||||
|
Цитата:
|
|
#3
|
|||
|
|||
|
А можете поподробнее рассказать про CreateFile.
Думаю буду использовать com порт. Просто я нигде не нашел ничего про CreateFile ![]() Последний раз редактировалось cyberexpert, 20.07.2010 в 19:32. |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#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; |
|
#8
|
|||
|
|||
|
В платах и диодах всяких я разбираюсь, так что проблем не должно быть!
огромное спасибо, AleD! Очень мне помог! |
|
#9
|
||||
|
||||
|
Цитата:
|
|
#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. |