ডিএসএল অপারেটর রেফারেন্স

অপারেটরগুলি আপনাকে নির্দিষ্ট মানের বিপরীতে বৈশিষ্ট্য বৈশিষ্ট্যের মান পরীক্ষা করতে, তাদের একে অপরের সাথে তুলনা করতে এবং 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

তুলনা অপারেটর

মধ্যে

এক্সপ্রেশন 1 এর মান যখন এক্সপ্রেশন 2 এবং এক্সপ্রেশন 3 (অন্তর্ভুক্ত) এর মধ্যে থাকে তখন true মূল্যায়ন করে। এক্সপ্রেশন তাদের ডেটা প্রকারের উপর নির্ভর করে ভিন্নভাবে র‌্যাঙ্ক করা হয়। সাধারণ ডেটার ধরন যেমন নম্বর এবং স্ট্রিংগুলিকে কোটলিনে যেভাবে র‌্যাঙ্ক করা হয়।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 অভিব্যক্তি 3 ফলাফল
6 1 3 false
2 1 3 true

ডিএসএল উদাহরণ

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

সমান

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
6 1 false
2 2 true

ডিএসএল উদাহরণ

washer.operationalState equals STOPPED

এর চেয়ে বড়

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে বড় হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
6 1 true
1 6 false

ডিএসএল উদাহরণ

( blindsPosition.currentPositionLift greaterThan 0u )

greaterThanOrEquals

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে বড় বা সমান হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
8 6 true
6 6 true
1 6 false

ডিএসএল উদাহরণ

( starterNode.measuredValue greaterThanOrEquals 50 )

কম

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে কম হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
6 1 false
1 6 true

ডিএসএল উদাহরণ

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

lessThanOrEquals

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে কম বা সমান হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
8 6 false
6 6 true
1 6 true

ডিএসএল উদাহরণ

( starterNode.measuredValue lessThanOrEquals 25 )

সমান

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান না হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 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 মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 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))

বা

একটি যৌক্তিক বা অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 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))