Имитатор кабины L-29 — «Железные» кокпиты

PCI — LPT плата расширения в компьютер.

Как известно современные материнские платы не имеют порта. Широко известные USB-LPT не подойдут, т.к. они не создают в системе физический LPT порт, а лишь принимают данные от приложения и передают их через драйвер на USB контроллер.
Но поскольку (в моем случае) кабина симулятора управляется через порт, он становится необходим.
Выход — PCI-LPT «переходник». Приобретена вот такая плата. Плата устроена на чипе MOSCHIP MCS9865. С ней находился Mini CD с драйверами. На диске есть все драйверы, на все «интерфейсные» чипы, под все операционки, включая Linux и Vista, производимые фирмой MOSCHIP.

Прикрепленные изображения

  • e019c7da59.jpg

Плату в ПК установил, драйвер «подхватился» с диска, все установилось. Операционная система 32 битная Windows 7. Идем в «Диспетчер устройств» и смотрим, что там:
Порт LPT появился!

Прикрепленные изображения

  • LPT.jpg

Смотрим адреса ввода-вывода и видим, что они совсем не стандартные:

Прикрепленные изображения

  • LPT_1.jpg

Вот и первые проблемы, программа связи железа с симулятором использует стандартный  порт 0378Н.

Прикрепленные изображения

  • f3417c96e3.gif

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

var
  dwResult : DWORD;
  auiTime  : Array[1..3] of Byte;

const ko_1 =4250267406;
const ko_long = 5129445250801 ;
const adr_1 = $D0D0;
const adr_2 = adr_1 +1 ;
const adr_3 = adr_1 + 2 ;
label  lab_end ;
label  l_1 ,l_2  , l_e , l_f , l_g ;

begin
   Done := False;
   InvalidateRect(Handle, nil, False);

Не работает! Считываются с порта LPT только одни нули!

Прикрепленные изображения

  • LPT_2.jpg

Имееться LPT порт, но на материнке, и нигде не попадаеться разьем под него, купил данную плату PCI-LPT.
И как с этим бороться? Как изменить диапазон вводавывода?

Попробовал поставить эту плату в старый компьютер. Там плата определяется как LPT2 0278Н. Все нормально даже проверил,  работает! Значит в семерке Windows 7 виноват.

Просмотр сообщенияra3dcs (09 October 2011 — 09:09) писал:

Значит в семерке Windows 7 виноват.

С порта 201H где сидит информация о состоянии четырёх кнопок джойстика считываются единицы.

Прикрепленные изображения

  • LPT_3.jpg

Просмотр сообщенияra3dcs (09 October 2011 — 09:09) писал:

Значит в семерке Windows 7 виноват.

А у вас в семерке стоит и используется драйвер, разрешающий прямой доступ к портам, вроде DLportIO?

Просмотр сообщенияСАБ (09 October 2011 — 13:18) писал:

А у вас в семерке стоит и используется драйвер, разрешающий прямой доступ к портам, вроде DLportIO?

В свое время еще на ХР пробовал использовать драйвера прямого доступа к портам типа GIVEIO.SYS и NTLoader.sys  но результат нулевой.
На семерке запускаю приложение в режиме совместимости с Win 98 ME.

Для успокоения души поставил драйвер DLPortIO 32-bit – результат НУЛЕВОЙ!!!
Саша, привет! Не мучайся зря, в семерке эта плата не проканает ровно как и дополнительная плата СОМ портов, посмотри внимательно на материнке! Там должен быть разъем порта ЛПТ купи переходной шлейф и будет все ОК! у самого матнринка новая ЛПТ имеется

Просмотр сообщенияra3dcs (09 October 2011 — 18:09) писал:

Для успокоения души поставил драйвер DLPortIO 32-bit – результат НУЛЕВОЙ!!!

Я не совсем точно выразился — винда начиная с 2000 (а то и с NT) не даст вам прямого доступа к портам ввода-вывода. Один из вариантов обхода — использование DLportIO и обращение к портам через вызовы его функций. Более подробно не раскажу — сам с этим драйвером не работал, но с ним комплекте идет описание и, вроде бы, примеры. Недавно в одной из рассылок проскакивало сообщение, что в винде можно шеверить ногами LPT и без драйвера, но опять же не через прямое обращение к портам, а через вызов виндовых системных функций. Если интересно — я попробую найти то сообщение.

