Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Подземелье Магов
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  07:20[Войти] | [Зарегистрироваться]

Обсуждение материала
Работа с параллельным портом под Windows
Полный текст материала


Цитата или краткий комментарий:

«... Прочитал я недавно где-то в интернете, что драйвер параллельного порта в Windows 2000 и Windows XP непосредственно поддерживает работу с устройствами в режимах EPP и ECP, и решил проверить, в чем это выражается и как это использовать. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]4100%
 
  Ничего особенно нового и интересного
[2]00%
 
  Написано неверно (обязательно укажите почему)
[3]00%
 
Всего проголосовали: 4

Оценка стиля изложения

  Все понятно, материал читается легко
[1]3100%
 
  Есть неясности в изложении
[2]00%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 3




Смотрите также материалы по темам:
[LPT] [Драйверы]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 10

29-12-2009 07:48
Все, что написано попробовал, но DeviceIoControl на все команды дает нули и на ваходе LPT сигнады не меняются.
У меня Windows XP Home


17-11-2006 07:46
Какой адрес нужно задать чтобы подать сигнал на Strobe или на DB1(LPT-порта)?


22-04-2006 09:30
для MVG-V70

>> что означает в примере "запись по адресу $AA или $BB"?

Это адреса EPP-режима
устройство защелкивает адрес в цикле записи адреса и использует его для идентификации данных, которые поступают в следующем цикле записи данных.
Т.е. адрес и данные как бы мультиплексируются по одним и тем же линиям. Адрес сопровождается стробом по одной линии, а данные по другой. См. режим EPP

Возможно в заблуждение вводит неточность в моем примере...
...я "забыл включить" нужный режим (шаг 2) перед тем как выполнить операции ввода-вывода (шаг 3).
Должно быть так:

const
IOCTL_IEEE1284_NEGOTIATE = $160018;
EPP_ANY = $0060; // любой из EPP

var
ReqMode, LptMode: PARCLASS_NEGOTIATION_MASK;

// 1 шаг (открыть устройство)

// 2 шаг (установить режим EPP)
ReqMode. usReadMask:= EPP_ANY;
ReqMode. usWriteMask:= EPP_ANY;
DeviceIoControl(hLpt, IOCTL_IEEE1284_NEGOTIATE,
@ReqMode, sizeof(PARCLASS_NEGOTIATION_MASK),
@LptMode, sizeof(PARCLASS_NEGOTIATION_MASK),
ret, nil);

// 3 шаг (читать писать)

// 4 шаг (закрыть устройство)


29-03-2006 16:18
кроме кода IOCTL_IEEE1284_GET_MODE похоже драйвер больше ничего не понимает или не хочет выполнять
я пошел далее и посканировал остальными IOCTL кодами драйвер parport.sys
и оказалось что драйвер ко многим равнодушен
//IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO
//IOCTL_INTERNAL_PARCLASS_CONNECT      
//IOCTL_INTERNAL_PARCLASS_DISCONNECT    
//IOCTL_INTERNAL_LOCK_PORT              
//IOCTL_INTERNAL_UNLOCK_PORT          
//IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE
//IOCTL_INTERNAL_PARALLEL_PORT_FREE    
//IOCTL_INTERNAL_PARCLASS_DISCONNECT    
мне так кажется что под XP произошли сурьезные изменения в структурах
и почему то они не были описаны. А под 64-битную винду драйвер LPT порта не будет поставляется майкрософтом так я вычитал в MSDN
так что ... если кто то отрыл поделитесь
 VVG


26-01-2006 12:33
Странно, у меня на отрез отказывается работать функция DeviceIoControl.
Она ничего не возвращает.

hLPT=CreateFile("CLPT1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
if(hLPT!=NULL)
  Memo1->Lines->Add("LPT1 is opened;");
DWORD ans=DeviceIoControl(hLPT,IOCTL_IEEE1284_GET_MODE,NULL,0,&Mode,sizeof(PARCLASS_NEGOTIATION_MASK),&ret,lpOverlapped);
Memo1->Lines->Add("Device control= "+IntToStr(ans));
Memo1->Lines->Add("Ret size= "+FloatToStr(ret));
CloseHandle(hLPT);



LPT1 is opened;
Device control= 0
Ret size= 0


05-01-2006 15:53
что означает в примере "запись по адресу $AA или $BB"?
что это за адреса?


20-03-2005 16:02
Оценку дать не могу...По мне, так уж очень заумно. Мне больше понравилась информация на сайте http://pccontrol.bib.com.ua/XpCoding/XPlpt.html. Все предельно ясно и понятно. По исходникам смотрим, как прочитать/записать в регистры порта, как считать состояние всех пинов порта. По большому счету этого вполне достаточно, чтобы работать на малых скоростях для отладки. Потом правда прийдется самому большую часть программы перенести в собственный драйвер, который еще нужно написать.


16-02-2005 05:46
Если лень объявлять все константы вручную, то можно взять уже готовый модуль JwaNtDdPar.pas из Jedi Winows Api Library на http://sourceforge.net/projects/jedi-apilib


19-01-2005 07:31
Вообще-то данные по протоколу должны появляться только на момент строба, т.е. в ходе цикла квитирования. Но реально выходной регистр LPT обычно защелкивает последний байт независимо от того - адрес это или данные. Поэтому точно на Ваш вопрос ответить не могу. Думаю проблема в программе.


18-01-2005 19:43
Почему при записи на LPT порту не появляются данные. Порт окрывается, согласование происходит(устанавливается режим программный EPP).


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Вода мокрая или сухая?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования