Компонента работы с RFID-считывателем (на примере Impinj R420)

Публикация № 314158 21.11.14

Приемы и методы разработки - Идеи и тренды в разработке

RFID Impinj РФИД ИМПИНЖ радиометки

Простенькая компонента 1С для работы с RFID-считывателем Impinj R420. Тем, кто занимается темой RFID-зации, будет интересно как реальный пример работы. Компонента успешно работает на одном подмосковном складе.

Принцип работы

Компонента генерирует два события при работе:

  1. IN - при попадании метки в поле видимости антенны;
  2. OUT - при выходе метки из поля видимости антенны.

При этом нужно помнить, что OUT сработает в том случае, если метка не будет видна антенне более времени, указанного в методе SetInOutTimeout (см. ниже). Т.е. физически метка может остаться на антенне, но антенна может ее не увидеть и сгенерировать событие OUT.

Таким образом, например, решается классическая задача проверки заказа/накладной, когда необходимо проверить правильность сборки заранее известного списка товаров. Так же на базе этих событий можно сделать инвентаризацию, поиск товара и т.д.

Компонента написана на C#. Использует .NET 3.5.

 

Описание интерфейса компоненты

Регистрация компоненты

Перед началом работы компоненты необходимо зарегистрировать ее с ключом tlb: 

RegAsm.exe "PATH\RFIDConnector.dll" /tlb

Или запустить register.bat (см. вложение), указав в нем путь до файла RegAsm

Инициализация компоненты

Имя класса: AddIn.RFIDConnector

Пример работы:

 

// Инициализация класса...

ИмяКласса = "AddIn.RFIDConnector";
Попытка
 ПодключитьВнешнююКомпоненту(ИмяКласса);
 Объект = Новый COMОбъект (ИмяКласса);
Исключение
 Сообщить("Ошибка загрузки внешней компоненты " + ИмяКласса + ". " + ОписаниеОшибки());
 Закрыть(); 
КонецПопытки;

 

Подключение/отключение устройства

SetInOutTimeout(Timeout) - установка периода видимости метки, после которого генерируется событие OUT (в мс.);

SetInOutPeriod(Period) - установка периода таймера: с какой частотой опрашивать метки на антеннах (в мс.);

Connect(IP) - подключиться к устройству с указанием IP-адреса устройства.

Пример работы:

// Задаем таймаут исчезания меток...
Объект.SetInOutTimeout(500);
// Задаем период проверки меток...
Объект.SetInOutPeriod(150);
// Подключаемся к устройству...
Объект.Connect("192.168.3.89");

 

Disconnect() - отключиться от устройства

Пример работы:

// Отключаем устройство...
Объект.Disconnect();

 

Запуск/остановка таймера опроса антенны

Start() - запуск таймера: начало работы с устройством

Пример работы: 

Попытка
 Объект.Start();
 Сообщить("Сканирование запущено!");
Исключение
 Сообщить("Ошибка запуска сканирования! Текст ошибки: " + ОписаниеОшибки());
КонецПопытки;

 

Stop() - остановка таймера

Пример работы: 

Попытка
 Объект.Stop();
 Сообщить("Сканирование остановлено!");
Исключение
 Сообщить("Ошибка остановки сканирования! Текст ошибки: " + ОписаниеОшибки());
КонецПопытки;

 

Обработка внешнего события

ВнешнееСобытие(Источник, Событие, Данные) - стандартное событие 1С

Источник - всегда "RFIDConnector"

Событие - всегда "InOutEvent"

Данные - данные в формате: "In/Out:Tag:Antenna", например: IN:302DBB7711C0004000000034:1;

 

Пример работы (спсМетки - список значений, спсРазвернуть_ - функция, разбирающая строку на подстроки через разделитель - см. пример RFIDConnectorTest.epf во вложении):

