Я делаю табло с 7-сегментным дисплеем (4 дисплея) с помощью raspberry pi 3. Я создал программу на python, которая считывает 2 числа из базы данных и сохраняет их в переменной, проверяет, сколько там цифр (поскольку я могуотправьте только одну цифру на один дисплей), а затем она отправит правильную информацию на контакты GPIO.Каждая цифра включена в течение 0,001 с, и, таким образом, в 0,004 с проходит все 4. Затем она повторяет в общей сложности 200 повторений, прежде чем вернуться назад и проверить, были ли внесены какие-либо изменения в базу данных.
Однако, пока он перечитывает данные из базы данных, есть небольшой момент, когда все дисплеи выключены.Мне интересно, возможно ли продолжить цикл (тот, который содержит 200 повторов) с ранее сохраненной переменной и перезапустить его с новыми только после того, как база данных закончит читать новую информацию.
#i have set up the database and all other important stuff outside this loop
while 1:
digitTipe = 0
digitTipe2 = 0
timer = 0 #counter for the GPIO loop
#it gets the info from db and then it lists the digits
cur.execute("SELECT gol_domaci FROM tekme ORDER BY id DESC LIMIT 0, 1")
db.commit()
home_team = cur.fetchall()
for q in home_team-:
digits= list(int(d) for d in str(q[0]))
#same but for the other team
cur.execute("SELECT gol_gosti FROM tekme ORDER BY id DESC LIMIT 0, 1")
db.commit()
guest_team = cur.fetchall()
for e in guest_team:
digit2 = list(int(d) for d in str(e[0]))
#here checks if both digits are the same (11, 22, 33...), is just one digit(3, 6, ...) or if is just a random number (12, 23, 45,...)
#based on these results the GPIO output knows how to properly send out voltage... i tried with other methods but this one works for me
if len(digit) < 2:
digitTipe = 1
else:
if digit[0] == digit[1]:
digitTipe = 2
if len(digit2) < 2:
digitTipe2 = 1
else:
if digit2[0] == digit2[1]:
digitTipe2 == 2
while timer < 200: #this is the loop that has code for GPIO pins
#("insert digit output code")
"Отставание "не так уж плохо, максимум на 0,1 с, но это заметно и раздражает, поэтому мои" коллеги "хотят, чтобы это было исправлено.Но если это возможно, я не хочу создавать два отдельных файла кода
Извините за плохое качество кодирования.это моя первая "настоящая" программа на питоне и вообще.Мне также жаль, если я недостаточно конкретен, поскольку это также мой первый вопрос по stackoverflow.заранее спасибо!