если делать по уму, то одиночные запросы/ответы не годятся. Нужен
пакетный обмен с контрольными суммами, а это кратно увеличит время
(банально, более длинные пакеты, если приходить к какому-то стандарту общему, более-менее универсальному синтаксису, то навскидку это
минимум 5-6 байт. соответсвенно время транзакции ("туда-сюда") на не максимальной, но хотя бы более менее рабочей на десятки метров, скорости 115200, получится около миллисекунды. в общем быстро, только непонятно какого порядка пространство идентификаторов. Если в пределах байта - так и прямой перебор сойдёт. А ежели методом дихотомии, то ещё нужно подумать как обрабатывать броадкаст команды, ибо при передаче одновременно несколькими клиентами данных по шине, получится полный трешняк, ну или отходить от парадигмы осмысленного обмена (с приёмом и декодированием пакетов) и аппаратно вешать какую-то приблкуду, которая будет сечь хоть какие-то попытики обмена на шине (тогда можно условно детектировать отклик клиента на броадкаст команду запроса ID в заданном диапазоне)