Компонента поставляется в x32 и x64 вариантах.
Порядок подключения:
Из макета
ПодключитьВнешнююКомпоненту("Обработка.КомПорт.Макет.Библиотека","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
Из файла:
ПодключитьВнешнююКомпоненту("Путь к dll файлу","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
Свойства:
КомПорт.ИмяПорта(PortName) = "COM1"; // Имя ком порта
КомПорт.РазмерБлокаДанных(BlockSize) = 1; // Размер данных, который накопит компонента прежде чем
// вызовет внешнее событие (произвольное целое число)
КомПорт.Скорость(BaudRate) = 9600; // Скорость работы Com порта (110, 300, 600, 1200, 2400,
// 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200,
// 128000, 256000)
КомПорт.СтопБит(StopBits) = 0; // 1 стоп бит = 0, 1.5 стоп бита = 1, 2 стоп бита = 2
КомПорт.БитДанных(DataBits) = 8; // Количество бит данных (целое число)
КомПорт.Четность(Parity) = 0; // Четность (NOPARITY=0, ODDPARITY=1,EVENPARITY=2,
// MARKPARITY=3,SPACEPARITY=4)
Методы:
КомПорт.ОткрытьПорт(); // Открывает порт
КомПорт.ЗакрытьПорт(); // Закрывает порт
Все свойства устанавливаются до открытия порта. Для изменения свойств необходимо закрыть и заново открыть порт.
Внешнее событие:
Процедура ВнешнееСобытие(Источник, Событие, Данные) // Истичник = COM_PORT, Событие = DATA_BLOCK
ПрочитанныеДанные = Данные;
КонецПроцедуры
Дополнительныая информация
Ссылка на объект компоненты должна быть доступна на протяжении всей работы с Com портом, во избежании выгрузки компоненты платформой.
Например так:
Перем КомПорт
Процедура ПриОткрытии()
ПодключитьВнешнююКомпоненту("Обработка.КомПорт.Макет.Библиотека","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
КонецПроцедуры
Процедура ДействиеНачатьПрослушивание()
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
КомПорт = ОткрытьПорт();
КонецПроцедуры
Процедура ДействиеЗакончитьПрослушивание()
КомПорт = ЗакрытьПорт();
КомПорт = Неопределено;
КонецПроцедуры
Процедура ПриЗакрытии()
Если КомПорт <> Неопределено Тогда
КомПорт = ЗакрытьПорт();
КомПорт = Неопределено;
КонецЕсли;
КонецПроцедуры
КомПорт = Неопределено;
Планируется выход платной версии, с возможностью записи в COM порт и управлением сигнальными линиями.
Заключение
Внимание! Компонента выпущена в бета версии, никаких гарантий на ее работу не предусмотрено, хотя в настоящее время и работает в реальных решениях. Выложена для ознакомления и применения с целью сбора отзывов. Компонента не обременена лицензионными соглашениями и предоставляется для свободного использования на свое усмотрение как есть.