Nanopb adalah implementasi Protokol Buffer berukuran kecil di ansi C. Nanopb sangat cocok untuk digunakan dalam mikrokontroler, tetapi cocok untuk sistem dengan memori terbatas.
Untuk menggunakan perpustakaan nanopb, Anda perlu melakukan dua hal:
protoc
.Cara termudah untuk memulai adalah mempelajari proyek dalam "contoh/sederhana". Ini berisi Makefile, yang seharusnya bekerja langsung di sebagian besar sistem Linux. Namun, untuk jenis sistem build lainnya, lihat langkah manual di README.txt di folder tersebut.
Pesan Protocol Buffers didefinisikan dalam file .proto
, yang mengikuti format standar yang kompatibel dengan semua pustaka Protocol Buffers. Untuk menggunakannya dengan nanopb, Anda perlu membuat file .pb.c
dan .pb.h
darinya:
python generator/nanopb_generator.py myprotocol.proto # For source checkout
generator-bin/nanopb_generator myprotocol.proto # For binary package
(Catatan: Untuk instruksi untuk nanopb-0.3.9.x dan yang lebih lama, lihat dokumentasi versi tersebut di sini)
Paket biner untuk Windows, Linux dan Mac OS X harus berisi semua dependensi yang diperlukan, termasuk Python, pustaka python-protobuf, dan protoc. Jika Anda menggunakan git checkout atau distribusi sumber biasa, Anda perlu menginstal Python secara terpisah. Setelah Anda memiliki Python, Anda dapat menginstal dependensi lainnya dengan pip install --upgrade protobuf grpcio-tools
.
Anda dapat menyesuaikan pembuatan header lebih lanjut dengan membuat file .options
. Lihat dokumentasi untuk detailnya.
Jika Anda ingin melakukan pengembangan lebih lanjut dari inti nanopb, atau untuk memverifikasi fungsinya menggunakan kompiler dan platform Anda, Anda dapat menjalankan rangkaian pengujian. Aturan build untuk test suite diimplementasikan menggunakan Scons, jadi Anda harus menginstalnya (misal: sudo apt install scons
atau pip install scons
). Untuk menjalankan tes:
cd tests
scons
Ini akan menunjukkan kemajuan berbagai kasus uji. Jika keluarannya tidak berakhir dengan kesalahan, kasus uji berhasil.
Catatan: Mac OS X secara default menyebut 'dentang' sebagai 'gcc', meskipun sebenarnya tidak mendukung opsi baris perintah yang sama seperti gcc. Untuk menjalankan pengujian pada Mac OS X, gunakan: scons CC=clang CXX=clang++
. Cara yang sama dapat digunakan untuk menjalankan pengujian dengan kompiler berbeda pada platform apa pun.
Untuk platform tertanam, saat ini terdapat dukungan untuk menjalankan pengujian pada papan penemuan STM32 dan simulator simavr AVR. Gunakan scons PLATFORM=STM32
dan scons PLATFORM=AVR
untuk menjalankan pengujian ini.
Kode Nanopb C sendiri dirancang agar portabel dan mudah dibuat di platform apa pun. Seringkali rintangan yang lebih besar adalah menjalankan generator yang mengambil file .proto
dan menghasilkan definisi .pb.c
.
Terdapat aturan pembangunan untuk beberapa sistem:
extra/nanopb.mk
, lihat examples/simple
extra/FindNanopb.cmake
, lihat examples/cmake
tests/site_scons
(khusus generator)BUILD.bazel
di root sumberconanfile.py
di root sumberDan juga integrasi ke antarmuka platform: