ArithmeticExpression

Ensemble de fonctions et d'opérations arithmétiques, que les autres éléments de format de cadran utilisent pour résoudre les valeurs d'attribut et les effets gyroscopiques en temps réel.

Introduit dans Wear OS 4.

Exemple

Exemple d'expression permettant de faire pivoter une valeur de jusqu'à 5 degrés dans les deux sens, en fonction de la valeur $ x $ de l'accéléromètre de l'appareil Wear OS :

(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)

...ce qui équivaut à l'expression mathématique suivante, où $ \theta_x $ représente l'angle de l'accéléromètre dans la direction $ x $ :

$$ \frac{5}{90} * max(min(\theta_x, 90), -90) $$

Fonctions

Le format du cadran reconnaît les valeurs de chaîne suivantes en tant que fonctions :

Fonction Description Type renvoyé Disponibilité
round() Convertit la valeur d'entrée en valeur à virgule flottante, puis effectue l'opération mathématique round() standard. Nombre entier Version 1
floor() Effectue l'opération mathématique floor() standard. Float Version 1
ceil() Effectue l'opération mathématique ceil() standard. Float Version 1
fract() Renvoie la partie fractionnaire de la valeur d'entrée, c'est-à-dire la partie de la valeur à virgule flottante qui s'affiche à droite de la virgule. Float Version 1
sin() Effectue l'opération trigonométrique sin() standard. Float Version 1
cos() Effectue l'opération trigonométrique cos() standard. Float Version 1
tan() Effectue l'opération trigonométrique tan() standard. Float Version 1
asin() Effectue l'opération trigonométrique asin() standard. La valeur renvoyée est toujours comprise dans la plage $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Float Version 1
acos() Effectue l'opération trigonométrique acos() standard. La valeur renvoyée est toujours comprise dans la plage $ [0.0, \pi] $. Float Version 1
atan() Effectue l'opération trigonométrique atan() standard. La valeur renvoyée est toujours comprise dans la plage $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Float Version 1
abs() Convertit la valeur d'entrée en valeur à virgule flottante, puis effectue l'opération mathématique abs() standard. Float Version 1
clamp(,,) Convertit les valeurs d'entrée en valeurs à virgule flottante, puis exécute l'opération Jetpack clamp() pour ajuster la première valeur de la plage définie par les deuxième et troisième valeurs. Float Version 1
rand(,) Génère une valeur aléatoire à virgule flottante qui remplit les conditions suivantes en même temps :
  • Supérieure ou égale à la première valeur
  • Inférieure ou égale à la deuxième valeur
suppose que la première valeur est inférieure ou égale à la seconde.
Float Version 1
log() Effectue l'opération mathématique base-$ e $ log() standard. Float Version 1
log2() Simule un logarithme en base 2. Cette valeur est calculée en divisant la valeur log() en base 10 de la valeur d'entrée par le logarithme en base 10 de $ 2 $. Float Version 1
log10() Effectue l'opération mathématique log() en base 10 standard. Float Version 1
sqrt() Effectue l'opération mathématique sqrt() standard. Float Version 1
cbrt() Effectue l'opération mathématique cbrt() standard. Float Version 1
exp() Effectue l'opération mathématique exp() standard. Float Version 1
expm1() Appelle directement l'opération mathématique expm1() si la valeur d'entrée est $ 1 $. Pour toute autre valeur d'entrée, simule la fonction en effectuant l'opération mathématique exp() standard, puis en soustrayant 1. Float Version 1
deg() Effectue l'opération mathématique toDegrees() standard. $ \frac{\pi}{2} correspond à 90 degrés, et $ \pi $ à 180 degrés. Float Version 1
rad() Effectue l'opération mathématique toRadians() standard. 90 degrés est défini comme $ \frac{\pi}{2} $, et 180 degrés comme $ \pi $. Float Version 1
pow(,) Effectue l'opération mathématique pow() standard. La valeur de sortie est toujours un nombre à virgule flottante. Float Version 1
numberFormat(,) Applique le format numérique de la première valeur à la deuxième. La première valeur peut contenir les caractères suivants :
  • # : représente un chiffre.
  • , : représente une virgule en guise de séparateur dans les grands nombres.
  • . : représente un séparateur décimal.
Chaîne Version 1
icuText()

Convertit la chaîne du format de date d'entrée dans un format correspondant au format des paramètres régionaux attendus. Si l'élément parent PartText inclut un élément Localization, le format de ces paramètres régionaux est utilisé. Sinon, les paramètres régionaux actuels de l'appareil Wear OS sont utilisés.

Par exemple, si l'appareil est utilisé aux États-Unis, la valeur d'entrée EE, MMM d, yyyy h:mm a génère le résultat suivant : Tue, Mar 14, 2023 1:59 PM

Chaîne Version 1
icuText(,)

Convertit la chaîne du format de date d'entrée du premier argument en un format correspondant au format des paramètres régionaux attendus. Le deuxième argument est une chaîne d'horodatage en millisecondes.

