Как судить, стабильно ли значение за период - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу отслеживать стабильность состояния за период.

Например, : состояние включения / выключения лампы.

Я хочу отслеживать частоту его включения / выключения.

Допустим, он стабилен или нестабилен в течение определенного периода (например, в течение 10 секунд):

  1. нестабильно: Если лампа время изменения состояния включения / выключения> 3 (может быть от чьего-либо оператора или нестабильного напряжения, как угодно).
  2. стабильно: Если оно не нестабильно .

Есть ли хороший алгоритм для реализации?

1 Ответ

1 голос
/ 25 апреля 2020

Я не знаю, правильный ли это путь.

Шаблон наблюдателя.

Реализация класса, который прослушивает состояние включения / выключения лампы. Таким образом, всякий раз, когда лампа включается / выключается, этот класс уведомляется.
Поддерживает структуру данных очереди в том же классе, в котором эти уведомления хранятся в течение заданного времени (10 секунд). Выполните функцию «Отключение» таким образом, чтобы в очереди всегда сохранялись уведомления, полученные только за последние 10 секунд.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...