Компонента поставляется в 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 порт и управлением сигнальными линиями.
Заключение
Внимание! Компонента выпущена в бета версии, никаких гарантий на ее работу не предусмотрено, хотя в настоящее время и работает в реальных решениях. Выложена для ознакомления и применения с целью сбора отзывов. Компонента не обременена лицензионными соглашениями и предоставляется для свободного использования на свое усмотрение как есть.
Дуже дуже вдячний, якщо все гуд, то це супер, це то, що нам якраз треба з специфічним сканером штрих-кодів. Буду тестувати.
Получаю
КомПорт = Новый(«AddIn.allsp_1C_ComPort.allsp_1C_ComPort»);
с таким подключением
Показать
да и
Толстый клиент. Управляемое приложение.
У кого то подключилась данная компонента?
(2) myr4ik07, Отвечу в ближайшее время
(3) myr4ik07, Подключать необходимо версию х32
(4)
спасибо, работает, бомба
Показать
(6) myr4ik07, Это хорошо. Будут проблемы, пишите
Как проверить используется ли порт чем-то другим
(7) Компонента подключается, но внешнее событие так и не получил.
ComPort_x64.dll не генерирует событие. кто нибудь подключал успешно?
(10) Я после плясок вокруг разных наколенных компонет по работе с ком-портом остановился на старом добром MSCOMMLib, известном еще с 7.7 (майкрософтовский драйвер). Его повыпиливали, но по-прежнему можно найти, скачать и установить. Правда, чтобы он заработал, его еще нужно зарегистрировать, записав в реестр нужные ключи. Все это гуглится.
По внешнему событию через него работать не пробовал, но майкрософтовская дока говорит, что у него есть для этого событие OnComm. А в 8-ке есть оператор ДобавитьОбработчик, с помощью которого можно подписываться на события ком-объектов. Я таким образом успешно подписывался на события сторонних ком-объектов по работе со сканерами (которые не по технологии создания внешних компонент 1С писаны). Думаю, и тут должно получиться.
ЗЫ. И на всякий случай я бы заглянул в свежую библиотеку подключаемого оборудования — вдруг туда уже засунули православный драйвер.
Компонента вроде подключается. Открытие порта происходит без ошибок. Но внешнее событие не генерируется.
Так же если открыть какой нибудь монитор порта по этому номеру, то он свободно открывается и получается данные. Хотя при уже открытом порте должен был бы падать в ошибку.
(13)
Показать
(14) я читать умею, и ваш код прочитал и попробовал использовать сразу же. Но у меня х64 платформа. Со всеми вытекающими. И не только я написал что нет внешнего события.
(15) если ты прочитал что х64 не работает, зачем качать и возмущения высказывать, думаешь что то изменилось …
(15) плюс он же пишет «Внимание! Компонента выпущена в бета версии, никаких гарантий на ее работу не предусмотрено»
спасибо за материал, очень помогли