Skip to main content

No project description provided

Project description

ws_one_stable

ws_one_stable - библиотека для чтения данных весовых терминалов (через Serial/COM/USB), их нормализации и рассылки клиентам по TCP.

В проект включен модуль pds_one (Port Data Splitter) - базовый TCP-сервер, который читает данные из порта и ретранслирует их подписчикам.

Что внутри

  • PortDataSplitter - низкоуровневый TCP-сервер для приема данных порта.
  • WeightSplitter - расширение для весовых терминалов с парсингом данных.
  • Набор парсеров терминалов в ws_one_stable/terminals/*.
  • Вспомогательные функции поиска парсеров и коды ошибок.

Быстрый старт

Пример запуска WeightSplitter:

from ws_one_stable.main import WeightSplitter

ws = WeightSplitter(
    ip="0.0.0.0",
    port=2290,
    port_name="/dev/ttyUSB0",
    terminal_name="CAS",
    scale_protocol=None,
    debug=True,
)
ws.start()

Пример базового TCP-сплиттера (PDS):

from ws_one_stable.pds_one.main import PortDataSplitter

pds = PortDataSplitter("0.0.0.0", 2290, port_name="/dev/ttyUSB0")
pds.start()

Основные механики WeightSplitter

  • Парсер терминала выбирается по terminal_name из ws_one_stable/terminals/*.
  • Для каждого терминала обязателен парсер с функциями get_parsed_input_data(data) и check_scale_disconnected(data).
  • Используются коды ошибок из ws_one_stable/settings.py: scale_disconnected_code (отключение) и fail_parse_code (ошибка парсинга).
  • Стабилизация веса состоит из двух уровней:
    1. смещение базового веса (set_stable_wight, upd_stable_weight);
    2. авто-стабилизация около нуля (|weight| < 50 -> 0).
  • При отправке данных применяется стабилизация, затем значение пересылается клиентам через TCP.

Как добавить новый терминал

  1. Создай папку ws_one_stable/terminals/<TerminalName>/.
  2. Добавь файл functions.py с реализациями:
    • get_parsed_input_data(data) - преобразование сырых данных в вес;
    • check_scale_disconnected(data) - признак отключения терминала.
  3. Используй в коде terminal_name="<TerminalName>" (регистр не важен).
  4. По желанию добавь описание в docs/terminals.md.

Документация

Подробная документация на русском находится в папке docs/:

  • docs/overview.md - обзор проекта
  • docs/architecture.md - архитектура и потоки данных
  • docs/pds_module.md - модуль PDS
  • docs/weight_splitter.md - модуль WeightSplitter
  • docs/terminals.md - поддерживаемые терминалы
  • docs/migration.md - миграция со старого pds_one

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ws_one-1.3.1-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file ws_one-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: ws_one-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for ws_one-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f80016c192951f5e720d478d8be9a43eb757ef631969f6f037aa53b5913d2dab
MD5 c157a8d23d27fcac9603099fe45431ef
BLAKE2b-256 a1569243e47772c91d80fd8be994bf1961c342afbce34005d29e433d90205ee8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page