แบบแผนการตั้งชื่อแพ็กเกจบริการ

ชื่อแพ็กเกจบริการจะกำหนดไว้ในลำดับชั้น

  • VM แต่ละรายการ (ระบุโดยชื่อ VM) คือการติดตั้งใช้งานระบบปฏิบัติการโปรไฟล์ SDV Core เพียงครั้งเดียว

  • แพ็กเกจแต่ละแพ็กเกจ (ระบุโดยชื่อแพ็กเกจ) อาจมี Service Bundle หลายรายการ

  • แพ็กเกจบริการแต่ละรายการ (ระบุโดยชื่อแพ็กเกจบริการ) สามารถสร้างอินสแตนซ์ได้หลายครั้งใน VM เดียวกัน

  • อินสแตนซ์ของแพ็กเกจบริการแต่ละรายการจะระบุด้วยชื่ออินสแตนซ์ของแพ็กเกจบริการที่กำหนดไว้ในเวลาที่ใช้ในการโหลด

ชื่อ VM ของ SDV

ชื่อ VM คือตัวระบุชื่อที่ไม่ซ้ำกันซึ่งแนบอยู่กับการติดตั้งใช้งานแต่ละครั้งของโปรไฟล์ SDV Core ตามที่ระบุไว้ใน Vehicle VM Config (vvmconfig) ระบบจะใช้ ชื่อ VM ในการตั้งชื่อเพื่อแยกบริการตามขอบเขตของ VM ในรถยนต์ ตัวอย่างเช่น

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

โดยมีข้อจำกัดในการตั้งชื่อดังนี้

  • ชื่อ VM ต้องขึ้นต้นด้วยตัวอักษร [a-z]
  • ชื่อ VM ต้องไม่ลงท้ายด้วยขีดกลาง
  • ชื่อ VM ต้องมีความยาวไม่เกิน 31 อักขระ
  • อักขระทั้งหมดต้องเป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกัน หรือขีดกลาง [a-z0-9\-]
  • ขีดกลางในชื่อต้องไม่ปรากฏติดต่อกันมากกว่า 1 ครั้ง

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

ข้อผิดพลาดระดับการบูตจะเกิดขึ้นเมื่อการตรวจสอบความถูกต้องในเวลาบูตไม่สำเร็จ

ชื่อแพ็กเกจ SDV

ชื่อแพ็กเกจ SDV จะระบุแพ็กเกจที่ ติดตั้งใช้งานในระบบได้อย่างไม่ซ้ำกันเช่นเดียวกับ Android มาตรฐาน ต้องระบุ APEX ที่ไม่ซ้ำกันสำหรับชื่อแพ็กเกจแต่ละชื่อ เช่น

  • com.android.sdv.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.yourcompany.sdv.adas

โดยมีข้อจำกัดดังนี้

  • APEX SDV ทั้งหมดที่พาร์ทเนอร์เป็นเจ้าของควรมีคำนำหน้าเป็น com.<companyname>.sdv. (com.android.sdv. สงวนไว้สำหรับ APEX SDV ที่ Google เป็นเจ้าของ)
  • อักขระทั้งหมดต้องเป็นตัวอักษรและตัวเลขคละกันหรือขีดล่าง [a-z0-9_]
  • ชื่อแพ็กเกจต้องมีอย่างน้อย 4 ส่วนที่คั่นด้วยจุด
  • ชื่อแพ็กเกจต้องไม่ลงท้ายด้วยเครื่องหมายจุด
  • ชื่อแพ็กเกจต้องมีความยาวไม่เกิน 127 อักขระ
  • แต่ละกลุ่มต้องขึ้นต้นด้วยตัวอักษร
  • กลุ่มต้องไม่มีขีดล่างติดกัน __
  • ไม่มีกลุ่มใดที่ลงท้ายด้วยขีดล่าง _ ได้
  • ส่วนต่างๆ ต้องไม่ว่างเปล่า (ไม่มีจุดติดกัน)

ชื่อแพ็กเกจบริการ

เช่นเดียวกับ Android มาตรฐาน แต่ละแพ็กเกจบริการจะมีชื่อที่มนุษย์อ่านได้ ซึ่งอยู่ในเนมสเปซของชื่อแพ็กเกจที่แพ็กเกจบริการนั้นๆ เป็นของ เช่น

  • SomeService
  • ImportantService

