SAUK · Python-библиотека

Python-библиотека для работы с API считывателей SAUK

Библиотека SAUK_API для управления RFID-считывателем SAUK через его WEB-API по Ethernet или Wi-Fi. Даёт удобные методы для всех функций прибора: конфигурация RFID, инвентаризация меток, сеть, периферия, параметры идентификации, таблица доступа, дата и время.

Python pip install requests Ethernet / Wi-Fi обёртка HTTP Web-API
Содержание
Ничего не найдено. Попробуйте другую формулировку — например, «inventory», «set_frequency», «реле» или «таблица доступа».

1Обзор, установка и инициализация

Библиотека — тонкая обёртка над HTTP Web-API прибора: каждый метод соответствует запросу API (см. документ «API для HTTP через Wi-Fi и Ethernet»). Все методы возвращают результат в формате JSON (Python-объект) или None в случае ошибки.

1.1Установка

Библиотеке нужна зависимость requests:

pip install requests

1.2Инициализация

Создайте объект, указав адрес прибора в сети (base_url):

Python
from sauk_api import SAUK_API

sauk = SAUK_API(base_url="http://192.168.10.1")

Далее методы объекта sauk вызывают соответствующие функции прибора. Изменяющие настройки запросы могут требовать учётных данных (указаны в паспорте прибора).

1.3Основные возможности

  • Управление RFID-конфигурацией
  • Инвентаризация меток
  • Системные команды
  • Настройка сети (Wi-Fi / Ethernet)
  • Конфигурация периферии
  • Параметры идентификации меток
  • Работа с таблицей доступа
  • Управление датой и временем

2Конфигурация RFID

МетодНазначение
get_rfid_config()Получить текущую конфигурацию RFID
enable_infinite_inventory(bool)Включить/выключить непрерывное сканирование
set_antenna_power(ant, power)Мощность указанной антенны
set_frequency_settings(start, space, quantity)Частотный план (первый канал, шаг, число каналов)
set_min_hold_ms(ms)Минимальное время активации от HOLD-триггера
Python
# Получить текущую конфигурацию RFID
config = sauk.get_rfid_config()
print("Current RFID Config:", config)

# Включить непрерывное сканирование
sauk.enable_infinite_inventory(True)

# Мощность для антенны 1
sauk.set_antenna_power(1, 23)

# Частотный план
sauk.set_frequency_settings(start=866300, space=60, quantity=3)

# Время удержания триггера
sauk.set_min_hold_ms(5000)

Рабочие частоты (Россия)

Для России разрешён фиксированный набор каналов 866,3 / 866,9 / 867,5 МГц. Прибор автоматически приводит set_frequency_settings(...) к этой сетке: недопустимое значение start округляется до ближайшего разрешённого канала, а число каналов ограничивается краем диапазона.

3Инвентаризация меток

МетодНазначение
inventory_once()Однократное сканирование, возвращает список меток
get_tag_list()Список меток из таблицы идентификации
clear_tag_list()Очистить таблицу идентификации
Python
# Однократное сканирование
tags = sauk.inventory_once()
print("Scanned Tags:", tags)

# Список меток из таблицы идентификации
tag_list = sauk.get_tag_list()
print("Tag List:", tag_list)

# Очистить таблицу идентификации
sauk.clear_tag_list()

4Системные команды

МетодНазначение
reboot_device()Перезагрузить прибор
get_version()Версия прошивки и информация о приборе
beep_device()Звуковой сигнал (идентификация прибора)
get_message_log()Системный журнал событий
logout()Завершить сеанс аутентификации
Python
# Перезагрузить прибор
sauk.reboot_device()

# Версия прошивки
version = sauk.get_version()
print("Firmware Version:", version)

# Звуковой сигнал
sauk.beep_device()

# Системный журнал
log = sauk.get_message_log()
print("System Log:", log)

# Завершить сеанс
sauk.logout()

5Сеть (Wi-Fi / Ethernet)

МетодНазначение
scan_wifi_networks()Поиск доступных Wi-Fi сетей
connect_wifi(ssid, password)Подключиться к Wi-Fi сети
get_network_info()Текущая конфигурация сети
enable_wifi_access_point(bool)Управление точкой доступа
Python
# Поиск доступных Wi-Fi сетей
networks = sauk.scan_wifi_networks()
print("Available Networks:", networks)

# Подключиться к Wi-Fi сети
sauk.connect_wifi("my_ssid", "my_password")

# Информация о сети
net_info = sauk.get_network_info()
print("Network Info:", net_info)

# Активировать точку доступа
sauk.enable_wifi_access_point(True)

6Конфигурация периферии

