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

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

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

import GoogleHomeSDK

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

بين

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

مثال
التعبير 1 التعبير 2 Expression 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)
}