Программа управления lpt портом под windows 7

Описание программы WndLpt (mavjuz)

Программа WndLpt — Управление выходами LPT порта

Содержание

Резюме

Примеры управления светодиодами

Быстрый старт

Скачать (прямая ссылка)

Резюме  |  English version

Назначение: Автоматическое и ручное управление устройствами, подключенными к LPT-порту (до 12 выходов). Управление через COM порт (до 32 выходов).

Возможности:

ringa.png (11065 bytes)

[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 порт может быть использован
для управления шаговым двигателем, блоками реле, неответственными процессами, которые
управляются дискретными сигналами.

WndLpt выполняет сценарий (на вкладке Play)

^ Светомузыка через LPT-порт

К LPT-порту подключены 8 или 12 светодиодов?

— В таком случае легким движением руки WndLpt превращается … в светомузыкальюную установку. В этом режиме программа записывает звук с выбранного источника звуковой карты и превращает его в светомузыку. Рекомендуется выбирать источник «Стерео микшер» или «Моно выход».

Вам по душе плагины к плеерам Winamp/AIMP2/WMP?

— Да, WndLpt умеет работать как плагин визуализации для трех популярнейших плееров Winamp, AIMP2, WMP! При этом светомузыка может работать как от звука плеера, так и от любого доступного источника звуковой карты.

Светомузыка через LPT-порт с помощью WndLpt

Светомузыка WndLpt

WndLpt в режиме светомузыки (вкладка Music)

^ Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши

— На вкладке «Manual» изображена схема клавиатуры; на ней отмечены кнопки, которыми можно пользоваться для управления светодиодами. Впрочем, нажимать на них можно и мышью.

WndLpt В режиме ручного управления с клавиатуры


— На вкладке «Pins» находятся 12 флажков (Out pins), соответствующих 12-ти выходным пинам LPT-порта. Кроме того присутствуют 5 дополнительных флажка (Input pins) не доступных для изменения. Они являются индикаторами логического уровня, подаваемого на пять входных пинов LPT порта. Правее изображен и сам порт. Красным цветом показаны пины, на которые подано напряжение соответствующее уровню логической единицы. Синим — соответствующее уровню логического нуля. Бледным цветом отображены входные пины; когда к ним ничего не подключено — они находятся в состоянии логической единицы. Белым цветом показаны «общие» пины.

Состояние выходных пинов можно менять кликая мышкой либо по флажкам, либо прямо по пинам схематично изображенного LPT порта.

WndLpt в режиме управления мышью


^ Примеры управления светодиодами

О том, как подключить 12 (или 8) светодиодов к LPT порту читаем
в статье
«Подключение двенадцати светодиодов к LPT порту».

О том, как заставить WndLpt управлять светодиодной иллюминацией рассказано
в статье «Светодиодная иллюминация с помощью WndLpt».

РулеткаВечный двигательВолныЗмейка 6х3Автозапуск v0.2.1
Ночь и 12 светодиодов

^ Быстрый старт

Работа 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

### Tools ###

* Исправлено: 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 последовательно вызывает указанные функции

### SDK ###

* Новое: Библиотека wndlpt_remap.dll для переназначения пинов порта (шаблон для C++ и Delphi)

* Новое: Проект wndlpt_gate как шаблон программы (C++, VB.NET) использующей WndLpt для прямого доступа к LPT порту

### Tools ###

* Новое: 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»

* Синтаксис: test <i | q | pin> <number>

* Ветвления по командам jz <labes>, jnz <label>

* На вкладке «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

* Экспериментальная версия )

* Максимально «легкая» за счет использования простого алгоритма.

Ссылки

English version

Скачать с http://www.codeplex.com/wndlpt

Скачать с http://sourceforge.net/projects/wndlpt

Применение программы

[1] Светодиодная иллюминация с помощью WndLpt

[2] Стратегия скриптов WndLpt

[3] Описание системы команд скриптов WndLpt

[4] Подключение 12 светодиодов к LPT порту (бюджетная светомузыка)


FAQ


Q> Зачем использовать скрипты/сценарии на особом языке программирования когда
я могу написать все нужные эффекты на моем любимом Бейсике/Паскале/Делфи/Си/Java
?

A> Скрипт пишется на языке специально предназначенном для данной задачи, поэтому
в тексте скрипта содержится информация только о том как управлять сигналами и более
ничего лишнего. Кроме того, особый синтаксис позволяет записывать команды в форме
наиболее удобной для восприятия — скрипт нагляден. В конечном счете, экономится
время необходимое на разработку нового алгоритма управления сигналами.


Q> Какие-то непонятные эти скрипты, нельзя ли чего попроще?

A> Читаем инструкцию «Стратегия скриптов WndLpt»


Выберите вариант загрузки:

  • скачать с сервера SoftPortal

LPT_Switch — программа, использующая LPT-порт для выборочного включения / выключения до 12 сетевых электроприборов. Линии могут включаться / выключаться тремя способами: вручную, по таймеру и автоматически при срабатывании заданных датчиков (полное описание…)

Рекомендуем популярное

скачать Начала ЭЛЕКТРОНИКИНачала ЭЛЕКТРОНИКИ 1.2

Начала ЭЛЕКТРОНИКИ — обучающая система для школьников и студентов младших курсов ВУЗов по…

скачать ResistorResistor 2.1.1.6

Бесплатная программа для вычисления сопротивления резисторов по полосам и кодам EIA-96, E24,…

скачать РезисторРезистор 2.2

Резистор — программа предназначена для определения номинала резистора по разным видам маркировок, в частности:…

скачать RF ToolboxRF Toolbox 3.5.0

RF Toolbox — программа, которая позволит вам спроектировать антенну любой сложности и любой…

скачать Color and CodeColor and Code 20.2

Color and Code — программа позволяет определить номинал или тип радиоэлементов по цветовой или…

Лет 10-15 назад параллельный порт был довольно востребованным интерфейсом для связи между устройствами. Сегодня производители различных устройств отдают предпочтение последовательным интерфейсам. Тем не менее, и сегодня LPT порт всё ещё можно встретить. А некоторые разработчики ещё пишут под него программы (или поддерживают написанные во времена расцвета параллельных интерфейсов). Но в компьютерах сейчас LPT порт – достаточно большая редкость. Существуют, конечно, платы расширения для компьютера, которые реализуют интерфейс LPT. Они в основном представляют собой платы на шине PCI. К сожалению, далеко не весь софт, который был написан для интегрированных в материнскую плату LPT портов, будет работать с LPT-PCI-платами.

Предлагается решение этой проблемы: программный класс, написанный под .NET, и динамическую библиотеку, которая работает с LPT. Данная реализация проверена на 32- и 64-разрядных Windows XP, Windows 7, 8 и 10 как со встроенными LPT портами, так и реализованными в виде плат расширения на шине PCI или PCI-Express. Скачать драйвер для LPT порта можно по ссылке внизу после статьи.

1Установка драйвера для работы с LPT портом