โดยมีข้อจำกัดในการตั้งชื่อดังนี้

  • ชื่อแพ็กเกจบริการต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่
  • ต้องระบุชื่อแพ็กเกจบริการ
  • ชื่อแพ็กเกจบริการต้องมีความยาวไม่เกิน 47 อักขระ
  • ชื่อแพ็กเกจบริการต้องไม่มีขีดล่างติดกัน __
  • ชื่อแพ็กเกจบริการต้องไม่ขึ้นต้นหรือลงท้ายด้วยขีดล่าง _
  • อักขระทั้งหมดต้องเป็นตัวอักษรและตัวเลขคละกันหรือขีดล่าง [A-Za-z0-9_]

ชื่ออินสแตนซ์ของแพ็กเกจบริการ

ชุดบริการใน SDV ของ AAOS สามารถติดตั้งและโหลดได้หลายครั้งใน VM เดียวกัน ซึ่งต่างจากแอปพลิเคชัน Android มาตรฐาน ด้วยเหตุนี้ แพ็กเกจบริการเดียวกันจึงมีอินสแตนซ์หลายรายการที่ทํางานภายใน VM ของ AAOS SDV เดียวกันได้ อินสแตนซ์เหล่านี้จะได้รับการกำหนดชื่ออินสแตนซ์ของชุดบริการที่มนุษย์อ่านได้ เช่น

  • front-left
  • front-right
  • main
  • client
  • subscriber

โดยมีข้อจำกัดดังนี้

  • ชื่ออินสแตนซ์ต้องมีลักษณะดังนี้

    • ขึ้นต้นด้วยตัวอักษร [a-z]
    • ไม่ลงท้ายด้วยขีดกลาง
    • ต้องมีอักขระไม่เกิน 47 ตัว
    • ไม่ซ้ำกันใน VM เดียวกันสำหรับบริการเดียวกัน
  • อักขระทั้งหมดต้องเป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกัน หรือขีดกลาง [a-z0-9\-]

  • ขีดกลางต้องไม่ปรากฏติดกัน

  • อินสแตนซ์บริการแต่ละรายการต้องมีชื่ออินสแตนซ์ที่ไม่ซ้ำกัน (ระบุหรือสร้างขึ้น เมื่อเริ่มบริการ)

ชื่ออินสแตนซ์ของชุดบริการที่สมบูรณ์ในตัวเอง (FQIN)

ระบบจะรวมชื่อ VM ของ SDV, ชื่อแพ็กเกจ, ชื่อแพ็กเกจบริการ และชื่ออินสแตนซ์แพ็กเกจบริการ เข้าด้วยกันเป็นชื่ออินสแตนซ์แพ็กเกจบริการที่สมบูรณ์ในตัวเอง (FQIN) ซึ่งจะระบุอินสแตนซ์แพ็กเกจบริการที่ไม่ซ้ำกันทั่วทั้งรถ

โดยตัวอย่างมีดังนี้

  • cdc:com.android.sdv.datatunnel.SomeService/instance1
  • cdc:com.android.sdv.datatunnel.SomeService/instance2
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-left
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-right
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/rear-right
  • pcu:com.android.sdv.cluster.InfoProvider/acceleration

แพ็กเกจบริการในแพ็กเกจต่างๆ อาจมีชื่อแพ็กเกจบริการเดียวกันได้ เช่น แพ็กเกจบริการ 2 รายการต่อไปนี้ (ระบุโดย FQIN ของแต่ละรายการ) ซึ่งติดตั้งใช้งานใน VM ของ SDV เดียวกัน (mechatronics) มีชื่อแพ็กเกจบริการเดียวกันคือ TirePressure

  • mechatronics:com.yourcompany1.sdv.adas.TirePressure/default
  • mechatronics:com.yourcompany2.sdv.adas.TirePressure/default

ในตัวอย่างนี้ จะไม่มีการตั้งชื่อซ้ำเนื่องจากแพ็กเกจบริการ 2 รายการอยู่คนละแพ็กเกจ (รายการหนึ่งอยู่ใน com.yourcompany1.sdv.adas และอีกรายการอยู่ใน com.yourcompany2.sdv.adas)

ชื่อหัวข้อ

ระบบจะระบุหัวข้อด้วยสตริงที่ไม่ซ้ำกันในยานพาหนะสำหรับ ประเภทข้อความที่กำหนด

ตัวอย่างชื่อหัวข้อ

  • left-tire
  • front-window
  • engine-coolant-temp

ข้อจำกัด:

  • ต้องเป็นตัวอักษรและตัวเลขคละกันหรือขีดกลาง [a-z0-9\-]
  • ต้องขึ้นต้นด้วยตัวอักษร
  • ต้องมีความยาวไม่เกิน 127 อักขระ

ชื่อช่อง

ช่องจะระบุด้วยสตริงชื่อ

ตัวอย่างชื่อช่อง

  • main-control
  • high-priority
  • background

