Nanopb est une implémentation de tampons de protocole de petite taille en ansi C. Il est particulièrement adapté à une utilisation dans les microcontrôleurs, mais s'adapte à tout système à mémoire restreinte.
Pour utiliser la bibliothèque nanopb, vous devez faire deux choses :
protoc
.Le moyen le plus simple pour commencer est d'étudier le projet en "exemples/simples". Il contient un Makefile, qui devrait fonctionner directement sous la plupart des systèmes Linux. Cependant, pour tout autre type de système de build, consultez les étapes manuelles dans le fichier README.txt de ce dossier.
Les messages Protocol Buffers sont définis dans un fichier .proto
, qui suit un format standard compatible avec toutes les bibliothèques Protocol Buffers. Pour l'utiliser avec nanopb, vous devez en générer des fichiers .pb.c
et .pb.h
:
python generator/nanopb_generator.py myprotocol.proto # For source checkout
generator-bin/nanopb_generator myprotocol.proto # For binary package
(Remarque : pour obtenir des instructions pour nanopb-0.3.9.x et versions antérieures, consultez la documentation de cette version particulière ici)
Les packages binaires pour Windows, Linux et Mac OS X doivent contenir toutes les dépendances nécessaires, notamment Python, la bibliothèque python-protobuf et le protocole. Si vous utilisez un paiement git ou une distribution source simple, vous devrez installer Python séparément. Une fois que vous avez Python, vous pouvez installer les autres dépendances avec pip install --upgrade protobuf grpcio-tools
.
Vous pouvez personnaliser davantage la génération d'en-tête en créant un fichier .options
. Voir la documentation pour plus de détails.
Si vous souhaitez poursuivre le développement du noyau nanopb ou vérifier ses fonctionnalités à l'aide de votre compilateur et de votre plate-forme, vous souhaiterez exécuter la suite de tests. Les règles de construction de la suite de tests sont implémentées à l'aide de Scons, vous devez donc les installer (ex : sudo apt install scons
ou pip install scons
). Pour exécuter les tests :
cd tests
scons
Cela montrera la progression de divers cas de test. Si la sortie ne se termine pas par une erreur, les scénarios de test ont réussi.
Remarque : Mac OS X alias par défaut « clang » comme « gcc », bien qu'il ne prenne pas réellement en charge les mêmes options de ligne de commande que gcc. Pour exécuter des tests sur Mac OS X, utilisez : scons CC=clang CXX=clang++
. La même manière peut être utilisée pour exécuter des tests avec différents compilateurs sur n’importe quelle plateforme.
Pour les plates-formes embarquées, il existe actuellement une prise en charge pour l'exécution des tests sur la carte de découverte STM32 et le simulateur simavr AVR. Utilisez scons PLATFORM=STM32
et scons PLATFORM=AVR
pour exécuter ces tests.
Le code Nanopb C lui-même est conçu pour être portable et facile à créer sur n'importe quelle plate-forme. Souvent, le plus gros obstacle consiste à exécuter le générateur qui récupère les fichiers .proto
et génère les définitions .pb.c
.
Il existe des règles de build pour plusieurs systèmes :
extra/nanopb.mk
, voir examples/simple
extra/FindNanopb.cmake
, voir examples/cmake
tests/site_scons
(générateur uniquement)BUILD.bazel
dans la racine sourceconanfile.py
à la racine des sourcesEt aussi l'intégration aux interfaces de la plateforme :