SHTRIH-M: ofdconnect

Что такое ofdConnect от Штриха , когда он появился и зачем он нужен?

Это сервис , который висит в ОС Windows постоянно.

фотка 1

К счастью разработчики Штрих-М ведут файл History.txt (доступен при скачивании драйвера).

********************************************************************************

  DrvFR_4.13_568.exe
  12 апреля 2017 года 23:00

  [+] Добавлен OFD Connect;
 
********************************************************************************

  DrvFR_4.14_613.exe
  30 августа 2017 года 15:00

  [-] Обновлена версия ofdconnect
  [+] Теперь служба ofdconnect устанавливается опционально
     
********************************************************************************

  DrvFR_4.14_669.exe
  12 января 2018 года 22:00
  
  [+] Добавлена настройка автоматического удаления логов ofdconnect
  
********************************************************************************

Оказывается сервис ofdConnect присутствовал в системе с незапамятных времен.
Теперь правда при установке его можно зачем-то отключить...

фотка 2

В реестре мы его находим без проблем :

фотка 3

Настройки его хранятся по-видимому в файлах ini здесь :

фотка 4

Можно просто останавливать сервис , менять ip прямо в файле ini, запускать заново сервис и не пользоваться прогой тест драйвера ккт от Штриха.

фотка 5

Если в файле KKTProfiles.ini не все поля правильно заполнены, то сервис ofdConnect работать не будет.

фотка 6

Если все таки пользоваться тестом драйвера ккт, то тут надо понимать , что :

Примечание : Не забываем все проги запускать от имени Администратора !

Вход в управление настройками OFDConnect по кнопке "Дополнительные параметры" :

фотка 7

Кнопка Деактивировать приводит в пометке сервиса к отключению (нужна перезагрузка) (мы ей не разу не пользовались).
Выключить передачу данных соответственно просто останавливаем сервис
Включить передачу данных соответственно запускает сервис

фотка 8

Также надо настроить тут :

фотка 9

Наши Сети , наши два сетевых адаптера :

Ethernet to router :
192.168.1.50
255.255.255.0
192.168.1.1
dns 192.168.1.1

RnDIS адаптер
192.168.137.1
255.255.255.0
шлюз не нужен
dns не надо

Сама касса 192.168.137.111 (по умолчанию) 255.255.255.0 шлюз 192.168.137.1 (на самом деле не нужен) dns 192.168.137.1 (на самом деле не нужен)

фотка 10

Немного лирики :

RnDIS сетевой адаптер это виртуальный сетевой адаптер кассы, который эмулирует как-бы встроенный в кассу Etrhernet адаптер , который имеет ip , по которому мы можем управлять кассой.

OfdConnect - это сервис /программа, которая должна быть мостом в интернет для пакетов приходящих с кассы (это когда касса стучится на сайт офд , чтобы послать ему свои чеки).

Внизу прикреплено официальное руководство по настройке OFDConnect, из которого стало ясно , что сервис слушает порт 7878 RnDis адаптера и когда касса туда посылает пакет для ОФД , то сервис берет этот пакет и пересылает на connect.ofd-ya.ru порт 7779 в интернет (у нас по Ethernet адаптеру).

Соответственно, что должно быть в параметрах : KKTAddress и OFDAddress файла настроек C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin\OFDConnect\KKTProfiles.ini?

[KKT1]
KKTAddress=192.168.137.111
OFDAddress=test.ofd-ya.ru  // тут у нас тестовый ОФД используется , а не боевой connect.ofd-ya.ru
OFDPort=7790                         //  у нас тестовый  а не боевой 7779
OFDConnectionTimeout=25000
OFDReadTimeout=25000
KKTReadTimeout=15000

Много можно почерпнуть о ходе выполнения в логах OFDConnect:

C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin\OFDConnect\Logs

Вот так примерно выглядит успешное включение кассы и передача в ОФД 2 документов

