Pingvin писал(а):
N датчиков на шине.
Как система понимает, в каком порядке (физически) они расположены?
Какой самый ближний к повязке, какой в самом конце расположен.
Или такое не отслеживается?
Это не отслеживается, я реализовал более комплексный подход. Поскольку топология подключения умных сенсоров произвольная и возможно одновременное использование "умных" и "глупых" - становится непонятно, какой считать ближним, какой - дальним.
У меня так сделано: есть конфигурационный файл sensors.ini. В нем определено следующее:
- Какие есть "глупые" ИК-приемники, на каких ножках они висят. Это просто TSOPы. Можно почти на любую свободную ножку назначить по TSOPу, лишь бы хватило каналов EXTI. Для каждого приемника назначается адрес.
- Какие есть "глупые" группы из RGB-диодов и вибромотора. У них тоже есть адреса. Их количество не обязательно должно совпадать с количеством глупых ИК-приемников. То есть, возможна ситуация, когда есть, скажем, есть два разных глупых ИК-приемника для головы и туловища, а RGB-диоды и вибрик есть только на голове. Поддерживается как PWM-управление, так и тупое мигание, то есть можно назначить вообще на любые ножки.
- Какие есть зоны поражения, какие у них коэффициенты урона, и какие датчики к ним приндлежат. Тут адреса датчиков перечислены через запятую, тупые и умные могут быть вперемешку.
Если для каких-то датчиков не указана зона, они по-умолчанию принадлежат к первой. Таки образом можно реализовать любой сценарий использования обоих типов датчиков. Например, можно настроить, чтобы при попадании в датчик мигал только он, или вся зона поражения, или вообще все мигали.
В простой ситуации, когда есть только смарт-сенсоры, настроек получится минимум: только перечень зон поражения со списками подключенных датчиков. Причем зону с коэффициентом урона 1.0 можно не описывать.
Немного сумбурно вышло, как только отлажу все, опишу принцип действия подробно.