МетодНазначение
get_periphery_config()Текущая конфигурация периферии
set_relay_config(n, enable, timer)Настройка реле (номер, включение, время удержания)
set_wiegand_config(n, enable, type_, shift_bytes, source)Настройка интерфейса Wiegand
set_temperature_calibration(delta)Калибровка температурного датчика
Python
# Текущая конфигурация периферии
periphery_config = sauk.get_periphery_config()
print("Periphery Config:", periphery_config)

# Настроить реле
sauk.set_relay_config(1, enable=True, timer=5000)

# Настроить интерфейс Wiegand
sauk.set_wiegand_config(1, enable=True, type_=26, shift_bytes=1, source=1)

# Калибровка температурного датчика
sauk.set_temperature_calibration(-2)

7Параметры идентификации меток

МетодНазначение
get_tag_identity_config()Текущие параметры идентификации
set_valid_time(ms)Время «сна» метки перед повторным чтением
set_hold_time(ms)Время удержания метки в таблице
set_rssi_filter(value, enable)Фильтр по уровню сигнала RSSI
set_epc_filter(n, epc, enable)EPC-фильтр (номер, значение, включение)
set_access_password(password)Пароль доступа к меткам
set_notification_uart(...)Настройка уведомлений по UART (формат, поля, keep-alive)
set_notification_ip(ip, port, timeout, enable)Настройка уведомлений по сети (сокет/HTTP)
Python
# Текущие параметры идентификации
tag_identity = sauk.get_tag_identity_config()
print("Tag Identity Config:", tag_identity)

# Время сна метки
sauk.set_valid_time(10000)

# Время удержания в таблице
sauk.set_hold_time(30000)

# Фильтр по RSSI
sauk.set_rssi_filter(-70, enable=True)

# Фильтр по EPC
sauk.set_epc_filter(1, "E2003411B8020114A418C2AE", enable=True)

# Пароль доступа
sauk.set_access_password(0x12345678)

# Уведомления по UART
sauk.set_notification_uart(
    enable=True,
    speed=9600,
    json_format=1,
    add_prefix="PRE",
    add_suffix="SUF",
    add_crlf=True,
    add_epcl=True,
    add_epc=True,
    add_tidl=True,
    add_tid=True,
    add_ant=True,
    add_rssi=True,
    notify_alive=True
)

# Уведомления по сети (IP)
sauk.set_notification_ip("192.168.10.100", 5000, timeout=2000, enable=True)

8Таблица доступа

МетодНазначение
get_access_table()Получить полную таблицу доступа
modify_access_table(...)Добавить/изменить запись таблицы доступа
get_access_table_part(start, end)Получить часть таблицы (диапазон записей)
Python
# Полная таблица доступа
access_table = sauk.get_access_table()
print("Access Table:", access_table)

# Добавить запись
sauk.modify_access_table(
    epc="E2003411B8020114A418C2AE",
    name="Device1",
    group=1,
    access=1,
    keya="FFFFFFFFFFFF",
    keyb="FFFFFFFFFFFF"
)

# Часть таблицы
part_table = sauk.get_access_table_part(start=0, end=10)
print("Access Table Part:", part_table)

9Дата и время

МетодНазначение
get_datetime()Получить текущее время прибора
set_datetime(day, month, year, hour, minute, second)Установить системное время
Python
# Текущее время
current_time = sauk.get_datetime()
print("Current Time:", current_time)

# Установить время (день, месяц, год, час, минута, секунда)
sauk.set_datetime(1, 1, 2024, 12, 0, 0)

10Примечания

Возвращаемые значения

Все методы возвращают результат в формате JSON (Python-объект) либо None в случае ошибки. Структура ответов соответствует HTTP Web-API прибора — см. документ «API для HTTP через Wi-Fi и Ethernet».

Гибкая настройка

Параметры можно задавать как отдельными методами, так и общими методами set_*_config() с передачей нужных значений. При работе с уведомлениями гибко настраиваются формат данных и дополнительные поля. Для таблицы доступа предусмотрены методы полного и частичного получения данных.

SAUK · Python-библиотека (SAUK_API) sauk.ru
Россия, г. Москва, 
г. Зеленоград, проезд 4922, дом 4, строение 2. Технопарк "ЭЛМА". 
Подробнее...
SAUK© 2020 – 2026. Все тексты и изображения, представленные на сайте, являются интеллектуальной собственностью SAUK. Могут быть использованы только по письменному согласию SAUK. SAUK® является зарегистрированным торговым знаком. Заказы принимаются только от юридических лиц.

Товары

Корзина пуста

Итого

Заказ

Заказы принимаются только от юридических лиц