Perbedaan utama antara V3.0.1 dan versi sebelumnya adalah Anda dapat memilih file C dari fitur tertentu berdasarkan kebutuhan bisnis, lalu mengkompilasi SDK secara kustom tanpa harus menggunakan kompiler bawaan SDK.
V3.0.1
Berikut ini menjelaskan perbedaan antara SDK V2.3.0 (dirilis November 2018) dan SDK V3.0.1 (dirilis Maret 2019).
Pemindahan menggunakan kode sumber
Metode pengembangan ini cocok untuk mesin lokal yang menjalankan
Ubuntu16.04 64-bit,Windows XP,Windows 7, atauWindows 10.Anda dapat menjalankan perintah
make menuconfigdi Ubuntu atau klik fileconfig.batdi Windows untuk memilih fitur.Setelah memilih fitur berdasarkan kebutuhan bisnis, Anda dapat menjalankan perintah
extract.shdi Ubuntu atau klik fileextract.batdi Windows untuk mengekstrak file sumber yang diperlukan.Anda dapat menambahkan file sumber ke proyek lokal dan menggunakan metode pilihan untuk mengkompilasi kode sumber.
Semua antarmuka lapisan abstraksi perangkat keras (HAL) yang harus Anda implementasikan dikumpulkan secara otomatis dalam file wrapper.c di direktori output/eng/wrappers.
Sebelumnya, operasi pengembangan tidak dapat dilakukan jika gagal melakukan kompilasi silang SDK. SDK V3.0.1 meningkatkan portabilitas dan kemudahan penggunaan.
Struktur direktori
SDK V3.0.1 menggunakan struktur direktori datar yang mudah digunakan. Misalnya, semua file .h dan .c terkait fitur Message Queuing Telemetry Transport (MQTT) di cloud disimpan di direktori
src/mqtt.Kecuali direktori
src/infrayang berisi infrastruktur, direktorisrc/xxxdipetakan ke fitur SDK dan berisi semua file sumber dari fitur tersebut. Jumlah direktorisrc/xxxsama dengan jumlah fitur SDK. Contoh:src/dynamic_register: berisi semua file sumber fitur verifikasi sertifikat unik per produk atau pendaftaran dinamis.src/dev_sign: berisi semua file sumber fitur tanda tangan perangkat.src/mqtt: berisi semua file sumber fitur koneksi MQTT.src/ota: berisi semua file sumber fitur pembaruan firmware over-the-air (OTA).src/dev_model: berisi semua file sumber fitur manajemen model Thing Specification Language (TSL) atau manajemen sub-perangkat.
Penyajian API dan antarmuka HAL
Pada versi SDK sebelumnya, file header global iot_import.h berisi antarmuka eksternal HAL_XXX() yang bergantung pada SDK, dan file header global iot_export.h berisi API IOT_XXX yang disediakan oleh SDK.
Pelanggan tertentu menganggap bahwa mereka harus mengimplementasikan lebih dari 100 antarmuka HAL di file iot_import.h dan memahami lebih dari 200 API di file iot_import.h. Hal ini menyebabkan beban kerja yang berat bagi pelanggan.
Perbaikan berikut dibuat di SDK V3.0.1:
File
iot_import.hdaniot_export.hdihapus.Direktori
includedi direktori root dihapus.File sumber diklasifikasikan dan disimpan di direktori khusus berdasarkan fitur SDK untuk mencegah penampilan informasi yang berlebihan.
Untuk menggunakan SDK V3.0.1, Anda harus melakukan langkah-langkah berikut:
Pastikan Anda memahami fitur SDK seperti koneksi MQTT ke IoT Platform dan pembaruan OTA, tentukan fitur yang diperlukan, lalu konfigurasikan dan pilih fitur di antarmuka pengguna grafis (GUI).
Jalankan skrip
extract.shdi Ubuntu atau skripextract.batdi Windows untuk mendapatkan file sumber fitur yang dipilih dan simpan file sumber di direktorioutput.Implementasikan API dan antarmuka HAL untuk menggunakan SDK berdasarkan aturan berikut:
Direktori
output/eng/xxxmenyimpan file sumber fiturxxx. File sumber diperoleh dari direktorisrc/xxx.File
output/eng/xxx/xxx_api.hberisi API fiturxxx. API diperoleh dari filesrc/xxx/xxx_api.h.Semua antarmuka
HAL_XXX()yang harus Anda implementasikan untuk berinteraksi dengan sistem embedded tertentu secara otomatis ditambahkan ke fileoutput/eng/wrappers/wrapper.c.
Anda hanya perlu melihat file sumber fitur yang diperlukan di
src/xxx/xxx_api.huntuk fileoutput/eng/xxx/xxx_api.h. Deklarasi API yang tidak relevan dengan kebutuhan bisnis Anda tidak ditampilkan.Semua antarmuka HAL yang harus Anda implementasikan ditambahkan ke file
output/eng/wrappers/wrapper.c. Antarmuka HAL yang tidak relevan dengan kebutuhan bisnis Anda tidak ditampilkan.
Sebagai contoh, fitur dasar SDK adalah menghitung tanda tangan untuk membangun koneksi MQTT ke IoT Platform. Fitur ini didukung oleh antarmuka src/dev_sign atau output/eng/dev_sign.
Dalam hal ini, hanya satu antarmuka fitur perhitungan tanda tangan yang terlihat oleh Anda di file
dev_sign_api.h.Tidak ada antarmuka HAL atau file
wrapper.cyang ditampilkan karena fitur ini tidak memiliki dependensi dan tidak memerlukan fungsi C.
File make.settings
Selain mesin lokal yang menjalankan Linux, pengembang dapat menjalankan
config.batdiWindows XP,Windows 7, atauWindows 10untuk mengonfigurasi fitur yang diperlukan di GUI.Tabel berikut menjelaskan opsi
FEATURE_XXXyang namanya diubah.
Nama sebelumnya | Nama baru | Deskripsi |
|
| Mode titik akses telepon (phone-ap-config) untuk pengaturan Wi-Fi. |
|
| Mode konfigurasi router (router-config) untuk pengaturan Wi-Fi. |
Opsi berikut ditambahkan:
FEATURE_AWSS_SUPPORT_SMARTCONFIG_WPS: mode konfigurasi titik-ke-titik untuk pengaturan Wi-Fi.FEATURE_AWSS_SUPPORT_DEV_AP: mode titik akses perangkat (dev-ap-config) untuk pengaturan Wi-Fi.
Antarmuka MQTT
Anda dapat memanggil antarmuka
IOT_MQTT_Construct()untuk membangun koneksi Message Queuing Telemetry Transport (MQTT). AntarmukaIOT_SetupConnInfo()tidak lagi diperlukan.Saat Anda memanggil antarmuka
IOT_MQTT_Construct(), Anda dapat membiarkan sebagian besar parameter koneksi kosong. SDK secara otomatis menggunakan nilai default dan tidak ada kesalahan yang dikembalikan.
Fitur dan antarmuka baru
Fitur tanda tangan perangkat ditambahkan, yang merupakan fitur dasar dari SDK.
Hanya antarmuka
IOT_Sign_MQTT()yang terkait dengan fitur ini.
Fitur verifikasi sertifikat unik per produk ditambahkan. Fitur ini dapat digunakan saat Anda membakar sertifikat perangkat yang mencakup ProductKey, DeviceName, dan DeviceSecret ke semua perangkat.
Hanya antarmuka
IOT_Dynamic_Register()yang terkait dengan fitur ini.
Fitur reset perangkat ditambahkan. Fitur ini dapat digunakan untuk melepaskan asosiasi sub-perangkat dengan gateway yang sesuai setelah sub-perangkat mengirim permintaan pelepasan ke IoT Platform.
Hanya antarmuka
IOT_DevReset_Report()yang terkait dengan fitur ini.
Fitur unggah file HTTP/2 ditambahkan. Fitur ini dapat digunakan untuk mengunggah file besar ke IoT Platform.
Antarmuka
IOT_HTTP2_UploadFile_Connect(),IOT_HTTP2_UploadFile_Request(), danIOT_HTTP2_UploadFile_Disconnect()terkait dengan fitur ini.
Fitur yang dihapus
CMakedihapus dari alat kompilasi yang didukung karena GNU make dan pemindahan berbasis kode sumber didukung.
V2.3.0
Berikut ini menjelaskan perbedaan antara SDK V2.2.1 (dirilis 31 Agustus 2018) dan SDK V2.3.0 (dirilis November 2018).
File make.settings
Pengembang dapat menjalankan perintah
make menuconfigdiUbuntu16.0464-bitpada mesin lokal untuk mengonfigurasi filemake.settingsdi GUI.Tabel berikut menjelaskan opsi
FEATURE_XXXyang namanya diubah.
Nama sebelumnya | Nama baru | Deskripsi |
|
| Saklar untuk fitur manajemen model Thing Specification Language (TSL). Model harus mematuhi protokol Alink JSON. |
|
| Saklar untuk fitur gateway dalam manajemen model TSL. |
|
| Saklar untuk fitur pengaturan Wi-Fi. |
Opsi berikut ditambahkan:
FEATURE_DEVICE_BIND_ENABLED: saklar untuk fitur pengikatan perangkat. Jika Anda menggunakan konsol Living Link, Anda harus mengaktifkan saklar ini agar aplikasi Cloud Intelligence dapat mengontrol perangkat.FEATURE_ALCS_CLIENT_ENABLED: saklar untuk fitur klien tertentu yang digunakan dalam komunikasi lokal. Anda harus mengaktifkan saklar ini untuk gateway tepi dan perangkat lain yang mengelola sub-perangkat IoT.FEATURE_ALCS_SERVER_ENABLED: saklar untuk fitur server tertentu yang digunakan dalam komunikasi lokal. Anda harus mengaktifkan saklar ini untuk perangkat yang dikelola oleh aplikasi seluler atau gateway tepi di jaringan area lokal (LAN).FEATURE_AWSS_SUPPORT_SMARTCONFIG: mode SmartConfig (smart-config) untuk pengaturan Wi-Fi.FEATURE_AWSS_SUPPORT_ZEROCONFIG: mode konfigurasi nol (zero-config) untuk pengaturan Wi-Fi.FEATURE_AWSS_SUPPORT_ROUTER: mode konfigurasi router (router-config) untuk pengaturan Wi-Fi.FEATURE_AWSS_SUPPORT_PHONEASAP: mode titik akses telepon (phone-ap-config) untuk pengaturan Wi-Fi.
Opsi berikut dihapus:
FEATURE_COAP_DTLS_SUPPORT: saklar yang menentukan apakah koneksi ke IoT Platform melalui Constrained Application Protocol (CoAP) dienkripsi menggunakan Datagram Transport Layer Security (DTLS) protocol. Saklar dihapus dari konfigurasi kustom karena enkripsi selalu diaktifkan.
Antarmuka global
Antarmuka
IOT_OpenLog()danIOT_CloseLog()dihapus. Anda dapat memanggil antarmukaIOT_SetLogLevel()untuk menentukan apakah SDK mencetak log dan log mana yang ingin Anda cetak.Tingkat log
IOT_LOG_EMERGdiganti dengan tingkat logIOT_LOG_NONE.IOT_SetLogLevel(IOT_LOG_NONE)menentukan bahwa fitur pencatatan dinonaktifkan.Antarmuka
IOT_Linkkit_Ioctl()dihapus. Anda dapat memanggil antarmukaIOT_Ioctl()untuk mengimplementasikan fitur antarmuka IOT_Linkkit_Ioctl(). Untuk informasi lebih lanjut tentang opsi antarmuka IOT_Ioctl(), lihat nilai enumerasi tipeiotx_ioctl_option_t.Antarmuka
IOT_Ioctl()ditingkatkan. OpsiIOTX_IOCTL_SET_MQTT_DOMAINdanIOTX_IOCTL_SET_HTTP_DOMAINditambahkan untuk memungkinkan Anda memasukkan domain MQTT atau HTTP kustom untuk membangun koneksi untuk situs penyebaran layanan baru di luar China.
Antarmuka MQTT
Pada antarmuka berikut, Anda dapat mengatur parameter
handlemenjadiNULLuntuk membuat koneksi menggunakan nilai parameter default atau gunakan koneksi default:IOT_MQTT_ConstructIOT_MQTT_DestroyIOT_MQTT_YieldIOT_MQTT_LogPostIOT_MQTT_CheckStateNormalIOT_MQTT_SubscribeIOT_MQTT_UnsubscribeIOT_MQTT_PublishIOT_MQTT_Subscribe_SyncIOT_MQTT_Publish_Simple
Parameter
pwrite_bufdanpread_bufdihapus dari strukturiotx_mqtt_param_t.Antarmuka
IOT_MQTT_Publish_Simple()ditambahkan. Anda dapat memasukkan parameter tipe string untuk menentukan topik dan payload.int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len);Antarmuka
IOT_MQTT_Subscribe_Sync()ditambahkan. Anda dapat melakukan langganan sinkron dalam mode blocking, dan tidak ada data yang dikembalikan hingga langganan berhasil.int IOT_MQTT_Subscribe_Sync(void *handle, const char *topic_filter, iotx_mqtt_qos_t qos, iotx_mqtt_event_handle_func_fpt topic_handle_func, void *pcontext, int timeout_ms);Antarmuka
IOT_MQTT_Subscribe()dioptimalkan. Sebelum koneksi MQTT dibangun, Anda dapat berlangganan pesan offline. SDK untuk C mengirimkan paket langganan segera setelah koneksi dibangun.
Antarmuka pembaruan OTA
Jika parameter
handledari antarmuka MQTT disetel keNULL, parameter ketiga dari antarmukaIOT_OTA_Initjuga dapat disetel keNULLuntuk menggunakan koneksi default. IOT_OTA_Init adalah antarmuka dasar untuk pembaruan over-the-air (OTA).void *IOT_OTA_Init(const char *product_key, const char *device_name, void *ch_signal);
Antarmuka yang dihapus
Antarmuka linkkit_xxx() dan linkkit_gateway_xxx() di SDK versi sebelumnya bersifat opsional untuk kompilasi. Secara default, antarmuka ini tidak ditampilkan dalam konfigurasi kompilasi.
Catatan: 1. Anda dapat menjalankan perintah berikut di file make.settings untuk menampilkan antarmuka linkkit_xxx() dan linkkit_gateway_xxx(). Dalam hal ini, antarmuka baru menghilang.
FEATURE_DEPRECATED_LINKKIT=y
2. Untuk mengurangi penggunaan memori perangkat, SDK tidak lagi memeriksa validitas format data saat Anda memanggil operasi API SDK untuk mengirimkan pesan tentang perubahan properti dan acara. Oleh karena itu, Anda tidak perlu mengekspor file JSON model TSL dari IoT Platform, mengonversi data JSON menjadi string dalam C, dan menambahkan string tersebut ke kode Anda dalam C.
Antarmuka HAL
Antarmuka
HAL_Sys_rebootdihapus karena fitur yang sesuai sama dengan fitur antarmukaHAL_Reboot.