В приложенном архиве находятся две папки – для 32-разрядной и для 64-разрядной версий Windows. В одной из папок лежит файл InstallDriver.exe. Сначала запустите этот файл, он установит динамические библиотеки в систему. После этого компьютер следует перезагрузить.

Чтобы использовать предлагаемый драйвер, файлы inpout32.dll и inpoutx64.dll должны располагаться в одной директории с исполняемым файлом вашей программы.

2Программный класс использования библиотек работы с LPT портом

Мной был написан класс для .NET, который использует динамические библиотеки inpout32.dll и inpoutx64.dll и позволяет считывать из параллельного порта и записывать в его регистры данные.

Упомянутые библиотеки написаны не мной. Я предлагаю удобный класс-оболочку, упрощающий работу с данными библиотеками. Кроме того, автор библиотек в файле readme.txt сообщает, что его драйвер не поддерживает PCI устройства. Мне удалось его запустить для работы как с интегрированным параллельным портом, так и LPT портом, реализованном в виде платы расширения на шине PCI-Express. Причём порт отлично работает и на современной Windows10 x64, и на более старых системах.

Вот код класса LPT на языке VB.NET:

Код класса LPT на языке VB.NET (разворачивается)

Imports System.Runtime.InteropServices

''' <summary>
''' Работа с LPT портом. При создании определяет наличие драйвера и выбирает подходящую библиотеку.
''' </summary>
Public NotInheritable Class LPT

#Region "CONST"

    Public Const DLL32 As String = "c:tempinpout32.dll"
    Public Const DLL64 As String = "c:tempinpoutx64.dll"
    Public Const DLL32DRV As String = "c:tempinpoutx32drv.dll"

    ''' <summary>
    ''' Регистры параллельного порта.
    ''' </summary>
    Public Enum Register As Integer
        ''' <summary>
        ''' Регистр данных SPP/EPP.
        ''' </summary>
        DATA = 0
        ''' <summary>
        ''' Регистр состояния SPP/EPP.
        ''' </summary>
        STATUS = DATA + 1
        ''' <summary>
        ''' Регистр управления SPP/EPP.
        ''' </summary>
        CONTROL = DATA + 2
        ''' <summary>
        ''' Регистр адреса EPP. Чтение или запись в него генерирует свзяанный цикл чтения или записи адреса EPP.
        ''' </summary>
        EPP_ADDRESS = DATA + 3
        ''' <summary>
        ''' Регистр данных EPP. Чтение (запись) генерирует связанный цикл чтения (записи) данных EPP.
        ''' </summary>
        EPP_DATA = DATA + 4
        ''' <summary>
        ''' Регистр активации режима EPP.
        ''' </summary>
        ''' <remarks>
        ''' Если только смешанный "ECP+EPP" или "Extended" - скорее всего потребуется еще выполнить запись в порт ECR байта 0x80 
        ''' (ECR - это регистр ECP-режима, ECR=BASE_ADDR+0x402, BASE_ADDR - базовый адрес LPT-порта
        ''' </remarks>
        ECR = DATA + &H402 
    End Enum

#End Region '/CONST

#Region "DllImport"

    <DllImport(DLL32, CharSet:=CharSet.Auto, EntryPoint:="IsInpOutDriverOpen")>
    Private Shared Function IsInpOutDriverOpen() As Byte
    End Function

    <DllImport(DLL64, CharSet:=CharSet.Auto, EntryPoint:="IsInpOutDriverOpen")>
    Private Shared Function IsInpOutDriverOpen_x64() As UInt64
    End Function

    <DllImport(DLL32, CharSet:=CharSet.Auto, EntryPoint:="Inp32")>
    Private Shared Function Inp32(PortAddress As UInt32) As Byte
    End Function

    <DllImport(DLL32, CharSet:=CharSet.Auto, EntryPoint:="Out32")>
    Private Shared Sub Out32(portAddress As UInt32, data As UInt32)
    End Sub

    <DllImport(DLL64, CharSet:=CharSet.Auto, EntryPoint:="Inp32")>
    Private Shared Function Inp64(PortAddress As UInt64) As Byte
    End Function

    <DllImport(DLL64, CharSet:=CharSet.Auto, EntryPoint:="Out32")>
    Private Shared Sub Out64(PortAddress As UInt64, Data As UInt64)
    End Sub

#End Region '/DllImport

#Region "CTOR"

    ''' <summary>
    ''' Проверяет возможность использования x86 или x64 драйвера. В случае невозможности выбрасывает исключение "драйвер не установлен".
    ''' </summary>
    Shared Sub New()
        Dim x86 As Boolean = CheckIsDriverX86()
        Dim x64 As Boolean = CheckIsDriverX64()
        If x64 Then
            _IsX64DriverUsed = True
        ElseIf x86 Then
            _IsX64DriverUsed = False
        Else
            Throw New SystemException("Драйвер для LPT порта не установлен.")
        End If
    End Sub

    ''' <summary>
    ''' Инициализация порта - выставление XXXX0100'b в регистре контроля.
    ''' </summary>
    Private Shared Sub InitLpt(port As ULong)
        Write(port, Register.ECR, &H80)
        Write(port, Register.CONTROL, &H4)
    End Sub

#End Region '/CTOR

#Region "PROPS"

    ''' <summary>
    ''' Используется ли 64-разрядная версия драйвера.
    ''' Если драйвер не установлен, возвращается NULL.
    ''' </summary>
    Public Shared ReadOnly Property IsX64DriverUsed As Boolean?
        Get
            Return _IsX64DriverUsed
        End Get
    End Property
    Private Shared ReadOnly _IsX64DriverUsed As Boolean? = Nothing

#End Region '/PROPS

#Region "METHODS"

    ''' <summary>
    ''' Определяет, является ли драйвер 32-разрядным.
    ''' </summary>
    Private Shared Function CheckIsDriverX86() As Boolean
        Try
            Dim res As Byte = IsInpOutDriverOpen()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    ''' <summary>
    ''' Определяет, является ли драйвер 64-разрядным.
    ''' </summary>
    Private Shared Function CheckIsDriverX64() As Boolean
        Try
            Dim nResult As ULong = IsInpOutDriverOpen_x64()
            Return (nResult <> 0)
        Catch ex As Exception
            Return False
        End Try
    End Function

#End Region '/METHODS

