Написал программку для управления железкой по ком порту!
Команда посылается в виде HEX кода ( F8 8F 02 00 00 00 00 00 02)
Проблема в следующем: при посыле команды команда отправляет строку, но через Port Monitor получаю нечто вида: F8 8F 02 00 3e 4a итд, либо ошибки.
При посыле данных до 4х значений т.е. F8 8F 02 00 все прекрасно.
Вот код программки,
Код:
unit PortUnit;
interface
uses windows,sysutils;
var
CommHandle : integer;
DCB : TDCB;
Ovr : TOverlapped;
KolByte: DWord;
procedure PortInit;
procedure WriteComm;
procedure KillComm;
implementation
uses
Unit1;
procedure KillComm;
begin
CloseHandle(CommHandle);
end;
procedure WriteComm;
var
s: Integer;
begin
s:= Strtoint('$020000000000028ff8');
KolByte:=9;
WriteFile(CommHandle,s,KolByte,KolByte,@Ovr);
end;
procedure PortInit;
begin
CommHandle := CreateFile('COM1',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,0);
SetCommMask(CommHandle,EV_RXFLAG);
GetCommState(CommHandle,DCB);
DCB.BaudRate:=CBR_9600;
DCB.Parity:=NOPARITY;
DCB.ByteSize:=8;
DCB.StopBits:=OneStopBit;
DCB.EvtChar:=chr(13);
SetCommState(CommHandle,DCB);
end;
end.
Админ: Учимся пользоваться тегами!
Помогите плиз а то уже второй день выспаться не могу перерыл все дебри инета.