Aller au contenu

Comparer des nombres

Résumé

  • Nom interne : CompareNumber
  • Catégorie : Outils
  • Objectif : Comparer deux valeurs numériques avec un opérateur de comparaison configurable et retourner un résultat booléen.
  • Type de tâche : Conditionnelle

Compatibilité

  • Version minimale AndroMate : 1.1.0

  • Version maximale AndroMate : 1.1.0

  • Android minimum : Android 13 (API 33)

  • Android maximum testé : Android 16 (API 36)

  • Constructeurs supportés :

    • ✅ Samsung (One UI 6.x / 7.x / 8.x)
    • ✅ Google Pixel (Android Stock)
    • ⚠️ Autres constructeurs — non testés
  • Permissions requises :

    • Aucune

Description détaillée

La tâche Comparer des nombres compare deux valeurs numériques (num_x et num_y) à l'aide d'un opérateur de comparaison spécifié. Elle retourne true ou false et dirige l'exécution vers la branche correspondante du graphe de workflow.

num_x et num_y supportent les références $variable_workflow — elles sont résolues à l'exécution et parsées en valeurs double avant que la comparaison ne soit effectuée. La valeur par défaut pour les deux est 0.


Opérateurs de comparaison

Le champ compare_type est un code entier qui détermine comment num_x est comparé à num_y.

Code compare_type Opérateur Condition
1 == num_x est égal à num_y
2 > num_x est strictement supérieur à num_y
3 < num_x est strictement inférieur à num_y
4 >= num_x est supérieur ou égal à num_y
5 <= num_x est inférieur ou égal à num_y

Paramètres d'entrée

Paramètre Type Obligatoire Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
num_x Double Oui Toute valeur numérique — supporte les références $variable Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 0
num_y Double Oui Toute valeur numérique — supporte les références $variable Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 0
compare_type Integer Oui 1 (==) / 2 (>) / 3 (<) / 4 (>=) / 5 (<=) Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0

Paramètres de sortie

Cette tâche est une tâche conditionnelle — elle ne produit aucune variable de sortie. Le résultat booléen contrôle la branche d'exécution :

Résultat Condition Branche empruntée
true La condition de comparaison est satisfaite Lien "true"
false La condition de comparaison n'est pas satisfaite Lien "false"

Exceptions

Code Nom de l'exception Description
COMPARE-VAR-001 Type de comparaison non supporté La valeur fournie dans compare_type ne correspond à aucun code d'opérateur supporté. Codes acceptés : 1 (==), 2 (>), 3 (<), 4 (>=), 5 (<=).

Diagramme d'exécution

Le diagramme suivant illustre l'implémentation réelle basée sur le code Android :

flowchart TD
    Start([Démarrer CompareNumber]) --> ReadType[📋 Lire le code entier compare_type]
    ReadType --> ValidateType{Code connu ?}
    ValidateType -->|Non| E1[❌ COMPARE-VAR-001]

    ValidateType -->|Oui| ResolveX[🔄 Résoudre num_x\ndepuis le contexte workflow]
    ResolveX --> ResolveY[🔄 Résoudre num_y\ndepuis le contexte workflow]
    ResolveY --> Eval{Évaluer\nnum_x OP num_y}

    Eval -->|code 1 — ==| EqualOp["num_x == num_y"]
    Eval -->|code 2 — >| SupOp["num_x > num_y"]
    Eval -->|code 3 — <| InfOp["num_x < num_y"]
    Eval -->|code 4 — >=| EqualSupOp["num_x >= num_y"]
    Eval -->|code 5 — <=| EqualInfOp["num_x <= num_y"]

    EqualOp --> Result{résultat booléen}
    SupOp --> Result
    InfOp --> Result
    EqualSupOp --> Result
    EqualInfOp --> Result

    Result -->|true| True([✅ true → suivre la branche true])
    Result -->|false| False([✅ false → suivre la branche false])

    E1 --> Error([❌ Exception])

    style Start fill:#e3f2fd
    style True fill:#c8e6c9
    style False fill:#ffe0e0
    style Error fill:#ffcdd2
    style E1 fill:#ffcdd2
    style ResolveX fill:#fff9c4
    style ResolveY fill:#fff9c4
    style EqualOp fill:#f3e5f5
    style SupOp fill:#f3e5f5
    style InfOp fill:#f3e5f5
    style EqualSupOp fill:#f3e5f5
    style EqualInfOp fill:#f3e5f5

Comment ça fonctionne :

  1. Lire l'opérateur : le code entier compare_type est lu depuis le JSON de la tâche
  2. Valider : si le code est inconnu, lève COMPARE-VAR-001
  3. Résoudre les opérandes : num_x et num_y sont résolus depuis le contexte workflow et parsés en double
  4. Exécuter la comparaison : la comparaison numérique correspondante est appliquée
  5. Retourner le résultat : true ou false — le moteur workflow route vers la branche correspondante

Exemples de code

Exemple 1 — Vérification d'égalité

{
  "CompareNumber": [
    {
      "id": "1",
      "title": "HTTP 200 ?",
      "num_x": "$http_status",
      "num_y": "200",
      "compare_type": 1
    }
  ]
}

Retourne true si $http_status est égal à 200.


Exemple 2 — Inférieur à

{
  "CompareNumber": [
    {
      "id": "2",
      "title": "RTT acceptable ?",
      "num_x": "$rtt_ms",
      "num_y": "500",
      "compare_type": 3
    }
  ]
}

Retourne true si $rtt_ms est strictement inférieur à 500.


Exemple 3 — Supérieur ou égal

{
  "CompareNumber": [
    {
      "id": "3",
      "title": "Signal suffisant ?",
      "num_x": "$signal_dbm",
      "num_y": "-80",
      "compare_type": 4
    }
  ]
}

Retourne true si $signal_dbm est supérieur ou égal à -80.


Détails des paramètres d'entrée

1. Paramètre d'entrée : num_x

L'opérande numérique de gauche. Supporte les références $variable_workflow — résolues à l'exécution et parsées en valeur double avant la comparaison.

  • Défaut : 0
  • Supporte les variables : Oui

2. Paramètre d'entrée : num_y

L'opérande numérique de droite. Supporte les références $variable_workflow — résolues à l'exécution et parsées en valeur double avant la comparaison.

  • Défaut : 0
  • Supporte les variables : Oui

3. Paramètre d'entrée : compare_type

Un code entier qui sélectionne la comparaison numérique à appliquer entre num_x et num_y.

Code Opérateur Condition
1 == num_x est égal à num_y
2 > num_x est strictement supérieur à num_y
3 < num_x est strictement inférieur à num_y
4 >= num_x est supérieur ou égal à num_y
5 <= num_x est inférieur ou égal à num_y
  • Défaut : — (obligatoire, pas de valeur par défaut — déclenche COMPARE-VAR-001 si code inconnu)

Exemple JSON complet

{
  "CompareNumber": [
    {
      "id": "1",
      "title": "Vérifier RTT sous le seuil",
      "num_x": "$rtt_ms",
      "num_y": "100",
      "compare_type": 3
    }
  ]
}