У меня ESP32 с микропрограммой Micro python, и у меня есть два процесса в потоке:
- Wi-Fi-соединение с взаимодействием веб-страниц
- Neopixel led strip stuff
Что я хочу сделать, так это взаимодействовать через веб-страницу (1), чтобы изменить светодиодные элементы Neopixel (2). Оба процесса находятся в потоках. Проблема в том, как изменить переменную из процесса (1) в (2)? Я попытался использовать глобальные переменные, и это сработало, если и процесс потока, и его функции находятся в одном файле (.py), но если я делаю то же самое, но помещаю функцию в другой файл .py, он не работает !!
Это ниже работает:
import _thread
from time import sleep
var_global = 0
def thread_Teste1():
global var_global
while True:
sleep(1.5)
var_global += 1
print("Teste1: ", var_global)
def thread_Teste2():
global var_global
while True:
sleep(1)
var_global += 1
print("Teste2: ", var_global)
# Thread
try:
_thread.start_new_thread(thread_Teste1, ())
_thread.start_new_thread(thread_Teste2, ())
except Exception:
import traceback
print(traceback.format_exc())
while True:
sleep(1000)
Но если я сделаю то же самое, поместив код "while True" в функцию в отдельном файле .py, он не будет работать, я имею в виду, он не увидит глобальная переменная (я пробовал много способов кодирования, но не работал)
Любое предложение о том, как я могу изменить значение переменной в разных потоках с помощью кода в другом файле .py? Я нашел про очередь, но она не работает на Micro python ...
Спасибо!