Si l'élément parent PartText inclut un élément Localization, le format de ces paramètres régionaux est utilisé. Sinon, les paramètres régionaux actuels de l'appareil Wear OS sont utilisés.

Chaîne Version 2
icuBestText()

Convertit la chaîne du format de date d'entrée dans l'heure actuelle correspondant au format attendu. Si l'élément parent PartText inclut un élément Localization, le format de ces paramètres régionaux est utilisé. Sinon, les paramètres régionaux actuels de l'appareil Wear OS sont utilisés.

Par exemple, si l'appareil est utilisé aux États-Unis le 14 mars 2023 à 13h59, la valeur d'entrée yyyy MMM d EE a h:mm génère le résultat suivant : Tue, Mar 14, 2023, 1:59 PM

Chaîne Version 1
icuBestText(,)

Convertit la chaîne du format de date d'entrée du premier argument en l'heure actuelle correspondant au format attendu. Le deuxième argument est une chaîne d'horodatage en millisecondes.

Si l'élément parent PartText inclut un élément Localization, le format de ces paramètres régionaux est utilisé. Sinon, les paramètres régionaux actuels de l'appareil Wear OS sont utilisés.

Chaîne Version 2
subText(,,)

Extrait une sous-chaîne à partir de la première valeur. La deuxième valeur indique l'indice en base 0 dans la première valeur où la sous-chaîne doit commencer. La troisième valeur indique l'indice en base 0 dans la première valeur où l'extraction de la sous-chaîne doit s'arrêter ("à partir de la deuxième valeur jusqu'à la troisième valeur, sans l'inclure).

Exemples :
  • subText("abc def", 2, 5) est c d
  • subText("abc def", 2, 7) est c def
Chaîne Version 1
textLength()

Calcule la longueur de la chaîne d'entrée.

Exemples :
  • subText("abc def", 2, 5) est c d
  • subText("abc def", 2, 7) est c def
Chaîne Version 1

Opérateurs

Le format de cadran reconnaît les valeurs de chaîne suivantes en tant qu'opérateurs :

+
Plus unaire ou addition de plusieurs valeurs. Accepte les entiers et les valeurs à virgule flottante.
-
Moins unaire ou soustraction de plusieurs valeurs. Accepte les entiers et les valeurs à virgule flottante.
*
Multiplication de plusieurs entiers ou valeurs à virgule flottante.
/

Division de deux entiers ou valeurs à virgule flottante.

Si la division de deux entiers donne une valeur non entière, la partie décimale est conservée dans le résultat à virgule flottante. Exemple : $ \frac{1}{2} = 0,5 $.

De plus, l'expression $ \frac{x}{0} $ est évaluée comme 0, où $ x $ est un entier.

%

Division modulaire de deux entiers ou valeurs à virgule flottante.

Si les deux opérandes sont des entiers, le résultat correspond au reste de la division des deux valeurs. Par exemple, $ 19 \bmod 7 = 5 $.

Si au moins un opérande est un nombre à virgule flottante, le résultat est un équivalent à virgule flottante du reste. Par exemple : $ 19,0 \bmod 7 = 5,0 $.

~

Opérateur "not" au niveau du bit. Voici plusieurs exemples :

  • ~1 est $ -2 $
  • ~0 est $ -1 $
!

Opérateur "not" logique, compatible avec les doubles négatifs. Voici plusieurs exemples :

  • $ !2 $ est false
  • $ !!0 $ est true
|

Opérateur "or" au niveau du bit. Accepte plus de deux valeurs d'entrée. Voici plusieurs exemples :

  • $ 1 | 0 = 1 $
  • $ 1 | 2 | 4 = 7 $
||
Opérateur logique "or".
&
Opérateur "and" au niveau du bit. Accepte exactement deux valeurs d'entrée.
&&
Opérateur logique "and".
(
Parenthèse ouvrante. Utilisée pour modifier l'ordre standard des opérations, où la multiplication et la division sont généralement prioritaires sur l'addition et la soustraction.
)
Parenthèse fermante. Utilisée pour modifier l'ordre standard des opérations, où la multiplication et la division sont généralement prioritaires sur l'addition et la soustraction.
<
Opérateur de comparaison "inférieur à". Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est false.
<=
Opérateur de comparaison "inférieur ou égal à". Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est true.
>
Opérateur de comparaison "supérieur à". Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est false.
>=
Opérateur de comparaison "supérieur ou égal à". Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est true.
? et :

Assure la prise en charge des opérations ternaires. Le format général est le suivant :

condition ? value_if_true : value_if_false

Accepte les opérations ternaires imbriquées à l'aide de parenthèses.

,

Sépare les valeurs dans des fonctions qui acceptent plusieurs arguments.

"

Lorsqu'elle est placée au début et à la fin d'une valeur, indique que le format du cadran doit interpréter la valeur comme une chaîne.

==

Compare des valeurs pour déterminer si elles sont égales. Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est true.

!=

Compare des valeurs pour déterminer si elles sont inégales. Lorsque vous comparez une valeur entière à son équivalent à virgule flottante, le résultat est false.