[20.11.2019 17:07:24.942] [00007612] [DEBUG] Tofdconnect =============================================================
[20.11.2019 17:07:24.942] [00007612] [DEBUG] Tofdconnect   Запуск службы
[20.11.2019 17:07:24.942] [00007612] [DEBUG] Tofdconnect =============================================================
[20.11.2019 17:07:24.942] [00007612] [DEBUG] TProxyServer Start
[20.11.2019 17:07:24.942] [00007612] [DEBUG] TProxyServer ver.1.0.0.2
[20.11.2019 17:07:24.942] [00007612] [DEBUG] TProxyServer Start server at port 7878
[20.11.2019 17:09:17.689] [00001168] [DEBUG] TProxyServer Connect: 192.168.137.111
[20.11.2019 17:09:17.908] [00001168] [DEBUG] TOFDClient KKT(192.168.137.111): 203b
[20.11.2019 17:09:17.908] [00001168] [DEBUG] TOFDClient Sending data to OFD...
[20.11.2019 17:09:17.986] [00001168] [DEBUG] TOFDClient OFD(test.ofd-ya.ru): 154b
[20.11.2019 17:09:17.986] [00001168] [DEBUG] TProxyServer Write Data to KKT...
[20.11.2019 17:09:23.609] [00001168] [DEBUG] TOFDClient KKT(192.168.137.111): 243b
[20.11.2019 17:09:23.609] [00001168] [DEBUG] TOFDClient Sending data to OFD...
[20.11.2019 17:09:23.703] [00001168] [DEBUG] TOFDClient OFD(test.ofd-ya.ru): 154b
[20.11.2019 17:09:23.703] [00001168] [DEBUG] TProxyServer Write Data to KKT...

Также выглядит успешное включение и передача здесь :

фотка 11

Замечания

Порт 7878 вроде нельзя поменять из тестового драйвера ККТ, но можно изменить напрямую в файле Settings.ini и еще кое-где в таблицах тестового драйвера и все будет также прекрасно работать.

Брандмауэр Windows 10 у нас по умолчанию , то есть его в случае с OFDConnect нам настраивать не пришлось.

Можно (если нечего делать) посмотреть какие порты слушает сервис OFDConnect, когда все работает правильно

netstat -aon | more
фотка 12

А когда например что-то не правильно работает - видно как касса делает 20-30 попыток соединений с OFDConnect, меняя порты отправки:

фотка 13

Кэш DNS

Может пригодится : перед началом не забывайте очищать кэш DNS у Windows, так как если касса dns не сможет получить реально из интернета, то возможно возьмет его из кэша DNS Виндоуса , а вы можете подумать , что все работает гут (до поры до времени).

ipconfig /flushdns

очистить кэш

ipconfig /displaydns

это как посмотреть кэш.


Брандмауэр Windows

На Windows 7 и 10 скорее всего придется вручную выбрать программу ofdconnect в брандмауэре Windows из каталога C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin\OFDConnect и прставить галочки разрешить работу для всех сетей .

Выводы

OFDConnect - это Штриховская прога/сервис , который слушает ip RnDIS адаптера по порту 7878 , забирает оттуда посылку кассы и далее напрямую в доступный интернет посылает на адрес ОФД connect.ofd-ya.ru по порту 7779 .Ну и ответ пересылает обратно кассе.

Общий доступ к интернету на сетевом адаптере Ethernet to router - НУЖЕН !

Касперский у нас этому режиму не мешает .
Брандмауэр тоже настроен по умолчанию и специальной настройки не требует.

Сама касса 192.168.137.111 / 255.255.255.0 шлюз (192.168.137.1) на самом деле НЕ НУЖЕН ! dns (192.168.137.1)на самом деле НЕ НУЖЕН!

Все это же можно сделать и через маршрутизацию между сетевыми адаптерами , но об этом в другой статье.

Файлы для скачивания