تتيح لك عوامل التشغيل التحقّق من قيمة سمات السمات مقابل قيم
محدّدة، ومقارنتها ببعضها البعض، ودمج التعبيرات المستخدَمة في
عُقد 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)
}