Что такое ofdConnect от Штриха , когда он появился и зачем он нужен?
Это сервис , который висит в ОС Windows постоянно.
К счастью разработчики Штрих-М ведут файл 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 присутствовал в системе с незапамятных времен.
Теперь правда при установке его можно зачем-то отключить...
В реестре мы его находим без проблем :
Настройки его хранятся по-видимому в файлах ini здесь :
Можно просто останавливать сервис , менять ip прямо в файле ini, запускать заново сервис и не пользоваться прогой тест драйвера ккт от Штриха.
Если в файле KKTProfiles.ini не все поля правильно заполнены, то сервис ofdConnect работать не будет.
Если все таки пользоваться тестом драйвера ккт, то тут надо понимать , что :
Примечание : Не забываем все проги запускать от имени Администратора !
Вход в управление настройками OFDConnect по кнопке "Дополнительные параметры" :
Кнопка Деактивировать приводит в пометке сервиса к отключению (нужна перезагрузка) (мы ей не разу не пользовались).
Выключить передачу данных соответственно просто останавливаем сервис
Включить передачу данных соответственно запускает сервис
Также надо настроить тут :
Наши Сети , наши два сетевых адаптера :
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 (на самом деле не нужен)
Немного лирики :
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...
Также выглядит успешное включение и передача здесь :
Замечания
Порт 7878 вроде нельзя поменять из тестового драйвера ККТ, но можно изменить напрямую в файле Settings.ini и еще кое-где в таблицах тестового драйвера и все будет также прекрасно работать.
Брандмауэр Windows 10 у нас по умолчанию , то есть его в случае с OFDConnect нам настраивать не пришлось.
Можно (если нечего делать) посмотреть какие порты слушает сервис OFDConnect, когда все работает правильно
netstat -aon | more
А когда например что-то не правильно работает - видно как касса делает 20-30 попыток соединений с OFDConnect, меняя порты отправки:
Кэш 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)на самом деле НЕ НУЖЕН!
Все это же можно сделать и через маршрутизацию между сетевыми адаптерами , но об этом в другой статье.