Как я уже писал, в рамках проекта OpenCar недавно появилось новое железо, которое позволяет получать от декодера, стоящего в транспортном средстве, некую полезную нам информацию.
Однако это пока не было доступно в программе Rocrail, в полной мере. Сегодня же вышла новая версия программы(rev.12.291), в которой стало возможным использовать эти данные.
Для меня, самым важным моментом, была возможность получать информацию о местонахождении автомобиля.
Вот это я здесь и буду рассматривать....
И так, что необходимо иметь, для реализации этой возможности.
1. Собственно сам автомобиль, с установленным в него
декодером, версии 3.
2. Модуль
BiDiB RF-Basis(с последней версией ПО), вместе с модулем
GBMBoost Master(можно без платы GBM 16T), либо интерфейсным модулем
BiDiB-IF2.
Если использовать для управления машинками BiDiB RF-Basis, как отдельную Командную станцию, то вполне будет достаточно одного модуля BiDiB RF-Basis. Также для этих целей можно использовать и вариант радиобустера
DCC-RF Booster, однако для этого в нём необходимо обновить ПО и приделать USB интерфейс. В этом случае, в свойствах Rocrail настраивается ещё один контроллер, использующий библиотеку
rfbooster.
3. Модули
IRM, которые будут выполнять роль локальных датчиков, расставленных по дороге. К модулю подключаются 1-2 геркона и ИК диод. При сработке того или иного геркона, модуль, по ИК каналу, будет передавать автомобилю один из двух своих адресов.
Все основные настройки я уже рассматривал в теме посвящённой работе программы вместе с
железом BiDiB.
Нюансы есть в настройке самих датчиков. После того, как они были добавлены на плане пути, открываем их свойства и переходим на вкладку Общие. Там самое главное, в качестве ID датчика прописать значение, равное адресу модуля IRM.
У меня модуль имеет адрес 513.
На вкладке Интерфейс, можно вроде бы ничего не менять, главное, чтобы адрес датчика был равен 0.
Я по привычке настроил ID интерфейса и номер шины. Я не исключаю, что при использовании библиотеки
rfbooster, настройка ID интерфейса будет необходима.
Единственным проблемой пока осталось то, что после сработки датчик так и остаётся активным и ему надо делать сброс программными средствами(через Действия или Скрипты). Я предложил разработчикам сделать опцию для настройки продолжительности активного состояния датчика.