Библиотека на 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
