Значение обнаружения вернулось ниже порогового значения, прежде чем разрешить изменение значения - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь разработать систему, которая принимает пользовательский ввод (от бесступенчатого аналогового потенциометра 0-100) и использует этот вход для установки значения, и я ищу хороший метод для обработки случая отказа.

Мне нужно обработать ошибку в системе, которая после обнаружения устанавливает значение на ноль и требует, чтобы входной сигнал был возвращен к низкому значению ниже порогового значения, прежде чем пользователь сможет снова увеличить значение по мере необходимости. Мне также было бы хорошо, если бы значение возвращалось к нулю, если бы оно допускало более простую логику c.

. Это похоже на довольно распространенную логику безопасности программного обеспечения c, однако я изо всех сил пытался найти какую-либо информацию о эта проблема на inte rnet. (Я думал, что он мог бы поделиться какой-то логикой c с триггером Шмитта?)

Если у вас есть идеи по этой проблеме или вы знаете ее название / хороший набор ресурсов, которые будут высоко оценены.

В качестве примера я разработал простую программу python, но я уверен, что это не самый надежный и эффективный метод решения этой проблемы.

# check value has returned to below 5% before allowing
# increase after failure case
value = 0
user_command = 0
failure_case = True

while True:
    ## get input
    raw_input = input()
    if (raw_input == 'e'):
        # if input is 'e'
        # enter failure case
        failure_case = True
    else:
        try:
            # if input is a number 
            user_command = int(raw_input)
        except:
            pass

    if (failure_case):
        # a failure has been detected
        print("Waiting for value to return to below 5")
        # set value to zero
        value = 0

        # only remove the error flag once the
        # input value is below 5
        if (user_command < 5):
            failure_case = False
    else:
        # no error thus set value to the user input
        value = user_command
    # print the accepted value
    print(value);

Любая помощь будет принята с благодарностью. Спасибо.

...