首页 > 解决方案 > 根据另一个循环的条件中断一个循环 - Python

问题描述

我正在编写一个脚本来通过串行通信线路从连接到压力传感器的 MCU 接收数据。

这个想法是我会在一个循环中不断地轮询 MCU 以获取压力信息,并在另一个循环中收集数据。一旦压力不再恒定,我希望能够停止数据收集。

有两个while循环,一个轮询 MCU,一个收集数据,但我需要它们同时运行,以便轮询循环可以为收集循环提供停止条件。

#Loop that polls MCU
def poll(serial_data):
  data = serial_data
  while data_in:
      _, pressure = Get_data(data, 2000)
      difference = np.diff(pressure[:,1])

      if (all(i<1000 for i in difference) and all(i>-1000 for i in difference)):
          print('Pressure constant. Start collecting.')
          return True
      else:
          print('Pressure is not constant.') #break 2nd loop on this condition
          return False

def some_other_function(serial_data):
  input = ""
  data = serial_data
  #Loop to continously gather data
  while (poll(data) == True): # I realise this line probably isn't correct
     input_bytes = serial_data.read()
     input_string = str(input_bytes,'utf-8')
     input += input_string

  # Want to break 1st loop now that data collection has stopped

我一直在研究多处理来执行此操作,但不确定如何实现它,以便一个循环依赖于另一个循环。

标签: pythonpython-3.xwhile-loopmultiprocessingconditional-statements

解决方案


推荐阅读