ข้อจำกัด:

  • ต้องเป็นตัวอักษรและตัวเลขคละกันหรือขีดกลาง [a-z0-9\-]
  • ต้องขึ้นต้นด้วยตัวอักษร
  • ต้องมีความยาวไม่เกิน 127 อักขระ

ชื่อหน่วยบริการ

โดยหลักแล้ว นักพัฒนาซอฟต์แวร์แพ็กเกจบริการจะโต้ตอบกับหัวข้อและ ช่อง ชื่อหน่วยบริการเป็นรายละเอียดการติดตั้งใช้งานพื้นฐาน และจะพบได้เป็นหลักเมื่อใช้เครื่องมือแก้ไขข้อบกพร่อง เช่น dumpsys

เมื่อลงทะเบียนกับ SDV Service Discovery หน่วยบริการจะต้อง ระบุชื่อหน่วยบริการ ชื่อหน่วยบริการนี้จะพร้อมใช้งานเมื่อมีการค้นพบบริการ ตัวอย่างต่อไปนี้แสดงชื่อหน่วยบริการที่มี FQIN

  • ( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )
  • ( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )
  • ( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )

ชื่อประเภทหน่วย

ชื่อประเภทหน่วยจะเท่ากับชื่อประเภท Protobuf (สมบูรณ์ในตัวเอง) เช่น

  • com.android.sdv.datatunnel.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.android.sdv.cluster.ISeatAlignmentCallback

สรุป

ข้อกำหนดในการตั้งชื่อสรุปไว้ในตารางต่อไปนี้

รายการ ขีดจำกัด อักขระที่อนุญาต ประเภทเคส
FQIN 256 อักขระ ประกอบด้วยชื่อ VM, ชื่อแพ็กเกจ, ชื่อแพ็กเกจบริการ และชื่ออินสแตนซ์แพ็กเกจบริการ ตัวพิมพ์เล็ก
ชื่อ VM ของ SDV 30 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษร a-z
  • ต้องไม่ลงท้ายด้วยขีดกลาง (-)
  • อักขระต้องเป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกันหรือขีดกลาง (a-z0-9\-)
  • ขีดกลางต้องไม่ปรากฏติดกันมากกว่า 1 ครั้ง
ตัวพิมพ์เล็ก
ชื่อแพ็กเกจ SDV 127 อักขระ
  • ต้องมีอย่างน้อย 4 ส่วน
  • ต้องขึ้นต้นด้วยตัวอักษร
  • ไม่มีส่วนใดที่มีขีดล่างติดกัน
  • กลุ่มต้องไม่ลงท้ายด้วยขีดล่าง
  • กลุ่มต้องไม่ว่างเปล่า
  • อักขระต้องเป็นตัวพิมพ์เล็กหรือขีดกลาง (a-z0-9\-)
ตัวพิมพ์เล็ก
ชื่อแพ็กเกจบริการ 30 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่
  • ต้องระบุ
  • ต้องไม่มีขีดล่าง (__) ติดกัน
  • ต้องไม่ขึ้นต้นหรือลงท้ายด้วยขีดล่าง (_)
  • อักขระต้องเป็นตัวอักษรและตัวเลขคละกันหรือขีดล่าง (A-Za-z0-9_)
ตัวพิมพ์เล็กและใหญ่ผสมกัน
ชื่ออินสแตนซ์ของแพ็กเกจบริการ 48 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษร (a-z)
  • ต้องไม่ลงท้ายด้วยขีดกลาง (-)
  • ต้องไม่ซ้ำกันใน VM เดียวกันสำหรับบริการเดียวกัน
  • อักขระต้องเป็นตัวพิมพ์เล็กหรือขีดกลาง (a-z0-9\-)
  • เครื่องหมายขีดกลางต้องไม่ปรากฏติดกัน
ตัวพิมพ์เล็ก
ชื่อหัวข้อ 127 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษร (a-z)
  • อักขระต้องเป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกันหรือขีดกลาง (a-z0-9\-)
ตัวพิมพ์เล็ก
ชื่อช่อง 127 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษร (a-z)
  • อักขระต้องเป็นตัวอักษรพิมพ์เล็กและตัวเลขคละกันหรือขีดกลาง (a-z0-9\-)
ตัวพิมพ์เล็ก
ชื่อหน่วยบริการ 48 อักขระ
  • ต้องขึ้นต้นด้วยตัวอักษร (a-z)
  • ต้องไม่ลงท้ายด้วยขีดกลาง (-)
  • อักขระต้องเป็นตัวพิมพ์เล็กหรือขีดกลาง (a-z0-9\-)
  • ขีดกลางต้องไม่ปรากฏติดกันมากกว่า 1 ครั้ง
ตัวพิมพ์เล็ก