تشخیص مش

این ماژول شامل تعاریف و توابع برای Mesh Diagnostics است.

خلاصه

APIهای Mesh Diagnostics به OPENTHREAD_CONFIG_MESH_DIAG_ENABLE و OPENTHREAD_FTD نیاز دارند.

Typedefs

otMeshDiagChildEntry typedef
نشان دهنده اطلاعات مربوط به ورودی فرزند از otMeshDiagQueryChildTable() است.
otMeshDiagChildInfo typedef
اطلاعات مربوط به یک فرزند کشف شده را در شبکه Thread با استفاده از otMeshDiagDiscoverTopology() نشان می دهد.
otMeshDiagChildIp6AddrsCallback )(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
نشان دهنده پاسخ به تماس مورد استفاده توسط otMeshDiagQueryChildrenIp6Addrs() برای ارائه اطلاعات مربوط به فرزند MTD و لیست آدرس های IPv6 آن است.
otMeshDiagChildIterator typedef
یک تکرار کننده مات برای تکرار روی لیست فرزندان یک روتر.
otMeshDiagDiscoverCallback )(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
نوع اشاره گر پاسخ تماسی است که توسط otMeshDiagDiscoverTopology() برای ارائه اطلاعات در مورد روتر کشف شده استفاده می شود.
otMeshDiagDiscoverConfig typedef
مجموعه ای از تنظیمات مورد استفاده در هنگام کشف توپولوژی مش را نشان می دهد که نشان می دهد کدام موارد را باید کشف کرد.
otMeshDiagIp6AddrIterator typedef
یک تکرار کننده مات برای تکرار روی لیست آدرس های IPv6 یک روتر.
otMeshDiagQueryChildTableCallback )(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
نشان دهنده پاسخ به تماس مورد استفاده توسط otMeshDiagQueryChildTable() برای ارائه اطلاعات در مورد ورودی های جدول فرزند است.
otMeshDiagQueryRouterNeighborTableCallback )(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
نشان دهنده پاسخ به تماسی است که توسط otMeshDiagQueryRouterNeighborTable() برای ارائه اطلاعات در مورد ورودی های جدول روتر همسایه استفاده می شود.
otMeshDiagRouterInfo typedef
نشان دهنده اطلاعاتی در مورد یک روتر در Thread mesh است که با استفاده از 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

نشان دهنده اطلاعات مربوط به ورودی فرزند از otMeshDiagQueryChildTable() است.

otMeshDiagChildInfo

اطلاعات مربوط به یک فرزند کشف شده را در شبکه Thread با استفاده از otMeshDiagDiscoverTopology() نشان می دهد.

otMeshDiagDiscoverConfig

مجموعه ای از تنظیمات مورد استفاده در هنگام کشف توپولوژی مش را نشان می دهد که نشان می دهد کدام موارد را باید کشف کرد.

otMeshDiagRouterInfo

نشان دهنده اطلاعاتی در مورد یک روتر در Thread mesh است که با استفاده از otMeshDiagDiscoverTopology() کشف شده است.

otMeshDiagRouterNeighborEntry

اطلاعات مربوط به ورودی همسایه روتر را از otMeshDiagQueryRouterNeighborTable() نشان می دهد.

Typedefs

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

نشان دهنده اطلاعات مربوط به ورودی فرزند از otMeshDiagQueryChildTable() است.

mSupportsErrRate نشان می دهد که آیا ویژگی ردیابی خطا پشتیبانی می شود یا خیر و مقادیر mFrameErrorRate و mMessageErrorRate معتبر هستند یا خیر. نرخ خطای فریم خطاهای قاب tx (به سمت فرزند) را در لایه MAC ردیابی می کند، در حالی که mMessageErrorRate نرخ خطای پیام IPv6 (بالای لایه MAC و پس از تلاش مجدد MAC) را هنگامی که یک پیام IPv6 حذف می شود، ردیابی می کند. به عنوان مثال، اگر پیام بزرگ است و نیاز به قطعه قطعه شدن 6LoWPAN دارد، پیام tx در صورتی که یکی از فریم های فریم tx از کار بیفتد (به عنوان مثال، هرگز مورد پذیرش قرار نگرفته باشد) ناموفق در نظر گرفته می شود.

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

اطلاعات مربوط به یک فرزند کشف شده را در شبکه Thread با استفاده از otMeshDiagDiscoverTopology() نشان می دهد.

otMeshDiagChildIp6AddrsCallback

void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)

نشان دهنده پاسخ به تماس مورد استفاده توسط otMeshDiagQueryChildrenIp6Addrs() برای ارائه اطلاعات مربوط به فرزند MTD و لیست آدرس های IPv6 آن است.

وقتی aError OT_ERROR_PENDING باشد، نشان می‌دهد که تعداد فرزندان بیشتری وجود دارد و تماس مجدد دوباره فراخوانی می‌شود.

جزئیات
مولفه های
[in] aError
OT_ERROR_PENDING نشان می‌دهد تعداد فرزندان بیشتری در جدول وجود دارد. OT_ERROR_NONE نشان می دهد که جدول تمام شده است. OT_ERROR_RESPONSE_TIMEOUT زمان انتظار برای پاسخ به پایان رسید.
[in] aChildRloc16
RLOC16 کودک. 0xfffe در OT_ERROR_RESPONSE_TIMEOUT استفاده می شود.
[in] aIp6AddrIterator
یک تکرار کننده برای عبور از آدرس های IPv6 فرزند با aRloc با استفاده از otMeshDiagGetNextIp6Address() . در OT_ERROR_RESPONSE_TIMEOUT روی NULL تنظیم کنید.
[in] aContext
زمینه خاص برنامه

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

یک تکرار کننده مات برای تکرار روی لیست فرزندان یک روتر.

اشاره گرهایی به نمونه هایی از این نوع در otMeshDiagRouterInfo ارائه شده است.

otMeshDiagDiscoverCallback

void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)

نوع اشاره گر پاسخ تماسی است که توسط otMeshDiagDiscoverTopology() برای ارائه اطلاعات در مورد روتر کشف شده استفاده می شود.

هنگامی که aError OT_ERROR_PENDING باشد، نشان می‌دهد که کشف هنوز به پایان نرسیده است و روترهای بیشتری برای کشف وجود خواهد داشت و تماس مجدد دوباره فراخوانی می‌شود.

جزئیات
مولفه های
[in] aError
OT_ERROR_PENDING نشان می دهد که روترهای بیشتری برای کشف وجود دارد. OT_ERROR_NONE نشان می دهد که این آخرین روتر و کشف مش است. OT_ERROR_RESPONSE_TIMEOUT زمان انتظار برای پاسخ از یک یا چند روتر تمام شد.
[in] aRouterInfo
اطلاعات روتر کشف شده (اگر aError OT_ERROR_RESPONSE_TIMEOUT باشد، می تواند پوچ باشد).
[in] aContext
زمینه خاص برنامه

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

مجموعه ای از تنظیمات مورد استفاده در هنگام کشف توپولوژی مش را نشان می دهد که نشان می دهد کدام موارد را باید کشف کرد.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

یک تکرار کننده مات برای تکرار روی لیست آدرس های IPv6 یک روتر.

اشاره گرهایی به نمونه هایی از این نوع در otMeshDiagRouterInfo ارائه شده است.

otMeshDiagQueryChildTableCallback

void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)

نشان دهنده پاسخ به تماس مورد استفاده توسط otMeshDiagQueryChildTable() برای ارائه اطلاعات در مورد ورودی های جدول فرزند است.

هنگامی که aError OT_ERROR_PENDING باشد، نشان می‌دهد که جدول همچنان ورودی‌های بیشتری دارد و تماس مجدد دوباره فراخوانی می‌شود.

جزئیات
مولفه های
[in] aError
OT_ERROR_PENDING نشان می دهد که ورودی های بیشتری در جدول وجود دارد. OT_ERROR_NONE نشان می دهد که جدول تمام شده است. OT_ERROR_RESPONSE_TIMEOUT زمان انتظار برای پاسخ به پایان رسید.
[in] aChildEntry
ورودی فرزند (اگر aError OT_ERROR_RESPONSE_TIMEOUT یا OT_ERROR_NONE باشد، می‌تواند خالی باشد).
[in] aContext
زمینه خاص برنامه

otMeshDiagQueryRouterNeighborTableCallback

void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)

نشان دهنده پاسخ به تماسی است که توسط otMeshDiagQueryRouterNeighborTable() برای ارائه اطلاعات در مورد ورودی های جدول روتر همسایه استفاده می شود.

هنگامی که aError OT_ERROR_PENDING باشد، نشان می‌دهد که جدول همچنان ورودی‌های بیشتری دارد و تماس مجدد دوباره فراخوانی می‌شود.

جزئیات
مولفه های
[in] aError
OT_ERROR_PENDING نشان می دهد که ورودی های بیشتری در جدول وجود دارد. OT_ERROR_NONE نشان می دهد که جدول تمام شده است. OT_ERROR_RESPONSE_TIMEOUT زمان انتظار برای پاسخ به پایان رسید.
[in] aNeighborEntry
ورودی همسایه (اگر aError RESPONSE_TIMEOUT یا NONE باشد، می تواند خالی باشد).
[in] aContext
زمینه خاص برنامه

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

نشان دهنده اطلاعاتی در مورد یک روتر در Thread mesh است که با استفاده از otMeshDiagDiscoverTopology() کشف شده است.

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

اطلاعات مربوط به ورودی همسایه روتر را از otMeshDiagQueryRouterNeighborTable() نشان می دهد.

mSupportsErrRate نشان می دهد که آیا ویژگی ردیابی خطا پشتیبانی می شود یا خیر و مقادیر mFrameErrorRate و mMessageErrorRate معتبر هستند یا خیر. نرخ خطای فریم خطاهای قاب tx (به سمت فرزند) را در لایه MAC ردیابی می کند، در حالی که mMessageErrorRate نرخ خطای پیام IPv6 (بالای لایه MAC و پس از تلاش مجدد MAC) را هنگامی که یک پیام IPv6 حذف می شود، ردیابی می کند. به عنوان مثال، اگر پیام بزرگ است و نیاز به قطعه قطعه شدن 6LoWPAN دارد، پیام tx در صورتی که یکی از فریم های فریم tx از کار بیفتد (به عنوان مثال، هرگز مورد پذیرش قرار نگرفته باشد) ناموفق در نظر گرفته می شود.

کارکرد

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

در صورت وجود، کشف توپولوژی در حال انجام را لغو می کند، در غیر این صورت هیچ اقدامی انجام نمی شود.

هنگامی که اکتشاف در حال انجام لغو شد، تماس پاسخ از otMeshDiagDiscoverTopology() دیگر فراخوانی نخواهد شد.

otMeshDiagDiscoverTopology

otError otMeshDiagDiscoverTopology(
  otInstance *aInstance,
  const otMeshDiagDiscoverConfig *aConfig,
  otMeshDiagDiscoverCallback aCallback,
  void *aContext
)

کشف توپولوژی شبکه را شروع می کند.

جزئیات
مولفه های
[in] aInstance
نمونه OpenThread.
[in] aConfig
پیکربندی مورد استفاده برای کشف (به عنوان مثال، موارد برای کشف).
[in] aCallback
تماس برگشتی برای گزارش روترهای کشف شده
[in] aContext
زمینه ای برای ارسال در aCallback .
ارزش های بازگشتی
OT_ERROR_NONE
کشف توپولوژی شبکه با موفقیت آغاز شد.
OT_ERROR_BUSY
درخواست کشف قبلی هنوز ادامه دارد.
OT_ERROR_INVALID_STATE
دستگاه متصل نیست.
OT_ERROR_NO_BUFS
نمی توان بافر را برای ارسال پیام های اکتشافی تخصیص داد.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

از طریق فرزندان کشف شده یک روتر تکرار می شود.

این تابع باید از callback otMeshDiagDiscoverCallback() استفاده شود و از mChildIterator از ساختار aRouterInfo استفاده شود که به عنوان ورودی به callback ارائه شده است.

جزئیات
مولفه های
[in,out] aIterator
تکرار کننده آدرس برای استفاده.
[out] aChildInfo
یک اشاره گر برای برگرداندن اطلاعات فرزند (در صورت وجود).
ارزش های بازگشتی
OT_ERROR_NONE
فرزند بعدی را با موفقیت بازیابی کرد. aChildInfo و aIterator به روز می شوند.
OT_ERROR_NOT_FOUND
دیگه بچه نیست به انتهای لیست رسید.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

از طریق آدرس های IPv6 کشف شده یک روتر یا یک فرزند MTD تکرار می شود.

باید استفاده شود

  • از فراخوانی otMeshDiagDiscoverCallback() و از mIp6AddrIterator از ساختار aRouterInfo که به عنوان ورودی به callback ارائه می شود، استفاده کنید، یا
  • از فراخوانی otMeshDiagChildIp6AddrsCallback() همراه با aIp6AddrIterator ارائه شده.

