ECRService
Описание службы "ECRService"
Основное назначение программы ECRService - обеспечение подключения нескольких клиентских приложений к одной ККТ Custom.
По сути ECRService является шлюзом маршрутизаторам, который принимает сообщения от управляющего ПО, передает их в неизменном виде в ККТ, затем получает от ККТ ответ и передает его в неизменном виде в управляющее ПО.
Управляющее ПО <-> ECRService <-> ККТ
При запуске ECRService инициализирует локальный сервер на заданном в настройках порту.
Считывает настройки из файла конфигурации и устанавливает соединение с ККТ. В случае, если подключение установить не удается,
ECRService повторяет попытку подключения с заданным интервалом.
Описание параметров подключения:
<FormatVersion>1.0</FormatVersion> - формат (версия) файла конфигурации <ListeningPort>8000</ListeningPort> - порт сервера для входящих подключений на котором будет работать локальный сервер службы (шлюз) <Connections> <!-- Список подключаемых ККТ Id - идентификатор ККТ Type - Канал связи с ККТ: - Network - сеть Ethernet (подключение по IP-адресу) - Serial - Com-порт Path - путь подключения: - для Network: IP-адрес:Порт - для Serial: COM-порт:скорость ReleasePort - true/false: удерживать постоянное соединение с ККТ = false, закрывать соединение после каждой команды = true Reconnect - время между попытками переподключения к ККТ в сек, 0 = не переподключаться --> <!--Connection Id="0" Type="Network" Path="192.168.0.89:9100" ReleasePort="false" Reconnect="2"/--> <Connection Id="0" Type="Serial" Path="COM22:115200" ReleasePort="false" Reconnect="2"/> </Connections> <Debug>true</Debug> - режим отладки <!-- Уровень логирования. Варианты: Verbose, Debug, Information, Warning, Error, Fatal При стандартной установке рекомендуется вариант - Information --> <LogLevel>Debug</LogLevel> </Configuration>
Для подключения к ККТ через ECRService в управляющем ПО необходимо выбрать канал связи с ККТ Ethernet (IP), указать IP-адрес ПК на котором запущена настроенная служба и порт, на котором ECRService принимает входящие соединения (ListeningPort - из настроек).
Служба по умолчанию монопольно подключается к ККТ по заданному интерфейсу, никакие сторонние программы не смогут подключиться на тот же интерфейс ККТ.
Служба устанавливается в директорию:
C:\Program Files (x86)\ECRService
и хранит логи в директории:
C:\ProgramData\ECRService
Последняя актуальная версия, доступная для скачивания:
- Setup ECRService-0.4.0.36.zip
ECRService 0.4.0.36
Системные требования
Это приложение разработано для .NET 8.0 и предоставляет как TCP-сервер (порт по умолчанию 8000), так и последовательное (COM) соединение. Ниже приведены поддерживаемые операционные системы и требования к среде, а также примечания по запуску консольных или сервисных сборок.
Общие требования
- Архитектура: рекомендуется x64
- .NET: .NET 8 Desktop Runtime.
- TCP: Порт прослушивания по умолчанию **8000** (настраивается через `config.xml`); убедитесь, что правила брандмауэра позволяют входящие соединения, если вы запускаете сервер.
- Последовательные порты: Убедитесь, что драйверы устройств для COM-порта установлены, а учетная запись пользователя, запускающая приложение, имеет доступ к последовательному устройству.
- Привилегии: Установка или запуск в качестве службы Windows, как правило, требует административных привилегий.
Запуск в консольном режиме требует только разрешений, необходимых для открытия настроенного COM-порта и прослушивания на настроенном TCP-порту.
Windows 11 (Поддерживается) - Поддерживается: Windows 11 (x64). - Требование: .NET 8 Desktop Runtime (или независимое приложение). - Брандмауэр: Добавьте правило для входящего подключения для настроенного порта прослушивания (по умолчанию 8000) или разрешите приложение через брандмауэр при появлении запроса.
Windows 10 (Поддерживается) - Поддерживается: Windows 10 (версия 1607 / Anniversary Update или более поздняя) для .NET 8. - Требование: .NET 8 Desktop Runtime (или независимое приложение). - Примечания: Такие же рекомендации по брандмауэру/драйверам последовательных устройств, как и для Windows 11.
Windows 7 (Поддерживается для .NET 8) - Поддерживается: Windows 7 SP1 с установленным обновлением платформы для .NET (KB2533623). - Важно: .NET 8 обеспечивает частичную поддержку на Windows 7. Работоспособность на Windows 7 не гарантируется, и рекомендуется обновить до более новой версии Windows для получения полной поддержки. - Примечания: Такие же рекомендации по брандмауэру/драйверам последовательных устройств, как и для Windows 11.
Ссылка для скачивания .NET 8 Desktop Runtime - [Скачать .NET 8 Desktop Runtime](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) - Выберите "Run apps - Runtime" и скачайте версию для вашей ОС (x64). Например, для Windows x64 скачайте "Windows x64 Desktop Runtime" https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.23-windows-x64-installer
Настройки службы "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 - остановка службы
Выполнение bat-файла должно производиться с правами администратора
Список изменений
0.6.1.3
- Изменения в таймаутах для совместимости с r_k
- Новый алгоритм переподключения ККТ
- Добавлены параметры:
- <EarlyAckForwarding>true</EarlyAckForwarding> - отправка <ACK>/<NAK> до получения всех данных ответа (для совместимости по TCP) - <EarlyAckDelayMs>5</EarlyAckDelayMs> - задержка перед отправкой <ACK>/<NAK>
0.6.0.36
- Исправлены ошибки переподключения к ККТ
- В настройках добавлен таймаут ожидания подтверждения от ККТ 0x06 или 0x15, 5000 - по умолчанию 5000 мс. Если в это время не получен ответ от ККТ, будет производиться попытка переподключения в соответствии с заданными настройками
0.6.0.34
- Доработан алгоритм переподключения к ККТ после возникновения ошибок
- Дополнены сообщения об ошибках в логе
| https://link.customwiki.ru/ECRService |
|---|