Potrzebuję normalnego RS
A propos czy jest jakiś prosty sposób by program rozpoznawał system pod którym pracuje i uruchamiał prawidłową obsługę portów ?
Sprawdzenie czy to WinNT:
if Win32Platform = VER_PLATFORM_WIN32_NT then.....
Obsługa normalnego RS (ze strony www.delphi.cartall.com.pl/index.html)
procedure TForm.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('COM3',GENERIC_WRITE OR GENERIC_READ,0,nil,OPEN_EXISTING,0,0);
//Ustawienie parametrów transmisji - jak MODE w DOS'ie
if hCOMINVALID_HANDLE_VALUE then
begin
GetCommState(hCOM,Dcb);
BuildCommDCB('19200,n,8,2',Dcb);
SetCommState(hCOM,Dcb);
end
else
begin
ShowMessage('Błąd otwarcia portu COM : '+IntToStr(GetLastError()));
Exit;
end;
try
//Przygotowanie bufora
ZeroMemory(@buf,SizeOf(buf));
StrCopy(buf,'AT&V'+#13+#10);
//Zapis bufora
if not WriteFile(hCOM,buf,StrLen(buf),nrwrit,nil) then
ShowMessage('Błąd zapisu do portu COM.');
//Sprawdzenie czy jest coś w buforze COM
ClearCommError(hCOM,Errors,@ComStat);
//Odczytanie bufora gdy są dane
if ComStat.cbInQue>0 then
ReadFile(hCOM,buf,ComStat.cbInQue,nrRead,nil);
finally
CloseHandle(hCOM);
end;
end;
powinno iść niezależnie od sytemu.