ECRService

Материал из CUSTOM KKT WIKI
Перейти к навигации Перейти к поиску

Описание службы "ECRService"

ECRService
ECRService

Служба передачи данных

Основное назначение программы ECRService - обеспечение подключения нескольких клиентских приложений к одной ККТ Custom. По сути ECRService является шлюзом маршрутизаторам, который принимает сообщения от управляющего ПО, передает их в неизменном виде в ККТ, затем получает от ККТ ответ и передает его в неизменном виде в управляющее ПО.

Управляющее ПО <-> ECRService <-> ККТ

Описание работы ECRService

1) При запуске ECRService инициализирует локальный сервер на заданном в настройках порту.

Считывает настройки из файла конфигурации и устанавливает соединение с ККТ. В случае, если подключение установить не удается, ECRService повторяет попытку подключения с заданным интервалом. Описание параметров подключения:

<FormatVersion>1.0</FormatVersion> - формат (версия) файла конфигурации <ListeningPort>8000</ListeningPort> - порт сервера для входящих подключений на котором будет работать локальный сервер службы (шлюз) <Connections> <Connection Id="0" Type="Serial" Path="COM22:115200" ReleasePort="false" Reconnect="2"/> </Connections> <Debug>true</Debug> - режим отладки <LogLevel>Debug</LogLevel> </Configuration>

2) Для подключения к ККТ через ECRService в управляющем ПО необходимо выбрать канал связи с ККТ Ethernet (IP), указать IP-адрес ПК на котором запущена настроенная служба и порт, на котором ECRService принимает входящие соединения (ListeningPort - из настроек).

Важно! Служба по умолчанию монопольно подключается к ККТ по заданному интерфейсу, никакие сторонние программы не смогут подключиться на тот же интерфейс ККТ.

Служба устанавливается в директорию:

C:\Program Files (x86)\ECRService

и хранит логи в директории:

C:\ProgramData\ECRService


Последняя актуальная версия, доступная для скачивания:

Системные требования

Это приложение разработано для .NET 8.0 и предоставляет как TCP-сервер (порт по умолчанию 8000), так и последовательное (COM) соединение. Ниже приведены поддерживаемые операционные системы и требования к среде, а также примечания по запуску консольных или сервисных сборок.

Общие требования
- Архитектура: рекомендуется x64
- .NET: **.NET 8 Desktop Runtime** установлен или опубликовать приложение как независимое приложение .NET 8. Приложение использует Serilog и RJCP.IO.Ports (библиотека последовательного порта).
- TCP: Порт прослушивания по умолчанию **8000** (настраивается через `config.xml`); убедитесь, что правила брандмауэра позволяют входящие соединения, если вы запускаете сервер.
- Последовательные порты: Убедитесь, что драйверы устройств для COM-порта установлены, а учетная запись пользователя, запускающая приложение, имеет доступ к последовательному устройству.
- Привилегии: Установка или запуск в качестве службы Windows, как правило, требует административных привилегий. Запуск в консольном режиме требует только разрешений, необходимых для открытия настроенного COM-порта и прослушивания на настроенном TCP-порту.
Windows 11 (Поддерживается)
- Поддерживается: Windows 11 (x64).
- Требование: .NET 8 Desktop Runtime (или независимое приложение). Держите Windows в актуальном состоянии для наилучшей надежности.
- Брандмауэр: Добавьте правило для входящего подключения для настроенного порта прослушивания (по умолчанию 8000) или разрешите приложение через брандмауэр при появлении запроса.
Windows 10 (Поддерживается)
- Поддерживается: Windows 10 (версия 1607 / Anniversary Update или более поздняя) для .NET 8.
- Требование: .NET 8 Desktop Runtime (или независимое приложение).
- Примечания: Такие же рекомендации по брандмауэру/драйверам последовательных устройств, как и для Windows 11.
Windows 7 (Не поддерживается для .NET 8)

Настройка службы "ECRService"

- FormatVersion - версия протокола настроек, для дальнейшей совместимости между разными версиями
- ListeningPort - порт на котором запустится служба
- Connection - настройки подключения к ККТ
- Id="0"  - в текущей версии не менять, всегда оставлять "0" - в дальнейшем будет использоваться для работы с несколькими ККТ
- Type - тип подключения, Serial или Network 
- Path - адрес подключения, может быть COM или IP, после ":" задается скорость COM-порта или порт TCP. например, COM22:115200 или 192.1678.0.55:9100
- ReleasePort - "false" - пока не используется, оставлять как есть
- Reconnect - интервал в секундах между попытками переподключения к устройству. Например, если служба запущена до включения ККТ, она будет пытаться каждые N секунд подключиться к ККТ
- LogLevel, уровень логирования, сейчас стоит Debug и пишется весь обмен с устройством, все байты отправленные от клиента к серверу, от сервера к ККТ, и ответ от ККТ к серверу и от сервера к клиенту
start-service.bat - запуск службы
stop-service.bat - остановка службы

Список изменений

0.04.0.24

  • Описание в readme,
  • Добавлены системные требования
  • В архив добавлен установщик .net8
  • Установка службы в Windows 7


0.04.0.16

  • Создание инсталлятора


0.4.0.7

  • В логи добавлена доп. информация о недоступности ККТ
  • При потере соединения с ККТ (перезагрузка, отключение питание и т.д.) служба начнет попытки переподключения к ККТ с интервалом заданном в параметре Reconnect (интервал в секундах)


0.4.0.5

  • Лог обмена записывается в папку logs, сейчас 1 день = 1 лог файл
  • Лог статуса службы пишется в C:\ProgramData\ECRService\startup.log
  • Добавлен режим запуска в виде службы
  • Добавлены параметры в конфиг файл
https://link.customwiki.ru/ECRService