Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];

Вниз

Симулятор LPT1   Найти похожие ветки 

 
AndreyH   (2002-11-05 14:16) [0]

Народ!

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

Заранее благодарен за ответ


 
Андрей Прокофьев   (2002-11-05 14:23) [1]

напишите базовый класс TAbstractLPT
опишите в нем методы PutByte, GetByte, и т.д.
От него наследуйте два класса - один работающий с реальным LPT,
а другой - эмулирующий работу устройства, и переопределите методы в них.





 
AndreyH   (2002-11-05 18:23) [2]

Идея понятна. Спасибо!
Не понятна реализация. Если не сложно, кинте примерчик, что должно быть написано в переопределенных PutByte, GetByte в случае программы управления, и в случае эмулятора. Предположим программа управления отправляет команду 0, эмулятор должен ответить 1.

Заранее благодарен за ответ


 
Gandalf   (2002-11-05 19:04) [3]

Скажем так:

TAbstractLPT=class
port:Byte;
procedure PutByte(b:Byte); dynamic; abstract;
function GetByte:Byte; dynamic; abstract;
end;

TRealLPT=class(TAbstractLPT)
procedure PutByte(b:Byte); override;
function GetByte:Byte; override;
end;

TEmulatorLPT=class(TAbstractLPT)
procedure PutByte(b:Byte); override;
function GetByte:Byte; override;
end;

procedure TRealLPT.PutByte(b:Byte);
begin
// your real lpt code
end;

function TRealLPT.GetByte:Byte;
begin
// your real lpt code
end;

procedure TEmulatorLPT.PutByte(b:Byte);
begin

end;

function TEmulatorLPT.GetByte:Byte;
begin
Result:=0;
end;



 
Ihor Osov'yak   (2002-11-05 19:23) [4]

Драйвер виртуального lpt поможет. Поищите в инет, очень высока вероятность, что кто-то выложил free


 
Андрей Прокофьев   (2002-11-06 12:26) [5]

Ihor Osov"yak © (05.11.02 19:23)
>> Драйвер виртуального lpt поможет
Команды прибора известны - там все очень просто: посылаем в порт один байт (команда), получаем из порта один байт (результат выполнения отправленной команды).

Не думаю, что поможет.


 
Ihor Osov'yak   (2002-11-07 00:08) [6]

2 Андрей Прокофьев © (06.11.02 12:26)
> Не думаю, что поможет.


Почему? Я собственно такой драйверок человеку (но для COM) для похожих целей делал. Человек остался доволен. Конечно, был еще интерфейс для получения/посылания даных с "обратной стороны порта".




 
kuzkin_a   (2002-11-07 15:30) [7]

Я собственно такой драйверок человеку (но для COM) для похожих целей делал
Очень нужен именно COM-эмулятор - как с Вами связаться?
Мой адрес: kuzkin_a@rambler.ru

Заранее спасибо.


 
Ihor Osov'yak   (2002-11-07 20:06) [8]

Мыло ушло на мыло.



 
Pat   (2002-11-07 22:10) [9]

>Ihor Osov"yak © (07.11.02 20:06)
Если Вас не затруднит, можно и мне? :-))
pat_mail@mail.ru
P.S. Думаю, найдется много желающих...может быть стоит выложить в кладовку? :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
3-61440
Cruse
2002-11-29 20:38
2002.12.19
Не работает фильтрация по диапазону дат!


3-61434
SuMaga
2002-11-28 19:38
2002.12.19
Firebird ?


7-61837
nickolayLI
2002-10-16 14:00
2002.12.19
блокировка/и разблокировка мыши


3-61444
Шурик Ш
2002-11-29 14:08
2002.12.19
Роли на SQL-сервере и аутентификация через БДЕ


1-61562
Виталик
2002-12-09 18:49
2002.12.19
MessageBox по центру моего окна (или в произвольном месте экрана)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский