Anda dapat mengembangkan driver menggunakan SDK untuk Node.js guna menghubungkan perangkat ke gateway, lalu menghubungkannya ke Platform IoT.
Untuk kode sumber SDK untuk Node.js, kunjungi Open-source SDK untuk Node.js.
Instalasi dan penggunaan
- Jalankan perintah berikut untuk menginstal SDK:
npm install linkedge-thing-access-sdk - Setelah SDK terinstal, Anda dapat mengembangkan driver berdasarkan antarmuka SDK.Penting Jika Anda menjalankan driver secara langsung setelah pengembangan selesai, akan terjadi error. Anda harus men-deploy driver ke gateway melalui Konsol Platform IoT sebelum menjalankannya. Untuk informasi lebih lanjut tentang cara men-deploy driver ke gateway, lihat Pengembangan Driver.
Berikut adalah contoh penggunaan SDK untuk mengembangkan driver:
const { Config, ThingAccessClient } = require('linkedge-thing-access-sdk'); const callbacks = { setProperties: function (properties) { // Setel properti ke physical thing dan kembalikan hasilnya. // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut. return { code: 0, message: 'success', }; }, getProperties: function (keys) { // Ambil properti dari physical thing dan kembalikan hasilnya. // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut. return { code: 0, message: 'success', params: { key1: 'value1', key2: 'value2', } }; }, callService: function (name, args) { // Panggil layanan pada physical thing dan kembalikan hasilnya. // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut. return new Promise((resolve) => { resolve({ code: 0, message: 'success', }); }); } }; Config.get() .then(config => { const thingInfos = config.getThingInfos(); thingInfos.forEach(thingInfo => { const client = new ThingAccessClient(thingInfo, callbacks); client.registerAndOnline() .then(() => { return new Promise(() => { setInterval(() => { client.reportEvent('high_temperature', { temperature: 41 }); client.reportProperties({ 'temperature': 41 }); }, 2000); }); }) .catch(err => { console.log(err); client.cleanup(); }); .catch(err => { console.log(err); }); }); });
Konstanta
| Parameter | Tipe | Deskripsi |
| PRODUCT_KEY | String | Kunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke ProductKey yang dialokasikan oleh Platform IoT kepada Anda. |
| DEVICE_NAME | String | Kunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke DeviceName yang dialokasikan oleh Platform IoT kepada Anda. |
| LOCAL_NAME | String | Kunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke nama perangkat on-premises. |
| CALL_SERVICE | String | Kunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk memanggil layanan perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.callService(). |
| GET_PROPERTIES | String | Kunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk mendapatkan properti perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.getProperties(). |
| SET_PROPERTIES | String | Kunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk menyetel properti perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.setProperties(). |
| RESULT_SUCCESS | Number | Operasi berhasil. Ini adalah kode status yang digunakan oleh fungsi callback. |
| RESULT_FAILURE | Number | Operasi gagal. Ini adalah kode status yang digunakan oleh fungsi callback. |
| ERROR_CLEANUP | String | Kode kesalahan untuk fungsi cleanup(). |
| ERROR_CONNECT | String | Kode kesalahan untuk fungsi registerAndOnline(). |
| ERROR_DISCONNECT | String | Kode kesalahan untuk fungsi offline(). |
| ERROR_GET_CONFIG | String | Kode kesalahan untuk fungsi getConfig(). |
| ERROR_GET_TSL | String | Kode kesalahan untuk fungsi getTsl(). |
| ERROR_GET_TSL_EXT_INFO | String | Kode kesalahan untuk fungsi getTslExtInfo(). |
| ERROR_UNREGISTER | String | Kode kesalahan untuk fungsi unregister(). |
Config
Informasi terkait konfigurasi driver.
- static get()
Mengembalikan objek konfigurasi driver global, yang dihasilkan oleh sistem saat perangkat dikaitkan dengan driver.
Catatan Perbedaan antara fungsi Config.get() dan fungsi getConfig() adalah bahwa getConfig() mengembalikan string konfigurasi, sedangkan Config.get() mengembalikan objek konfigurasi.Respons:Promise<Config> - static registerChangedCallback(callback)
Fungsi callback yang digunakan untuk menangani perubahan konfigurasi.
Tabel 1. Parameter permintaan Parameter Tipe Deskripsi callback Function Fungsi callback yang dipanggil ketika terjadi perubahan konfigurasi. - static unregisterChangedCallback(callback)
Fungsi callback yang digunakan untuk mengembalikan perubahan konfigurasi.
Tabel 2. Parameter permintaan Parameter Tipe Deskripsi callback Function Fungsi callback yang dipanggil ketika terjadi perubahan konfigurasi. - Config(string)
Membuat objek Config baru berdasarkan string konfigurasi.
Tabel 3. Parameter permintaan Parameter Tipe Deskripsi string String String konfigurasi JSON. - getThingInfos()
Mengembalikan semua informasi terkait perangkat.
Respons:ThingInfo[] - getDriverInfo()
Mengembalikan informasi driver.
Respons:Object
ThingInfo
Fungsi ini digunakan untuk mengidentifikasi informasi perangkat yang terhubung ke Link IoT Edge. Setelah perangkat terhubung ke Link IoT Edge, informasi seperti ProductKey, DeviceName, dan konfigurasi kustom perangkat dapat diakses melalui fungsi ini.
ThingInfo(productKey, deviceName, custom)Membuat objek ThingInfo baru.
| Parameter | Tipe | Deskripsi |
| productKey | String | Identifier unik produk. |
| deviceName | String | Nama perangkat. |
| custom | Object | Konfigurasi kustom perangkat. |
ThingAccessClient
Klien yang memungkinkan perangkat terhubung ke Platform IoT. Anda dapat menggunakan klien ini untuk melaporkan properti dan event, serta mengirim perintah dari cloud ke perangkat.
- ThingAccessClient(config, callbacks)
Konstruktor yang diinisialisasi dengan parameter config dan callbacks.
Tabel 5. Parameter permintaan Parameter Tipe Deskripsi config Object Metadata yang digunakan untuk mengonfigurasi klien. Format: { "productKey": "Your Product Key", "deviceName": "Your Device Name" }callbacks Object Objek fungsi callback. Format: callbacks: { setProperties: function(properties) {}, getProperties: function(keys) {}, callService: function(name, args) {} }- Untuk parameter callback penyetelan properti perangkat, lihat bagian callbacks.setProperties.
- Untuk parameter callback pengambilan properti perangkat, lihat bagian callbacks.getProperties.
- Untuk parameter callback pemanggilan layanan perangkat, lihat bagian callbacks.callService.
- callbacks.setProperties(properties)
Fungsi callback untuk menyetel properti perangkat.
Tabel 6. Parameter permintaan Parameter Tipe Deskripsi properties Object Objek properti. Format nilai properti sebagai berikut: { "key1": "value1", "key2": "value2" }Respons:{ "code": 0, "message": "string", "params": {} }Tabel 7. Parameter Respons Parameter Type Deskripsi code Number Kode status. - 0: menunjukkan panggilan berhasil.
- Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
message String Opsional. Informasi deskripsi status. params Object Opsional. Parameter ini dapat digunakan untuk mengembalikan hasil konfigurasi tiap properti. Parameter ini berisi nilai aktual properti. - callbacks.getProperties(keys)
Fungsi callback yang digunakan untuk mendapatkan properti perangkat tertentu.
Tabel 8. Parameter permintaan Parameter Tipe Deskripsi keys String[] Nama properti. Formatnya sebagai berikut: ['key1', 'key2']Respons:{ "code": 0, "message": "string", "params": {} }Tabel 9. Parameter Respons Parameter Tipe Deskripsi code Number Kode status. - 0: menunjukkan panggilan berhasil.
- Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
message String Opsional. Informasi deskripsi status. params Object Opsional. Parameter ini dapat digunakan untuk mengembalikan nilai properti yang diminta jika permintaan berhasil. - callbacks.callService(name, args)
Fungsi callback untuk memanggil layanan perangkat.
Tabel 10. Parameter permintaan Parameter Type Deskripsi name String Nama layanan perangkat. args Object Daftar parameter input layanan. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" }Tabel 11. Parameter Respons Parameter Tipe Deskripsi code Number Kode status. - 0: menunjukkan panggilan berhasil.
- Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
message String Opsional. Informasi deskripsi status. params Object Opsional. Parameter ini dapat digunakan untuk mengembalikan informasi tambahan saat layanan dipanggil. - registerAndOnline()
Mendaftarkan perangkat ke gateway dan memberi tahu gateway untuk menghubungkan perangkat ke Platform IoT. Perangkat harus didaftarkan dan dihubungkan ke Platform IoT sebelum dapat menerima perintah atau mengirim data ke Platform IoT.
Respons:Promise<Void> - online()
Memberi tahu gateway bahwa perangkat sedang online. Fungsi ini digunakan ketika perangkat yang sebelumnya offline kembali online.
Respons:Promise<Void> - offline()
Memberi tahu gateway bahwa perangkat sedang offline.
Respons:Promise<Void> - reportEvent(eventName, args)
Melaporkan event perangkat ke Platform IoT.
Tabel 12. Parameter permintaan Parameter Type Deskripsi eventName String Nama event, yang sama dengan nama event yang Anda tentukan dalam definisi produk. args Object Kunci dan nilai dalam event. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" } - reportProperties(properties)
Melaporkan properti perangkat ke Platform IoT.
Tabel 13. Parameter permintaan Parameter Tipe Deskripsi properties Object Kunci dan nilai dalam properti. Formatnya sebagai berikut: { "key1": "value1", "key2": "value2" } - getTsl()
Mengembalikan string TSL perangkat. Format datanya sama seperti di Platform IoT.
Respons:Promise<Void> - getTslExtInfo()
Mengembalikan informasi ekstensi TSL.
Respons:Promise<String> - cleanup()
Membersihkan sumber daya. Gunakan fungsi ini untuk melepaskan sumber daya yang digunakan.
Respons:Promise<Void> - unregister()
Menghapus perangkat dari gateway. Gunakan fungsi ini dengan hati-hati.
Respons:Promise<Void>
getConfig()
Promise<String>destroy()
Menghapus semua sumber daya yang digunakan oleh SDK. Panggil fungsi destroy() ketika Anda tidak lagi menggunakan SDK.
Promise<Void>