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 nelloTemperatureChecked
stato. È necessario visitare loTemperatureChecked
stato prima di poter utilizzare il timer nelloRecordUpdated
stato.Per garantire la precisione, il tempo minimo per impostare un timer è di 60 secondi.
Nota
timeout()
restituiscetrue
solo la prima volta che viene controllato dopo la scadenza effettiva del timer e ritornafalse
successivamente. convert(
type
,expression
)-
Restituisce il valore dell'espressione convertita nel tipo specificato. Il
type
il valore deve essereString
Boolean
, 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 è equivalentefalse
e non attiverà la transizioneactions
o verso lonextState
specificato come parte dell'evento in cui si verifica l'espressione. -
isNull(
expression
)-
Restituisce
true
se l'espressione restituisce null. Ad esempio, se l'inputMyInput
riceve il messaggio{ "a": null }
, quanto segue restituiscetrue
, maisUndefined($input.MyInput.a)
restituisce sì.false
isNull($input.MyInput.a)
isUndefined(
expression
)-
Restituisce
true
se l'espressione non è definita. Ad esempio, se l'inputMyInput
riceve il messaggio{ "a": null }
, quanto segue restituiscefalse
, maisNull($input.MyInput.a)
restituisce sì.true
isUndefined($input.MyInput.a)
triggerType("
type
")-
Il
type
il valore può essere o."Message"
"Timer"
Valutatrue
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'inputCommand
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 inputMyInput
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 inputMyInput
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 inputMyInput
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.