У многих пользователей, которые программируют на Delphi, порой возникает потребность в считывании данных с COM-порта. Так вот, я хочу Вам сказать, что сделать это довольно просто и сможет сделать даже начинающий программист.
Вы можете работать через функции языка программирования, но я бы Вам посоветовал использовать простой и понятный компонент, который называется ComDrv32. Устанавливается он легко, как и большинство компонентов, в папке с ним, должен находиться демонстрационный, в котором подробно расписано, как можно работать с ним.
Но и без демонстрационного проекта, с легкостью можно самому разобраться с этим простым компонентом. После установки его, сам компонент появится не на новой вкладке, а уже существующей System, так что будьте внимательны, многие пользователи начинают его искать по всем вкладкам:
В данной статье я хотел бы Вам рассказать, как можно подключиться к COM-порты из своего проекта Delphi и считать оттуда информацию. В частности, мне необходимо было считывать информацию с пин-пад клавиатуры, которая подключалась через USB, а вся информация направлялась на виртуальный COM-порт. Для начала нам необходимо подключиться к порту и проинициализировать его:
CommPortDriver1.PortName:='\\.\'+'COM5';
CommPortDriver1.BaudRateValue:=9600;
CommPortDriver1.InBufSize:=4096;
CommPortDriver1.InputTimeout:=100;
CommPortDriver1.OutBufSize:=4096;
CommPortDriver1.OutputTimeout:=100;
CommPortDriver1.PollingDelay:=100;
CommPortDriver1.DataBits:=db8BITS;
CommPortDriver1.StopBits:=sb1BITS;
CommPortDriver1.Connect;
Это настройки, при которых Вы будете считывать данные. Они должны быть такими, которые выставлены в свойствах самого COM-порта. Далее, нам необходимо считать данные из COM-порта, а это делается при помощи события компонент – OnReceiveData:
procedure TForm3.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var i : Integer;
s : string;
begin
i:= 0;
For i:=0 to (DataSize) - 1 do begin
s:=s+(PChar(DataPtr)[i])end;
Label1.Caption:=Label1.Caption+s;
end;
То есть, при помощи этого кода, мы добавляем в Label все символы, которые поступают с пин-пад клавиатуры. Информацию можно считывать и в HEX-формате, а также отправлять ее на сам COM-порт.
На самом деле, ничего нет сложного в работе с этим компонентом, при помощи него, действительно облегчается работа с COM-портами из своего приложения, написанного на Delphi. Удачи Вам дорогие друзья и до новых встреч.
Также советуем почитать на PressDev.RU
Короткая ссылка: http://pressdev.ru/?p=5663