Witam, raczkuję w Delphi i nie potrafię wysłać komend do drukarki fiskalnej. Otwarłem port COM1 i kiszka. Tyle mam i co dalej, bo nic mi nie wychodzi? Proszę w wskazówki od delphi wyjadaczy.
Dodano po 2 [minuty]:
Chodzi mi o to też, czy poprawnie są zapisane komendy drukarki w buforze?
Proszę umieszczać kod w znacznikach [code] - dodałem.
[Dr.Vee]
procedure TForm1.Button1Click(Sender: TObject);
var
hCOM:THandle;
nrWrit:DWORD;
nrRead:DWORD;
Errors:DWORD;
Dcb:TDCB;
ComStat:TComStat;
buf:array[0..2048] of char;
begin
//Otwarcie łącza COM
hCOM:=CreateFile('COM1',GENERIC_WRITE OR GENERIC_READ,0,nil,OPEN_EXISTING,0,0);
//Ustawienie parametrów transmisji
if hCOM<>INVALID_HANDLE_VALUE then
begin
GetCommState(hCOM,Dcb);
BuildCommDCB('9600,n,8,1',Dcb);
SetCommState(hCOM,Dcb);
end else
begin
ShowMessage('Błąd otwarcia portu COM ');
end;
try
//Przygotowanie bufora
ZeroMemory(@buf,SizeOf(buf));
StrCopy(buf,'ESC P #n ESC \');
//Zapis bufora
if not WriteFile(hCOM,buf,StrLen(buf),nrwrit,nil) then
begin
ShowMessage('Błąd zapisu do portu COM.');
//Sprawdzenie czy jest coś w buforze COM
ClearCommError(hCOM,Errors,@ComStat);
end else
begin
Label2.Caption:='Połączono z COM';
end;
sleep(2000);
//Odczytanie bufora gdy są dane
if ComStat.cbInQue>0 then
ReadFile(hCOM,buf,ComStat.cbInQue,nrRead,nil);
memo1.text:=buf;
finally
sleep(2000);
CloseHandle(hCOM);
label1.caption:='Rozłączono z COM';
end;
end;
Dodano po 2 [minuty]:
Chodzi mi o to też, czy poprawnie są zapisane komendy drukarki w buforze?
Proszę umieszczać kod w znacznikach [code] - dodałem.
[Dr.Vee]