mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-24 16:53:57 -04:00
hwdef: added BOARD_MATCH() support for IMUs
allow hwdef.dat to specify list of IMUs which match a specific board type
This commit is contained in:
parent
e6586a432d
commit
42c9ae3311
@ -1408,8 +1408,10 @@ def parse_i2c_device(dev):
|
|||||||
|
|
||||||
def seen_str(dev):
|
def seen_str(dev):
|
||||||
'''return string representation of device for checking for duplicates'''
|
'''return string representation of device for checking for duplicates'''
|
||||||
return str(dev[:2])
|
ret = dev[:2]
|
||||||
|
if dev[-1].startswith("BOARD_MATCH("):
|
||||||
|
ret.append(dev[-1])
|
||||||
|
return str(ret)
|
||||||
|
|
||||||
def write_IMU_config(f):
|
def write_IMU_config(f):
|
||||||
'''write IMU config defines'''
|
'''write IMU config defines'''
|
||||||
@ -1429,9 +1431,14 @@ def write_IMU_config(f):
|
|||||||
(wrapper, dev[i]) = parse_i2c_device(dev[i])
|
(wrapper, dev[i]) = parse_i2c_device(dev[i])
|
||||||
n = len(devlist)+1
|
n = len(devlist)+1
|
||||||
devlist.append('HAL_INS_PROBE%u' % n)
|
devlist.append('HAL_INS_PROBE%u' % n)
|
||||||
f.write(
|
if dev[-1].startswith("BOARD_MATCH("):
|
||||||
'#define HAL_INS_PROBE%u %s ADD_BACKEND(AP_InertialSensor_%s::probe(*this,%s))\n'
|
f.write(
|
||||||
% (n, wrapper, driver, ','.join(dev[1:])))
|
'#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])))
|
||||||
|
else:
|
||||||
|
f.write(
|
||||||
|
'#define HAL_INS_PROBE%u %s ADD_BACKEND(AP_InertialSensor_%s::probe(*this,%s))\n'
|
||||||
|
% (n, wrapper, driver, ','.join(dev[1:])))
|
||||||
if len(devlist) > 0:
|
if len(devlist) > 0:
|
||||||
if len(devlist) < 3:
|
if len(devlist) < 3:
|
||||||
f.write('#define INS_MAX_INSTANCES %u\n' % len(devlist))
|
f.write('#define INS_MAX_INSTANCES %u\n' % len(devlist))
|
||||||
|
Loading…
Reference in New Issue
Block a user