Funzioni da utilizzare nelle espressioni - AWS IoT Events

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzioni da utilizzare nelle espressioni

Funzioni integrate
timeout("timer-name")

Valuta true se il timer specificato è scaduto. Sostituisci»nome del timer"con il nome di un timer che hai definito, tra virgolette. In un'azione relativa a un evento, è possibile definire un timer e quindi avviarlo, resettarlo o cancellarne uno definito in precedenza. Vedi il campodetectorModelDefinition.states.onInput|onEnter|onExit.events.actions.setTimer.timerName.

Un timer impostato in uno stato può essere referenziato in uno stato diverso. È necessario visitare lo stato in cui è stato creato il timer prima di entrare nello stato a cui fa riferimento il timer.

Ad esempio, un modello di rilevatore ha due stati, TemperatureChecked e. RecordUpdated Hai creato un timer nello TemperatureChecked stato. È necessario visitare lo TemperatureChecked stato prima di poter utilizzare il timer nello RecordUpdated stato.

Per garantire la precisione, il tempo minimo per impostare un timer è di 60 secondi.

Nota

timeout()restituisce true solo la prima volta che viene controllato dopo la scadenza effettiva del timer e ritorna false successivamente.

convert(type, expression)

Restituisce il valore dell'espressione convertita nel tipo specificato. Il type il valore deve essere StringBoolean, oDecimal. Utilizzate una di queste parole chiave o un'espressione che restituisca una stringa contenente la parola chiave. Solo le seguenti conversioni hanno esito positivo e restituiscono un valore valido:

  • Boolean -> stringa

    Restituisce la stringa "true" o. "false"

  • Decimale -> stringa

  • Stringa -> Booleano

  • Stringa -> decimale

    La stringa specificata deve essere una rappresentazione valida di un numero decimale o ha esito negativo. convert()

Se convert() non restituisce un valore valido, anche l'espressione di cui fa parte non è valida. Questo risultato è equivalente false e non attiverà la transizione actions o verso lo nextState specificato come parte dell'evento in cui si verifica l'espressione.

isNull(expression)

Restituisce true se l'espressione restituisce null. Ad esempio, se l'input MyInput riceve il messaggio{ "a": null }, quanto segue restituiscetrue, ma isUndefined($input.MyInput.a) restituisce sì. false

isNull($input.MyInput.a)
isUndefined(expression)

Restituisce true se l'espressione non è definita. Ad esempio, se l'input MyInput riceve il messaggio{ "a": null }, quanto segue restituiscefalse, ma isNull($input.MyInput.a) restituisce sì. true

isUndefined($input.MyInput.a)
triggerType("type")

Il type il valore può essere o. "Message" "Timer" Valuta true se la condizione dell'evento in cui appare viene valutata perché un timer è scaduto come nell'esempio seguente.

triggerType("Timer")

Oppure è stato ricevuto un messaggio di input.

triggerType("Message")
currentInput("input")

Valuta true se la condizione dell'evento in cui appare viene valutata perché è stato ricevuto il messaggio di input specificato. Ad esempio, se l'input Command riceve il messaggio{ "value": "Abort" }, quanto segue restituisce. true

currentInput("Command")

Utilizzate questa funzione per verificare che la condizione venga valutata perché è stato ricevuto un determinato input e non è scaduto un timer, come nell'espressione seguente.

currentInput("Command") && $input.Command.value == "Abort"
Funzioni di corrispondenza delle stringhe
startsWith(expression1, expression2)

Restituisce true se la prima espressione stringa inizia con la seconda espressione di stringa. Ad esempio, se input MyInput riceve il messaggio{ "status": "offline"}, viene restituito quanto segue. true

startsWith($input.MyInput.status, "off")

Entrambe le espressioni devono restituire un valore di stringa. Se nessuna delle espressioni restituisce un valore di stringa, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

endsWith(expression1, expression2)

Restituisce true se la prima espressione stringa termina con la seconda espressione stringa. Ad esempio, se input MyInput riceve il messaggio{ "status": "offline" }, viene restituito quanto segue. true

endsWith($input.MyInput.status, "line")

Entrambe le espressioni devono restituire un valore di stringa. Se nessuna delle espressioni restituisce un valore di stringa, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

contains(expression1, expression2)

Valuta true se la prima espressione stringa contiene la seconda espressione stringa. Ad esempio, se input MyInput riceve il messaggio{ "status": "offline" }, viene restituito quanto segue. true

contains($input.MyInput.value, "fli")

Entrambe le espressioni devono restituire un valore di stringa. Se nessuna delle espressioni restituisce un valore di stringa, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

Funzioni di manipolazione di numeri interi bit a bit
bitor(expression1, expression2)

Valuta l'OR bit per bit delle espressioni intere (l'operazione OR binaria viene eseguita sui bit corrispondenti dei numeri interi). Ad esempio, se input MyInput riceve il messaggio{ "value1": 13, "value2": 5 }, quanto segue restituisce. 13

bitor($input.MyInput.value1, $input.MyInput.value2)

Entrambe le espressioni devono restituire un valore intero. Se nessuna delle espressioni restituisce un valore intero, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

bitand(expression1, expression2)

Valuta bit per bit AND delle espressioni intere (l'ANDoperazione binaria viene eseguita sui bit corrispondenti dei numeri interi). Ad esempio, se input MyInput riceve il messaggio{ "value1": 13, "value2": 5 }, quanto segue restituisce. 5

bitand($input.MyInput.value1, $input.MyInput.value2)

Entrambe le espressioni devono restituire un valore intero. Se nessuna delle espressioni restituisce un valore intero, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

bitxor(expression1, expression2)

Valuta bit per bit XOR delle espressioni intere (l'XORoperazione binaria viene eseguita sui bit corrispondenti dei numeri interi). Ad esempio, se input MyInput riceve il messaggio{ "value1": 13, "value2": 5 }, quanto segue restituisce. 8

bitxor($input.MyInput.value1, $input.MyInput.value2)

Entrambe le espressioni devono restituire un valore intero. Se nessuna delle espressioni restituisce un valore intero, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.

bitnot(expression)

Valuta bit per bit NOT dell'espressione intera (l'NOToperazione binaria viene eseguita sui bit del numero intero). Ad esempio, se input MyInput riceve il messaggio{ "value": 13 }, quanto segue restituisce. -14

bitnot($input.MyInput.value)

Entrambe le espressioni devono restituire un valore intero. Se nessuna delle espressioni restituisce un valore intero, il risultato della funzione non è definito. Non viene eseguita alcuna conversione.