Как известно современные материнские платы не имеют порта. Широко известные USB-LPT не подойдут, т.к. они не создают в системе физический LPT порт, а лишь принимают данные от приложения и передают их через драйвер на USB контроллер.
Но поскольку (в моем случае) кабина симулятора управляется через порт, он становится необходим.
Выход — PCI-LPT «переходник». Приобретена вот такая плата. Плата устроена на чипе MOSCHIP MCS9865. С ней находился Mini CD с драйверами. На диске есть все драйверы, на все «интерфейсные» чипы, под все операционки, включая Linux и Vista, производимые фирмой MOSCHIP.
Прикрепленные изображения
ra3dcs
07.10.2011 в 03:50
Плату в ПК установил, драйвер «подхватился» с диска, все установилось. Операционная система 32 битная Windows 7. Идем в «Диспетчер устройств» и смотрим, что там: Порт LPT появился!
Прикрепленные изображения
ra3dcs
07.10.2011 в 03:52
Смотрим адреса ввода-вывода и видим, что они совсем не стандартные:
Прикрепленные изображения
ra3dcs
07.10.2011 в 03:55
Вот и первые проблемы, программа связи железа с симулятором использует стандартный порт 0378Н.
Прикрепленные изображения
ra3dcs
08.10.2011 в 14:00
Попытался прописать нестандартный порт LPT в программе управления железом.
var dwResult : DWORD; auiTime : Array[1..3] of Byte;
begin Done := False; InvalidateRect(Handle, nil, False);
Не работает! Считываются с порта LPT только одни нули!
Прикрепленные изображения
atkinson
08.10.2011 в 14:36
Имееться LPT порт, но на материнке, и нигде не попадаеться разьем под него, купил данную плату PCI-LPT.
И как с этим бороться? Как изменить диапазон вводавывода?
ra3dcs
09.10.2011 в 04:09
Попробовал поставить эту плату в старый компьютер. Там плата определяется как LPT2 0278Н. Все нормально даже проверил, работает! Значит в семерке Windows 7 виноват.
ra3dcs
09.10.2011 в 04:26
ra3dcs (09 October 2011 — 09:09) писал:
Значит в семерке Windows 7 виноват.
С порта 201H где сидит информация о состоянии четырёх кнопок джойстика считываются единицы.
Прикрепленные изображения
САБ
09.10.2011 в 08:18
ra3dcs (09 October 2011 — 09:09) писал:
Значит в семерке Windows 7 виноват.
А у вас в семерке стоит и используется драйвер, разрешающий прямой доступ к портам, вроде DLportIO?
ra3dcs
09.10.2011 в 09:44
САБ (09 October 2011 — 13:18) писал:
А у вас в семерке стоит и используется драйвер, разрешающий прямой доступ к портам, вроде DLportIO?
В свое время еще на ХР пробовал использовать драйвера прямого доступа к портам типа GIVEIO.SYS и NTLoader.sys но результат нулевой.
На семерке запускаю приложение в режиме совместимости с Win 98 ME.
ra3dcs
09.10.2011 в 13:09
Для успокоения души поставил драйвер DLPortIO 32-bit – результат НУЛЕВОЙ!!!
BM_906
09.10.2011 в 14:04
Саша, привет! Не мучайся зря, в семерке эта плата не проканает ровно как и дополнительная плата СОМ портов, посмотри внимательно на материнке! Там должен быть разъем порта ЛПТ купи переходной шлейф и будет все ОК! у самого матнринка новая ЛПТ имеется
САБ
09.10.2011 в 18:00
ra3dcs (09 October 2011 — 18:09) писал:
Для успокоения души поставил драйвер DLPortIO 32-bit – результат НУЛЕВОЙ!!!
Я не совсем точно выразился — винда начиная с 2000 (а то и с NT) не даст вам прямого доступа к портам ввода-вывода. Один из вариантов обхода — использование DLportIO и обращение к портам через вызовы его функций. Более подробно не раскажу — сам с этим драйвером не работал, но с ним комплекте идет описание и, вроде бы, примеры. Недавно в одной из рассылок проскакивало сообщение, что в винде можно шеверить ногами LPT и без драйвера, но опять же не через прямое обращение к портам, а через вызов виндовых системных функций. Если интересно — я попробую найти то сообщение.
ra3dcs
10.10.2011 в 02:48
САБ (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
ra3dcs
10.10.2011 в 02:53
BM_906 (09 October 2011 — 19:04) писал:
посмотри внимательно на материнке! Там должен быть разъем порта ЛПТ купи переходной шлейф и будет все ОК! у самого матнринка новая ЛПТ имеется
Привет Костя, сто раз смотрел, нет там LPT, СОМ-1 есть, для него шлейф уже купил.
САБ
10.10.2011 в 06:07
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
13.10.2011 в 13:22
ra3dcs (10 October 2011 — 07:48) писал:
но в моем случае программа под ХР продолжает выдавать ошибку.
Выяснил, что ошибку при запуске вызывает команда ассемблера запрет прерываний CLI и STI. В связи с этим вопрос можно ли средствами Дельфи заменить эти ассемблеровские команды?
ra3dcs
27.02.2012 в 09:38
Очередная доработка по бюллетеню. Установлен концевой выключатель в цепи контроля, закрытое положения замков фонаря кабины. Самая необходимая вещь для современного симмера.
Прикрепленные изображения
ra3dcs
01.04.2012 в 06:51
Очередная доработка оборудования. Замена высотомера ВД-10 на УВИД-30-15.
Прикрепленные изображения
ra3dcs
21.05.2012 в 16:12
Продолжение доработок. Теперь в конструкции кресла. Добавлены направляющие рельсы.
Прикрепленные изображения
WildCat
23.05.2012 в 11:17
Есть доступ к живому самолету, он в нашем АУЦ летает, нужны фото или еще чего?
ra3dcs
24.05.2012 в 08:14
WildCat (23 May 2012 — 16:17) писал:
…… нужны фото или еще чего?
Спасибо, документации по этому самолету собрано уже предостаточно!
ra3dcs
24.05.2012 в 15:03
ra3dcs (21 May 2012 — 21:12) писал:
Продолжение доработок. Теперь в конструкции кресла.
Установлен механизм фиксации плечевых ремней.
Прикрепленные изображения
ra3dcs
05.06.2012 в 07:43
Несколько изменилась конструкция заголовника.
Прикрепленные изображения
vitabutch
05.06.2012 в 08:34
ra3dcs (05 June 2012 — 12:43) писал:
Несколько изменилась конструкция заголовника.
Александр, а что такие острые углы получились? Можно ведь пораниться о них. Сверху еще что-то будет установлено?
Как известно современные материнские платы не имеют порта. Широко известные USB-LPT не подойдут, т.к. они не создают в системе физический LPT порт, а лишь принимают данные от приложения и передают их через драйвер на USB контроллер.
Но поскольку (в моем случае) кабина симулятора управляется через порт, он становится необходим.
Выход — PCI-LPT «переходник». Приобретена вот такая плата. Плата устроена на чипе MOSCHIP MCS9865. С ней находился Mini CD с драйверами. На диске есть все драйверы, на все «интерфейсные» чипы, под все операционки, включая Linux и Vista, производимые фирмой MOSCHIP.
Прикрепленные изображения
Порт 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 только одни нули!
Прикрепленные изображения
И как с этим бороться? Как изменить диапазон вводавывода?
С порта 201H где сидит информация о состоянии четырёх кнопок джойстика считываются единицы.
Прикрепленные изображения
А у вас в семерке стоит и используется драйвер, разрешающий прямой доступ к портам, вроде DLportIO?
В свое время еще на ХР пробовал использовать драйвера прямого доступа к портам типа GIVEIO.SYS и NTLoader.sys но результат нулевой.
На семерке запускаю приложение в режиме совместимости с Win 98 ME.
Я не совсем точно выразился — винда начиная с 2000 (а то и с NT) не даст вам прямого доступа к портам ввода-вывода. Один из вариантов обхода — использование DLportIO и обращение к портам через вызовы его функций. Более подробно не раскажу — сам с этим драйвером не работал, но с ним комплекте идет описание и, вроде бы, примеры. Недавно в одной из рассылок проскакивало сообщение, что в винде можно шеверить ногами LPT и без драйвера, но опять же не через прямое обращение к портам, а через вызов виндовых системных функций. Если интересно — я попробую найти то сообщение.
Все правильно!
Про 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
Привет Костя, сто раз смотрел, нет там LPT, СОМ-1 есть, для него шлейф уже купил.
Про DLPortIO не знаю а GIVEIO.SYS и NTLoader.sys с помощью которых можно разрешить любому приложению напрямую работать с портами ввода-вывода под Windows NT, 2000, XP даже если это приложение написано под Windows 95, 98, Me.
Раньше можно было, в семерке прикрыли. Пора уходить от ассемблерных вставок. Нашел то сообщение в рассылке, обсуждают как раз GiveIO и предлагают использовать устройство \\.\$VDMLPT (дают ссылки на примеры использования). Как говорится — чем могу. Александр, а может быть, если уж вы так привязались к LPT, вам посмотреть на микросхему моста FT245? Если у вас есть исходники вашей писишной части, то вы можете их подточить под эту микросхему, и получите с нее те же линии, что и с вашего LPT, но посредством USB. И это не будет «устройство печати виндовса».
Выяснил, что ошибку при запуске вызывает команда ассемблера запрет прерываний CLI и STI.
В связи с этим вопрос можно ли средствами Дельфи заменить эти ассемблеровские команды?
Установлен концевой выключатель в цепи контроля, закрытое положения замков фонаря кабины.
Самая необходимая вещь для современного симмера.
Прикрепленные изображения
Прикрепленные изображения
Прикрепленные изображения
Спасибо, документации по этому самолету собрано уже предостаточно!
Установлен механизм фиксации плечевых ремней.
Прикрепленные изображения
Прикрепленные изображения
Александр, а что такие острые углы получились? Можно ведь пораниться о них. Сверху еще что-то будет установлено?