Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Симулятор 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 вся ветка

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
14-61831
AlexiY
2002-11-30 08:27
2002.12.19
Как можно...


3-61506
skirdov
2002-12-02 16:18
2002.12.19
Копирование данных из Query в Table


3-61430
vaneks
2002-11-26 13:17
2002.12.19
Уникальный индефикатор?


3-61439
bedniy_student
2002-11-29 09:46
2002.12.19
SQL


14-61800
Mic_2000
2002-11-28 18:31
2002.12.19
Где можно взять полную весию EhLib?