เพิ่มประสิทธิภาพ

การแปล SOME/IP ขั้นพื้นฐานได้รับการออกแบบมาเพื่อมอบโซลูชันที่อัปเดตได้สำหรับการผสานรวมกับบริการ AUTOSAR ความท้าทายหลักสำหรับโบรกเกอร์คือการ แปลข้อความและการเรียก RPC ที่ไม่รู้จักในเวลาคอมไพล์ เพื่อแก้ไขปัญหานี้ การอัปเดตที่รันไทม์จะถือว่าเป็นการเพิ่มหรืออัปเดตบริการ SDV แบบไดนามิก ซึ่งคล้ายกับวิธีเปิดตัวประเภทหน่วยใหม่

โซลูชันสำหรับการแปลแบบไดนามิกนี้อิงตามข้อมูลประเภทรันไทม์ (RTTI) โบรกเกอร์จะใช้การกำหนดค่าจากแพ็กเกจบริการที่ติดตั้งทั้งหมดและทำการแปลตามการสะท้อนโดยใช้สคีมาข้อมูลจากการกำหนดค่าดังกล่าว

แม้ว่าการแปลที่อิงตาม RTTI จะมีความยืดหยุ่น แต่ก็ช้ากว่าวิธีการที่คอมไพล์ล่วงหน้าโดยธรรมชาติ หากต้องการเพิ่มประสิทธิภาพเส้นทางข้อมูลที่มีการโหลดสูง ให้ใช้เทคนิคที่ ข้ามการแปล

SDV ช่วยให้คุณข้ามการแปลและส่งต่อไบต์ที่จัดรูปแบบ SOME/IP ไปยังแพ็กเกจบริการสำหรับผู้บริโภคเพื่อรองรับการใช้ข้อความขนาดใหญ่และข้อความที่ส่งบ่อย

ชุดบริการจะจัดการเพย์โหลดที่จัดรูปแบบ SOME/IP ซึ่งสามารถ ใช้เพย์โหลดหรือแปลเพย์โหลดเป็น Protobuf

ระบุ message_translation_mode: INTERPRET_AS_BYTES สำหรับเหตุการณ์ใน ไฟล์การแมป SOME/IP เพื่อข้ามการแปล ดูตัวอย่างได้ที่ samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl

ข้อดีข้อเสียของวิธีการแปล

เมื่อเลือกวิธีการแปล ให้พิจารณาข้อดีข้อเสียต่อไปนี้

  • การโต้ตอบกับระบบ: บริการ SDV อื่นๆ ไม่สามารถตีความไบต์ที่ส่งต่อ ในรูปแบบ SOME/IP ได้หากไม่ทราบรายละเอียดรูปแบบดิบ เช่น SDV Telemetry จะประมวลผลฟิลด์แต่ละรายการของข้อความดังกล่าวไม่ได้

  • ความพยายามเพิ่มเติม: การแปลเพย์โหลดดิบในรูปแบบ SOME/IP ต้องใช้ความพยายามเพิ่มเติมจากนักพัฒนาชุดบริการ

เครื่องมือสร้างคลัง

SDV มีเครื่องมือสร้างอัตโนมัติสำหรับแปลรูปแบบ SOME/IP ตัวสร้างนี้จะสร้างไลบรารีตามคำจำกัดความและการแมปข้อความที่มีอยู่ สำหรับการแปลโดยตรงโดยไม่ต้องมีการสะท้อน ชุดบริการที่ใช้ไบต์ SOME/IP ที่ส่งต่อสามารถใช้ไลบรารีที่สร้างขึ้นได้

คำแนะนำ: ใช้เครื่องมือสร้างเฉพาะในกรณีที่ OEM ระบุเหตุการณ์ที่สำคัญต่อประสิทธิภาพซึ่งไม่สามารถแปลภายในข้อกำหนดด้านประสิทธิภาพของโปรเจ็กต์ได้ ในกรณีดังกล่าว OEM ควรมีทั้ง คำจำกัดความของ Protobuf และการแมป SOME/IP ที่ใช้สำหรับการแปลที่อิงตาม RTTI อยู่แล้ว การกำหนดค่าเดียวกันนี้สามารถใช้เป็นอินพุตสำหรับเครื่องมือสร้างได้ ดูรายละเอียดเพิ่มเติมได้ที่ไฟล์ README.md ในไดเรกทอรี core_services/tools/someip_translation_generator/