Я делаю приложение на основе python, которое получает данные о погоде от OWM и отображает их на OLED HAT для малинового пи ноль. У меня есть функция с именем getWeatherData (), и я пытаюсь отобразить серию файлов изображений 12 pbm значка перезагрузки. Вот весь метод:
def getWeatherData(currentCity):
global currentWeather
global currentTemp
global tempLow
global tempHigh
global Humidity
global windSpeed
global windDirection
global cityName
global sunSet
global sunRise
global pressure
global dataTimer
global current_BG_num
while getWeatherData:
if current_BG_num == 12:
current_BG_num = 0
reloadBG = Image.open("reload" + str(current_BG_num) + ".pbm").convert('1')
oled.image(reloadBG)
with canvas(device, background = reloadBG, dither = True) as draw:
draw.text((tCR("Updating"), 16), "Updating", font=xlarge, fill="white")
draw.text((tCR("Weather"), 34), "Weather", font=xlarge, fill="white")
sleep(0.5)
current_BG_num = current_BG_num + 1
break
dataTimer = dataTimeCurrent()
cCW = owm.weather_at_place(currentCity)
print("[INFO] [" + TimeCurrent() + "] Getting Weather Data for " + currentCity)
currentData = cCW.get_weather()
sleep(1)
currentData2 = cCW.get_weather()
currentWeather = currentData.get_status()
currentTemp = round(int(currentData.get_temperature("fahrenheit")["temp"]))
tempLow = round(int(currentData.get_temperature("fahrenheit")["temp_min"]))
tempHigh = round(int(currentData.get_temperature("fahrenheit")["temp_max"]))
windSpeed = round(int(currentData.get_wind(unit='miles_hour')["speed"]))
windDirection = int(currentData2.get_wind()["deg"])
Humidity = int(currentData2.get_humidity())
cityName = currentCity
pressure = int(currentData2.get_pressure()["press"])
sunRise = currentData2.get_sunrise_time()
sunSet = currentData2.get_sunset_time()
if debug == True:
print("[DEBUG] [" + TimeCurrent() + "] Current Temp: " + str(currentTemp))
print("[DEBUG] [" + TimeCurrent() + "] Low: " + str(tempLow))
print("[DEBUG] [" + TimeCurrent() + "] High Temp: " + str(tempHigh))
print("[DEBUG] [" + TimeCurrent() + "] Humidity: " + str(Humidity) + "%")
print("[DEBUG] [" + TimeCurrent() + "] Current Weather: " + currentWeather)
print("[DEBUG] [" + TimeCurrent() + "] Wind Speed: " + str(windSpeed))
print("[DEBUG] [" + TimeCurrent() + "] Wind Direction: " + str(windDirection))
print("[DEBUG] [" + TimeCurrent() + "] Pressure: " + str(pressure) + " hpa")
Теперь проблема, с которой я сталкиваюсь, - это время l oop, я подумал, что если бы я сделал
while getWeatherData:
, то запустил бы этот l oop во время работы остальной функции. Я неправильно это понимаю? Есть ли лучший способ выполнить ту же задачу sh? Если я не использую разрыв, он запускает анимацию в бесконечном l oop, и если я удаляю его, он просто проходит по каждому отдельному изображению, когда я вызываю функцию.