#Region "Read / Write LPT Port"

    ''' <summary>
    ''' Читает из заданного регистра LPT порта 1 байт данных.
    ''' </summary>
    ''' <param name="port">Номер порта.</param>
    ''' <param name="reg">Регистр порта.</param>
    Public Shared Function Read(port As ULong, Optional reg As Register = Register.DATA) As Byte
        Dim data As Byte = 0
        If IsX64DriverUsed Then
            data = Inp64(CULng(port + reg))
        Else
            data = Inp32(CUInt(port + reg))
        End If
        Return data
    End Function

    ''' <summary>
    ''' Записывает в заданный регистр LPT порта число.
    ''' </summary>
    ''' <param name="port">Адрес порта.</param>
    ''' <param name="reg">Регистр порта.</param>
    ''' <param name="data">Число для записи. В 32-разрядных системах аргумент должен быть не более, чем максимальное значение для типа UInt32.</param>
    Public Shared Sub Write(port As ULong, reg As Register, data As ULong)
        If IsX64DriverUsed Then
            Out64(port + CULng(reg), data)
        Else
            If (data <= UInteger.MaxValue) Then
                Out32(CUInt(port + reg), CUInt(data))
            Else
                Throw New ArgumentException("В 32-разрядных системах аргумент должен быть 32-разрядным (тип UInt32).", "data")
            End If
        End If
    End Sub

#End Region '/Read / Write LPT Port

    ''' <summary>
    ''' Тестирует наличие LPT порта по заданному адресу.
    ''' </summary>
    ''' <param name="lptAddress">Адрес параллельного порта.</param>
    Public Shared Function CheckPortPresent(lptAddress As ULong) As Boolean
        Dim portPresent As Boolean = False
        Try
            InitLpt(lptAddress)
            Dim data As ULong = Read(lptAddress, Register.DATA) 'сохраняем текущее значение регистра данных

            'Проверим: что записали, то и прочитали?
            Write(lptAddress, Register.DATA, &H0)
            portPresent = portPresent And (&H0 = Read(lptAddress, Register.DATA))

            Write(lptAddress, Register.DATA, &H55)
            portPresent = portPresent And (&H55 = Read(lptAddress, Register.DATA))

            Write(lptAddress, Register.DATA, &HAA)
            portPresent = portPresent And (&HAA = Read(lptAddress, Register.DATA))

            Write(lptAddress, Register.DATA, data) 'восстанавливаем прежнее значение регистра данных

            'Проверим наличие регистров управления и данных, если порт не обнаружен (в случае однонаправленного порта)
            If (Not portPresent) Then
                data = Read(lptAddress, Register.CONTROL)
                portPresent = ((data <> 0) AndAlso (data <> &HFF)) 'Не пустое значение? => Порт присутствует.
                If (Not portPresent) Then
                    data = Read(lptAddress, Register.STATUS)
                    portPresent = ((data <> 0) AndAlso (data <> &HFF))
                End If
            End If
        Catch ex As Exception
            Return False
        End Try
        Return portPresent
    End Function

End Class '/LPT

Код класса LPT на языке C#:

Код класса LPT на языке C# (разворачивается)

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace LPTIO
{
  /// Класс для работы LPT портом. При создании определяет наличие драйвера и его разрядность.
public sealed class LPT
  {
    private const string DLL32 = "inpout32.dll";
    private const string DLL64 = "inpoutx64.dll";
    private static bool _IsX64DriverUsed;

    /// Используется ли 64-разрядная версия драйвера.
    public static bool IsX64DriverUsed
    {
      get
      {
        return LPT._IsX64DriverUsed;
      }
    }

    static LPT()
    {
      if (LPT.getIsDriverX86())
      {
        LPT._IsX64DriverUsed = false;
      }
      else
      {
        if (!LPT.getIsDriverX64())
          throw new SystemException("Драйвер для LPT порта не установлен.");
        LPT._IsX64DriverUsed = true;
      }
    }

    [DebuggerNonUserCode]
    public LPT()
    {
    }

    [DllImport("inpout32.dll", CharSet = CharSet.Auto)]
    private static extern byte IsInpOutDriverOpen();

    [DllImport("inpoutx64.dll", EntryPoint = "IsInpOutDriverOpen", CharSet = CharSet.Auto)]
    private static extern ulong IsInpOutDriverOpen_x64();

    [DllImport("inpout32.dll", CharSet = CharSet.Auto)]
    private static extern byte Inp32(uint PortAddress);

    [DllImport("inpout32.dll", CharSet = CharSet.Auto)]
    private static extern void Out32(uint portAddress, uint data);

    [DllImport("inpoutx64.dll", EntryPoint = "Inp32", CharSet = CharSet.Auto)]
    private static extern byte Inp64(ulong PortAddress);

    [DllImport("inpoutx64.dll", EntryPoint = "Out32", CharSet = CharSet.Auto)]
    private static extern void Out64(ulong PortAddress, ulong Data);

    /// Определяет, является ли драйвер для 32-разрядной версии Windows.
    private static bool getIsDriverX86()
    {
      bool flag;
      try
      {
        LPT.IsInpOutDriverOpen();
        flag = true;
      }
      catch (Exception ex)
      {
        ProjectData.SetProjectError(ex);
        flag = false;
        ProjectData.ClearProjectError();
      }
      return flag;
    }

    /// Определяет, является ли драйвер для 64-разрядной версии Windows.
    private static bool getIsDriverX64()
    {
      bool flag;
      try
      {
        flag = Decimal.Compare(new Decimal(LPT.IsInpOutDriverOpen_x64()), Decimal.Zero) != 0;
      }
      catch (Exception ex)
      {
        ProjectData.SetProjectError(ex);
        flag = false;
        ProjectData.ClearProjectError();
      }
      return flag;
    }

    /// <summary>Читает из LPT порта 1 байт данных.</summary>
    /// <param name="port">Номер порта.</param>
    /// <param name="reg">Регистр порта.</param>
    public static byte Read(ulong port, LPT.Register reg = LPT.Register.DATA)
    {
      return !LPT.IsX64DriverUsed ? LPT.Inp32(Convert.ToUInt32(Decimal.Add(new Decimal(port), new Decimal((int) reg)))) : LPT.Inp64(Convert.ToUInt64(Decimal.Add(new Decimal(port), new Decimal((int) reg))));
    }

    /// <summary>Записывает в LPT порт число.</summary>
    /// <param name="port">Адрес порта.</param>
    /// <param name="reg">Регистр порта.</param>
    /// <param name="data">Число для записи. В 32-разрядных системах аргумент должен быть не более, чем максимальное значение для типа UInt32.</param>
    public static void Write(ulong port, LPT.Register reg, ulong data)
    {
      if (LPT.IsX64DriverUsed)
      {
        LPT.Out64(checked (port + (ulong) (uint) reg), data);
      }
      else
      {
        if (data > (ulong) uint.MaxValue)
          throw new ArgumentException("В 32-разрядных системах аргумент должен быть 32-разрядным (тип UInt32).", "data");
        LPT.Out32(Convert.ToUInt32(Decimal.Add(new Decimal(port), new Decimal((int) reg))), checked ((uint) data));
      }
    }

    /// <summary>Регистры порта LPT.</summary>
    public enum Register
    {
      DATA,
      STATUS,
      CONTROL,
    }
  }
}

3Применение класса .NET для работы с LPT портом

Если мы посмотрим на список экспортируемых функций библиотеки inpout32.dll с помощью замечательного инструмента DLL Export Viewer от NirSoft, то увидим следующую картину:

Список экспортируемых функций библиотеки inpout32.dll

Список экспортируемых функций библиотеки inpout32.dll

Это список функций, которые мы можем использовать. Фактически все они используются в классе LPT, но реализация скрыта, и из публичных методов пользователю доступны только два метода и одно свойство (они рассматриваются чуть далее).

При инстанцировании класс сам определит, библиотеку какой разрядности ему использовать – inpout32.dll или inpoutx64.dll. Поэтому от пользователя не требуется никаких действий по инициализации или определения разрядности используемой dll. Вы можете сразу записывать или читать из LPT порта. Одно «Но»: если драйвер не установлен, обращение к любому из методов динамической библиотеки вызовет исключение, поэтому рекомендую использовать блоки Try…Catch для перехвата и обработки исключений.

Несколько примеров использования класса LPT.

Для определения, используется ли 64-разрядная версия драйвера (inpoutx64.dll при True) или 32-разрядная (inpout32.dll при False) (на самом деле, это знать не обязательно, класс использует именно ту библиотеку, которая нужна, но вдруг вам для чего-то понадобится это узнать из своей программы):

bool is64bitDriver = LPT.IsX64DriverUsed;

Для записи числа «123» в регистр контроля LPT порта вызовите из своего класса:

LPT.Write(currentPort, LPT.Register.CONTROL, 123);

Для чтения одного байта из регистра данных LPT порта и чтения регистра статуса:

byte b = LPT.Read(currentPort, LPT.Register.DATA);
byte s = LPT.Read(currentPort, LPT.Register.STATUS);

Здесь currentPortадрес LPT порта. Причём, если у вас интегрированный LPT порт, то его адрес будет, скорее всего, 378h. А если у вас LPT порт на плате расширения, то адрес будет другой, например, D100h или C100h.

Чтобы узнать адрес LPT порта, зайдите в диспетчер устройств Windows, найдите раздел Порты COM и LPT, выберите используемый параллельный порт, и в окне свойств (щёлкнув по нему правой кнопкой мыши) посмотрите, какие ресурсы использует выбранный порт (необходимо брать первое значение из диапазона).

Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Например, в данном случае необходимо использовать номер порта C100.

Содержание

  1. Не могу заставить работать LPT-порт в Windows 7 x64
  2. Драйвер для работы с LPT портом (интегрированным или в виде платы PCI)
  3. 1 Установка драйвера для работы с LPT портом
  4. 2 Программный класс использования библиотек работы с LPT портом
  5. Скачать вложения:
  6. Поделиться
  7. Похожие материалы (по тегу)
  8. Другие материалы в этой категории:
  9. 8 комментарии
  10. Работа с LPT-портом в Win NT/2000/XP
  11. Драйвер DLPortIO
  12. Драйвер UserPort
  13. Драйвер GiveIO.sys
  14. Драйвер Port95nt
  15. Дополнительные меры
  16. PCI Parallel Port (LPT3)
  17. Установщик драйверов:
  18. Список драйверов:
  19. Поддерживаемые модели ноутбуков
  20. Драйвер Prolific USB-to-Serial Comm Port в Windows 10, 8, 7 не работает
  21. Что такое Prolific USB-to-serial Comm Port в ОС Windows 10, 8, 7?
  22. Суть и причина проблемы при возникновении ошибки с кодом 10
  23. Как исправить код ошибки 10 Prolific Comm Port при помощи драйвера
  24. Заключение

Не могу заставить работать LPT-порт в Windows 7 x64

Столкнулся с проблемой, не могу заставить работать LPT порт в Windows 7 64 Bit, до это работал на WindowsXP все работало отлично, тут же просто не хочет включаться порт, компьютер его видит и говорит что могу работать с портом, на самом деле это не так. Ему все равно, он ни на что не реагирует если с него попытаться что-то прочитать или записать, с подключенным устройством. Взял я даже драйвер от WindowsXP, все равно никак не хочет, не знаю что делать.

Помогите кто чем может, очень нужно!

Если тему не там создал, прошу перенести туда, где ей было бы место

Заставить софт работать на windows 7 x64
Написал программу, но народ жалуется, мол на x64 не запускается. Гуглил, сказали, что там пути до.

LPT под Windows 7 (x86-x64)
Доброго времени суток! Есть ли у кого ни будь рабочий пример программы, для работы с LPT портом.

Программа работы с LPT-портом в Windows 7 x64
Есть программка, работающая с определенным оборудованием через порт LPT. Исходный код программки мы.

Я не уверен, но где-то читал, что в биосе нужно сменить режим LPT. попробуйте, хуже не станет, там их всего вроде бы три режима. И в диспетчере устройств посмотрите, не конфликтует ли порт с другими устройствами.

Добавлено через 1 минуту
еще как вариант у вас не стоят родные драйвера на чипсет. Взять их можно на официальном сайте производителя материнки, только под семерку берите, хрюшные не прокатят никак. удачи

Источник

Драйвер для работы с LPT портом (интегрированным или в виде платы PCI)

Лет 10-15 назад параллельный порт был довольно востребованным интерфейсом для связи между устройствами. Сегодня производители различных устройств отдают предпочтение последовательным интерфейсам. Тем не менее, и сегодня LPT порт всё ещё можно встретить. А некоторые разработчики ещё пишут под него программы (или поддерживают написанные во времена расцвета параллельных интерфейсов). Но в компьютерах сейчас LPT порт – достаточно большая редкость. Существуют, конечно, платы расширения для компьютера, которые реализуют интерфейс LPT. Они в основном представляют собой платы на шине PCI. К сожалению, далеко не весь софт, который был написан для интегрированных в материнскую плату LPT портов, будет работать с LPT-PCI-платами.

1 Установка драйвера для работы с LPT портом

В приложенном архиве находятся две папки – для 32-разрядной и для 64-разрядной версий Windows. В одной из папок лежит файл InstallDriver.exe. Сначала запустите этот файл, он установит динамические библиотеки в систему. После этого компьютер следует перезагрузить.

Чтобы использовать предлагаемый драйвер, файлы inpout32.dll и inpoutx64.dll должны располагаться в одной директории с исполняемым файлом вашей программы.

2 Программный класс использования библиотек работы с LPT портом

Упомянутые библиотеки написаны не мной. Я предлагаю удобный класс-оболочку, упрощающий работу с данными библиотеками. Кроме того, автор библиотек в файле readme.txt сообщает, что его драйвер не поддерживает PCI устройства. Мне удалось его запустить для работы как с интегрированным параллельным портом, так и LPT портом, реализованном в виде платы расширения на шине PCI-Express. Причём порт отлично работает и на современной Windows10 x64, и на более старых системах.

Вот код класса LPT на языке VB.NET:

Код класса LPT на языке VB.NET (разворачивается)

Код класса LPT на языке C#:

Код класса LPT на языке C# (разворачивается)

Если мы посмотрим на список экспортируемых функций библиотеки inpout32.dll с помощью замечательного инструмента DLL Export Viewer от NirSoft, то увидим следующую картину:

02 Список экспортируемых функций библиотеки inpout32.dll

Это список функций, которые мы можем использовать. Фактически все они используются в классе LPT, но реализация скрыта, и из публичных методов пользователю доступны только два метода и одно свойство (они рассматриваются чуть далее).

При инстанцировании класс сам определит, библиотеку какой разрядности ему использовать – inpout32.dll или inpoutx64.dll. Поэтому от пользователя не требуется никаких действий по инициализации или определения разрядности используемой dll. Вы можете сразу записывать или читать из LPT порта. Одно «Но»: если драйвер не установлен, обращение к любому из методов динамической библиотеки вызовет исключение, поэтому рекомендую использовать блоки Try…Catch для перехвата и обработки исключений.

Несколько примеров использования класса LPT.

Для определения, используется ли 64-разрядная версия драйвера (inpoutx64.dll при True) или 32-разрядная (inpout32.dll при False) (на самом деле, это знать не обязательно, класс использует именно ту библиотеку, которая нужна, но вдруг вам для чего-то понадобится это узнать из своей программы):

Для записи числа «123» в регистр контроля LPT порта вызовите из своего класса:

Для чтения одного байта из регистра данных LPT порта и чтения регистра статуса:

Здесь currentPortадрес LPT порта. Причём, если у вас интегрированный LPT порт, то его адрес будет, скорее всего, 378h. А если у вас LPT порт на плате расширения, то адрес будет другой, например, D100h или C100h.

Чтобы узнать адрес LPT порта, зайдите в диспетчер устройств Windows, найдите раздел Порты COM и LPT, выберите используемый параллельный порт, и в окне свойств (щёлкнув по нему правой кнопкой мыши) посмотрите, какие ресурсы использует выбранный порт (необходимо брать первое значение из диапазона).

01 Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Например, в данном случае необходимо использовать номер порта C100.

Скачать вложения:

Поделиться

Похожие материалы (по тегу)

Другие материалы в этой категории:

8 комментарии

842b47ebe8a823791d148ae71690d8be?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

Роман, а что значит скачал «Visual C»? Дело в том, что нужна подходящая среда разработки (IDE), например, Visual Studio или Visual Studio Code. Какую вы используете? Конкретно по ошибке «Элемент «ProjectData» не существует в текущем контексте» я вам не подскажу. Скорее всего дело в настройках проекта, это уж смотрите сами. Попросите кого-то более опытного помочь настроить IDE. Код рабочий, 100%. Мне по работе приходится иметь дело со старым оборудованием, и я успешно использую его. Только я использую VB.NET, а код на C# получил путём декомпиляции готовой сборки. Попробуйте использовать код на VB.NET. Он к тому же проще для понимания новичкам.

84b53f6dbbfeb442007bf3de1aa17de9?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

842b47ebe8a823791d148ae71690d8be?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

Мне кажется, что для решения вашей задачи со сканером это решение не подходит, и запустить старый сканер не получится. Потому что придётся самому переписывать софт для сканирования. Ваша задача должна решаться как-то на уровне драйвера порта или той программы, которая используется для сканирования. Может быть, есть обновлённые драйверы для сканера с возможностью указывать адрес порта. А может проще найти старый комп, где на материнке присутствует LPT. Кстати, Asus до сих пор выпускает материнские платы с LPT под более-менее современные процессоры, например, модель H81M-C.

884cc9095c4cf9596be8a1181e0c7b50?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

Спасибо тебе, добрый человек. Установка этого драйвера и замена inpout32.dll в директории исполняемой программы, помогли запустить софт, который ранее работал только на Win XP из под Win 10×64

842b47ebe8a823791d148ae71690d8be?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

Василий, рад, что помог!

12b99b802ec691dbc306a1eab4b0aee8?s=60&default=https%3A%2F%2Fsoltau.ru%2Fcomponents%2Fcom k2%2Fimages%2Fplaceholder%2Fuser

В программировании я не разбираюсь. Есть такая проблема: для прошивки контроллеров AVR раньше использовал программатор AVReal. Он быстро и качественно работает. Покупая новый компьютер я специально искал материнку с LPT портом. Однако в Win10-64бит старые драйвера ввода-вывода не работают и они должны иметь цифровую подпись. Соответственно получаю сообщение об ошибке при использовании программатора. У меня вопрос: можно ли с Вашим драйвером LPT порта решить эту проблему? Какие шаги по установке и использованию я должен выполнить? Если не сложно, скиньте ответ на мою почту

Источник

Работа с LPT-портом в Win NT/2000/XP

LPT-порт имеет 12 выходных и 5 входных линий. Такое довольно большое количество линий делает возможным подключение к порту несложной аппаратуры, возможно даже не имеющей своего микроконтроллера. Поэтому этот порт, несмотря на исчезновение принтеров с LPT-интерфейсом, активно используется для подключения простых программаторов микросхем памяти, JTAG-интерфейсов для перепрошивки (замены программного обеспечения) спутниковых рессиверов, DVD-плееров и другой электронной техники. Популярен LPT-порт и у моддеров, поскольку позволяет подключить к компьютеру LCD-дисплеи без изготовления сложных плат-интерфейсов.

Windows 2000/XP не позволяет приложениям обращаться к портам ввода-вывода напрямую. Для этого нужно использовать драйвер, работающий в KERNEL-mode (в режиме ядра операционной системы).

Ограничение доступа к портам ввода-вывода для обычных прикладных программ (работающих в пользовательском режиме) позволяет сделать операционную систему более стабильной. Хотя с другой стороны никто не мешает программисту написать драйвер, обращающийся к портам.

Для решения проблемы существуют четыре популярных варианта драйверов, позволяющих прикладной программе обращаться к портам ввода-вывода: драйвер DLPortIO, драйвер UserPort, драйвер GiveIO.sis, драйвер Port95nt.

Все четыре варианта практически равноценны.

Драйвер DLPortIO

В установочном пакете драйвера, помимо этих двух компонентов, есть ещё файл Install.exe, перемещающий два вышеназванных в папку драйверов Windows и регистрирующий их в системе.

Больше писать про этот драйвер и нечего. Настройка не требуется. Скачали, установили, пользуемся. Не забываем заглянуть в конец статьи и почитать о дополнительных мерах обеспечения работоспособности LPT-порта.

Драйвер UserPort

Драйвер UserPort открывает доступ к портам в Win NT/2000/XP для программ. Этим вариантом драйвера LPT-порта чаще всего пользуются «технари», работающие с программаторами и JTAG’ами, поскольку драйвер имеет хоть какие-то конфигурирующие настройки. Для работы программ обслуживания LCD-индикаторов его так же можно использовать.

Установка UserPort:
• 1. Распакуйте архив в отдельную папку.
• 2. Скопируйте файл UserPort.sys в C:WindowsSystem32drivers

Настройка UserPort:
• Запустите UserPort.exe.
• Перед нами появится панель с 2-мя окошками.

userport default

Для использования с драйвера с большинством программаторов, JTAG’ов и программ обслуживания дисплеев, добавьте в левую колонку следующие параметры:
378, 379 и 37A для LPT1
278, 279 и 27A для LPT2 (Если в BIOS’е переназначен адрес LPT-порта).

Добавляем так:
0x378-0x378
0x37A-0x37A

userport setup

Добавлять адреса порта в список нужно через окно ввода и с помощью кнопки «Add». Адрес 0x379 чаще всего не нужен и его можно не вписывать, поскольку он предназначен для чтения битов состояния из устройства, подключеного к LPT-порту, а большинство устройств (программаторы, JTAG’и и LCD-индикаторы тем более) сигналы состояния не формируют. При желании можно наоборот вписать весь диапазон адресов, отведённых системой под LPT-порт 0x378-0x37F.

После формирования списка адресов, нужно нажать кнопку «Start», драйвер будет запущен и появится сообщение:

userport start

Затем нажать кнопку «Update», при этом драйвер будет зарегистрирован в системе, затем «Exit». Разумеется, кнопку «Stop», пока мы пользуемся драйвером, нажимать не нужно.

Если при нажатии кнопки «Update» система уходит в перезагрузку, нужно пробовать запускать регистрацию драйвера в системе с правами администратора или попытаться временно отключить файрволл или антивирус, которые могут блокировать вмешательство в системные процессы. Если что-то не получилось, читайте UserPort.pdf

Для проверки, появился ли доступ к портам, можно запустить программу «lpt-test.exe».

После старта программы появится окно со следующим содержанием:

lpt test 1

Тестируется порт LPT1 (Адрес 378h)

Отсутствует порт LPT2

Отсутствует порт LPT3

Отсутствие сообщения «Тестируется порт LPT (Адрес XXXh)» и последующих за ним строк говорит о том, что драйвер не работает.

Эта программа просто посылает в регистр данных Dx и регистр управления Ux порта LPT различные числа, а потом их же считывает. Регистр статуса Sx порта LPT только считывается. На экран выводится номер и адрес тестируемого порта LPT. Если порт исправный, то для регистров Dx и Ux не должно выдаваться никаких сообщений.

lpt test 2

Если регистры Dx или Ux неисправны, то выводится сообщение «нет 0» или «нет 1» и указывается номер контакта на LPT-разъеме (сигналы на этом контакте можно посмотреть осциллографом). На входе регистра статуса Sx может быть как «0» так и «1», но обычно, когда к порту LPT ничего не подключено, на всех входах регистра статуса имеется «1». Появление же на входе регистра статуса «0» может являться признаком того, что вход пробит, если раньше там всегда была «1».
На некоторых машинах, если регистр данных или регистр управления неисправны, то доступ к LPT-порту вообще не появляется. Видимо, BIOS при включении компьютера тестирует порт LPT и, если он неисправный, то отключает его.

Если возникают проблемы, возможно, работе мешают какие-то драйвера, периодически посылая импульсы в порт LPT (это можно увидеть осциллографом). Например, можно в настройках принтера отключиться от порта LPT:
выключить LPT1: Порт принтера
включить FILE: Печатать в файл

После того, как все проблемы устранены и тест пройден, должен появиться доступ к портам и можно запускать программу, использующую LPT-порт. В противном случае устройство, подключеное к порту на такой машине работать не будет.

Драйвер GiveIO.sys

В далеком 1996 году американский программист Дейл Робертс, провел серию экспериментов, результатом которых стал драйвер GiveIO.sys. До сих пор этот драйвер остается одним из популярных инструментов, позволяющих прикладной программе обращаться к портам ввода-вывода.

Сам автор драйвера настоятельно рекомендует использовать этот драйвер только в отладочных целях. Окончательная версия прикладной программы должна вместо самостоятельного обращения к портам ввода-вывода, поручить это дело драйверу, написанному специально для этих целей. Драйвер должен вести себя «корректно», проверяя, не используется ли уже устройство каким-нибудь другим приложением.

Однако, если вы абсолютно уверены в том, что требуемые порты ввода-вывода никто кроме вас не использует (например, у вас нет принтера, подключенного к LPT), вы можете спокойно пользоваться драйвером GiveIO.sys.

register question
• 3. Отвечаем утвердительно. При этом появится сообщение об успешном внесении информации в реестр. При желании, можно убедиться в этом. Запускаем редактор реестра regedit.exe и в ветви HKEY_LOCAL_MACHINESystemCurrentControlSetServicesgiveio проверяем наличие следующих записей:

register screen
• 4. Перегружаем компьютер и проверяем работу программ, пользующихся драйвером.

Драйвером GiveIO.sys народ активно пользуется, и, со временем, появились и другие варианты его установки.

hardware wizard

Драйвер GiveIO.sys мы покажем операционной системе, чтобы она поверила в существование оборудования «GiveIO».

Помимо вариантов «ручной» установки драйвера, написано несколько вариантов инсталлятора, выполняющего установку в автоматическом режиме.

Драйвер Port95nt

Термин «драйвер Port95nt» здесь будет не совсем корректен. По сути, это тот же драйвер DLPortIO из пакета DriverLINX от Scientific Software Tools, Inc, только в полном варианте, с парой утилит управления портом, с описанием и множеством примеров для программистов. Рядовому пользователю никакой пользы от дополнительных компонентов нет, а компоненты драйвера DLPortIO.sys и DLPortIO.dll абсолютно такие же, как и в сокращённой версии.

Дополнительные меры

Под WinXP иногда нестабильно работают устройства, использующие LPT-порт. Причиной таких сбоев может быть работа подсистемы Plug-and-Play (PnP) в Windows, периодически опрашивающей LPT с целью обнаружения подключенных устройств. Такой опрос производится при загрузке системы, но оно может происходить и при работе. К сожалению, драйвер DLportIO.sys и другие варианты драйверов не блокируют доступ к LPT от других программ при работе с портом клиента данного драйвера и подсистема PnP уверена, что порт не занят, обращается к нему и нарушает работу внешних устройств. Для устранения проблемы и служит REG-файл xp_stop_polling.reg. Этот файл прописывает в реестре Windows ключ, запрещающий такой опрос (poll) во время работы системы.

Помимо установки драйвера и ограничения одновременного доступа к порту для программ, для обеспечения аппаратной совместимости и нормальной работы оборудования с LPT-портом, необходимо в BIOS выставить правильный адрес и режим работы порта («Normal», SPP или ЕРР, но не ECP).

Конфигурированию через BIOS Setup подлежат следующие параметры:

• Базовый адрес, который может иметь значение 378h, 278h и 3BCh. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, LPT2, LPT3. Адрес 3BCh имеет адаптер порта, расположенный на плате MDA или HGC (предшественники современных видеокарт). Большинство портов по умолчанию конфигурируются на адрес 378h и могут переключаться на 278h.

В то же время, режим ЕСР нельзя использовать с устройствами, требующими жёстких таймингов (программаторами и JTAG-интерфейсами).

В завершение немного о терминологии:

Источник

PCI Parallel Port (LPT3)

Установщик драйверов:

В случае, когда вы не хотите тратить время на поиск нужного драйвера для вашего ПК, к вашим услугам представлен автоматический установщик, который самостоятельно подберет нужные и самые актуальные драйвера для всех устройств вашей системы. Скачать Outbyte Drivers Installer вы можете перейдя по этой ссылке Установить драйвера автоматически

Устройство: PCI Parallel Port (LPT3) Drivers Installer
Версия драйвера: 2.0.0.18
Дата драйвера: 2022-10-23
Размер файла: 1.12 Mb
Поддерживаемые ОС: Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8
Установить драйвера автоматически

Список драйверов:

Найдено драйверов для устройства «PCI Parallel Port (LPT3)»: 2. Для загрузки необходимого драйвера, выберите его из списка ниже и перейдите по ссылке «Скачать». Пожалуйста, убедитесь в соответствии выбранной версии драйвера вашей операционной системе для обеспечения корректности его работы.

Поддерживаемые модели ноутбуков

Мы собрали список популярных моделей ноутбуков на которых устанавливается оборудование «PCI Parallel Port (LPT3)». Выбрав интересующую вас модель ноутбука вы можете посмотреть полный список совместимых устройств.

Источник

Драйвер Prolific USB-to-Serial Comm Port в Windows 10, 8, 7 не работает

Данная статья описывает ряд проблем возникающих при работе со старыми адаптерами KLM и ELM327, которые использовались для подключения PC к автомобильным блокам управления. В частности многие автолюбители использовали и сейчас пользуются этими адаптерами для сброса ошибок на своих автомобилях. Если кому-то будет интересна эта тема, то могу подробно расписать, так как сам активно занимался прошивкой и перепрограммированием ЭБУ на отечественных авто и иномарках. Сейчас же эти адаптеры стали довольно бюджетные и любой автолюбитель может сам позволить купить себе такой, только проблем с их работой меньше не становится.

ELM327 USB Plastic OBD2 Auto Diagnostic Tool Version V1 5 ELM 327 USB Interface OBDII CAN

Всё что будет описано ниже относится не только к автомобильным USB адаптерам, но и вообще к различному обородуванию которое подключается через USB шину и использует для своей работы драйвер Prolific USB-to-Serial Comm Port.

Несмотря на активное продвижение USB на рынке цифровых технологий, ряд устройств для подключения к ПК используют несколько устаревшие COM-порты. Поскольку в большинстве современных компьютеров отсутствует соответствующий разъём, выходом из ситуации становится переходник «USB-to-COM». В данной статье я поясню, что это за драйвер Prolific для устройства USB-to-Serial Comm Port для операционной системы Windows 10, 8, 7. А также как можно решить ошибку с кодом 10, возникающую при работе с указанным драйвером.

Что такое Prolific USB-to-serial Comm Port в ОС Windows 10, 8, 7?

Набор программного обеспечения для установки, отладки и удаления из системы преобразователя интерфейсов USB-to-COM работает на чипах от компании «Prolific Technology Inc». Обычно это набор драйверов, который устанавливаются на PC, и обеспечивает корректное взаимодействие преобразователя интерфейсов с компьютером пользователя.

Указанный преобразователь используется для работы с устройствами, которые подключаются к PC через последовательный (COM) порт. Это различные программаторы, принтеры, девайсы для работы с GPS-навигацией, с ГБО и так далее.

drayver prolific usb to serial comm port dlya windows 10 8 7 1

Пример устройства с драйвером

Поскольку использующиеся по умолчанию драйвер к чипам компании «PL-2303H» и «PL-2303X» написаны «Prolific Technology Inc» ещё в 2012 году, они плохо работают с новыми Виндовс 8 и 10. В этом случае компания рекомендует использовать устройства на чипах «PL2303TA» и «PL-2303HXD» для корректной работы с современными ОС.

drayver prolific usb to serial comm port dlya windows 10 8 7 2

Корректно установленный драйвер в ДУ

Читайте также: Скачать драйвер для PCI-контроллер Simple Communications Windows 7 64 bit.

Суть и причина проблемы при возникновении ошибки с кодом 10

Компания «Prolific» прославилась в сети не своими чипами, а дисфункцией своих драйверов, возникающей при переходе пользователя с Windows 7 b 10. Как я уже упоминал выше, некоторые драйвера к чипам «Prolific» работают только с Виндовс 7 и ниже. И прекращают работать с более модерными версиями ОС (8,10). Многие же пользователи, перейдя с 7 на 10 версию Windows, обнаружили, что их устройства с чипами «Prolific» перестали работать. А в Диспетчере устройств рядом с названием «Prolific usb-to-serial comm port» красуется восклицательный знак, сигнализирующий о возникшей ошибке с кодом 10.

drayver prolific usb to serial comm port dlya windows 10 8 7 3

Другим же фактором возникновения проблемы является подделка чипов «Prolific» малоизвестными китайскими производителями. Как и в случае настоящих чипов, фейковые чипы имеют тот же Vendor ID (VID_067B) и тот же «Product ID» (PID_2303), потому отличить подлинник от подделки бывает сложновато.

Для устранения фейковых чипов «Prolific» выпустила новые драйвера, которые не работают с ненастоящими чипами, делая их бесполезными. Одновременно данное решение привело к отказу от драйверной поддержки более ранних адаптеров компании.

Поэтому 64-битные драйвера «Prolific», распространяемые «Майкрософт» через службу обновлений Windows, версий 3.4.67.325, 3.4.25.218, 2.1.51.238, 3.4.62.293 не будут работать с большинством адаптеров. А в «Диспетчере устройств» пользователь будет видеть восклицательный знак и код ошибки 10. Или, в качестве альтернативы, вы не будете видеть ошибок в самом ДУ, но ваше устройство попросту не будет работать.

Это может быть полезным: Скачиваем и устанавливаем драйвер Qualcomm HS-USB QDLoader 9008.

Как исправить код ошибки 10 Prolific Comm Port при помощи драйвера

Чтобы избавиться от ошибки 10 Prolific вам необходимо выполнить несколько шагов, которые я опишу ниже. Важно понимать, что если ваш адаптер нормально работал до установки очередного обновления Windows, тогда вам будет необходимо откатить версию актуального драйвера до предыдущего рабочего варианта.

Если же драйвер у вас был установлен, но не работал корректно – вам будет необходимо удалить любую установленную в систему инсталляционную программу драйвера PL-2303, сам неработающий драйвер, и информационный (INF) файл, после чего приступать к нижеизложенной инсталляции.

drayver prolific usb to serial comm port dlya windows 10 8 7 4

Удалите некорректную инсталляцию драйвера

Необходимо учитывать, что модерные ОС Виндовс настроены на автоматическое обновление ваших драйверов без вашего разрешения. Потому не имеет значения, сколько раз вы вручную удалили ваш драйвер и перезагрузились – при следующем подключении адаптера USB-To-Serial ОС вновь установит неработающую версию драйвера. Потому перед установкой нижеизложенного драйвера рекомендуется отключить службу автоматического обновления Windows. Иначе последняя вновь установит неработающий драйвер.

Установка для 64-битной системы:

Установка для 32-битной системы:

Также вариантом решения проблемы может стать способ, предложенный в данном видео:

Рекомендуем к прочтению: Как обновить драйвера онлайн.

Заключение

Драйвер Prolific USB-to-Serial Comm Port предназначен для обеспечения функционала устройств в Windows 10, 8, 7. Он использует COM-порт для подключения к пользовательскому ПК. Если же данный драйвер работает некорректно, рекомендуется установить его более старый аналог с помощью способов, описанных мной в данном материале.

Источник

Сообщения без ответов | Активные темы

ПРЯМО СЕЙЧАС:

Автор Сообщение

Не в сети

Заголовок сообщения: Программы для LPT

СообщениеДобавлено: Пт апр 24, 2009 14:21:26 

Родился

Зарегистрирован: Ср мар 04, 2009 19:12:39
Сообщений: 18

Рейтинг сообщения: 0

Вот состряпал программу, хоть это и моя первая толковая программа но сейравно аж самому понравилась =)

вот небольшая ее характеристика:

Программа управления LPT портом поможет всем кто только начал изучать железо или соберает устройства для управления с ПК.

Данная программа может помочь вам проверить или управлять практически любым аналаговым устройством (при наличие контроллера, реле или теристоров), а также пользуясь программатором перепрошивать их.

Платформа: Windows 982000NTXPVista

Драйвер: в наличие с программой

Лицензия: Бесплатное распространение

Изготовитель: КоТ

Скачать можно тут http://minuta.ifolder.ru/11775811

оцените норм программа? чтобы знать продолжать или нет дальше их пытаться делать. но не забудте это первая программа, как говорится первый блин горелый далее норм =) надеюсь это не о моей проге.

Вернуться наверх
 

ПрофильПрофиль

 

Реклама

ARV

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Пт апр 24, 2009 15:04:38 

Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97

Рейтинг сообщений: 2031

Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 17882
Откуда: Новочеркасск

Рейтинг сообщения: 0

Медали: 2

Получил миской по аватаре (1)

Мявтор 3-й степени (1)

для работы LPT я делал пару программулин, можешь посмотреть на моем сайте по ключевым словам Hardware Control и LptSW :) чисто для сравнения :)

хотя твоя навороченней :) однако и «начать» и «закончить» управление приводят внешне к одинаковому результату.


_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется…

скушно, бабоньки!

Вернуться наверх
Реклама

PB_EXPERT

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Пт апр 24, 2009 17:44:30 

Зарегистрирован: Вс мар 30, 2008 14:31:51
Сообщений: 331

Рейтинг сообщения: 0

Вернуться наверх

kotkolledj

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Сб апр 25, 2009 12:31:46 

Зарегистрирован: Ср мар 04, 2009 19:12:39
Сообщений: 18

Рейтинг сообщения: 0

там заметте есть 6 переключателей в ряд они для того чтобы заустить управление =) это своего рода защита он случайностей и нубов которые хотят все испортить =) чтобы прога могла управлять их нужно все вкл и потом нажать на «Начать управление» =) вот такие пироги

Вернуться наверх
Реклама

Выгодные LED-драйверы для решения любых задач

КОМПЭЛ представляет со склада и под заказ широкий выбор LED-драйверов производства MEAN WELL, MOSO, Snappy, Inventronics, EagleRise. Линейки LED-драйверов этих компаний, выполненные по технологии Tunable White и имеющие возможность непосредственного встраивания в систему умного дома (димминг по шине KNX), перекрывают практически полный спектр применений: от простых световых указателей и декоративной подсветки до диммируемых по различным протоколам светильников внутреннего и наружного освещения.

Подобрать LED-драйвер>>

kotkolledj

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Сб апр 25, 2009 12:35:37 

Зарегистрирован: Ср мар 04, 2009 19:12:39
Сообщений: 18

Рейтинг сообщения: 0

ARV писал(а):

для работы LPT я делал пару программулин, можешь посмотреть на моем сайте по ключевым словам Hardware Control и LptSW :) чисто для сравнения :)

хотя твоя навороченней :) однако и «начать» и «закончить» управление приводят внешне к одинаковому результату.

вот вот я сделал эту прогу как увидел твою =) делал сначало на Хисаяме тока оч простую ну вот далее решил сделать более удобную, со своимими скудными знаниями в Дэлфи(учу тока 1.5 месяца) пыжился вот и получилось вот только я хотел сделать чтобы не использовать драйвер тот но я не знаю асемблер так бы все было намного проще и меньше мароки =) надеюсь я соберу следующую версию.

Вернуться наверх
Реклама

Реклама

LIMF – источники питания High-End от MORNSUN со стандартным функционалом на DIN-рейку

На склад Компэл поступили ИП MORNSUN (крепление на DIN-рейку) с выходной мощностью 240 и 480 Вт. Данные источники питания обладают 150% перегрузочной способностью, активной схемой коррекции коэффициента мощности (ККМ; PFC), наличием сухого контакта реле для контроля работоспособности (DC OK) и возможностью подстройки выходного напряжения. Источники питания выполнены в металлическом корпусе, ПП с компонентами покрыта лаком с двух сторон, что делает ее устойчивой к соляному туману и пыли. Изделия соответствуют требованиям ANSI/ISA 71.04-2013 G3 на устойчивость к коррозии, а также нормам ATEX для взрывоопасных зон.

Подробнее>>

fenfen

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Пт июн 26, 2009 18:56:30 

Зарегистрирован: Пт июн 26, 2009 18:53:33
Сообщений: 1

Рейтинг сообщения: 0

А есть програмка для управления лпт портом под висту 64 ? ато девайс мой не работает при переходе на висту. у мну была прожка (верней ихсходники) для роботы с пинами лпт под ХП. там было всё замечательнго. может кто поможет плииз!

Вернуться наверх

kotkolledj

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Ср янв 20, 2010 19:05:52 

Зарегистрирован: Ср мар 04, 2009 19:12:39
Сообщений: 18

Рейтинг сообщения: 0

fenfen писал(а):

А есть програмка для управления лпт портом под висту 64 ? ато девайс мой не работает при переходе на висту. у мну была прожка (верней ихсходники) для роботы с пинами лпт под ХП. там было всё замечательнго. может кто поможет плииз!

по идеи если прога идет под ХР то и пойдет и под вистой прост виста драва с неизвестными ей подписями не принемает а если примет то вскоре выкинет с ситемы из-за мнимой не совместимости.. и вообще прекращайте юзать висту поскольку виста это тотже Win98 тока с норм файерволом поскольку также виснет и не понимает что от нее хотят с множественными багами ось)

Вернуться наверх

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Понравилась статья? Поделить с друзьями:
  • Программа управление частотой процессора windows 10
  • Программа управление кулером процессора windows 10
  • Программа управление дисками windows 10 x64
  • Программа уорд windows 2020 г скачать бесплатно
  • Программа уорд windows 2007 г скачать бесплатно