使用 Python 我想同时运行两个循环。第一个是常规的 while 循环。第二个是基于来自蓝牙连接的 PS4 控制器的文件事件的 while 循环。
这两个循环需要知道其他循环在做什么。
以下是相关代码,其中包含一些缺少代码的注释:
# Read PS4 controller events
infile_path = "/dev/input/event4"
in_file = open(infile_path, "rb")
FORMAT = 'llHHi'
EVENT_SIZE = struct.calcsize(FORMAT)
event = in_file.read(EVENT_SIZE)
# Event while loop reacting to PS4 events
while event:
# React to a PS4 controller event
# For example, start a motor when the X button is pressed
# Or stop the motor when the X button is released
# Read the next event
event = in_file.read(EVENT_SIZE)
# Regular while loop
while True:
# While Loop Code
# I need code in here to be able to override the event loop
# For example, stop the motor (even if the X button is pressed) if the motor senses resistance
in_file.close()
我认为这并不重要,但我使用的是Pybricks,它建立在 MicroPython 之上并针对机器人技术进行了优化。我也在使用ev3dev,它是一个 Debian 映像,也针对机器人技术进行了优化。我的完整代码可在我的GitHub 上找到。