Главная страница
    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.007 c
4-61877
TankMan
2002-11-06 21:20
2002.12.19
Опять проблемы с


3-61431
alxx
2002-11-29 17:19
2002.12.19
Относительно триггеров.


6-61733
pavor
2002-10-21 07:39
2002.12.19
Проблемы с написанием Web сервера...


3-61397
Stenkz
2002-12-03 05:27
2002.12.19
SQL - Возможен ли запрос с вложенным суммированием???


3-61402
BorisUK
2002-12-02 09:50
2002.12.19
Прервать запрос посланный к Oracle





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский