มัลติแพน

โมดูลนี้มีกระบวนการ Abstraction ของแพลตฟอร์มสำหรับการรองรับฟีเจอร์หลายฟีด

สรุป

ฟังก์ชัน

otPlatMultipanGetActiveInstance(otInstance **aInstance)
รับอินสแตนซ์ที่อยู่ในการควบคุมของวิทยุในขณะนี้
otPlatMultipanIidToInstance(uint8_t aIid)
รับตัวชี้อินสแตนซ์ที่ตรงกับ IID ที่กำหนด
otPlatMultipanInstanceToIid(otInstance *aInstance)
uint8_t
รับ IID ที่สอดคล้องกับตัวชี้อินสแตนซ์ OpenThread ที่ระบุ
otPlatMultipanSetActiveInstance(otInstance *aInstance, bool aCompletePending)
ตั้งค่า aInstance เป็นวิทยุที่ควบคุมอินสแตนซ์ที่ใช้งานอยู่ในปัจจุบัน
otPlatMultipanSwitchoverDone(otInstance *aInstance, bool aSuccess)
void
แพลตฟอร์มดำเนินขั้นตอนการเปลี่ยนอินเทอร์เฟซเสร็จเรียบร้อยแล้ว

ฟังก์ชัน

otPlatMultipanGetActiveInstance

otError otPlatMultipanGetActiveInstance(
  otInstance **aInstance
)

รับอินสแตนซ์ที่อยู่ในการควบคุมของวิทยุในขณะนี้

หากเรดิโอไม่ทำงานพร้อมกันในทุกอินเทอร์เฟซ ฟังก์ชันนี้จะแสดงผลออบเจ็กต์อินสแตนซ์ที่มีสิทธิ์เข้าถึงวิทยุที่ได้รับ

รายละเอียด
พารามิเตอร์
[out] aInstance
ชี้ไปที่ตัวแปรสำหรับจัดเก็บตัวชี้อินสแตนซ์ที่ใช้งานอยู่
แสดงผลค่า
OT_ERROR_NONE
เรียกข้อมูลพร็อพเพอร์ตี้เรียบร้อยแล้ว
OT_ERROR_NOT_IMPLEMENTED
ไม่สำเร็จเนื่องจากไม่มีการสนับสนุนในวิทยุ
OT_ERROR_INVALID_COMMAND
แพลตฟอร์มรองรับอินเทอร์เฟซทั้งหมดพร้อมกัน

otPlatMultipanIidToInstance

otInstance * otPlatMultipanIidToInstance(
  uint8_t aIid
)

รับตัวชี้อินสแตนซ์ที่ตรงกับ IID ที่กำหนด

รายละเอียด
พารามิเตอร์
[in] aIid
IID ของอินเทอร์เฟซ
แสดงผลค่า
Instance
หากมีการกำหนดอินสแตนซ์ aIid หรือไม่ถือว่า nullptr

otPlatMultipanInstanceToIid

uint8_t otPlatMultipanInstanceToIid(
  otInstance *aInstance
)

รับ IID ที่สอดคล้องกับตัวชี้อินสแตนซ์ OpenThread ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
แสดงผลค่า
IID
ของอินสแตนซ์ที่ระบุ ให้เผยแพร่ IID เป็นอย่างอื่น

otPlatMultipanSetActiveInstance

otError otPlatMultipanSetActiveInstance(
  otInstance *aInstance,
  bool aCompletePending
)

ตั้งค่า aInstance เป็นวิทยุที่ควบคุมอินสแตนซ์ที่ใช้งานอยู่ในปัจจุบัน

ฟังก์ชันนี้ช่วยให้เลือกอินสแตนซ์ที่ใช้งานอยู่ในขณะนี้บนแพลตฟอร์มที่ไม่รองรับการสื่อสารพร้อมกันบนอินเทอร์เฟซหลายรายการ กล่าวคือ หากมีอินสแตนซ์มากกว่า 1 รายการที่อยู่ในสถานะการรับ การเรียกใช้ otPlatMultipanSetActiveInstance จะเป็นการรับประกันว่าอินสแตนซ์ที่ระบุจะเป็นอินสแตนซ์ที่รับมา ฟังก์ชันนี้จะแสดงผลหากได้รับคำขออย่างถูกต้อง หลังจากเปลี่ยนอินเทอร์เฟซเสร็จแล้ว แพลตฟอร์มควรเรียกใช้ otPlatMultipanSwitchoverDone การเปลี่ยนอินเทอร์เฟซอาจใช้เวลานานกว่านี้หากตั้งค่า aCompletePending เป็น "จริง"

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aCompletePending
เป็นจริงหากการดําเนินการของวิทยุที่ดำเนินอยู่ควรเสร็จสมบูรณ์ก่อนเปลี่ยนอินเทอร์เฟซ (สวิตช์อย่างนุ่มนวล) เป็นเท็จสําหรับการบังคับให้เปลี่ยน
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าพร็อพเพอร์ตี้เรียบร้อยแล้ว
OT_ERROR_BUSY
ล้มเหลวเนื่องจากมีการดำเนินการอื่นที่ดำเนินการอยู่
OT_ERROR_NOT_IMPLEMENTED
ล้มเหลวเนื่องจากมีอินสแตนซ์ที่ไม่รู้จักหรือมีอินสแตนซ์มากกว่าอินเทอร์เฟซที่มีอยู่
OT_ERROR_INVALID_COMMAND
แพลตฟอร์มรองรับอินเทอร์เฟซทั้งหมดพร้อมกัน
OT_ERROR_ALREADY
อินเทอร์เฟซที่ระบุมีการใช้งานอยู่แล้ว

otPlatMultipanSwitchoverDone

void otPlatMultipanSwitchoverDone(
  otInstance *aInstance,
  bool aSuccess
)

แพลตฟอร์มดำเนินขั้นตอนการเปลี่ยนอินเทอร์เฟซเสร็จเรียบร้อยแล้ว

ควรเรียกใช้ทันทีหลังจากประมวลผล otPlatMultipanSetActiveInstance หากไม่มีการหน่วงเวลาไว้ หรือหากต้องดำเนินการทางวิทยุที่ใช้เวลานานขึ้นก่อน หลังการเปลี่ยนในอินเทอร์เฟซเสร็จสมบูรณ์

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aSuccess
เป็นจริงหากเปลี่ยนอินเทอร์เฟซสำเร็จ เป็นเท็จหากเปลี่ยนไม่สำเร็จ

แหล่งข้อมูล

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