Nanopb عبارة عن تطبيق صغير الحجم لمخازن البروتوكول المؤقتة في ansi C. وهو مناسب بشكل خاص للاستخدام في وحدات التحكم الدقيقة، ولكنه يناسب أي نظام مقيد بالذاكرة.
لاستخدام مكتبة nanopb، عليك القيام بأمرين:
protoc
.أسهل طريقة للبدء هي دراسة المشروع من خلال "أمثلة/بسيطة". يحتوي على ملف Makefile، والذي يجب أن يعمل مباشرة مع معظم أنظمة Linux. ومع ذلك، بالنسبة لأي نوع آخر من أنظمة البناء، راجع الخطوات اليدوية في ملف README.txt الموجود في هذا المجلد.
يتم تعريف رسائل مخازن البروتوكول المؤقتة في ملف .proto
، الذي يتبع تنسيقًا قياسيًا متوافقًا مع كافة مكتبات مخازن البروتوكول المؤقتة. لاستخدامه مع nanopb، تحتاج إلى إنشاء ملفات .pb.c
و .pb.h
منه:
python generator/nanopb_generator.py myprotocol.proto # For source checkout
generator-bin/nanopb_generator myprotocol.proto # For binary package
(ملاحظة: للحصول على تعليمات حول nanopb-0.3.9.x والإصدارات الأقدم، راجع وثائق هذا الإصدار المحدد هنا)
يجب أن تحتوي الحزم الثنائية لأنظمة التشغيل Windows وLinux وMac OS X على جميع التبعيات الضرورية، بما في ذلك Python ومكتبة python-protobuf وprotoc. إذا كنت تستخدم git checkout أو توزيعة مصدر عادي، فستحتاج إلى تثبيت Python بشكل منفصل. بمجرد حصولك على Python، يمكنك تثبيت التبعيات الأخرى باستخدام pip install --upgrade protobuf grpcio-tools
.
يمكنك تخصيص إنشاء الرأس بشكل أكبر عن طريق إنشاء ملف .options
. انظر الوثائق للحصول على التفاصيل.
إذا كنت ترغب في إجراء مزيد من التطوير لنواة nanopb، أو التحقق من وظائفها باستخدام المترجم والنظام الأساسي الخاصين بك، فستحتاج إلى تشغيل مجموعة الاختبار. يتم تنفيذ قواعد البناء لمجموعة الاختبار باستخدام Scons، لذلك تحتاج إلى تثبيتها (على سبيل المثال: sudo apt install scons
أو pip install scons
). لتشغيل الاختبارات:
cd tests
scons
سيُظهر هذا التقدم في حالات الاختبار المختلفة. إذا لم ينته الإخراج بخطأ، فهذا يعني أن حالات الاختبار كانت ناجحة.
ملاحظة: يقوم نظام التشغيل Mac OS X افتراضيًا باستخدام الأسماء المستعارة لـ "clang" كـ "gcc"، بينما لا يدعم فعليًا نفس خيارات سطر الأوامر التي يدعمها gcc. لإجراء الاختبارات على نظام التشغيل Mac OS X، استخدم: scons CC=clang CXX=clang++
. يمكن استخدام نفس الطريقة لإجراء الاختبارات مع مترجمين مختلفين على أي نظام أساسي.
بالنسبة للأنظمة الأساسية المضمنة، يوجد حاليًا دعم لتشغيل الاختبارات على لوحة الاكتشاف STM32 ومحاكي simavr AVR. استخدم scons PLATFORM=STM32
و scons PLATFORM=AVR
لتشغيل هذه الاختبارات.
تم تصميم كود Nanopb C نفسه ليكون محمولاً وسهل البناء على أي نظام أساسي. غالبًا ما تكون العقبة الأكبر هي تشغيل المولد الذي يستقبل ملفات .proto
ويخرج تعريفات .pb.c
.
توجد قواعد بناء لعدة أنظمة:
extra/nanopb.mk
، انظر examples/simple
extra/FindNanopb.cmake
، راجع examples/cmake
tests/site_scons
(المولد فقط)BUILD.bazel
في جذر المصدرconanfile.py
في جذر المصدروأيضًا التكامل مع واجهات النظام الأساسي: