Давно как то возникла идея мониторить контроллеры Game Keeper с помощью Friendly Pinger, но загвоздка была в том что они не отвечают на пинг.
Контроллеры Game Keeper отвечают только по своему протоколу на порту 18251 или 18252.
Поковыряв логи gkNetMonitor я выяснил как происходит обмен:
Монитор шлет брудкасты и ловит ответы на них. Формат отправляемого запроса я сохранил как есть. На delphi пришлось писать парсер ответов, чтобы получить версию прошивки и аппаратной платформы.Код:*0 20.04.2016 14:40:28> 255.255.255.255:18251 <- 00 00 00 0D 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 4 20.04.2016 14:40:28> ALL:18251 <<< NOTIFY 0000 *0 20.04.2016 14:40:28> 255.255.255.255:18252 <- 00 00 00 0D 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 4 20.04.2016 14:40:28> ALL:18252 <<< NOTIFY 0000 *0 20.04.2016 14:40:28> 172.31.52.5:18251 -> 01 02 00 1E 00 00 00 00 00 03 00 00 02 03 0E 14 04 01 08 5 20.04.2016 14:40:28> 172.31.52.5:18251 -> RESPONSE 0200 3.00.0.030 14.03.2.000 8.01.4.020 *0 20.04.2016 14:40:28> 172.31.50.2:18251 -> 01 02 00 23 00 00 00 00 00 03 00 00 00 00 6C 00 00 00 00 5 20.04.2016 14:40:28> 172.31.50.2:18251 -> RESPONSE 0200 3.00.0.035 108.00.0.000 0.00.0.000
От брудкаста решил отказаться так как FPinger мониторит каждое устройство отдельно.
Получившийся плагин шлет пакет к каждому контроллеру отдельно и ловит его ответ.
Для установки нужно архив (там библиотека и исходник)
Распаковать в папку с плагинами, Добавить новый тип устройства "Игровой контроллер", установить ему этот плагин, добавить порты 18251 и 18252 в список сервисов FPinger - по аналогии с теми что уже есть. И добавлять на карту игровые контроллеры - понятное дело что FPinger надо запускать на серваке или компе с доступом в сеть контроллеров.
Основное отличие от gkNetMonitor - плагин не сканирует сеть, адреса контроллеров должны быть известны заранее.
Плагин никак не связан с сервисами GameKeeper и базой данных, так что может быть использован даже во время монтажных работ.
---------- Добавлено в 21:01 ---------- Предыдущее сообщение было размещено в 19:59 ----------
Пока тестировал только с одни контроллером все было нормально, но как только добавил еще - один ловит ответы другого.
Хз как решить...