Вниз
Скачать: CL | DM;

Вопрос по WinIO.   Найти похожие ветки 

← →
John_Korsh ©   (2008-04-14 16:09) [0]

Не даст ли кто конкретный пример работы с портами Lpt через WinIO, а то, там Help для Си, а InitializeWinIO у меня всё время False  возвращает.


← →
tesseract ©   (2008-04-14 16:13) [1]


> InitializeWinIO у меня всё время False  возвращает.


А заголовки точно нормально прописал ? Везде StdCall ?

Может и реально что-то не так у тебя - ты драйвер его правильно поставил ?


← →
MBo ©   (2008-04-14 16:16) [2]


unit WinIO;
interface
uses
 Windows;

function IOStart: BOOL; stdcall;
procedure IOStop; stdcall;

function IOReadByte(Port: Word): Byte;
function IOReadWord(Port: Word): Word;
function IOReadDWord(Port: Word): DWord;

procedure IOWriteByte(Port: Word; Value: Byte);
procedure IOWriteWord(Port: Word; Value: Word);
procedure IOWriteDWord(Port: Word; Value: DWord);

function InstallWinIoDriver(pPath: PChar; DL: Boolean = False): BOOL; stdcall;
function RemoveWinIoDriver: BOOL; stdcall;

implementation

function IOStart; external "WINIO.DLL" name "InitializeWinIo";
procedure IOStop; external "WINIO.DLL" name "ShutdownWinIo";

function GetPortVal(wPortAddr: Word; var pdwPortVal: DWord; bSize: BYTE):
 BOOL; stdcall; external "WINIO.DLL";

function SetPortVal(wPortAddr: Word; dwPortVal: DWord; bSize: BYTE):
 BOOL; stdcall; external "WINIO.DLL";

function InstallWinIoDriver; external "WINIO.DLL";
function RemoveWinIoDriver; external "WINIO.DLL";

function IOReadByte(Port: Word): Byte;
var
 d: DWord;
begin
 GetPortVal(Port, d, 1);
 Result := d;
end;

function IOReadWord(Port: Word): Word;
var
 d: DWord;
begin
 GetPortVal(Port, d, 2);
 Result := d;
end;

function IOReadDWord(Port: Word): DWord;
var
 d: DWord;
begin
 GetPortVal(Port, d, 4);
 Result := d;
end;

procedure IOWriteByte(Port: Word; Value: Byte);
begin
 SetPortVal(Port, Value, 1);
end;

procedure IOWriteWord(Port: Word; Value: Word);
begin
 SetPortVal(Port, Value, 2);
end;

procedure IOWriteDWord(Port: Word; Value: DWord);
begin
 SetPortVal(Port, Value, 4);
end;

end.



← →
John_Korsh ©   (2008-04-14 17:10) [3]

Спасибо, но чего-то не работает.

В Create вызаваю IOStart.
По кнопке - IOWriteByte ($378, $55) - нет изменений в состоянии порта, хотя
LPT1 сидит на $378 IO.

Чего не так сделал?


← →
MBo ©   (2008-04-15 09:53) [4]

>Чего не так сделал?
Не знаю, проверить не реальном девайсе нет возможности.
Однако у меня под XP инициализация проходит нормально, и после записи байта в 378 порт оттуда читается этот же байт. Не знаю, является ли это доказательством функционирования.


← →
John_Korsh ©   (2008-04-15 11:27) [5]

У меня приспособа со светодиодиками. Не горят. При использовании консольного варианта IOEngine - зажигаются.


← →
John_Korsh ©   (2008-04-15 15:27) [6]

Работает с модулем IOEngine. (Если кому надо). WinIO так и не задышал.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
2-1208032052
voe
2008-04-13 00:27
2008.05.11
Непонятное поведение Application.ProcessMessages


2-1208252372
arinyshka
2008-04-15 13:39
2008.05.11
Drag&Drop


2-1208157323
arinyshka
2008-04-14 11:15
2008.05.11
Определить источник события


2-1207662818
switch
2008-04-08 17:53
2008.05.11
Как изменить цвет QRShape


2-1208175871
assassin8899
2008-04-14 16:24
2008.05.11
AQL запрос




   Наверх