// фрмВнешнееСобытие - внешнее событие... 
Процедура фрмВнешнееСобытие(Источник, Событие, Данные)

 // Для отладки...
 Сообщить("Внешнее событие: " + Источник + ", " + Событие + ", " + Данные);

 // Получаем данные в виде списка...
 спсДанные = спсРазвернуть_(Данные, ";");
 // Идем по элементам списка...
 Для Каждого спсЭлемент Из спсДанные Цикл
  // Получаем параметры из каждой строки...
  спсПараметры = спсРазвернуть_(спсЭлемент.Значение, ":");
  // Если количество параметров 3 - обрабатываем данные...
  Если спсПараметры.Количество() = 3 Тогда
   ТипСобытия = СокрЛП(спсПараметры[0]);
   Метка = СокрЛП(спсПараметры[1]);
   Антенна = СокрЛП(спсПараметры[2]);

   прМетка = Метка + ":" + Антенна;

   // В зависимости от типа события...
   Если ВРег(ТипСобытия) = "IN" Тогда
    спсМетки.Добавить(прМетка);
   ИначеЕсли ВРег(ТипСобытия) = "OUT" Тогда
    спсМетка = спсМетки.НайтиПоЗначению(прМетка);
    Если спсМетка <> Неопределено Тогда
     спсМетки.Удалить(спсМетка);
    КонецЕсли;
   КонецЕсли;
  КонецЕсли;
 КонецЦикла;
КонецПроцедуры

 

Контакты:

Если у Вас возникли вопросы или пожелания по доработке/внедрению данной системы, а также любые другие вопросы, связанные с RFID (метки, считыватели, интеграция, разработка, внедрение, обслуживание, консультации и т.д.), Вы можете обратиться в компанию Кей-Софт (www.keysoft.su), Контактное лицо: Алексей Денисенко (доб. 102), .

Скачать файлы

Наименование Файл Версия Размер
Архив с компонентой и примером работы с ней

.zip 220,08Kb
43
.zip 1.00 220,08Kb 43 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlexSunS 24.12.14 16:52 Сейчас в теме
Автор а можно в личку, очень нужна помощь в проекте.
2. karpov 9 24.12.14 18:23 Сейчас в теме
Без проблем
Можно на почту: karpov@keysoft.su
4. karpov 9 26.05.17 23:19 Сейчас в теме
Данная обработка только для RFID-считывателя Impinj R420.
5. user1639343 02.08.21 13:47 Сейчас в теме
Добрый день, Сергей.

Скажите пожалуйста, Вы работаете с другими RFİD считывателями помимо İmpinj ?

С уважением,
Саида Рзаева
Оставьте свое сообщение

См. также

Блокчейн в базе 1С Промо

Идеи и тренды в разработке v8 1cv8.cf Абонемент ($m)

Вокруг блокчейна в последнее время поднято много шума. Курс биткоина кого-то радует, кого-то злит, но впечатляет всех. За всем этим остается не увиденной и не оцененной по достоинству изящная простота самой технологии. Блокчейн можно без особых затрат добавить к любой базе данных, и база 1С не исключение. В моем рабочем примере менее 200 строк кода в обработке, которая создает цепочку блоков. Еще 30 строчек занимает процедура контроля. Ниже я покажу по шагам - как сделать блокчейн в любой базе 1С, и что это даст в итоге.

1 стартмани

18.12.2017    36387    114    mkalimulin    291    

Создание интерактивных обучающих курсов с помощью Vanessa Interactive

Инструментарий разработчика WEB Идеи и тренды в разработке v8 1cv8.cf Россия Абонемент ($m)

Приветствую Вас, коллеги. Сегодня Вам предлагается рассмотреть технологию создания интерактивных обучающих курсов, системы Onboarding, интерактивной справки для любых конфигураций разработанных на базе платформы 1С при работе в web клиенте. Прошу посмотреть ролик, кому неинтересно, как это работает, можно дальше не читать. Тестировалось на 1С:Предприятие 8.3 (8.3.20.1646).

1 стартмани

02.02.2022    3385    0    Viktor_Ermakov    2    

RFID считыватели Impinj и RRU9516

Идеи и тренды в разработке v8 8.3.14 1cv8.cf Россия Абонемент ($m)

Компонента для работы с RFID метками. Поддерживает считыватели Impinj 120, 220, 420. А также настольный RRU9816.

1 стартмани

24.11.2021    1426    1    pavelmael    1    

Расширение для работы с данными счетчиков посетителей megacount

Идеи и тренды в разработке v8 Розница Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Расширение для работы с данными счетчиков посетителей megacount.

4 стартмани

25.10.2021    1905    5    dvoinik    7    

Беспроводные метки NFC Промо

Идеи и тренды в разработке v8::Mobile Абонемент ($m)

Технический прогресс не стоит на месте, появляющиеся новые технологии со временем дешевеют и становятся доступны практически всем желающим. Как пример можно привести мобильные телефоны. Середина 80-ых - начало 90-ых были переносные таксофоны с ручками или кирпичи стоимостью несколько тысяч $, конец 90-ых - большого размера трубки, с торчащими антеннами со стоимостью от 100$ Такую же аналогию можно провести с NFC метками, используемыми в учетных целях.

