Sedan 9 januari 2024 visas endast giltiga profiler när du vill lägga till en ny apparat via appen.
Vad menas med giltig?
Profilen får inte ha states som
- man inte kan komma till
- man inte kan komma ifrån
Profilen måste ha 2, 3 eller 4 states.
Varje state måste ha 1-4 transitions.
Scala-kod för den intresserade:
protected def isValid(deep: DetectionProfile)
: Boolean = {
def isValidState(state: DetectionState): Boolean = {
1 <= state.transitions.size && state.transitions.size <= 4 &&
// at least one transition leads to state:
deep.states.filterNot(_ == state)
.flatMap(_.transitions)
.exists(_.toStateId.contains(state.stateId))
}
2 <= deep.states.size && deep.states.size <= 4 &&
deep.states.forall(isValidState)
}