Интернет, компьютеры, софт и прочий Hi-Tech | |||||
Избранные докиМетки (все метки)hi tech, internet, it, интернет, информационные технологии, ит, по, программное обеспечение, сайт, софт
Подписаться через RSS2Email.ru
Дополнительнооптимизация, сайт, мониторы, движок, Битрикс, хостинг, сайты, мобильные, электроника, видеокарта |
Работа с com-портом в Делфи при помощи драйвера AsyncFree104
В этой статье рассматривается пример работы с компонентами Delphi для работы с Com-портом из библиотеки AsyncFree104, которые можно скачать по адресу http://sourceforge.net/projects/asyncfree/.../download?use_mirror=ovh. Для установки необходимо извлечь файлы из
архива и необходимые версии скопировать в папку с установленной Delphi в
директорию LIB (у меня это После установки в палитре компонентов в конце должна появиться вкладка под соответствующим названием со следующими компонентами: AfDataEdit, AfComPort, AfDataDispatcher, AfDataTerminal, AfPortComboBox, AfPortRadioGroup, AfLineViewer, AfFileViewer, AfTerminal. Непосредственно для работы с портом нам будут нужны только AfComPort, AfDataDispatcher, AfDataTerminal, AfPortComboBox, AfPortRadioGroup. AfComPort — это драйвер порта с возможностью гибкой настройки параметров порта, таких как скорость потока, битов данных, чётности, управления потоком и размеров входного и выходного буферов. Установив на форму этот компонент, в программном коде можно использовать ряд полезных функций для работы с портом. AfComPort1.SettingsStr — для вывода строки с текущими параметрами настроек порта. Например: Form1.Memo1.lines.Add(AfComPort1.SettingsStr) В результате в мемо появиться строка: AfComPort1.ReadString — считывает строку из буфера порта. Очень удобно для работы со многими измерительными устройствами. Функции AfComPort1.Open и AfComPort1.Close открывают и закрывают текущий порт. AfComPort1.WriteString('Hello world') — посылает в порт строку "Hello world". Если нужно также передавать символы окончания строки, таких как возврат каретки или переход на строку, что может быть актуально для отсылки строчных команд какому нибудь прибору, то следует добавлять соответствующие символы по кодировке ASCII: AfComPort1.WriteString('Hello World'+#13+#10)
Еще для компонента прописан метод AfComPort1DataRecived, который реализует непрерывное считывание данных с порта посредством создание потока, что не тормозит работу программы, если нужно. Специфика его работы состоит в том, что можно указать количество принимаемых символов. AfDataDispatcher — это, собственно говоря, диспетчер порта для более удобного использования. У него также есть функции чтения и записи, но в качестве провайдера надо указать AfComPort, предварительно установив его на форму. AfDataTerminal — это терминал для отображения полученных и отправленных через него данных. Он работает, когда на форме есть AfDataDispatcher и в свойствах он указан. AfPortComboBox — это удобный компонент, выполненный соответственно в виде ComboBox. Его преимущество в том, что он автоматически при запуске программы перечисляет все порты как физические, так и виртуальные порты в системе. Для работы с компонентом в свойствах следует отметить положенный в на форму AfComPort. AfPortRadioGroup — это компонент в виде радио группы и работает по такому же принципу. Количество портов можно указать произвольное в зависимости от потребностей. В качестве работающего примера можно привести простой терминал с формой, на которой будут установлены следующие компоненты: AfComPort, AfDataDispatcher, AfDataTerminal, AfPortComboBox и одна кнопка с Edit для отправки строк. unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AfViewers, AfDataTerminal, AfPortControls,
AfDataDispatcher, AfComPort;
type
TForm1 = class(TForm)
AfComPort1: TAfComPort;
AfDataDispatcher1: TAfDataDispatcher;
AfPortComboBox1: TAfPortComboBox;
AfDataTerminal1: TAfDataTerminal;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
AfComPort1.WriteString(Edit1.Text+#13+#10);
end;
end.
Автор: Baby2011, специально для xBB.uz, 01.10.2011 Предыдущие публикации: Последнее редактирование: 2011-10-01 09:34:31 Метки материала: com, делфи, работа с com, работа с com-портом, работа с com-портом в делфи, драйверы, драйвер, программные решения, com-порт, по, разработка по, программирование, программное обеспечение, software, программное обеспечение по, документация для программиста 1 комментарий
У меня при обновлении показало ошибку [Фатальная Ошибка] Could not create output file 'd:\program files\borland\delphi7\Projects\Bpl\AsyncFreeD7.bpl'
|
||||
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.