Fungsi untuk digunakan dalam AWS IoT Events ekspresi - AWS IoT Events

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi untuk digunakan dalam AWS IoT Events ekspresi

AWS IoT Events menyediakan serangkaian fungsi bawaan untuk meningkatkan kemampuan ekspresi model detektor Anda. Fungsi-fungsi ini memungkinkan manajemen timer, konversi tipe, pemeriksaan null, identifikasi tipe pemicu, verifikasi input, manipulasi string, dan operasi bitwise. Dengan memanfaatkan fungsi-fungsi ini, Anda dapat membuat logika AWS IoT Events pemrosesan responsif, meningkatkan efektivitas keseluruhan aplikasi IoT Anda.

Fungsi Bawaan
timeout("timer-name")

Mengevaluasi true apakah timer yang ditentukan telah berlalu. Ganti”nama pengatur waktu“dengan nama timer yang Anda tentukan, dalam tanda kutip. Dalam tindakan peristiwa, Anda dapat menentukan pengatur waktu dan kemudian memulai pengatur waktu, mengatur ulang, atau menghapus yang telah Anda tentukan sebelumnya. Lihat lapangandetectorModelDefinition.states.onInput|onEnter|onExit.events.actions.setTimer.timerName.

Timer yang disetel dalam satu status dapat direferensikan dalam keadaan yang berbeda. Anda harus mengunjungi negara bagian di mana Anda membuat timer sebelum Anda memasukkan status di mana timer direferensikan.

Misalnya, model detektor memiliki dua status, TemperatureChecked danRecordUpdated. Anda membuat timer di TemperatureChecked negara bagian. Anda harus mengunjungi TemperatureChecked negara bagian terlebih dahulu sebelum Anda dapat menggunakan timer di RecordUpdated negara bagian.

Untuk memastikan akurasi, waktu minimum pengatur waktu harus diatur adalah 60 detik.

catatan

timeout()mengembalikan true hanya pertama kali diperiksa setelah kedaluwarsa timer aktual dan kembali false setelahnya.

convert(type, expression)

Mengevaluasi nilai ekspresi yang dikonversi ke tipe yang ditentukan. Bagian type nilainya harusString,Boolean, atauDecimal. Gunakan salah satu kata kunci ini atau ekspresi yang mengevaluasi string yang berisi kata kunci. Hanya konversi berikut yang berhasil dan mengembalikan nilai yang valid:

  • Boolean -> string

    Mengembalikan string "true" atau"false".

  • Desimal -> string

  • String -> Boolean

  • String -> desimal

    String yang ditentukan harus merupakan representasi yang valid dari angka desimal, atau convert() gagal.

Jika convert() tidak mengembalikan nilai yang valid, ekspresi bahwa itu adalah bagian dari juga tidak valid. Hasil ini setara dengan false dan tidak akan memicu transisi actions atau ke yang nextState ditentukan sebagai bagian dari peristiwa di mana ekspresi terjadi.

isNull(expression)

Mengevaluasi true jika ekspresi mengembalikan null. Misalnya, jika input MyInput menerima pesan{ "a": null }, maka yang berikut ini mengevaluasitrue, tetapi isUndefined($input.MyInput.a) mengevaluasi ke. false

isNull($input.MyInput.a)
isUndefined(expression)

Mengevaluasi true apakah ekspresi tidak terdefinisi. Misalnya, jika input MyInput menerima pesan{ "a": null }, maka yang berikut ini mengevaluasifalse, tetapi isNull($input.MyInput.a) mengevaluasi ke. true

isUndefined($input.MyInput.a)
triggerType("type")

Bagian type nilainya bisa "Message" atau"Timer". Mengevaluasi true apakah kondisi peristiwa di mana itu muncul sedang dievaluasi karena timer telah kedaluwarsa seperti pada contoh berikut.

triggerType("Timer")

Atau pesan input diterima.

triggerType("Message")
currentInput("input")

Mengevaluasi true apakah kondisi acara di mana itu muncul sedang dievaluasi karena pesan input yang ditentukan telah diterima. Misalnya, jika input Command menerima pesan{ "value": "Abort" }, maka yang berikut ini akan dievaluasi. true

currentInput("Command")

Gunakan fungsi ini untuk memverifikasi bahwa kondisi sedang dievaluasi karena input tertentu telah diterima dan timer belum kedaluwarsa, seperti pada ekspresi berikut.

currentInput("Command") && $input.Command.value == "Abort"
Fungsi Pencocokan String
startsWith(expression1, expression2)

Mengevaluasi true apakah ekspresi string pertama dimulai dengan ekspresi string kedua. Misalnya, jika input MyInput menerima pesan{ "status": "offline"}, maka yang berikut ini akan dievaluasi. true

startsWith($input.MyInput.status, "off")

Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

endsWith(expression1, expression2)

Mengevaluasi true apakah ekspresi string pertama berakhir dengan ekspresi string kedua. Misalnya, jika input MyInput menerima pesan{ "status": "offline" }, maka yang berikut ini akan dievaluasi. true

endsWith($input.MyInput.status, "line")

Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

contains(expression1, expression2)

Mengevaluasi true apakah ekspresi string pertama berisi ekspresi string kedua. Misalnya, jika input MyInput menerima pesan{ "status": "offline" }, maka yang berikut ini akan dievaluasi. true

contains($input.MyInput.value, "fli")

Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

Fungsi Manipulasi Bitwise Integer
bitor(expression1, expression2)

Mengevaluasi bitwise OR dari ekspresi integer (operasi OR biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input MyInput menerima pesan{ "value1": 13, "value2": 5 }, maka yang berikut ini akan dievaluasi. 13

bitor($input.MyInput.value1, $input.MyInput.value2)

Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

bitand(expression1, expression2)

Mengevaluasi bitwise AND dari ekspresi integer (ANDoperasi biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input MyInput menerima pesan{ "value1": 13, "value2": 5 }, maka yang berikut ini akan dievaluasi. 5

bitand($input.MyInput.value1, $input.MyInput.value2)

Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

bitxor(expression1, expression2)

Mengevaluasi bitwise XOR dari ekspresi integer (XORoperasi biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input MyInput menerima pesan{ "value1": 13, "value2": 5 }, maka yang berikut ini akan dievaluasi. 8

bitxor($input.MyInput.value1, $input.MyInput.value2)

Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.

bitnot(expression)

Mengevaluasi bitwise NOT dari ekspresi integer (NOToperasi biner dilakukan pada bit integer). Misalnya, jika input MyInput menerima pesan{ "value": 13 }, maka yang berikut ini akan dievaluasi. -14

bitnot($input.MyInput.value)

Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.