1 стартмани

16.05.2017    27508    87    PloAl    22    

Машинное обучение и анализ данных

Математика и алгоритмы Идеи и тренды в разработке v8 Абонемент ($m)

Данная конфигурация предназначена для автоматизации процесса машинного обучения и анализа данных средствами 1С.

1 стартмани

04.05.2021    4395    12    cdrw3    11    

Пример простой нейросети

Идеи и тренды в разработке v8 Россия Абонемент ($m)

Пример реализации простой нейросети для решения частного случая квадратного уравнения. Метод обучения - обратное распространение ошибки. Релиз платформы 8.3.17.79.

1 стартмани

26.10.2020    5710    7    kite2    14    

IoT (Internet of Things) в 1С или как подружить 1С с ESP32 при помощи MQTT-брокера

Идеи и тренды в разработке v8 Абонемент ($m)

Что делать, если надо подключить удалённое устройство к серверу 1С, но ни устройство, ни сервер 1С нельзя "светить" наружу? А если таких устройств десятки или сотни по всей стране? Ответ: Использовать промежуточный сервис, который будет пересылать данные между сервером 1С и устройствами. Такие функции замечательно выполняет MQTT-брокер, но вот не задача, 1С не умеет с ним работать.

1 стартмани

25.06.2020    10172    13    frutty    22    

Расширение "Интеграция с блокчейнами" для работы с Биткоин и Лайткоин (ERP 2.4 и УТ 11.4)

Идеи и тренды в разработке v8 ERP2 УТ11 Беларусь Россия Абонемент ($m)

Расширение "Интеграция с блокчейнами" позволяет получать и отправлять Биткоин и Лайткоин из 1С, привязывать входящие и исходящие платежи в криптовалюте к объектам базы (справочники или документы). Расширение работает с основными типовыми конфигурациями 1С для России и Беларуси (ERP 2.4, УТ 11.4, ERP для Беларуси 2.4, УТ для Беларуси 3.4). В качестве провайдера платежей используется сервис BLOCK.IO.

1 стартмани

23.06.2020    4618    1    NikitaXa    7    

Контроль информации в базе на основе блокчейн

Идеи и тренды в разработке v8 v8::УФ 1cv8.cf Абонемент ($m)

Самое простое и эффективное решение на основе блокчейн для 1С. Выбираем виды документов, которые хотим контролировать. И получаем на регулярной основе список новых, измененных или удаленных документов. Защищенный от всех возможных видов вмешательства, в т.ч. и со стороны программиста или системного администратора. Решение сделано в виде универсальной внешней обработки, которая может работать в любой базе и с любой типовой или нетиповой конфигурацией 1С (на управляемых формах).

1 стартмани

25.01.2020    5278    4    mkalimulin    24    

1C и защищенное хранение данных на блокчейне: модуль интеграции от Acryl Platform

Идеи и тренды в разработке v8 1cv8.cf Абонемент ($m)

Модуль интеграция 1С и блокчейн платформы "Acryl Platform" без использования внешних компонент. Под катом реализация механизмов Base58, Blake2b, Keccak, Curv25519 (the elliptic curve Diffie–Hellman) в подсистеме "Crypt", примеры генерации ключей, адресов, подписи транзакций, запись данных в блокчейн, чтение и восстановление данных из блокчейн. Код открыть. Лицензия MIT.

1 стартмани

21.01.2020    11611    6    ArtemSerov    18    

Курсы валют из блокчейна Waves

Идеи и тренды в разработке v8 1cv8.cf Абонемент ($m)

Универсальная обработка для получения курсов валют из блокчейна.

1 стартмани

12.09.2019    5913    0    pazhukov    0    

SmallSmarty Бухгалтерия - мобильное Android приложение для складских операций, интегрируемое с 1С Бухгалтерия 3+

Учет ОС и НМА Склад и ТМЦ Идеи и тренды в разработке v8::БУ БП3.0 Россия БУ Абонемент ($m)