جزئیات
مولفه های
[in,out] aIterator
تکرار کننده آدرس برای استفاده.
[out] aIp6Address
یک اشاره گر برای برگرداندن آدرس IPv6 بعدی (در صورت وجود).
ارزش های بازگشتی
OT_ERROR_NONE
آدرس بعدی با موفقیت بازیابی شد. aIp6Address و aIterator به روز می شوند.
OT_ERROR_NOT_FOUND
آدرس دیگه ای نیست به انتهای لیست رسید.

otMeshDiagQueryChildTable

otError otMeshDiagQueryChildTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryChildTableCallback aCallback,
  void *aContext
)

پرس و جو برای جدول فرزند را برای یک روتر مشخص شروع می کند.

جزئیات
مولفه های
[in] aInstance
نمونه OpenThread.
[in] aRloc16
RLOC16 روتر برای پرس و جو.
[in] aCallback
پاسخ به تماس برای گزارش جدول فرزند درخواست شده.
[in] aContext
زمینه ای برای ارسال در aCallback .
ارزش های بازگشتی
OT_ERROR_NONE
پرس و جو با موفقیت شروع شد.
OT_ERROR_BUSY
یک کشف یا درخواست پرس و جو قبلی هنوز در حال انجام است.
OT_ERROR_INVALID_ARGS
aRloc16 یک روتر معتبر RLOC16 نیست.
OT_ERROR_INVALID_STATE
دستگاه متصل نیست.
OT_ERROR_NO_BUFS
نمی توان بافر را برای ارسال پیام های پرس و جو اختصاص داد.

otMeshDiagQueryChildrenIp6Addrs

otError otMeshDiagQueryChildrenIp6Addrs(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagChildIp6AddrsCallback aCallback,
  void *aContext
)

برای بازیابی آدرس IPv6 همه فرزندان MTD خود، یک پرسش به والدین ارسال می کند.

جزئیات
مولفه های
[in] aInstance
نمونه OpenThread.
[in] aRloc16
RLOC16 والد برای پرس و جو.
[in] aCallback
پاسخ به تماس برای گزارش لیست آدرس IPv6 فرزند درخواست شده.
[in] aContext
زمینه ای برای ارسال در aCallback .
ارزش های بازگشتی
OT_ERROR_NONE
پرس و جو با موفقیت شروع شد.
OT_ERROR_BUSY
یک کشف یا درخواست پرس و جو قبلی هنوز در حال انجام است.
OT_ERROR_INVALID_ARGS
aRloc16 یک RLOC16 معتبر نیست.
OT_ERROR_INVALID_STATE
دستگاه متصل نیست.
OT_ERROR_NO_BUFS
نمی توان بافر را برای ارسال پیام های پرس و جو اختصاص داد.

otMeshDiagQueryRouterNeighborTable

otError otMeshDiagQueryRouterNeighborTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryRouterNeighborTableCallback aCallback,
  void *aContext
)

پرس و جو برای جدول همسایه روتر را برای یک روتر مشخص شروع می کند.

جزئیات
مولفه های
[in] aInstance
نمونه OpenThread.
[in] aRloc16
RLOC16 روتر برای پرس و جو.
[in] aCallback
پاسخ به تماس برای گزارش جدول درخواست شده.
[in] aContext
زمینه ای برای ارسال در aCallback .
ارزش های بازگشتی
OT_ERROR_NONE
پرس و جو با موفقیت شروع شد.
OT_ERROR_BUSY
یک کشف یا درخواست پرس و جو قبلی هنوز در حال انجام است.
OT_ERROR_INVALID_ARGS
aRloc16 یک روتر معتبر RLOC16 نیست.
OT_ERROR_INVALID_STATE
دستگاه متصل نیست.
OT_ERROR_NO_BUFS
نمی توان بافر را برای ارسال پیام های پرس و جو اختصاص داد.

ماکروها

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

مشخص می کند که نسخه Thread ناشناخته است.

این در otMeshDiagRouterInfo برای ویژگی mVersion زمانی که دستگاه نسخه خود را ارائه نمی دهد استفاده می شود. این نشان می دهد که دستگاه احتمالاً نسخه 1.3.0 (مقدار نسخه 4) یا قبل از آن را اجرا می کند.

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.