- Управление lpt портом windows 10
- Управление lpt портом windows 10
- Программа WndLpt
- Содержание
- Резюме | English version
- ^ Управление выходами по заранее заданному сценарию (скрипту)
- ^ Светомузыка через LPT-порт
- ^ Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши
- ^ Примеры управления светодиодами
- ^ Быстрый старт
- Работа WndLpt по сценарию
- Работа WndLpt в качестве самостоятелной светомузыки
- Работа WndLpt в качестве плагина визуализации Winamp, AIMP2, WMP
- Прочее
- Загрузка файлов / DOWNLOADS
- Скачать с sourceforge (прямая ссылка)
- Скачать с codeplex
- История версий
- WinLpt-0.2.9 (Build 14)
- WinLpt-0.2.8 (Build 13)
- WndLpt-0.2.7.ext (Build 12)
- WndLpt-0.2.7 (Build 11)
- WndLpt-0.2.6 (Build 9)
- WndLpt-0.2.5 (Build 8)
- WndLpt-0.2.4 (Build 7)
- WndLpt-0.2.3
- WndLpt-0.2.3-a1
- WndLpt-0.2.2
- WndLpt-0.2.1
- WndLpt-0.2.0
- WndLpt-0.1.0
Управление lpt портом windows 10
Программа для управления LPT портом
Программа для управления LPT портом с 17 битным анализатором протокола обмена данными устройств использующих параллельный порт компьютера. Написана под Windows и имеет следующие возможности:
1. Три независимых канала, с помощью которых реализуется: ввод адреса порта (регистра), автоматическое чтение данных с порта, запись данных в порт в формате HEX или как десятичное число; отображение данных в форматах bite, word, Dword.
2. Отображение состояния каждого из 17 битов LPT порта и управление выходными битами с Pin клавиатуры.
3. Девять программируемых порт / данные банков памяти.
4. 17 канальный (бит на канал) анализатор – осциллограф логического состояния каждого бита (1/0) с возможностью установки скорости анализа (по времени), синхронизации по любому из 17 бит как по высокому уровню (1) так и по низкому (0), счетчик переданных данных по каждому биту и др. функции для удобной проверки и настройки цифровых устройств подключенных к компьютеру.
5. Может быть использована в качестве цифрового (1/0) многоканального осциллографа, а также для управления внешними устройствами посредством компьютера.
Скачать программу (zip архив 621 кв)
Программа предназначена для управления LPT портами компьютера из ОС Windows 9x/2000/XP и имеет следующие возможности:
1. Автоматическая регистрация драйвера в Windows XP на правах администратора системы.
2. Автоматическая проверка установленных портов и внесение в список.
3. Одновременное чтение регистров данных, контроля и состояния выбранного LPT порта.
4. Одновременное отображение содержимого регистров в форматах Hex и Byte, что избавляет от необходимости пересчета.
5. Запись данных в порт в форматах Hex и Byte.
6. Отображение логического (1/0) состояния битов (Pin) выбранного порта в реальный период времени.
7. Управление логическим состоянием бит (Pin) LPT порта с помощью Pin клавиатуры.
8. Проверка порта на двунаправленность (если включен в Bios).
9. Доступный исходный код, описание, примеры создания программ для управления внешними устройствами посредством LPT порта на основе данной программы (Делфи), техническая поддержка на сайте.
Программа работает через драйвер ввода-вывода LPTWDMIO, разработанна специально для обучения и отладки самостоятельно изготовляемых программ управления внешними устройствами посредством LPT порта в среде Win 9x/2000/XP.
Скачать программу (zip архив 270 кв)
Управление lpt портом windows 10
Продолжая цикл статей по программированию устройств сопряжения, а конкретно LPT порта, думаю настало время рассказать Вам о том, как написать программу для работы с данным портом под ОС Windows, т.е. в виде «привычного» взору окна с кнопочками, окошками ввода и тому подобными атрибутами.
Ну чтож, давайте приступим. Создаем новый MFC проект в Microsoft Visual C++ 6.0, выбирая в меню пункт File -> New. В открывшемся окне указываем тип проекта MFC AppWizard(exe). В поле Location выберете место расположения проекта. В поле Project Name введите имя проекта, например LPTWin.
Нажимаете Ok. Дальше запускается мастер построения приложения. На первом (и в нашем проекте последнем) шаге на вопрос о типе приложения выбирете пункт Dialog Based. Нажимаем книпку Finish.
Выскочит информационное окно, в котором будет дана некоторая информация по построению проекта. Не обращайте на него внимание и нажимайте Ok.
После этого перед нами появится рабочия область нашего проекта с пустой заготовкой формы, где мы сейчас начнем ваять приложение.
Сначала наполним наш диалог необходимыми элементами управления. На окне Controls выбирете элемент Group Box и разместите его на окне заготовки диалога. Должно получиться что-то похожее на рис. ниже.
Данный элемент не несет накакой фактической нагрузки и нужен он только для «декоративного» обрамления других элементов. Пока что он имеет заголовок по умолчанию Static. Давайте исправим это. Нажмите правой кнопкой мыши на него, и в выпавшем списке выбирите пункт Properties.
В появившемся окне в поле Caption введите Write to Port. Закройте окно.
Далее, выбирите элемент управления Static Text и разместите его в диалоге. По умолчанию он будет содержать текст Static. Замените его на Port Adress:, зайдя в свойства этого элемента.
Далее, выбирите элемент управления Edit Box, и разместите его, как показано на рис. ниже. Зайдите в свойста и в поле ID вместо ID_EDIT1 введите IDC_ADRtoWrite. То что мы сейчас указали называется идентификатором элемента управления и теперь в программе данный элемент ассоциируется с этим именем.
Теперь абсолютно аналогично разместите еще один элемент Static Text с именем Data и Edit Box с идентификатором IDC_DATAtoWRITE.
Далее, выбирите элемент управления Button и разместите его в диалоге. Зайдите в его совойства и в качестве заголовка укажите Write to Port. В итоге должно получиться нечто похожее на рис. ниже.
Теперь мы закончили с оформлением элементов управления, с помощью которых можно будет ввести адрес порта, указать число для записи в порт и провести запись по нажатию кнопки Write to Port. Конечно, это все пока что еще не работает, поскольку мы еще не написали ни одной строчки кода. Но это дальше. Продолжим.
Далее, по аналогии создайте набор элементов для чтения данных из порта, а именно Group Box с именем Read from Port, два Static Text`a с именами Port Adress:, Data: и два Edit Box`a с идентификаторами IDC_ADRtoRead, IDC_DATAfromRead соответственно. В результате должно получиться что-то похожее на это:
Для призентабельного вида нашего приложения растяните («стяните») до нужных размеров как само диалоговое окно так и элементы управления, расположенные в нем.
Иногда бывает удобно посмотреть внешний вид окна не на рабочей области, а в живую. Для этого вовсе не обязательно компилировать и запускать приложение, а можно воспользоваться командой Test. Для ее запуска нужно нажать «рычажок» в нижнем левом углу программы.
Если Вы так сделаете, то появится наш созданный диалог. Он не рабочий и по щелчку по нему он закроется. Пока он открыт, можно убедиться в правильности расположения всех элементов управления.
Далее нам необходимо создать переменные для улементов управления. Для этого выбирайте в главном меню пункт View — > ClassWizard.
В открывшемся окне перейдите на вкладку Member Variables. Если в списке Class Name установлен не CLPTWinDlg то выбирите его. В списке просмотра Control IDs показаны все идентификаторы для элементов управления использующихся в нашем диалоге. Будем создавать переменные только для окон редактирования. Для этого выбирайте нужный идентификатор и нажимайте книпку Add Variable.
Например, создадим переменную для IDC_ADRtoRead. В открывшемся окне в поле Member Variable Name введите m_ADRtoRead, в списке Category — Value, а в списке Variable Type тип int. Нажмите Ok. Имя переменной не критично и может быть выбрано любым (по правилам Си, конечно), но для того чтобы не путалься какой переменной соответствует тот или иной идентификатор элемента управления, я задал их имена похожими друг на друга.
Далее, по аналогии, создаем переменные для оставшихся трех окон редактирования с темиже значениями параметров Category, Variable Type и соответствующими именами. В результате окно идентификаторов должно выглядеть так:
Последнее, что нам осталось сделать, прежде чем мы возмемся за программирование, так это подключить файлы библиотеки inpout32.dll к нашему проекту, поскольку именно с помощью ее мы будем работать с LPT портом под Windows. Процесс подключения этих файлов я подробно рассматривал в предыдущих статьях. Напомню, только, что файл inpout32.dll должен находиться в одной директории с запускаемой программой. После подключения файлов древо нашего проекта должно принять вид:
И еще один важный момент: необходимо с помощью оператора #include подключить файл с описаниями функций библиотеки (h.h) в код программы. Для этого откройте файл LPTWinDlg.cpp и добавьте в верху строчку:
после записи #include «stdafx.h».
Все, наконец-то, добрались до места, где собственно начнем писать код программы. Перейдите в редактор диалога (туда, где мы наполняли диалог элементами управления) и дважды щелкните по кнопке Write to Port. Появится окно, в котором предлагается создать функцию-обработчик на нажатие это книпки. Ей будет дано имя OnButton1. Соглашаемся с этим и нажимаем на кнопку Ok.
Нас «перенесет» к пустой заготовке кода этой фцнкции.
Допишите тело этой функции, используя код ниже. После этого она должна выглядеть так:
Рассмотрим, как работает этот код. Сначала идет обращение к функции UpdateData() с параметром true. При этом в созданные нами переменные элементов управления скопируются введенные в них данные. Далее проводится проверка на корректность этих данных. Например, если адрес порта или передаваемое в него данное меньше нуля, то ситуация не совсем корректная. Если все в порядке, то идет обращение к функции Out32() библиотеки inpout32.dll.
Теперь оживим функцию предназначенную для чтения данных из порта. Для этого создайте функцию-обработчик на нажатие книпки Read from Port, оставьте ей имя OnButton2 и добавьте в нее следующий код:
Я думаю, что принцип работы данного кода вполне понятен, только хотел обратить внимание на на вызов функции UpdateData() с параметром false. При этом значения переменных элементов управления скопируются в них и мы сможем наблюдать из на экране.
Все, готово! Можно компилировать и запускать. Для тестирования этой программы я использовал устройство для LPT порта в виде блока светодиодов, описанное в предыдущей стаье.
Программа WndLpt
Содержание
Резюме | English version
Назначение: Автоматическое и ручное управление устройствами, подключенными к LPT-порту (до 12 выходов). Управление через COM порт (до 32 выходов).
Возможности:
[1] Управление выходами по заранее заданному сценарию (скрипту).
[2] Светомузыка через LPT-порт (суммарный звук системы, Winamp, AIMP2, WMP).
[3] Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши.
Операционная система: Windows 98/NT/ME/XP/2000/Vista/7/8/10
Платформа: 32/64 бит, (x86/x64)
Особенности: LPT порт должен быть встроен в материнскую плату или PCI-карту.
Переходники USB-LPT не поддерживаются.
^ Управление выходами по заранее заданному сценарию (скрипту)
Программа управляет выходами LPT порта компьютера в соответствии с заранее заданным сценарием. В версиях, начиная с 0.2.9 есть возможность управления устройствами через COM порт (или USB-COM) с управлением до 32 выходов.Сценарий (скрипт) представляет собой текстовый файл (ASCII или Unicode), в котором последовательно записаны управляющие команды и значения, которые следует вывести в порт.
Программа идеально подходит для управления панелью из двенадцати светодиодов, непосредственно подключенных к порту.
Кроме того, благодаря WndLpt LPT порт может быть использован для управления шаговым двигателем, блоками реле, неответственными процессами, которые управляются дискретными сигналами.
^ Светомузыка через LPT-порт
К LPT-порту подключены 8 или 12 светодиодов?
— В таком случае легким движением руки WndLpt превращается . в светомузыкальюную установку. В этом режиме программа записывает звук с выбранного источника звуковой карты и превращает его в светомузыку. Рекомендуется выбирать источник «Стерео микшер» или «Моно выход».
Вам по душе плагины к плеерам Winamp/AIMP2/WMP?
— Да, WndLpt умеет работать как плагин визуализации для трех популярнейших плееров Winamp, AIMP2, WMP! При этом светомузыка может работать как от звука плеера, так и от любого доступного источника звуковой карты.
^ Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши
— На вкладке «Manual» изображена схема клавиатуры; на ней отмечены кнопки, которыми можно пользоваться для управления светодиодами. Впрочем, нажимать на них можно и мышью.
— На вкладке «Pins» находятся 12 флажков (Out pins), соответствующих 12-ти выходным пинам LPT-порта. Кроме того присутствуют 5 дополнительных флажка (Input pins) не доступных для изменения. Они являются индикаторами логического уровня, подаваемого на пять входных пинов LPT порта. Правее изображен и сам порт. Красным цветом показаны пины, на которые подано напряжение соответствующее уровню логической единицы. Синим — соответствующее уровню логического нуля. Бледным цветом отображены входные пины; когда к ним ничего не подключено — они находятся в состоянии логической единицы. Белым цветом показаны «общие» пины.
Состояние выходных пинов можно менять кликая мышкой либо по флажкам, либо прямо по пинам схематично изображенного LPT порта.
^ Примеры управления светодиодами
О том, как подключить 12 (или 8) светодиодов к LPT порту читаем в статье «Подключение двенадцати светодиодов к LPT порту».
О том, как заставить WndLpt управлять светодиодной иллюминацией рассказано в статье «Светодиодная иллюминация с помощью WndLpt».
^ Быстрый старт
Работа WndLpt по сценарию
1. Запустить исполняемый файл wndlpt.exe из главного меню или папки с программой.
2. Далее, при помощи операции Drag-n-Drop, в окно программы следует «сбросить» текстовый файл с требуемым сценарием.
3. Сценарий будет автоматически откомпилирован и запущен. Можно наблюдать за светодиодами или другим устройством, подключенным к LPT порту.
Работа WndLpt в качестве самостоятелной светомузыки
1. Запустить исполняемый файл wndlpt.exe.
2. Выбрать вкладку «Music».
3. Клик левой или правой кнопкой мыши по изображению визуализации приводит к смене эффекта.
4. Клик левой кнопкой по картинке панели светодиодов меняет предполагаемый цвет светодиодов. Правой кнопкой — расположение светодиодов.
Работа WndLpt в качестве плагина визуализации Winamp, AIMP2, WMP
1. Установить WndLpt Plugin for Winamp/AIMP2/WMP.
3. Запустить плеер и активировать плагин визуализации WndLpt.
Прочее
* При запуске без параметров командной строки программа выполняет скрипт autorun.txt, в случае, если таковой присутствует в папке исполняемого файла.
* Окно программы можно скрыть (фоновый режим) и обратно показать — эти действия можно выполнить при помощи контекстного меню иконки, появляющейся в панели задач. Скрытие и показ окна могут быть заложены в сценарии.
* Можно выполнить перезапуск сценария (в любое время) при помощи функциональной клавиши F6 или соответствующей кнопки в системном меню, при этом файл сценария будет считан и откомпилирован заново.
* Отладчика открывается по кнопке F12.
* Трассировка (пошаговое выполнение) скрипта выполняется с помощью функциональных клавиш F11/F8. Выход из режима трассировки или продолжение автоматического выполнения сценария осуществляется клавишей F5. Если работа сценария окончена, по клавише F5 выполнится перезапуск, при этом, файл не будет заново считан и откомпилирован (сравните с F6).
* В папке scripts лежит несколько примеров готовых сценариев.
* При наличии грубых ошибок в сценарии выполнение скрипта будет прервано.
* Незначительные ошибки или недочёты в тексте сценария будут проигнорированы.
* Сценарий должен быть текстовым файлом в формате ANSI либо Unicode. Максимальный размер файла ограничен на уровне 64 КБ, исходя из соображений простой логичности (т.к. при помощи Drag-n-Drop можно случайно скинуть в программу совсем не сценарий, а, например, фильм — длительная компиляция которого, очевидно, ни к чему не приведёт).
Загрузка файлов / DOWNLOADS
Скачать с sourceforge (прямая ссылка)
Скачать с codeplex
История версий
WinLpt-0.2.9 (Build 14)
* Новое: Добавлена возможность вывода сигналов в COM порт (или виртуальный USB-COM)
* Новое: Добавлена поддержка 32 выходных сигналов
* Новое: Режим отладки
* Новое: Возможность выбора языка
* Новое: Добавлена итальянская локализация
WinLpt-0.2.8 (Build 13)
* Новое: Добавлен отладчик скриптов. Открывается по нажатию кнопки F12
* Разное: Два разных отладчика для файлов ASCII и UNICODE
* Разное: Название программы заменено на WinLpt
* Исправлено: Stroboscope длина паузы обновляется при изменении с клавиатуры
WndLpt-0.2.7.ext (Build 12)
* Новое: WndLpt SDK
* Новое: Команда: random call Function1 Function2 Function3 ; вызов произвольной функции
* Новое: Команда: random jump Label1 Label2 Label3 ; переход на произвольную метку
* Новое: Команда: 00??00??00?? ; ? — бит, устанавливаемый случайным образом
* Новое: Команда: ? (3,4,7,8,11,12) ; биты, устанавливаемые случайным образом
* Улучшено: Команда: call Func1 Func2 Func3 Func4 последовательно вызывает указанные функции
* Новое: Библиотека wndlpt_remap.dll для переназначения пинов порта (шаблон для C++ и Delphi)
* Новое: Проект wndlpt_gate как шаблон программы (C++, VB.NET) использующей WndLpt для прямого доступа к LPT порту
* Новое: Stepdrive для управления с помощью произвольных систем
WndLpt-0.2.7 (Build 11)
* WndLpt plugin: Добавлена поддержка AIMP3
* Утилиты LPT Buttons, Stroboscope, EasyDrive работают в Windows Vista/Seven/7
* LPT Buttons: добавлена возможность редактирования положения кнопок
* EasyDrive: добавлены кнопки для ручного выполнения шагов, добавлены новые системы управления
WndLpt-0.2.6 (Build 9)
* Исправлены надписи «Pin 2, 3, 4» на вкладке «Pins»
* Исправлена работа мышкой с кнопками виртуальной клавиатуры
### Добавлены новые утилиты ###
* LPT Buttons — новое средство для управления пинами порта
* Stroboscope — удобное управление стробосткопом
* EasyDrive — управление шаговым двигателем
WndLpt-0.2.5 (Build 8)
* Реакция на 5 входных сигналов LPT порта «test i 1»
* Реакция на 12 выходных сигналов LPT порта «test q 3»
* Реакция на состояние пинов порта «test pin 12»
* Ветвления по командам jz , jnz
* На вкладке «Manual» флажок «Arrows like 1, 2, 3, 4» — стрелки работают как кнопки 1, 2, 3, 4
* На вкладке «Manual» флажок «Not fix digital buttons» — меняет логику работы цифровых кнопок
* Эмуляция часов с минутной и часовой стрелкой «cmd enable_clock 1»
* Установка нового состояния числом в десятичной системе $ 95
* Установка нового состояния числом в шестнадцатеричной системе $ 5Fh, $ 0xFED
* Добавлена настройка степени фильтрации (вызывается правым кликом по слову Filter)
* Добавлены ярлыки для запуска плееров в Windows Vista и 7
* Добавлены ярлыки для помещения в автозапуск (папка WndLpt => Links в меню Пуск)
* Добавлены исполняемые файлы для работы в Windows 98/ME (wndlpt98.exe, vis_wl98.dll, lptport98.exe)
* Добавлена новая утилита для управления стробоскопом (stroboscope.exe)
WndLpt-0.2.4 (Build 7)
* Новые вкладки: Manual, Pins, Settings
* Новая команда «cmd enable_music 1»
* Новая команда «cmd music_preset [+num | -num | num]»
* Новая команда «shift [=num | +num | -num]»
* Доработана команда «cmd switch_to_music»
* Доработан плагин визуализаци vis_wndlpt.dll для WMP 11 (Windows Media Player)
* wndlpt.exe является загрузчиком для vis_wndlpt.dll
* Вкладка Manual для управления выходами с клавиатуры
* Вкладка Pins для управления выходами с помощью мыши
* Вкладка Settings для выбора базового адреса LPT-порта
WndLpt-0.2.3
* Добавлен плагин визуализаци vis_wndlpt.dll для Winamp 5
* Добавлен плагин визуализаци vis_wndlpt.dll для WMP 10 (Windows Media Player)
* Добавлен плагин визуализаци vis_wndlpt.dll для AIMP2
* Файл vis_wndlpt.dll одинаков для всех плееров.
* Добавлен выбор источника звука для светомузыки
* Добавлена автоподстройка светомузыки под уровень звука
* Добавлено переключение режимов Моно/Стерео
* Добавлена возможность изменения количества светодиодов
WndLpt-0.2.3-a1
* Добавлена визуализация музыки — светомузыка
* Добавлена картинка, отображающая ожидаемое состояние светодиодов
WndLpt-0.2.2
* Поддержка командной строки
* Описание команд из wiki доступно для загрузки
WndLpt-0.2.1
* Поддержка Windows Vista/Seven
* Поддержка платформ 32/64 бит (x86/x64)
WndLpt-0.2.0
* Заново написан движок
* Компилятор встроен в движок
* Оставлена совместимость со скриптами от старой версии, за исключением единичных команд
* Значительно обогащён набор средств и методов для сценариев
* Иконка в панели задач
* Запрет одновременного запуска нескольких экземпляров программы
WndLpt-0.1.0
* Максимально «легкая» за счет использования простого алгоритма.