> 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/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/logic/logic-operations.md).

# Logic Operations

هذه الدالة تقوم بتقييم عمليات منطقية ومقارنات على مدخل واحد أو أكثر. استخدمها لدمج فحوصات منطقية (boolean)، مقارنة قيم رقمية، أو اختزال شروط متعددة إلى مخرج واحد صحيح/خاطئ مناسب للتدفق التالي.

## 📥 المدخلات

* `Generic` يقبل أي نوع من البيانات. يمكن توصيل عدة مداخل ليتم تقييمها معًا.
* `Generic` مقبس افتراضي ثانٍ؛ يمكن إضافة مزيد من المداخل حسب الحاجة.

## 📤 المخرجات

* `Boolean` القيمة الناتجة (True/False) بعد تقييم العملية المنطقية أو المقارنة المختارة.

## 🕹️ الضوابط

* `Method` اختر العملية المنطقية أو المقارنة التي سيتم تطبيقها على المداخل. من الطرق الشائعة: `AND`, `OR`, `GREATER`, `SMALLER`, `EQUALS`, و `NOT EQUALS`.

## 🎨 الخصائص

* `Multi-input support` يدعم تقييم مدخلين أو أكثر معًا، وليس مقيدًا بقيمتين فقط.
* `Flexible input types` المداخل عامة ويمكن إرسال أرقام، boolean، قوائم أو قيم أخرى حسب السيناريو.
* `Context-aware comparisons` طرق المقارنة تعمل للمقارنات الزوجية وأيضًا لمقارنة المدخل الأول بعدة مدخلات أخرى.

## 📝 تعليمات الاستخدام

1. وصل قيمة واحدة أو أكثر إلى المداخل. المصادر الشائعة: أعداد، قياسات، أو إشارات boolean من كتل أخرى.
2. اختر العملية المطلوبة من صندوق `Method`.
3. يخرج البلوك قيمة واحدة `Boolean` تمثل نتيجة العملية.

أمثلة:

* استخدم `Method` = `AND` عندما تحتاج أن تكون كل الشروط صحيحة لتمرير الحالة.
* استخدم `GREATER` للتحقق ما إذا كانت قيمة مقاسة أكبر من عتبة أو أكبر من عدة قيم مرجعية.
* استخدم `EQUALS` للتحقق أن عدة مداخل متطابقة.

## 📊 سلوك التقييم

* `AND` يرجع True فقط إذا كانت كل القيم المدخلة تقيم كـ True.
* `OR` يرجع True إذا كانت أي قيمة من المداخل تقيم كـ True.
* `GREATER` يقارن المدخل الأول بالمدخل الثاني؛ عند وجود مداخل إضافية، يتحقق ما إذا كان المدخل الأول أكبر من كل الباقيين.
* `SMALLER` يعكس سلوك `GREATER` ويتحقق ما إذا كان المدخل الأول أصغر من الآخرين.
* `EQUALS` يرجع True عندما يكون المدخل الأول مساوٍ لكل المداخل الأخرى.
* `NOT EQUALS` يرجع True إذا اختلف أي من المداخل الأخرى عن المدخل الأول.

## 💡 نصائح وحيل

* دمجه مع كتل الكشف والعد
  * وصل `Object Count` من `Object Detection` أو `Object Detection - Custom` للتحقق إن كان عدد العناصر أكبر من عتبة باستخدام `GREATER` ثم تفعيل `Record Video` أو `Image Logger`.
* استخدامه مع نتائج التتبع
  * أدخل مخرجات التتبع مثل `Position - ID List` من `Object_Detection_Tracker` إلى هذا البلوك لإنشاء قواعد مثل "هل يوجد أي كائن متتبع" باستخدام `OR` أو `NOT EQUALS`.
* منطق القناع/السلامة
  * دمج مخرجات `Mask Detection` أو `Safety Equipment Detection` مع `AND` للتأكد من تحقق شروط السلامة المتعددة قبل إطلاق إنذار أو حفظ إطار.
* تحقق مسبق والتحكم في التدفق
  * استخدمه مع `Is None` أو `Replace None` للتحقق من المداخل قبل المعالجة التالية. مثال: تأكد من وجود بيانات الصورة وأن الكاشف أنتج نتائج قبل المتابعة.
* مقارنات القياسات
  * أدخل مخرجات رقمية من `Measure Position Distance`, `Get Dimension`, أو `Mean Value of Image` إلى طرق `GREATER`/`SMALLER` لعمل شروط نجاح/فشل لفحوصات الجودة.
* الاستخدام في أتمتة التدفق
  * اربط الناتج البولياني إلى `Led Output`, `Write Text On Image`, `CSV Export`, أو `MQTT Publish` للتصرف بناءً على نتائج الكشف أو القياس.

## 🛠️ استكشاف الأعطال وإصلاحها

* نتائج خاطئة غير متوقعة
  * تحقق من أنواع البيانات المارة إلى المداخل. قم بتحويل أو تطبيع القيم (مثلاً استخدم `Round` أو `String Operations`) حتى تعمل المقارنات كما هو متوقع.
* المقارنات مع مداخل متعددة تختلف في السلوك
  * تذكّر أن `GREATER` و `SMALLER` تقارن المدخل الأول بالآخرين. إذا كنت بحاجة لمقارنات زوجية، مرّر أزواج مناسبة أو استخدم عدة كتل Logic Operations.
* لا يوجد مخرج أو التدفق متوقف
  * تأكد من توصيل أو صلاحية مدخل واحد على الأقل. استخدم `Is None` أو `Replace None` للحماية من القيم المفقودة.
