Библиотека для работы с весоизмерительными приборами

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Ответить
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 705
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Библиотека для работы с весоизмерительными приборами

Сообщение Ichthyander »

https://github.com/Al-Muhandis/TensoMLib
Библиотека на Free Pascal / Lazarus для работы с весовыми приборами Тензо-М (RS-232 / RS-485).
Возможности
  • Низкоуровневый кодек кадров протокола Тензо-М (кодирование скорости, длины, CRC-8, байт-стаффинг FF→FF FE)
  • Иерархия исключений по семантике ошибок (транспорт, таймаут, CRC, кадр, устройство, протокол)
  • Модульный транспортный слой: интерфейс ITensoMTransport, мок TMockTransport для тестирования, реализация TSerialTransport для COM-порта (LazSynaSer + WinAPI DCB fallback для нестандартных USB-COM драйверов)
  • Высокоуровневый клиент TTensoMDevice с автоматическими ретраями, настраиваемой политикой повторов, логированием кадров и автоопределением режима CRC
  • Полный набор команд протокола: вес, тарирование, конфигурация, серийный номер, дискретные входы/выходы, индикаторы, счётчики, калибровка, дозирование, инициативная передача
  • Функции сканирования доступных COM-портов (Windows: QueryDosDeviceA, Linux: /dev/ttyS*, /dev/ttyUSB*, /dev/ttyACM*)
  • Юнит-тесты через FPCUnit (CRC, BCD, кадры, транспорт, клиент — включая ретраи, логирование, иерархию исключений)
  • Интеграционная тестовая утилита с XML-отчётом
  • Пакет времени выполнения для Lazarus (tensom_rt.lpk)
  • Расширяемая архитектура
Зависимости
  • Free Pascal Compiler >= 3.2
  • Lazarus >= 3.0
  • Пакет LazSerial (LazSerialPort) — только для работы с реальным COM-портом. Без него доступны все модули кроме transport_serial, а тесты работают через TMockTransport
Ответить