Динамическое изменение сообщения raw_input - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу переместить моторизованный слайдер с помощью Raspberry Pi. Однако при отладке системы мне было интересно, можно ли использовать:

target = int(raw_input(<message>))

Таким образом, это сообщение может динамически изменяться до того, как пользователь введет значение. Для меня было бы замечательно увидеть текущее значение, считываемое с ползунка в этом <message> примере.

А если это невозможно, можно ли печатать строку выше или ниже raw_input, которая остается неизменной, пока система ожидает ввода данных от пользователя?

1 Ответ

0 голосов
/ 28 апреля 2018

Вы можете найти это как неблокирующий вход.

Вот решение от переполнения стека , в котором используются потоки

Я сделал небольшое модифицированное решение, оно все еще нуждается в доработке, но это более или менее то, что вам нужно сделать.

python
import threading
import time
import random

userInput = ""
finished = False
sensorValue = 100
previousValue = 0

def Listener():
    global userInput, finished, sensorValue
    userInput = raw_input(sensorValue)
    if len(userInput) > 0:
        print(len(userInput))
        finished = True
    else:
        finished = False

while True:
    if sensorValue != previousValue:
        print("Received new slider info. SliderValue is {}".format(sensorValue))
        previousValue = sensorValue
    else:
        print("No new info from slider. Sleeping two seconds.")
    if not finished:
        listener = threading.Thread(target=Listener)
        listener.start()
    else:
        break
    if random.randint(0,1) == 1:
        sensorValue += 10 
    time.sleep(2) 

Посмотри, ответит ли это на твой вопрос! :)

...