Моя основная функция запускает бесконечный цикл while, который идентифицирует объекты, присваивая объекту число. Эта петля не должна быть заблокирована. В зависимости от значения этого числа отдельный процесс должен опрашивать эту переменную в цикле while, который выходит только на определенное значение переменной.
Я пытался использовать многопроцессорную обработку для этой задачи опроса. Но новый процесс при запуске, по-видимому, останавливает основной цикл, так что номер объекта не изменяется. Чтобы избежать проблем с областью действия переменной, я устанавливаю GPIO-вывод равным 0 или 1 в основном цикле при обнаружении определенного объекта. GPIO-вывод считывается в цикле while внутри запущенного процесса, но остается неизменным при изменении объекта.
Как сохранить основной цикл while во время работы процесса?
def input_polling():
print(rpigpio.input(Pi_kasse)," ..................")
condition=True
while condition:
print(RPi.GPIO(12))
def main(args):
....
inThread=multiprocessing.Process(target=input_polling,args=[])
....
while True:
print("311")
inThread=multiprocessing.Process(target=input_polling,args=[])
inThread.start()
....
If object==3
Rpi.GPIO.output(Object,Low)
else
Rpi.GPIO.output(Object,HIGH)
inThread.terminate()
inThread.join()
if __name__ == '__main__':
sys.exit(main(sys.argv))