AP_HAL_ChibiOS: add support for detecting IMU backends by order

This commit is contained in:
bugobliterator 2022-10-21 12:32:41 +05:30 committed by Andrew Tridgell
parent 691380478a
commit 2a4921c139
1 changed files with 10 additions and 1 deletions

View File

@ -1488,6 +1488,11 @@ def write_IMU_config(f):
error("Duplicate IMU: %s" % seen_str(dev))
seen.add(seen_str(dev))
driver = dev[0]
# get instance number if mentioned
instance = -1
if dev[-1].startswith("INSTANCE:"):
instance = int(dev[-1][9:])
dev = dev[:-1]
for i in range(1, len(dev)):
if dev[i].startswith("SPI:"):
dev[i] = parse_spi_device(dev[i])
@ -1495,7 +1500,11 @@ def write_IMU_config(f):
(wrapper, dev[i]) = parse_i2c_device(dev[i])
n = len(devlist)+1
devlist.append('HAL_INS_PROBE%u' % n)
if dev[-1].startswith("BOARD_MATCH("):
if instance != -1:
f.write(
'#define HAL_INS_PROBE%u %s ADD_BACKEND_INSTANCE(AP_InertialSensor_%s::probe(*this,%s),%d)\n'
% (n, wrapper, driver, ','.join(dev[1:]), instance))
elif dev[-1].startswith("BOARD_MATCH("):
f.write(
'#define HAL_INS_PROBE%u %s ADD_BACKEND_BOARD_MATCH(%s, AP_InertialSensor_%s::probe(*this,%s))\n'
% (n, wrapper, dev[-1], driver, ','.join(dev[1:-1])))