مرجع مشغّل DSL لنظام التشغيل iOS

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

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

import GoogleHomeSDK

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

بين

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

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

مثال على DSL

let time = stateReader(structure, Google.TimeTrait)
condition {
  time.currentTime
     .between(
      time.sunsetTime,
      time.sunriseTime)
}

يساوي

يتم تقييمها إلى true عندما تكون "الصيغة 1" مساوية "للصيغة 2".

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

مثال على DSL

lightOnOffState.onOff.equals(true)

greaterThan

يتم تقييمها إلى true عندما تكون "الصيغة 1" أكبر من "الصيغة 2".

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

مثال على DSL

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)

greaterThanOrEquals

تُقيَّم على أنّها true عندما تكون "الصيغة 1" أكبر من أو تساوي "الصيغة 2".

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

مثال على DSL

starterNode.measuredValue.greaterThanOrEquals(50)

lessThan

يتم تقييمها إلى true عندما تكون "الصيغة 1" أقل من "الصيغة 2".

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

مثال على DSL

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)

lessThanOrEquals

يتم تقييمها إلى true عندما تكون "الصيغة 1" أقل من أو تساوي "الصيغة 2".

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

مثال على DSL

starterNode.measuredValue.lessThanOrEquals(50)

notEquals

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

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

مثال على DSL

occupancySensorStarter.occupancy.notEquals(.occupied)

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

لا تتوافق عوامل التشغيل ذات الصيغة الداخلية، مثل + أو - أو * أو /، مع إنشاء تعبيرات أتمتة في Swift. بدلاً من ذلك، استخدِم العوامل التي توفّرها حزمة SDK، مثل Plus أو Minus.

إضافة

عامل الجمع .plus( )

مثال على DSL

var totalCount = 0
...
totalCount = totalCount.plus(1)

طرح

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

مثال على DSL

var countdown = 10
...
countdown = countdown.minus(1)

ضرب

عامل الضرب .multiply( )

مثال على DSL

val millis = seconds.multiply(1000)

قسمة

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

مثال على DSL

val rpm = revolutions.divide(minutes)

العوامل المنطقية

و

تجمع هذه الدالة بين تعبيرَين في تعبير AND منطقي، وتُقيّم إلى true عندما يكون كلا التعبيرين true.

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

مثال على DSL

condition {
  let exp1 = armState.armState
  let exp2 = doorLockState.lockState
  exp1.and(exp2)
}

ليس

تعكس القيمة المنطقية لتعبير.

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

مثال على DSL

condition {
  let exp1 = armState.armState
  let exp2 = doorLockState.lockState
  exp1.and(exp2.not())
}

أو

تجمع بين تعبيرين في تعبير OR منطقي.

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

مثال على DSL

condition {
  let exp1 = doorLockState.lockState.equals(.unlocked)
  let exp2 = contactSensorState.stateValue.equals(false)
  exp1.or(exp2)
}