SmallSmarty Бухгалтерия - мобильное решение для автоматизации учета на складах с использованием 1С Бухгалтерия и применением технологии штрих-кодирования и RFID. Мобильное приложение для инвентаризации в 1С Бухгалтерия может работать как онлайн, так и полностью автономно. Загрузка/выгрузка данных при автономной работе осуществляется через файл с помощью обработок. Онлайн обмен данными осуществляется через автоматически генерируемый REST интерфейс ODATA. При этом внесение каких-либо изменений в конфигурацию 1С не потребуется. SmallSmarty Бухгалтерия поддерживает сканирование штрихкодов с помощью терминалов сбора данных(ТСД) Caribe, Bluetooth сканера GS M100BT, любого ручного сканера подключаемого через OTG и камеры смартфона.

1 стартмани

24.10.2018    10712    12    ni032mas    5    

1C + Arduino + сканер отпечатков пальцев + RFID считыватель

Учет рабочего времени Идеи и тренды в разработке v8 1cv8.cf Абонемент ($m)

Связываем 1C, Arduino, сканер отпечатков пальцев и RFID считыватель для системы учёта рабочего времени или пропускной системы.

1 стартмани

21.08.2018    33201    16    DGorgoN    39    

Распознавание лиц. Демонстрация работы механизма в 1С

Идеи и тренды в разработке v8 Абонемент ($m)

Данное решение предоставляет удобный, простой и понятный способ проверить механизм распознавания лиц на реальных данных.

1 стартмани

26.04.2018    9396    9    grandexpert    21    

[mobile] Взаимодействие с NFC через мобильную платформу 1С

Идеи и тренды в разработке v8::Mobile 1cv8.cf Абонемент ($m)

Цель была научиться взаимодействовать с внешними приложениями из приложения на мобильной платформе 1С. Для данной цели выбрал тему чтение/запись NFC меток. Было разработано: 1) приложение в android studio, которое взаимодействует с NFC 2) приложение на мобильное платформе 1с, которое взаимодействует с разработанным приложением в android studio.

1 стартмани

15.04.2018    22266    39    leobrn    19    

Нейросети для вашей базы! Подсистема "Нейросети"

Идеи и тренды в разработке v8 Абонемент ($m)

Простая и понятная подсистема создания и работы с нейросетями для выполнения обобщений по массивам переменных.

3 стартмани

29.10.2017    13080    32    avalakh    19    

Умный дом на 1С + ардуино

Идеи и тренды в разработке v8 Абонемент ($m)

Конфигурация для автоматизации быта программиста 1C и не только. В данной статье будет рассказано, как можно использовать 1С для задач, не входящих в стандартные рамки этой платформы. Например, управление домом. В качестве периферии для подключения будет использован микроконтроллер (МК) Ардуино, но на нём не будет никакой логической нагрузки, весь процесс будет проходить на сервере 1С. Работа с пинами ввода/вывода происходит напрямую из 1С.

1 стартмани

07.08.2017    30817    21    sasha777666    64    

Нейросеть для прогнозирования: универсальная обработка и методика для любой конфигурации. Примеры прогнозирования бизнес процессов

Идеи и тренды в разработке v8 v8::УФ 1cv8.cf УУ Абонемент ($m)

Эта статья – не очередное «введение в нейросети для чайников», подобных которым множество на гитхабе, хабре и других ресурсах. Цель этой работы - попробовать предложить реальные примеры применения нейросетей в ERP-решениях 1С и их программную реализацию в виде обработки 1С. Рассмотрим далее преимущества и предпосылки к использованию. Ведь нейросети дают фантастические возможности для решения задач, недоступные другими методами. Забегая вперед, скажу, что это еще не сложившийся рынок и методики, а просто попытки нащупать нишу для применения технологии.

1 стартмани

14.07.2017    51753    358    informa1555    104    

Управление виртуальным роботом

Идеи и тренды в разработке v8 1cv8.cf Абонемент ($m)

Управление виртуальным роботом, понимающего команды на естественном языке Данная страница посвящена разработке виртуального робота, управление которым можно осуществлять командами на естественном языке. Весь программный код данного примера написан на языке программирования КОНЦЕПТ и выполняется в интерпретаторе КОНЦЕПТ.

1 стартмани

16.07.2014    11541    3    zekrus    7    

Модульные приложения на 1С

Идеи и тренды в разработке Анализ и проектирование ИТ-систем v8 1cv8.cf Абонемент ($m)

Одной из задач Проекта Доминикана было построение приложения, состоящего из множества модулей. Модули нужны в проекте для облегчения поддержки сложного решения и для привлечения сторонних разработчиков с целью продажи их модулей. Данная статья - это попытка выработать подход к построению модульного приложения на платформе 1С.

1 стартмани

25.06.2013    29022    25    Elisy    96