การวินิจฉัย Mesh
โมดูลนี้มีคำจำกัดความและฟังก์ชันสำหรับการวินิจฉัย Mesh
สรุป
API การวินิจฉัย Mesh ต้องใช้ OPENTHREAD_CONFIG_MESH_DIAG_ENABLE
และ OPENTHREAD_FTD
Typedef |
|
---|---|
otMeshDiagChildEntry
|
typedefstruct otMeshDiagChildEntry
แสดงข้อมูลเกี่ยวกับรายการย่อยจาก otMeshDiagQueryChildTable() |
otMeshDiagChildInfo
|
typedefstruct otMeshDiagChildInfo
แสดงข้อมูลเกี่ยวกับเด็กที่ค้นพบในโครงข่ายเทรดโดยใช้ otMeshDiagDiscoverTopology() |
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)
|
typedefvoid(*
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryChildrenIp6Addrs() ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการย่อยของ MTD และรายการที่อยู่ IPv6 |
otMeshDiagChildIterator
|
typedefstruct otMeshDiagChildIterator
ตัววนซ้ำแบบทึบเพื่อทำซ้ำบนรายการย่อยของเราเตอร์ |
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)
|
typedefvoid(*
ประเภทตัวชี้แสดงโค้ดเรียกกลับที่ otMeshDiagDiscoverTopology() ใช้เพื่อให้ข้อมูลเกี่ยวกับเราเตอร์ที่ค้นพบ |
otMeshDiagDiscoverConfig
|
typedefstruct otMeshDiagDiscoverConfig
แสดงชุดของการกำหนดค่าที่ใช้เมื่อค้นพบโทโพโลยี Mesh ซึ่งระบุรายการที่จะค้นหา |
otMeshDiagIp6AddrIterator
|
typedefstruct otMeshDiagIp6AddrIterator
ตัววนซ้ำแบบทึบเพื่อทำซ้ำบนรายการที่อยู่ IPv6 ของเราเตอร์ |
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)
|
typedefvoid(*
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryChildTable() ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการในตารางย่อย |
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)
|
typedefvoid(*
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryRouterNeighborTable() ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการในตารางเราเตอร์ที่อยู่ใกล้เคียง |
otMeshDiagRouterInfo
|
typedefstruct otMeshDiagRouterInfo
แสดงข้อมูลเกี่ยวกับเราเตอร์ในโครงข่ายเทรดที่ค้นพบโดยใช้ otMeshDiagDiscoverTopology() |
otMeshDiagRouterNeighborEntry
|
typedef แสดงข้อมูลเกี่ยวกับรายการใกล้เคียงของเราเตอร์จาก otMeshDiagQueryRouterNeighborTable() |
ฟังก์ชัน |
|
---|---|
otMeshDiagCancel(otInstance *aInstance)
|
void
ยกเลิกการค้นพบโทโพโลยีต่อเนื่อง หากมี หรือไม่เช่นนั้นก็ไม่ต้องดำเนินการใดๆ
|
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
|
เริ่มการค้นพบโทโพโลยีเครือข่าย
|
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
|
ทำซ้ำผ่านลูกที่ค้นพบของเราเตอร์
|
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
|
ทำซ้ำที่อยู่ IPv6 ที่ค้นพบของเราเตอร์หรือระบบย่อย MTD
|
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
|
เริ่มการค้นหาตารางย่อยสำหรับเราเตอร์ที่ระบุ
|
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
|
ส่งคำขอไปยังระดับบนสุดเพื่อเรียกข้อมูลที่อยู่ IPv6 ของรายการย่อย MTD ทั้งหมด
|
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
|
เริ่มการค้นหาตารางข้างเคียงของเราเตอร์สำหรับเราเตอร์ที่ระบุ
|
โครงสร้าง |
|
---|---|
otMeshDiagChildEntry |
แสดงข้อมูลเกี่ยวกับรายการย่อยจาก |
otMeshDiagChildInfo |
แสดงข้อมูลเกี่ยวกับเด็กที่ค้นพบในโครงข่ายเทรดโดยใช้ |
otMeshDiagDiscoverConfig |
แสดงชุดของการกำหนดค่าที่ใช้เมื่อค้นพบโทโพโลยี Mesh ซึ่งระบุรายการที่จะค้นหา |
otMeshDiagRouterInfo |
แสดงข้อมูลเกี่ยวกับเราเตอร์ในโครงข่ายเทรดที่ค้นพบโดยใช้ |
otMeshDiagRouterNeighborEntry |
แสดงข้อมูลเกี่ยวกับรายการใกล้เคียงของเราเตอร์จาก |
Typedef
otMeshDiagChildEntry
struct otMeshDiagChildEntry otMeshDiagChildEntry
แสดงข้อมูลเกี่ยวกับรายการย่อยจาก otMeshDiagQueryChildTable()
mSupportsErrRate
จะระบุว่ารองรับฟีเจอร์การติดตามข้อผิดพลาดหรือไม่ และค่า mFrameErrorRate
และ mMessageErrorRate
ถูกต้อง ข้อผิดพลาดของเฟรมจะติดตามข้อผิดพลาด tx ของเฟรม (ไปยังเฟรมย่อย) ที่เลเยอร์ MAC ขณะที่ mMessageErrorRate
ติดตามอัตราข้อผิดพลาดของข้อความ IPv6 (เหนือเลเยอร์ MAC และหลังจาก MAC ซ้ำ) เมื่อข้อความ IPv6 หายไป เช่น หากข้อความมีขนาดใหญ่และต้องมีการแยกส่วน 6LoWPAN ข้อความ tx จะถือว่าล้มเหลว หากเฟรม Fragment tx รายการใดรายการหนึ่งล้มเหลว (เช่น ไม่จับคู่)
otMeshDiagChildInfo
struct otMeshDiagChildInfo otMeshDiagChildInfo
แสดงข้อมูลเกี่ยวกับเด็กที่ค้นพบในโครงข่ายเทรดโดยใช้ otMeshDiagDiscoverTopology()
otMeshDiagChildIp6AddrsCallback
void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryChildrenIp6Addrs()
ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการย่อยของ MTD และรายการที่อยู่ IPv6
เมื่อ aError
เท่ากับ OT_ERROR_PENDING
แสดงว่ามีเด็กมากกว่านี้ และจะมีการเรียกกลับอีกครั้ง
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otMeshDiagChildIterator
struct otMeshDiagChildIterator otMeshDiagChildIterator
ตัววนซ้ำแบบทึบเพื่อทำซ้ำบนรายการย่อยของเราเตอร์
ตัวชี้อินสแตนซ์ของประเภทนี้จะอยู่ใน otMeshDiagRouterInfo
otMeshDiagDiscoverCallback
void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)
ประเภทตัวชี้แสดงโค้ดเรียกกลับที่ otMeshDiagDiscoverTopology()
ใช้เพื่อให้ข้อมูลเกี่ยวกับเราเตอร์ที่ค้นพบ
เมื่อ aError
คือ OT_ERROR_PENDING
จะบ่งบอกว่าการค้นพบยังไม่เสร็จสิ้น และจะมีเราเตอร์อื่นๆ ให้ค้นพบอีก และจะมีการเรียกใช้โค้ดเรียกกลับอีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otMeshDiagDiscoverConfig
struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig
แสดงชุดของการกำหนดค่าที่ใช้เมื่อค้นพบโทโพโลยี Mesh ซึ่งระบุรายการที่จะค้นหา
otMeshDiagIp6AddrIterator
struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator
ตัววนซ้ำแบบทึบเพื่อทำซ้ำบนรายการที่อยู่ IPv6 ของเราเตอร์
ตัวชี้อินสแตนซ์ของประเภทนี้จะอยู่ใน otMeshDiagRouterInfo
otMeshDiagQueryChildTableCallback
void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryChildTable()
ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการในตารางย่อย
เมื่อ aError
เท่ากับ OT_ERROR_PENDING
แสดงว่าตารางยังมีรายการอีก และจะเรียกใช้โค้ดเรียกกลับอีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otMeshDiagQueryRouterNeighborTableCallback
void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)
แสดงโค้ดเรียกกลับที่ otMeshDiagQueryRouterNeighborTable()
ใช้เพื่อให้ข้อมูลเกี่ยวกับรายการในตารางเราเตอร์ที่อยู่ใกล้เคียง
เมื่อ aError
เท่ากับ OT_ERROR_PENDING
แสดงว่าตารางยังมีรายการอีก และจะเรียกใช้โค้ดเรียกกลับอีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otMeshDiagRouterInfo
struct otMeshDiagRouterInfo otMeshDiagRouterInfo
แสดงข้อมูลเกี่ยวกับเราเตอร์ในโครงข่ายเทรดที่ค้นพบโดยใช้ otMeshDiagDiscoverTopology()
otMeshDiagRouterNeighborEntry
struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry
แสดงข้อมูลเกี่ยวกับรายการใกล้เคียงของเราเตอร์จาก otMeshDiagQueryRouterNeighborTable()
mSupportsErrRate
จะระบุว่ารองรับฟีเจอร์การติดตามข้อผิดพลาดหรือไม่ และค่า mFrameErrorRate
และ mMessageErrorRate
ถูกต้อง ข้อผิดพลาดของเฟรมจะติดตามข้อผิดพลาด tx ของเฟรม (ไปยังเฟรมย่อย) ที่เลเยอร์ MAC ขณะที่ mMessageErrorRate
ติดตามอัตราข้อผิดพลาดของข้อความ IPv6 (เหนือเลเยอร์ MAC และหลังจาก MAC ซ้ำ) เมื่อข้อความ IPv6 หายไป เช่น หากข้อความมีขนาดใหญ่และต้องมีการแยกส่วน 6LoWPAN ข้อความ tx จะถือว่าล้มเหลว หากเฟรม Fragment tx รายการใดรายการหนึ่งล้มเหลว (เช่น ไม่จับคู่)
ฟังก์ชัน
otMeshDiagCancel
void otMeshDiagCancel( otInstance *aInstance )
ยกเลิกการค้นพบโทโพโลยีต่อเนื่อง หากมี หรือไม่เช่นนั้นก็ไม่ต้องดำเนินการใดๆ
เมื่อมีการยกเลิกการค้นหาที่ดำเนินการอยู่ จะไม่มีการโทรกลับจาก otMeshDiagDiscoverTopology()
อีกต่อไป
otMeshDiagDiscoverTopology
otError otMeshDiagDiscoverTopology( otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext )
เริ่มการค้นพบโทโพโลยีเครือข่าย
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otMeshDiagGetNextChildInfo
otError otMeshDiagGetNextChildInfo( otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo )
ทำซ้ำผ่านลูกที่ค้นพบของเราเตอร์
ต้องใช้ฟังก์ชันนี้จากโค้ดเรียกกลับ otMeshDiagDiscoverCallback()
และใช้ mChildIterator
จากโครงสร้าง aRouterInfo
ที่ให้ไว้เป็นอินพุตสำหรับโค้ดเรียกกลับ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
otMeshDiagGetNextIp6Address
otError otMeshDiagGetNextIp6Address( otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address )
ทำซ้ำที่อยู่ IPv6 ที่ค้นพบของเราเตอร์หรือระบบย่อย MTD
ต้องใช้
- จากโค้ดเรียกกลับ
otMeshDiagDiscoverCallback()
และใช้mIp6AddrIterator
จากโครงสร้างaRouterInfo
ที่ให้ไว้เป็นอินพุตสำหรับโค้ดเรียกกลับ หรือ - จากโค้ดเรียกกลับ
otMeshDiagChildIp6AddrsCallback()
พร้อมกับaIp6AddrIterator
ที่ระบุ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
otMeshDiagQueryChildTable
otError otMeshDiagQueryChildTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext )
เริ่มการค้นหาตารางย่อยสำหรับเราเตอร์ที่ระบุ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otMeshDiagQueryChildrenIp6Addrs
otError otMeshDiagQueryChildrenIp6Addrs( otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext )
ส่งคำขอไปยังระดับบนสุดเพื่อเรียกข้อมูลที่อยู่ IPv6 ของรายการย่อย MTD ทั้งหมด
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otMeshDiagQueryRouterNeighborTable
otError otMeshDiagQueryRouterNeighborTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext )
เริ่มการค้นหาตารางข้างเคียงของเราเตอร์สำหรับเราเตอร์ที่ระบุ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
มาโคร
OT_MESH_DIAG_VERSION_UNKNOWN
OT_MESH_DIAG_VERSION_UNKNOWN 0xffff
ระบุว่าไม่รู้จักเวอร์ชันของเทรด
ใช้นี้ใน otMeshDiagRouterInfo
สำหรับพร็อพเพอร์ตี้ mVersion
เมื่ออุปกรณ์ไม่ได้ระบุเวอร์ชัน ซึ่งบ่งบอกว่าอุปกรณ์น่าจะใช้เวอร์ชัน 1.3.0 (ค่าเวอร์ชัน 4) หรือเก่ากว่า
แหล่งข้อมูล
หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล