やること
EV3DEVのドライバで直接参照できるIDを取得する。
方法
/sys/class/lego-sensor
内の各ディレクトリのaddress
ファイルを読み取り、それを物理ポートと照合する。
実装例
main.py
def sensor_port_to_id(port: int) -> int:
dirs = os.listdir('/sys/class/lego-sensor')
for _dir in dirs:
address_file = open('/sys/class/lego-sensor/' + _dir + '/address')
address = address_file.read()
address_file.close()
if address == 'in' + str(port):
return int(_dir.replace('sensor', ''))
return 0
参考文献