Текущий архив: 2003.03.17;
Скачать: CL | DM;
Вниз
Порты всякие Найти похожие ветки
← →
Hirara (2003-02-27 00:42) [0]Как вообще можно работать с портами, ну там КОМ, ЛПТ
← →
Hirara (2003-02-27 22:04) [1]up
← →
horse (2003-02-27 23:02) [2]Получаешь хендл порта, берешь виндовую структуру (dcb) и записываешь свои параметры (скорость передачи, четность и т.п.). Потом работаешь как с файлом, но хендл порта.
procedure TForm1.Button1Click(Sender: TObject);
var
dwRead : DWORD;
CharArray : array[0..100] of char; // временный массив данных в оперативной памяти
fileOut : file of char; // файл в который будут писаться данные из порта
i : integer;
begin
try hCom := CreateFile(PChar(ComboBox1.Text),
GENERIC_READ + GENERIC_WRITE,
0, nil,
OPEN_EXISTING,0,0); //получение указателя на порт
except ShowMessage("Open error... "+IntToStr(GetLastError));
end;
SetPortParam;
for i:=0 to 100 do // цикл чтения из порта i байт
begin
Application.ProcessMessages; // чтобы не зависнуть если данные в СОМ не поступают
ReadFile(hCom, CharArray[i], 1, dwRead, nil); // чтение одного байта из порта
end;
AssignFile(FileOut,"c:\out.txt");
Rewrite(FileOut);
for i:=0 to 100 do // цикл записи полученной информации в файл на диске
begin
Application.ProcessMessages;
Write(FileOut,CharArray[i]);
Memo1.Text:=Memo1.Text+CharArray[i];
end;
CloseFile(FileOut);
CloseHandle(hCom);
end;
Procedure TForm1.SetPortParam;
Var dcb : TDcb; // структура ( виндусовская ) с установками портов
begin
try
GetCommState(hCom, dcb); // Получение данных о текущих установках порта и заполнение
// структуры dcb
dcb.BaudRate := StrToInt(ComboBox2.Text); // Установка новых параметров
dcb.ByteSize := StrToInt(ComboBox3.Text); // для порта, скорость , Х-битный обмен,
dcb.Parity := ComboBox4.ItemIndex; // контроль четности,
dcb.StopBits := ComboBox5.ItemIndex; // стоповый бит
SetCommState(hCom, dcb); // Запись новых параметров в порт
except
ShowMessage("Error of initiate Port..." + IntToStr(GetLastError));
end;
end;
← →
Hirara (2003-02-27 23:30) [3]спасиба, попытаюсь разобоаца в этой писанине
Страницы: 1 вся ветка
Текущий архив: 2003.03.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c