مرجع عامل تشغيل DSL

تسمح لك عوامل التشغيل بالتحقّق من قيمة سمات السمات مقارنةً بقيمة معيّنة، ومقارنتها ببعضها البعض، ودمج التعبيرات المستخدَمة في عُقد condition.

تتوفّر عوامل التشغيل من خلال عبارات import التالية:

import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or

عوامل تشغيل المقارنة

بين

يتم تقييمها على أنّها true عندما تكون قيمة التعبير 1 بين قيمة التعبير 2 والتعبير 3 (شاملة). يتم ترتيب التعبيرات بشكل مختلف استنادًا إلى نوع بياناتها. يتم ترتيب أنواع البيانات البسيطة، مثل الأرقام والسلاسل، بالطريقة نفسها في Kotlin.

مثال
التعبير 1 التعبير 2 التعبير 3 النتيجة
6 1 3 false
2 1 3 true

مثال على لغة وصف البيانات

val time = stateReader<_>(structure, Time)
condition() {
  expression = time.currentTime
     .between(
      time.sunsetTime,
      time.sunriseTime)
}

يساوي

يتم تقييمها على أنّها true عندما يساوي التعبير 1 التعبير 2.

مثال
التعبير 1 التعبير 2 النتيجة
6 1 false
2 2 true

مثال على لغة وصف البيانات

washer.operationalState equals STOPPED

greaterThan

يتم تقييمها على أنّها true عندما يكون التعبير 1 أكبر من التعبير 2.

مثال
التعبير 1 التعبير 2 النتيجة
6 1 true
1 6 false

مثال على لغة وصف البيانات

( blindsPosition.currentPositionLift greaterThan 0u )

greaterThanOrEquals

يتم تقييمها على أنّها true عندما يكون التعبير 1 أكبر من أو يساوي التعبير 2.

مثال
التعبير 1 التعبير 2 النتيجة
8 6 true
6 6 true
1 6 false

مثال على لغة الترميز المخصّصة للبيانات

( starterNode.measuredValue greaterThanOrEquals 50 )

lessThan

true عندما يكون التعبير 1 أقل من التعبير 2

مثال
التعبير 1 التعبير 2 النتيجة
6 1 false
1 6 true

مثال على لغة الترميز المخصّصة للبيانات

time.currentTime lessThan LocalTime.of(22,0,0,0)

lessThanOrEquals

يتم تقييمها على أنّها true عندما يكون التعبير 1 أقل من أو يساوي التعبير 2.

مثال
التعبير 1 التعبير 2 النتيجة
8 6 false
6 6 true
1 6 true

مثال على لغة الترميز المخصّصة للبيانات

( starterNode.measuredValue lessThanOrEquals 25 )

notEquals

يتم تقييمها على أنّها true عندما لا يكون التعبير 1 مساويًا للتعبير 2.

مثال
التعبير 1 التعبير 2 النتيجة
6 1 true
1 6 true
2 2 false

مثال على لغة وصف البيانات

occupancyStateChange.occupied notEquals 0

عوامل التشغيل الحسابية

إضافة

عامل التشغيل "الإضافة" ( + ).

مثال على لغة الترميز المخصّصة للبيانات

var totalCount = 0
...
totalCount = totalCount + 1

طرح

عامل الطرح ( - ).

مثال على لغة الترميز المخصّصة للبيانات

var countdown = 10
...
countdown = countdown - 1

ضرب

عامل التشغيل الضرب ( * ).

مثال على لغة الترميز المخصّصة للبيانات

val millis = seconds * 1000

قسمة

عامل القسمة ( / ).

مثال على لغة الترميز المخصّصة للبيانات

val rpm = revolutions / minutes

عوامل التشغيل المنطقية

و

تجمع بين تعبيرَين في تعبير منطقي "و"، وتُقيّم بـ true عندما يكون كلا التعبيرَين true.

مثال
التعبير 1 التعبير 2 النتيجة
false false false
true false false
false true false
true true true

مثال على لغة وصف البيانات

((device.occupied notEquals 0) and
   time.currentTime.between(time.sunriseTime, time.sunsetTime))

ليس

تُنِف القيمة المنطقية لتعبير معيّن.

مثال
التعبير النتيجة
true false
false true

مثال على لغة الترميز المخصّصة للبيانات

time.currentTime not (between(time.sunriseTime, time.sunsetTime))

أو

تجمع بين تعبيرَين في تعبير منطقي "أو".

مثال
التعبير 1 التعبير 2 النتيجة
false false false
true false true
false true true

مثال على لغة وصف البيانات

(time.currentTime equals LocalTime.of(10,0,0,0)) or
  (time.currentTime equals LocalTime.of(22,0,0,0))