Перейти к содержанию

Шаблоны программ для ODNFC

Выберите стартовый шаблон для ODNFC на Lua: UDP, OSC, HTTP, автономный замок, MQTT, опрос по HTTP или TCP. Для каждого варианта есть описание и исходный код.

При заказе ODNFC можно выбрать один из семи Lua-шаблонов в списке «Шаблон программы при поставке». Выбранный файл будет установлен на устройство перед отправкой.

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

Каждый шаблон решает отдельную задачу и требует настройки под конкретный проект. Это не готовая СКУД «под ключ». Перед использованием задайте параметры в настройках устройства или в коде. Аутентификацию, шифрование, хранение базы и журнал событий добавляйте в соответствии с требованиями проекта.

Выберите сценарий

Шаблон 1 из 7

Стартовый шаблон для доработки

Передача UID по UDP

Основной шаблон: отправляет UID одной UDP-датаграммой на адрес из настройки net_dest.

Совместимость
ODNFC-LAN и ODNFC-LAN-C с Lua; требуется IP-сеть.
Что настроить
В Web-настройке net_dest укажите IP-адрес и порт приёмника, например 192.168.1.10:5555. UDP не подтверждает доставку.

Исходный код выбранного шаблона

Передача UID по UDP

Скачать .lua
local get, sleepms = Settings.get, thread.sleepms

-- Сеть запускается системным кодом по Web-настройкам.
local host, _, _, port = net.parseUrl(get("net_dest"))
local wdt_on = get("sys_wdt") == "on"

local leds = indication.Leds.new()
local snd = indication.Sound.new()

leds:start()
snd:start()

local function on_uid(uid)
    net.udp.sendto(host, port, uid)
    print("UDP sent:", uid)
    leds:ok()
    snd:ok()
end

local function iteration()
    local ok, err = mfrc522.scan(0, on_uid)
    if ok == false then error(err, 0) end
end

while true do
    if wdt_on then cpu.watchdog.reset() end

    local ok, err = pcall(iteration)
    if not ok then
        local message = tostring(err)
        if message:find("interrupted!", 1, true) then
            error(err, 0)
        end
        eprint("Main loop: " .. message)
        leds:err()
        snd:err()
        sleepms(250)
    else
        sleepms(50)
    end
end

Если устанавливаете шаблон самостоятельно

  1. Скачайте файл и используйте его как заготовку проекта.
  2. Замените демонстрационные UID, сетевые адреса, порты и другие параметры.
  3. Загрузите код через веб-интерфейс, онлайн-среду или плагин VS Code и проверьте журнал после перезагрузки.
  4. После отладки включите сторожевой таймер: он перезагрузит устройство, если программа аварийно завершится.
  5. Если нужна помощь с настройкой, обратитесь в техподдержку.

Требования к программе и доступные API приведены в руководстве по программированию ODNFC на Lua.

Нужен другой алгоритм

Если новый алгоритм можно реализовать через доступный Lua API ODNFC, мы бесплатно поможем адаптировать прикладную программу. Опишите входные данные, нужную реакцию считывателя и формат обмена в обращении в техподдержку.

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