Nanopb คือการใช้งานบัฟเฟอร์โปรโตคอลขนาดโค้ดขนาดเล็กใน ansi C ซึ่งเหมาะอย่างยิ่งสำหรับการใช้งานในไมโครคอนโทรลเลอร์ แต่เหมาะกับระบบที่จำกัดหน่วยความจำ
หากต้องการใช้ไลบรารี nanopb คุณต้องทำสองสิ่ง:
protoc
วิธีเริ่มต้นที่ง่ายที่สุดคือศึกษาโครงการใน "ตัวอย่าง/แบบง่าย" มันมี Makefile ซึ่งควรทำงานโดยตรงบนระบบ Linux ส่วนใหญ่ อย่างไรก็ตาม สำหรับระบบบิลด์ประเภทอื่นๆ โปรดดูขั้นตอนแบบแมนนวลใน README.txt ในโฟลเดอร์นั้น
ข้อความ Protocol Buffers ถูกกำหนดไว้ในไฟล์ .proto
ซึ่งเป็นไปตามรูปแบบมาตรฐานที่เข้ากันได้กับไลบรารี Protocol Buffers ทั้งหมด หากต้องการใช้กับ 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 หรือการแจกจ่ายซอร์สธรรมดา คุณจะต้องติดตั้ง 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
ในรูทต้นทางและยังรวมเข้ากับอินเทอร์เฟซแพลตฟอร์ม: