> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/data-logic/logic/logic-operations.md).

# Logic Operations

Ce bloc fonction évalue des opérations logiques et des comparaisons sur un ou plusieurs entrées. Utilisez-le pour combiner des vérifications booléennes, comparer des valeurs numériques ou réduire plusieurs conditions en une seule sortie vraie/fausse.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

`Generic` Accepte n’importe quel type de donnée. Plusieurs entrées peuvent être connectées et évaluées ensemble.

`Generic` Accepte n’importe quel type de donnée. (Deuxième prise par défaut ; d’autres entrées peuvent être ajoutées)

## 📤 Sorties <a href="#outputs" id="outputs"></a>

`Boolean` La valeur résultante vrai/faux après évaluation de l’opération logique ou de comparaison sélectionnée.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Method` Sélectionnez quelle opération logique ou comparaison appliquer aux entrées. Les méthodes courantes incluent AND, OR, GREATER, SMALLER, EQUALS et NOT EQUALS.

## 🎨 Fonctionnalités <a href="#features" id="features"></a>

`Multi-input support` Évalue deux entrées ou plus ensemble, pas limité à seulement deux valeurs.

`Flexible input types` Les entrées sont génériques : vous pouvez fournir des nombres, des booléens, des listes ou d’autres valeurs selon votre scénario.

`Context-aware comparisons` Les méthodes de comparaison fonctionnent à la fois pour des comparaisons par paires et pour vérifier la première entrée par rapport à plusieurs autres.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Connectez une ou plusieurs valeurs aux entrées. Sources typiques : des compteurs, des valeurs de mesure ou des signaux booléens provenant d’autres blocs fonction.
2. Choisissez l’opération désirée dans la combobox `Method`.
3. Le bloc produit une seule sortie `Boolean` représentant le résultat de l’opération logique/de comparaison sélectionnée.

Exemples :

* Utilisez `Method` sur AND lorsque vous avez besoin que toutes les conditions soient vraies pour valider.
* Utilisez GREATER pour vérifier si une valeur mesurée est supérieure à un seuil ou à plusieurs valeurs de référence.
* Utilisez EQUALS pour vérifier que plusieurs entrées sont identiques.

## 📊 Comportement d'évaluation <a href="#evaluation" id="evaluation"></a>

* AND renvoie true seulement si chaque valeur d’entrée est évaluée comme vraie.
* OR renvoie true si au moins une entrée est évaluée comme vraie.
* GREATER compare la première entrée à la seconde ; lorsqu’il y a plus d’entrées, il vérifie si la première entrée est supérieure à chacune des autres.
* SMALLER fonctionne comme GREATER mais teste si la première entrée est inférieure.
* EQUALS renvoie true lorsque la première entrée est égale à toutes les autres entrées.
* NOT EQUALS renvoie true si l’une des autres entrées diffère de la première entrée.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combinez avec des blocs de détection et de comptage
  * Connectez `Object Count` depuis `Object Detection` ou `Object Detection - Custom` pour vérifier si le nombre d’objets est supérieur à un seuil avec GREATER, puis déclenchez `Record Video` ou `Image Logger`.
* Utilisez avec des résultats de suivi
  * Alimentez les sorties de tracking comme `Position - ID List` depuis `Object_Detection_Tracker` dans ce bloc pour créer des règles du type « est-ce qu’un objet suivi est présent » en utilisant OR ou NOT EQUALS.
* Logique de masque / sécurité
  * Combinez les sorties de `Mask Detection` ou `Safety Equipment Detection` avec AND pour vérifier que plusieurs conditions de sécurité sont remplies avant de déclencher une alarme ou d’enregistrer une image.
* Pré-vérifications et contrôle de flux
  * Utilisez ce bloc avec `Is None` ou `Replace None` pour valider les entrées avant le traitement en aval. Par exemple, assurez-vous que les données d’image existent et qu’un détecteur a produit des résultats avant de continuer.
* Comparaisons de mesures
  * Alimentez les sorties numériques de `Measure Position Distance`, `Get Dimension` ou `Mean Value of Image` vers GREATER/SMALLER pour créer des conditions de réussite/échec pour des contrôles qualité.
* Utilisation dans des flux d’automatisation
  * Rattachez le résultat booléen à `Led Output`, `Write Text On Image`, `CSV Export` ou `MQTT Publish` pour agir en fonction des résultats de détection ou de mesure.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Résultats faux inattendus
  * Vérifiez les types de données qui circulent vers les entrées. Convertissez ou normalisez les valeurs (par exemple, utilisez `Round` ou `String Operations`) pour que les comparaisons se comportent comme prévu.
* Comparaisons avec plusieurs entrées se comportent différemment
  * Rappelez-vous que GREATER et SMALLER comparent la première entrée aux autres. Si vous avez besoin de comparaisons par paires, fournissez les paires adéquates ou utilisez plusieurs blocs Logic Operations.
* Pas de sortie ou flux bloqué
  * Assurez-vous qu’au moins une entrée est connectée ou valide. Utilisez `Is None` ou `Replace None` pour protéger contre les valeurs manquantes.
