Pembungkus SDK perangkat harus menstandarkan konvensi panggilan sambil menjaga perbedaan nyata antar perangkat. Nama API yang cocok tidak menentukan semantik parameter, kepemilikan buffer, atau status kesalahan. Berikut ini adalah metode desain adaptor, bukan klaim bahwa perangkat sembarangan telah terintegrasi.

Tentukan semantik parameter terlebih dahulu

Bidang Informasi yang diperlukan Masalah yang harus dihindari
Pengidentifikasi Nama aplikasi, pemetaan perangkat, dan mode yang berlaku Nama identik dengan arti berbeda
Jenis dan satuan Unit integer, floating point, enumerasi, Boolean dan eksplisit Menyalin angka dengan satuan yang tidak kompatibel
Kemampuan akses Rentang dinamis dan ketergantungan status hanya dapat dibaca atau ditulis Parameter penulisan yang tidak dapat diubah selama pengambilan gambar
Pencacahan dan default Nilai dan pembacaan kembali yang didukung sebenarnya Melaporkan pengaturan yang tidak didukung sebagai berhasil
Kondisi aktivasi Apakah diperlukan penghentian, memulai ulang, atau menghubungkan kembali Dengan asumsi frame menggunakan pengaturan baru segera setelah panggilan kembali

Lakukan lebih dari sekadar mengganti nama bidang. Kembalikan status yang dapat diidentifikasi untuk fungsi yang tidak didukung. Tentukan konversi dan pembulatan untuk unit yang kompatibel. Verifikasi pembacaan kembali, status perangkat, dan perubahan gambar sesuai dengan kemampuan SDK target.

Masa pakai data bingkai

Dokumentasikan apakah SDK vendor, adaptor, atau pemanggil mengalokasikan buffer, berapa lama buffer tetap dapat dibaca, kapan harus dilepaskan atau dikembalikan, apakah penggunaan lintas thread diizinkan, dan apakah penyalinan terjadi. Dimensi, format, langkah baris, dan panjang valid bersama-sama menggambarkan data gambar; jangan berasumsi baris yang padat.

Jangan meneruskan penunjuk panggilan balik asinkron ke tugas hilir yang berjalan lama tanpa mengonfirmasi masa pakainya. Penghentian pengambilan gambar, pemutusan sambungan, dan penghancuran perangkat juga memerlukan pesanan untuk frame yang belum terselesaikan, antrean callback, dan pelepasan sumber daya.

Status dan asal kesalahan

Pertimbangkan status terputus, tersambung, terkonfigurasi, perolehan, penghentian, dan kesalahan terpisah, dengan panggilan yang diizinkan dan kondisi transisi. Batas waktu ekspres, pemutusan sambungan, parameter yang tidak didukung, kekurangan buffer, dan kegagalan penguraian secara terpisah. Pertahankan kode kesalahan vendor dan konteksnya di samping kode kesalahan pembungkus.

Verifikasi lebih dari sekedar contoh

Untuk perangkat dan versi tertentu, uji batas parameter, mulai dan berhenti berulang, batas waktu bingkai, pengembalian buffer, panggilan serentak, dan koneksi ulang. Catat mengapa kesalahan tidak dapat dimasukkan atau tidak didukung. Memberikan dokumentasi API, tabel kesalahan, instruksi pembuatan, contoh, dan catatan pengujian yang disepakati.

Layanan terkait: SDK perangkat vision Dan pengambilan gambar gambar tertanam.