เบ็ดเตล็ด

โมดูลนี้ประกอบด้วยแพลตฟอร์มสำหรับพฤติกรรมอื่นๆ

สรุป

การแจกแจง

otPlatMcuPowerState{
  OT_PLAT_MCU_POWER_STATE_ON = 0,
  OT_PLAT_MCU_POWER_STATE_LOW_POWER = 1,
  OT_PLAT_MCU_POWER_STATE_OFF = 2
}
enum
การแจกแจงสถานะพลังงานของไมโครคอนโทรลเลอร์
otPlatResetReason enum
การแจกแจงรหัสเหตุผลที่รีเซ็ตที่เป็นไปได้

ฟังก์ชัน

otPlatAssertFail(const char *aFilename, int aLineNumber)
void
มอบการใช้งานเฉพาะแพลตฟอร์มสำหรับยืนยัน
otPlatGetMcuPowerState(otInstance *aInstance)
รับสถานะพลังงาน MCU ที่ต้องการในปัจจุบัน
otPlatGetResetReason(otInstance *aInstance)
แสดงเหตุผลสำหรับการรีเซ็ตแพลตฟอร์มครั้งล่าสุด
otPlatReset(otInstance *aInstance)
void
รีเซ็ตซอฟต์แวร์บนแพลตฟอร์ม หากรองรับ
otPlatResetToBootloader(otInstance *aInstance)
รีเซ็ตฮาร์ดแวร์บนแพลตฟอร์มเพื่อเปิดโหมด Bootloader หากรองรับ
otPlatSetMcuPowerState(otInstance *aInstance, otPlatMcuPowerState aState)
ตั้งค่าสถานะพลังงาน MCU ที่ต้องการ
otPlatWakeHost(void)
void
ดำเนินการเฉพาะแพลตฟอร์มเพื่อปลุกระบบ MCU ของโฮสต์

การแจกแจง

otPlatMcuPowerState

 otPlatMcuPowerState

การแจกแจงสถานะพลังงานของไมโครคอนโทรลเลอร์

ค่าเหล่านี้ใช้สำหรับการกำหนดค่า NCP เมื่อเปิดใช้ OPENTHREAD_CONFIG_NCP_ENABLE_MCU_POWER_STATE_CONTROL

สถานะพลังงานจะระบุสถานะพลังงานที่ต้องการของไมโครคอนโทรลเลอร์ (MCU) ของ NCP เมื่อระบบปฏิบัติการของแพลตฟอร์มที่ใช้งานอยู่เข้าสู่โหมดไม่มีการใช้งาน (กล่าวคือ งาน/เหตุการณ์ที่ใช้งานอยู่ทั้งหมดจะได้รับการประมวลผล และ MCU อาจเข้าสู่สถานะการประหยัดพลังงาน)

สถานะพลังงานเป็นตัวกำหนดวิธีที่โฮสต์ควรโต้ตอบกับ NCP เป็นหลัก และโฮสต์จำเป็นต้องทริกเกอร์ภายนอก ("poke") ไปยัง NCP ก่อนที่จะสื่อสารกับ NCP หรือไม่

หลังจากรีเซ็ต สถานะพลังงานของ MCU ต้องเป็น OT_PLAT_POWER_STATE_ON

พร็อพเพอร์ตี้
OT_PLAT_MCU_POWER_STATE_LOW_POWER

MCU ของ NCP สามารถเข้าสู่สถานะการใช้พลังงานต่ำ (ประหยัดพลังงาน)

เมื่อตั้งค่าสถานะพลังงานที่ต้องการของ NCP เป็น LOW_POWER โฮสต์จะต้อง "แหย่" NCP (เช่น ทริกเกอร์ภายนอก เช่น การรบกวน) ก่อนที่จะสื่อสารกับ NCP ได้ (ส่งข้อความไปยัง NCP) กลไก "poke" จะกำหนดโดยโค้ดแพลตฟอร์ม (ขึ้นอยู่กับอินเทอร์เฟซของ NCP กับโฮสต์)

ในขณะที่สถานะพลังงานตั้งค่าเป็น LOW_POWER NCP จะยังคงสามารถส่งข้อความไปยังโฮสต์ได้ (เมื่อใดก็ได้) โปรดทราบว่าการรับข้อความจาก NCP ไม่ได้ระบุว่าสถานะพลังงานของ NCP มีการเปลี่ยนแปลง กล่าวคือ โฮสต์จะต้อง "จิ๊ก" ต่อไปเมื่อต้องการพูดคุยกับ NCP จนกว่าจะมีการเปลี่ยนสถานะพลังงานอย่างชัดเจน (จากการเรียก otPlatSetMcuPowerState() ได้สำเร็จและเปลี่ยนสถานะเป็น ON)

