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 :

round()
Convertit la valeur d'entrée en valeur à virgule flottante, puis effectue l'opération mathématique round() standard.
floor()
Effectue l'opération mathématique floor() standard.
ceil()
Effectue l'opération mathématique ceil() standard.
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.
sin()
Effectue l'opération trigonométrique sin() standard.
cos()
Effectue l'opération trigonométrique cos() standard.
tan()
Effectue l'opération trigonométrique tan() standard.
asin()
Effectue l'opération trigonométrique asin() standard. La valeur renvoyée se trouve toujours dans la plage $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
Effectue l'opération trigonométrique acos() standard. La valeur renvoyée se trouve toujours dans la plage $ [0.0, \pi] $.
atan()
Effectue l'opération trigonométrique atan() standard. La valeur renvoyée se trouve toujours dans la plage $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
Convertit la valeur d'entrée en valeur à virgule flottante, puis effectue l'opération mathématique abs() standard.
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 la deuxième et la troisième valeurs.
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.

log()

Effectue l'opération mathématique base-$ e $ log() standard.

log2()

Simule un logarithme en base 2. Cette valeur est calculée en divisant le logarithme en base 10 (log10 de la valeur d'entrée) par le logarithme en base 10 de $ 2 $.

log10()

Effectue l'opération mathématique log10 en base 10 standard.

sqrt()

Effectue l'opération mathématique sqrt() standard.

cbrt()

Effectue l'opération mathématique cbrt() standard.

exp()

Effectue l'opération mathématique exp() standard.

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.

deg()

Effectue l'opération mathématique toDegrees() standard. $ \frac{\pi}{2} correspond à 90 degrés, et $ \pi $ à 180 degrés.

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 $.

pow(,)

Effectue l'opération mathématique pow() standard. La valeur de sortie est toujours un nombre à virgule flottante.

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.
icuText()

Convertit la chaîne du format de date d'entrée dans un format correspondant au format de 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

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

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
textLength()

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

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.