Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Generator kode Model Data
Pelajari cara menggunakan generator kode untuk model data. Kode yang dihasilkan dapat digunakan untuk membuat serial dan deserialisasi model data yang dipertukarkan antara cloud dan perangkat.
Repositori proyek berisi alat pembuatan kode untuk membuat penangan model data kode C. Topik berikut menjelaskan pembuat kode dan alur kerja.
Proses pembuatan kode
Generator kode membuat file sumber C dari tiga input utama: AWS'implementasi Model Data Matter (file.matter) dari Platform Lanjutan Perpustakaan Cluster Zigbee (ZCL), plugin Python yang menangani preprocessing, dan template Jinja2 yang menentukan struktur kode. Selama pembuatan, plugin Python memproses file.matter Anda dengan menambahkan definisi tipe global, mengatur tipe data berdasarkan dependensinya, dan memformat informasi untuk rendering template.
Gambar berikut menjelaskan generator kode membuat file sumber C.

SDK perangkat Akhir menyertakan plugin Python dan templat Jinja2 yang berfungsi dalam proyek. codegen.pyconnectedhomeip
Subtopik berikut menjelaskan file-file ini.
Plugin Python
Generator kode,codegen.py
, mem-parsing file.matter, dan mengirimkan informasi sebagai objek Python ke plugin. File plugin iotmi_data_model.py
memproses data ini dan merender sumber dengan templat yang disediakan. Preprocessing meliputi:
-
Menambahkan informasi yang tidak tersedia dari
codegen.py
, seperti tipe global -
Melakukan pengurutan topologi pada tipe data untuk menetapkan urutan definisi yang benar
catatan
Urutan topologi memastikan tipe dependen didefinisikan setelah dependensinya, terlepas dari urutan aslinya.
Jinja2 template
SDK perangkat Akhir menyediakan template Jinja2 yang disesuaikan untuk penangan model data dan C-Functions tingkat rendah.
Templat | Sumber yang dihasilkan | Keterangan |
---|---|---|
cluster.h.jinja |
iotmi_device_<cluster>.h |
Membuat file header fungsi C tingkat rendah. |
cluster.c.jinja |
iotmi_device_<cluster>.c |
Menerapkan dan mendaftarkan pointer fungsi callback dengan Data Model Handler. |
cluster_type_helpers.h.jinja |
iotmi_device_type_helpers_<cluster>.h |
Mendefinisikan prototipe fungsi untuk tipe data. |
cluster_type_helpers.c.jinja |
iotmi_device_type_helpers_<cluster>.c |
Menghasilkan prototipe fungsi tipe data untuk enumerasi, bitmap, daftar, dan struktur khusus cluster. |
iot_device_dm_types.h.jinja |
iotmi_device_dm_types.h |
Mendefinisikan tipe data C untuk tipe data global. |
iot_device_type_helpers_global.h.jinja |
iotmi_device_type_helpers_global.h |
Mendefinisikan tipe data C untuk operasi global. |
iot_device_type_helpers_global.c.jinja |
iotmi_device_type_helpers_global.c |
Mendeklarasikan tipe data standar termasuk boolean, integer, floating point, string, bitmap, daftar, dan struktur. |
(Opsional) Skema kustom
SDK perangkat akhir menggabungkan proses pembuatan kode standar dengan skema khusus. Ini memungkinkan perpanjangan Model Data Matter untuk perangkat dan perangkat lunak perangkat Anda. Skema khusus dapat membantu menggambarkan kemampuan perangkat untuk device-to-cloud komunikasi.
Untuk informasi rinci tentang model data integrasi terkelola, termasuk format, struktur, dan persyaratan, lihatModel data integrasi terkelola.
Gunakan codegen.py
alat untuk menghasilkan file sumber C untuk skema kustom, sebagai berikut:
catatan
Setiap cluster kustom memerlukan ID cluster yang sama untuk tiga file berikut.
-
Buat skema kustom dalam
JSON
format yang menyediakan representasi cluster untuk pelaporan kemampuan untuk membuat cluster kustom baru di cloud. File sampel terletak dicodegen/custom_schemas/custom.SimpleLighting@1.0
. -
Buat file definisi ZCL (Zigbee Cluster Library) dalam
XML
format yang berisi informasi yang sama dengan skema kustom. Gunakan alat ZAP untuk menghasilkan file Matter IDL Anda dari ZCL XHTML. File sampel terletak dicodegen/zcl/custom.SimpleLighting.xml
. -
Output dari alat ZAP adalah
Matter IDL File (.matter)
dan mendefinisikan cluster Matter yang sesuai dengan skema kustom Anda. Ini adalah input untukcodegen.py
alat untuk menghasilkan file sumber C untuk SDK perangkat Akhir. File sampel terletak dicodegen/matter_files/custom-light.matter
.
Untuk petunjuk terperinci tentang cara mengintegrasikan model data integrasi terkelola kustom ke dalam alur kerja pembuatan kode Anda, lihat. Hasilkan kode untuk perangkat