Да, это возможно при использовании битов маски и битов категории.Они позволяют приборам взаимодействовать только с некоторыми другими приборами, определенными с использованием этих битов.
Биты категории определяют тип приборов, по умолчанию это 0.
Биты маски определяют, с какими категориями приборов может взаимодействовать прибор.с.
Итак, чтобы A и B взаимодействовали с C, но не друг с другом, нам необходимо применить следующие биты категории:
A.filter.categoryBits = 0x0001; //binary: 01
B.filter.categoryBits = 0x0001; //binary: 01
C.filter.categoryBits = 0x0002; //binary: 10
И следующие биты маски:
A.filter.maskBits = 0x0002; //binary: 10
B.filter.maskBits = 0x0002; //binary: 10
C.filter.maskBits = 0x0001; //binary: 01
Поскольку A и B относятся к категории 0x0001
, а C имеет маску 0x0001
, C может взаимодействовать с A и B. A и B не содержат 0x0001
в своей маске, поэтому не могут взаимодействоватьдруг с другом.
Более подробное объяснение и пример можно найти здесь .