Просмотр сообщенияСАБ (09 October 2011 — 23:00) писал:

Я не совсем точно выразился — винда начиная с 2000 (а то и с NT) не даст вам прямого доступа к портам ввода-вывода.

Все правильно!
Про DLPortIO не знаю а  GIVEIO.SYS и NTLoader.sys с помощью которых можно разрешить любому приложению напрямую работать с портами ввода-вывода под Windows NT, 2000, XP даже если это приложение написано под Windows 95, 98, Me.
Так должно было бы быть, но в моем случае программа под ХР продолжает выдавать ошибку. Хотя должны были бы работать и такие ассемблерные вставки:
    // выдача параметров

asm

   cli

   //  такт 0

mov  dx ,adr_2
in   al,dx
mov inp1,al
shr  al,7
cmp  al,0
    jne  lab_end

mov  dx,adr_3
mov  al,0     // 000
out  dx,al


   // такт 1

mov  dx,adr_1
mov  al,Kren_LPT_m
out  dx,al


mov  dx,adr_3
mov  al,Kren_LPT_s // 100
out  dx,al


   mov  dx , adr_2
  in   al,dx
  shr  al,7
  cmp  al,1
  jne  lab_end


Просмотр сообщенияBM_906 (09 October 2011 — 19:04) писал:

посмотри внимательно на материнке! Там должен быть разъем порта ЛПТ купи переходной шлейф и будет все ОК! у самого матнринка новая ЛПТ имеется

Привет Костя, сто раз смотрел, нет там LPT, СОМ-1 есть, для него шлейф уже купил.

Просмотр сообщенияra3dcs (10 October 2011 — 07:48) писал:

Все правильно!
Про DLPortIO не знаю а  GIVEIO.SYS и NTLoader.sys с помощью которых можно разрешить любому приложению напрямую работать с портами ввода-вывода под Windows NT, 2000, XP даже если это приложение написано под Windows 95, 98, Me.

Раньше можно было, в семерке прикрыли. Пора уходить от ассемблерных вставок. Нашел то сообщение в рассылке, обсуждают как раз GiveIO и предлагают использовать устройство \\.\$VDMLPT (дают ссылки на примеры использования). Как говорится — чем могу. Александр, а может быть, если уж вы так привязались к LPT, вам посмотреть на микросхему моста FT245? Если у вас есть исходники вашей писишной части, то вы можете их подточить под эту микросхему, и получите с нее те же линии, что и с вашего LPT, но посредством USB. И это не будет «устройство печати виндовса».

Просмотр сообщенияra3dcs (10 October 2011 — 07:48) писал:

но в моем случае программа под ХР продолжает выдавать ошибку.

Выяснил, что ошибку при запуске вызывает команда ассемблера запрет прерываний CLI и STI.
В связи с этим вопрос можно ли средствами Дельфи  заменить эти ассемблеровские команды?


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

Прикрепленные изображения

  • P1030787.JPG
  • P1030788.JPG
  • P1030789.JPG

Очередная доработка оборудования. Замена высотомера ВД-10 на УВИД-30-15.

Прикрепленные изображения

  • P1030813.JPG

Продолжение доработок. Теперь в конструкции кресла. Добавлены направляющие рельсы.

Прикрепленные изображения

  • P1030840_1.jpg
  • P1030841_1.jpg

Есть доступ к живому самолету, он в нашем АУЦ летает, нужны фото или еще чего?

Просмотр сообщенияWildCat (23 May 2012 — 16:17) писал:

…… нужны фото или еще чего?

Спасибо, документации по этому самолету собрано уже предостаточно!

Просмотр сообщенияra3dcs (21 May 2012 — 21:12) писал:

Продолжение доработок. Теперь в конструкции кресла.

Установлен механизм фиксации плечевых ремней.

Прикрепленные изображения

  • P1030853_1.jpg

Несколько изменилась конструкция заголовника.

Прикрепленные изображения

  • P1030891.JPG
  • P1030887.JPG

Просмотр сообщенияra3dcs (05 June 2012 — 12:43) писал:

Несколько изменилась конструкция заголовника.

Александр, а что такие острые углы получились? Можно ведь пораниться о них. Сверху еще что-то будет установлено?