Я использую multiproc из pyepics, и мне нужно разделить переменную между параллельно запущенными процессами.Я пытаюсь упростить цель: допустим, у меня есть лампы (lamp_ID = 0,1,2,3), которые можно включать / выключать с помощью функции switch_on_light (id) .Кроме того, у меня есть главный выключатель для этих 4 ламп.Главный выключатель должен быть включен после включения отдельных ламп с помощью переменной процесса ( main_switch: состояние ), т. Е. Порядок:
- Включение отдельных лампвыполнив функцию switch_on_light (lamp_ID) in параллельный
- Включить главный выключатель, установив main_switch: состояние в on
- Выключить главный выключатель
- Выключить лампы (та же процедура, что и в шаге 1, просто выключить вместо включить )
Очень важно, чтобы отдельные лампы включались до главного выключателя И чтобы отдельные лампы выключались до выключения главного выключателя.
Моя проблема в том, что я не знаю, как сказать главному выключателю, что все четыре индикатора включены / выключены.Может быть, можно использовать общие переменные, которые дают обратную связь?Если все четыре общие переменные имеют значение True, то разрешается включение главного прерывателя?
Есть два файла python: lamp_operations.py и my_task.py ,Файл my_task.py содержит:
from lamp_operations import switch_on_light(id)
for id in [0, 1, 2, 3]:
processes.append(CAProcess(target=switch_on_light, args=(id)))
for p in processes
p.start()
for p in processes:
p.join()
# missing: implementation of main_breaker and feedback from the function switch_on_light(id)
Есть идеи, как это реализовать?(Отдельные источники света управляются не переменной процесса, а функцией, т. Е. Я не могу запрашивать состояние ламп).