OT_PLAT_MCU_POWER_STATE_OFF

NCP ปิดอยู่โดยสมบูรณ์

ต้องรีเซ็ตฮาร์ดแวร์ NCP (ผ่าน PIN รีเซ็ต) เพื่อนำ NCP กลับไปยัง SPINEL_MCU_POWER_STATE_ON ไม่เก็บรักษา RAM ไว้หลังจากรีเซ็ต

OT_PLAT_MCU_POWER_STATE_ON

MCU ของ NCP จะเปิดและทำงานอยู่ตลอดเวลา

เมื่อตั้งค่าสถานะพลังงานที่ต้องการของ NCP เป็น ON โฮสต์จะส่งข้อความไปยัง NCP ได้โดยไม่ต้องมี "poke" หรือทริกเกอร์ภายนอกใดๆ

otPlatResetReason

 otPlatResetReason

การแจกแจงรหัสเหตุผลที่รีเซ็ตที่เป็นไปได้

ซึ่งจะเรียงลําดับเดียวกับรหัสเหตุผลในการรีเซ็ต Spinel

ฟังก์ชัน

otPlatAssertFail

void otPlatAssertFail(
  const char *aFilename,
  int aLineNumber
)

มอบการใช้งานเฉพาะแพลตฟอร์มสำหรับยืนยัน

รายละเอียด
พารามิเตอร์
[in] aFilename
ชื่อไฟล์ที่มีการยืนยัน
[in] aLineNumber
หมายเลขบรรทัดในไฟล์ที่มีการยืนยัน

otPlatGetMcuPowerState

otPlatMcuPowerState otPlatGetMcuPowerState(
  otInstance *aInstance
)

รับสถานะพลังงาน MCU ที่ต้องการในปัจจุบัน

ซึ่งจะใช้ได้สำหรับการกำหนดค่า NCP เท่านั้นเมื่อเปิดใช้ OPENTHREAD_CONFIG_NCP_ENABLE_MCU_POWER_STATE_CONTROL

หลังจากรีเซ็ต สถานะพลังงานต้องเป็น OT_PLAT_POWER_STATE_ON ในระหว่างการดำเนินการ สถานะพลังงานควรเปลี่ยนผ่านการเรียกใช้ otPlatSetMcuPowerState() ที่สำเร็จอย่างชัดแจ้งเท่านั้น

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
สถานะพลังงานปัจจุบัน

otPlatGetResetReason

otPlatResetReason otPlatGetResetReason(
  otInstance *aInstance
)

แสดงเหตุผลสำหรับการรีเซ็ตแพลตฟอร์มครั้งล่าสุด

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

otPlatReset

void otPlatReset(
  otInstance *aInstance
)

รีเซ็ตซอฟต์แวร์บนแพลตฟอร์ม หากรองรับ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

otPlatResetToBootloader

otError otPlatResetToBootloader(
  otInstance *aInstance
)

รีเซ็ตฮาร์ดแวร์บนแพลตฟอร์มเพื่อเปิดโหมด Bootloader หากรองรับ

ใช้เมื่อเปิดใช้ OPENTHREAD_CONFIG_PLATFORM_BOOTLOADER_MODE_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
แสดงผลค่า
OT_ERROR_NONE
รีเซ็ตเป็น Bootloader เรียบร้อยแล้ว
OT_ERROR_BUSY
ล้มเหลวเนื่องจากมีการดำเนินการอื่นที่กำลังดำเนินอยู่
OT_ERROR_NOT_CAPABLE
ไม่สามารถรีเซ็ตเป็น Bootloader

otPlatSetMcuPowerState

otError otPlatSetMcuPowerState(
  otInstance *aInstance,
  otPlatMcuPowerState aState
)

ตั้งค่าสถานะพลังงาน MCU ที่ต้องการ

ซึ่งจะใช้ได้สำหรับการกำหนดค่า NCP เท่านั้นเมื่อเปิดใช้ OPENTHREAD_CONFIG_NCP_ENABLE_MCU_POWER_STATE_CONTROL

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aState
สถานะพลังงานของ MCU ใหม่
แสดงผลค่า
OT_ERROR_NONE
อัปเดตสถานะพลังงานเรียบร้อยแล้ว
OT_ERROR_FAILED
แพลตฟอร์มไม่รองรับสถานะพลังงาน MCU ที่ระบุ

otPlatWakeHost

void otPlatWakeHost(
  void
)

ดำเนินการเฉพาะแพลตฟอร์มเพื่อปลุกระบบ MCU ของโฮสต์

ใช้เฉพาะสำหรับการกำหนดค่า NCP เท่านั้น

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล