อินสแตนซ์

โมดูลนี้มีฟังก์ชันที่ควบคุมอินสแตนซ์ OpenThread

สรุป

Typedef

otChangedFlags typedef
uint32_t
แสดงฟิลด์บิตบ่งบอกสถานะ/การกำหนดค่าเฉพาะที่มีการเปลี่ยนแปลง
otInstance typedef
struct otInstance
แสดงโครงสร้างอินสแตนซ์ OpenThread
otStateChangedCallback)(otChangedFlags aFlags, void *aContext) typedef
void(*
ระบบจะเรียกใช้ตัวชี้เพื่อแจ้งการเปลี่ยนแปลงการกำหนดค่าหรือสถานะบางอย่างภายใน OpenThread

ฟังก์ชัน

otGetRadioVersionString(otInstance *aInstance)
const char *
รับสตริงเวอร์ชันวิทยุ OpenThread
otGetVersionString(void)
const char *
รับสตริงเวอร์ชัน OpenThread
otInstanceErasePersistentInfo(otInstance *aInstance)
ลบข้อมูลถาวรของ OpenThread (การตั้งค่าเครือข่าย) ทั้งหมดที่จัดเก็บไว้ในหน่วยความจำที่ไม่ผันผวน
otInstanceFactoryReset(otInstance *aInstance)
void
ลบการตั้งค่าทั้งหมดที่จัดเก็บไว้ในหน่วยความจำที่ไม่ผันผวน แล้วทริกเกอร์การรีเซ็ตแพลตฟอร์ม
otInstanceFinalize(otInstance *aInstance)
void
ปิดใช้ไลบรารี OpenThread
otInstanceGetId(otInstance *aInstance)
uint32_t
รับตัวระบุอินสแตนซ์
otInstanceGetUptime(otInstance *aInstance)
uint64_t
แสดงระยะเวลาทำงานของอินสแตนซ์ปัจจุบัน (เป็นมิลลิวินาที)
otInstanceGetUptimeAsString(otInstance *aInstance, char *aBuffer, uint16_t aSize)
void
แสดงผลระยะเวลาทำงานของอินสแตนซ์ปัจจุบันเป็นสตริงที่มนุษย์อ่านได้
otInstanceInit(void *aInstanceBuffer, size_t *aInstanceBufferSize)
เริ่มต้นไลบรารี OpenThread
otInstanceInitMultiple(uint8_t aIdx)
เริ่มต้นอินสแตนซ์ OpenThread
otInstanceInitSingle(void)
เริ่มต้นอินสแตนซ์เดี่ยวแบบคงที่ของไลบรารี OpenThread
otInstanceIsInitialized(otInstance *aInstance)
bool
ระบุว่าอินสแตนซ์ถูกต้อง/เริ่มต้นแล้วหรือไม่
otInstanceReset(otInstance *aInstance)
void
ทริกเกอร์การรีเซ็ตแพลตฟอร์ม
otInstanceResetRadioStack(otInstance *aInstance)
void
รีเซ็ตสถานะภายในของสแต็กวิทยุ OpenThread
otInstanceResetToBootloader(otInstance *aInstance)
ทริกเกอร์การรีเซ็ตแพลตฟอร์มเป็นโหมด Bootloader หากรองรับ
otRemoveStateChangeCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)
void
นำโค้ดเรียกกลับออกเพื่อระบุเมื่อการกำหนดค่าหรือสถานะบางอย่างมีการเปลี่ยนแปลงใน OpenThread
otSetStateChangedCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)
ลงทะเบียนโค้ดเรียกกลับเพื่อระบุเมื่อการกำหนดค่าหรือสถานะบางอย่างมีการเปลี่ยนแปลงใน OpenThread

Typedef

otChangedFlags

uint32_t otChangedFlags

แสดงฟิลด์บิตบ่งบอกสถานะ/การกำหนดค่าเฉพาะที่มีการเปลี่ยนแปลง

ดูคำจำกัดความ OT_CHANGED_*

otInstance

struct otInstance otInstance

แสดงโครงสร้างอินสแตนซ์ OpenThread

otStateChangedCallback

void(* otStateChangedCallback)(otChangedFlags aFlags, void *aContext)

ระบบจะเรียกใช้ตัวชี้เพื่อแจ้งการเปลี่ยนแปลงการกำหนดค่าหรือสถานะบางอย่างภายใน OpenThread

รายละเอียด
พารามิเตอร์
[in] aFlags
ฟิลด์บิตบ่งบอกสถานะที่เฉพาะเจาะจงที่มีการเปลี่ยนแปลง ดูคำจำกัดความ OT_CHANGED_*
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน

ฟังก์ชัน

otGetRadioVersionString

const char * otGetRadioVersionString(
  otInstance *aInstance
)

รับสตริงเวอร์ชันวิทยุ OpenThread

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

otGetVersionString

const char * otGetVersionString(
  void
)

รับสตริงเวอร์ชัน OpenThread

รายละเอียด
การส่งคืน
ตัวชี้ไปยังเวอร์ชัน OpenThread

otInstanceErasePersistentInfo

otError otInstanceErasePersistentInfo(
  otInstance *aInstance
)

ลบข้อมูลถาวรของ OpenThread (การตั้งค่าเครือข่าย) ทั้งหมดที่จัดเก็บไว้ในหน่วยความจำที่ไม่ผันผวน

การลบจะสำเร็จก็ต่อเมื่ออุปกรณ์อยู่ในสถานะ/บทบาทdisabled

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

otInstanceFactoryReset

void otInstanceFactoryReset(
  otInstance *aInstance
)

ลบการตั้งค่าทั้งหมดที่จัดเก็บไว้ในหน่วยความจำที่ไม่ผันผวน แล้วทริกเกอร์การรีเซ็ตแพลตฟอร์ม

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otInstanceFinalize

void otInstanceFinalize(
  otInstance *aInstance
)

ปิดใช้ไลบรารี OpenThread

เรียกใช้ฟังก์ชันนี้เมื่อไม่ได้ใช้งาน OpenThread แล้ว

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otInstanceGetId

uint32_t otInstanceGetId(
  otInstance *aInstance
)

รับตัวระบุอินสแตนซ์

ตัวระบุอินสแตนซ์จะตั้งเป็นค่าสุ่มเมื่อมีการสร้างอินสแตนซ์ และค่าจะไม่มีการเปลี่ยนแปลงหลังจากการเริ่มต้น

รายละเอียด
การส่งคืน
ตัวระบุอินสแตนซ์

otInstanceGetUptime

uint64_t otInstanceGetUptime(
  otInstance *aInstance
)

แสดงระยะเวลาทำงานของอินสแตนซ์ปัจจุบัน (เป็นมิลลิวินาที)

ต้องเปิดใช้ OPENTHREAD_CONFIG_UPTIME_ENABLE

ระยะเวลาทำงานจะกำหนดเป็นจำนวนมิลลิวินาทีตั้งแต่อินสแตนซ์ OpenThread เริ่มต้น

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

otInstanceGetUptimeAsString

void otInstanceGetUptimeAsString(
  otInstance *aInstance,
  char *aBuffer,
  uint16_t aSize
)

แสดงผลระยะเวลาทำงานของอินสแตนซ์ปัจจุบันเป็นสตริงที่มนุษย์อ่านได้

ต้องเปิดใช้ OPENTHREAD_CONFIG_UPTIME_ENABLE

สตริงมีรูปแบบดังนี้ "::." สำหรับชั่วโมง นาที วินาที และมิลลิวินาที (หากระยะเวลาทำงานสั้นกว่า 1 วัน) หรือ "

ง.::" (ถ้านานกว่าหนึ่งวัน)

หากสตริงผลลัพธ์ไม่พอดีกับ aBuffer (ภายใน aSize อักขระ) ระบบจะตัดสตริงให้สั้นลง แต่สตริงที่ส่งออกจะเป็นค่าว่างเสมอ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aBuffer
ตัวชี้ไปยังอาร์เรย์อักขระเพื่อแสดงผลสตริง
[in] aSize
ขนาด aBuffer (ในหน่วยไบต์) แนะนำให้ใช้ OT_UPTIME_STRING_SIZE

otInstanceInit

otInstance * otInstanceInit(
  void *aInstanceBuffer,
  size_t *aInstanceBufferSize
)

เริ่มต้นไลบรารี OpenThread

เริ่มต้น OpenThread และเตรียมพร้อมสำหรับการเรียก OpenThread API ครั้งถัดไป ฟังก์ชันนี้ต้องถูกเรียกใช้ก่อนการเรียก OpenThread แบบอื่น

มีให้ใช้งานและจะใช้ได้ต่อเมื่อเปิดใช้การสนับสนุนสำหรับอินสแตนซ์ OpenThread หลายรายการเท่านั้น

รายละเอียด
พารามิเตอร์
[in] aInstanceBuffer
บัฟเฟอร์สำหรับ OpenThread ที่จะใช้จัดสรรโครงสร้าง otInstance
[in,out] aInstanceBufferSize
ขนาดของ aInstanceBuffer ในอินพุต หากมีพื้นที่ว่างไม่เพียงพอสำหรับ otInstance ในเอาต์พุต จำนวนไบต์ที่ต้องใช้สำหรับ otInstance
การส่งคืน
ตัวชี้ไปยังอินสแตนซ์ OpenThread ใหม่
ดูเพิ่มเติม:
otInstanceFinalize

otInstanceInitMultiple

otInstance * otInstanceInitMultiple(
  uint8_t aIdx
)

เริ่มต้นอินสแตนซ์ OpenThread

ฟังก์ชันนี้จะเริ่มต้น OpenThread และเตรียมพร้อมสำหรับการเรียก OpenThread API ที่ตามมา ฟังก์ชันนี้ต้องถูกเรียกใช้ก่อนการเรียก OpenThread แบบอื่น เมธอดนี้จะใช้บัฟเฟอร์แบบคงที่เพื่อเริ่มต้นอินสแตนซ์ OpenThread

ฟังก์ชันนี้พร้อมใช้งานและจะใช้ได้ต่อเมื่อเปิดใช้การรองรับอินสแตนซ์แบบคงที่ของ OpenThread หลายรายการเท่านั้น (OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE)

รายละเอียด
พารามิเตอร์
[in] aIdx
ดัชนีของอินสแตนซ์ OpenThread ที่จะเริ่มต้น
การส่งคืน
ตัวชี้ไปยังอินสแตนซ์ OpenThread ใหม่

otInstanceInitSingle

otInstance * otInstanceInitSingle(
  void
)

เริ่มต้นอินสแตนซ์เดี่ยวแบบคงที่ของไลบรารี OpenThread

เริ่มต้น OpenThread และเตรียมพร้อมสำหรับการเรียก OpenThread API ครั้งถัดไป ฟังก์ชันนี้ต้องถูกเรียกใช้ก่อนการเรียก OpenThread แบบอื่น

พร้อมใช้งานและใช้ได้ต่อเมื่อปิดใช้การรองรับอินสแตนซ์ OpenThread หลายรายการเท่านั้น

รายละเอียด
การส่งคืน
ตัวชี้ไปยังอินสแตนซ์ OpenThread รายการเดียว

otInstanceIsInitialized

bool otInstanceIsInitialized(
  otInstance *aInstance
)

ระบุว่าอินสแตนซ์ถูกต้อง/เริ่มต้นแล้วหรือไม่

ระบบจะถือว่าอินสแตนซ์ถูกต้องหากได้มาและเริ่มต้นโดยใช้ otInstanceInitSingle() (ในกรณีอินสแตนซ์เดียว) หรือ otInstanceInit() (ในกรณีที่มีหลายอินสแตนซ์) การเรียกใช้ otInstanceFinalize() ในภายหลังจะทำให้ระบบถือว่าอินสแตนซ์ไม่ได้เริ่มต้น

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

otInstanceReset

void otInstanceReset(
  otInstance *aInstance
)

ทริกเกอร์การรีเซ็ตแพลตฟอร์ม

กระบวนการรีเซ็ตจะช่วยให้มั่นใจว่าสถานะ/ข้อมูล OpenThread ทั้งหมด (ซึ่งจัดเก็บไว้ในหน่วยความจำมีความผันผวน) ถูกลบออก โปรดทราบว่า otPlatformReset จะไม่ลบสถานะ/ข้อมูลถาวรที่บันทึกไว้ในหน่วยความจำที่ไม่ผันผวน

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otInstanceResetRadioStack

void otInstanceResetRadioStack(
  otInstance *aInstance
)

รีเซ็ตสถานะภายในของสแต็กวิทยุ OpenThread

การเรียกกลับและการกำหนดค่าจะยังคงอยู่

API นี้ใช้ได้เฉพาะในบิลด์วิทยุ (OPENTHREAD_RADIO = 1)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otInstanceResetToBootloader

otError otInstanceResetToBootloader(
  otInstance *aInstance
)

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

ต้องใช้ OPENTHREAD_CONFIG_PLATFORM_BOOTLOADER_MODE_ENABLE

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

otRemoveStateChangeCallback

void otRemoveStateChangeCallback(
  otInstance *aInstance,
  otStateChangedCallback aCallback,
  void *aContext
)

นำโค้ดเรียกกลับออกเพื่อระบุเมื่อการกำหนดค่าหรือสถานะบางอย่างมีการเปลี่ยนแปลงใน OpenThread

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
ตัวชี้ไปยังฟังก์ชันที่ถูกเรียกด้วยการกำหนดค่าหรือการเปลี่ยนแปลงสถานะบางอย่าง
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน

otSetStateChangedCallback

otError otSetStateChangedCallback(
  otInstance *aInstance,
  otStateChangedCallback aCallback,
  void *aContext
)

ลงทะเบียนโค้ดเรียกกลับเพื่อระบุเมื่อการกำหนดค่าหรือสถานะบางอย่างมีการเปลี่ยนแปลงใน OpenThread

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
ตัวชี้ไปยังฟังก์ชันที่ถูกเรียกด้วยการกำหนดค่าหรือการเปลี่ยนแปลงสถานะบางอย่าง
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน
แสดงผลค่า
OT_ERROR_NONE
เพิ่มโค้ดเรียกกลับลงในรายการโค้ดเรียกกลับแล้ว
OT_ERROR_ALREADY
ลงทะเบียนโค้ดเรียกกลับแล้ว
OT_ERROR_NO_BUFS
ไม่สามารถเพิ่มโค้ดเรียกกลับเนื่องจากข้อจำกัดของทรัพยากร

มาโคร

OT_CHANGED_ACTIVE_DATASET

 OT_CHANGED_ACTIVE_DATASET (1U << 28)

มีการเปลี่ยนแปลงชุดข้อมูลการปฏิบัติงานที่ใช้งานอยู่

OT_CHANGED_CHANNEL_MANAGER_NEW_CHANNEL

 OT_CHANGED_CHANNEL_MANAGER_NEW_CHANNEL (1U << 21)

เปลี่ยนช่องชุดข้อความใหม่ที่รออนุมัติในเครื่องมือจัดการช่องแล้ว

OT_CHANGED_COMMISSIONER_STATE

 OT_CHANGED_COMMISSIONER_STATE (1U << 23)

เปลี่ยนสถานะเจ้าหน้าที่แล้ว

OT_CHANGED_IP6_ADDRESS_ADDED

 OT_CHANGED_IP6_ADDRESS_ADDED (1U << 0)

เพิ่มที่อยู่ IPv6 แล้ว

OT_CHANGED_IP6_ADDRESS_REMOVED

 OT_CHANGED_IP6_ADDRESS_REMOVED (1U << 1)

นำที่อยู่ IPv6 ออกแล้ว

OT_CHANGED_IP6_MULTICAST_SUBSCRIBED

 OT_CHANGED_IP6_MULTICAST_SUBSCRIBED (1U << 12)

สมัครรับข้อมูลที่อยู่ IPv6 แบบมัลติแคสต์แล้ว

OT_CHANGED_IP6_MULTICAST_UNSUBSCRIBED

 OT_CHANGED_IP6_MULTICAST_UNSUBSCRIBED (1U << 13)

ยกเลิกการสมัครจากที่อยู่ IPv6 แบบมัลติแคสต์แล้ว

OT_CHANGED_JOINER_STATE

 OT_CHANGED_JOINER_STATE (1U << 27)

เปลี่ยนสถานะเครื่องมือเชื่อมต่อแล้ว

OT_CHANGED_NAT64_TRANSLATOR_STATE

 OT_CHANGED_NAT64_TRANSLATOR_STATE (1U << 30)

เปลี่ยนสถานะเครื่องมือแปล NAT64 แล้ว

OT_CHANGED_NETWORK_KEY

 OT_CHANGED_NETWORK_KEY (1U << 18)

เปลี่ยนคีย์เครือข่ายแล้ว

 OT_CHANGED_PARENT_LINK_QUALITY (1U << 31)

เปลี่ยนคุณภาพลิงก์หลักแล้ว

OT_CHANGED_PENDING_DATASET

 OT_CHANGED_PENDING_DATASET (1U << 29)

มีการเปลี่ยนแปลงชุดข้อมูลการดำเนินการที่รอดำเนินการ

OT_CHANGED_PSKC

 OT_CHANGED_PSKC (1U << 19)

PSKc เปลี่ยนแปลงแล้ว

OT_CHANGED_SECURITY_POLICY

 OT_CHANGED_SECURITY_POLICY (1U << 20)

เปลี่ยนนโยบายความปลอดภัยแล้ว

OT_CHANGED_SUPPORTED_CHANNEL_MASK

 OT_CHANGED_SUPPORTED_CHANNEL_MASK (1U << 22)

เปลี่ยนมาสก์ของช่องที่รองรับแล้ว

OT_CHANGED_THREAD_BACKBONE_ROUTER_LOCAL

 OT_CHANGED_THREAD_BACKBONE_ROUTER_LOCAL (1U << 26)

เปลี่ยนการกำหนดค่าเราเตอร์แกนหลักภายในแล้ว

OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE

 OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE (1U << 25)

เปลี่ยนสถานะเราเตอร์แกนหลักแล้ว

OT_CHANGED_THREAD_CHANNEL

 OT_CHANGED_THREAD_CHANNEL (1U << 14)

เปลี่ยนช่องในเครือข่ายเทรดแล้ว

OT_CHANGED_THREAD_CHILD_ADDED

 OT_CHANGED_THREAD_CHILD_ADDED (1U << 10)

เด็กถูกเพิ่มแล้ว

OT_CHANGED_THREAD_CHILD_REMOVED

 OT_CHANGED_THREAD_CHILD_REMOVED (1U << 11)

นำเด็กออกแล้ว

OT_CHANGED_THREAD_EXT_PANID

 OT_CHANGED_THREAD_EXT_PANID (1U << 17)

เปลี่ยนรหัส PAN ที่ขยายของเครือข่ายเทรดแล้ว

OT_CHANGED_THREAD_KEY_SEQUENCE_COUNTER

 OT_CHANGED_THREAD_KEY_SEQUENCE_COUNTER (1U << 8)

เปลี่ยนลำดับคีย์เทรดแล้ว

OT_CHANGED_THREAD_LL_ADDR

 OT_CHANGED_THREAD_LL_ADDR (1U << 3)

ที่อยู่ที่ลิงก์ภายในมีการเปลี่ยนแปลง

OT_CHANGED_THREAD_ML_ADDR

 OT_CHANGED_THREAD_ML_ADDR (1U << 4)

ที่อยู่ Mesh ในพื้นที่มีการเปลี่ยนแปลง

OT_CHANGED_THREAD_NETDATA

 OT_CHANGED_THREAD_NETDATA (1U << 9)

เปลี่ยนข้อมูลเครือข่ายเทรดแล้ว

OT_CHANGED_THREAD_NETIF_STATE

 OT_CHANGED_THREAD_NETIF_STATE (1U << 24)

เปลี่ยนสถานะอินเทอร์เฟซเครือข่ายเทรดแล้ว

OT_CHANGED_THREAD_NETWORK_NAME

 OT_CHANGED_THREAD_NETWORK_NAME (1U << 16)

เปลี่ยนชื่อเครือข่ายเทรดแล้ว

OT_CHANGED_THREAD_PANID

 OT_CHANGED_THREAD_PANID (1U << 15)

รหัส PAN ของเครือข่ายเทรดมีการเปลี่ยนแปลง

OT_CHANGED_THREAD_PARTITION_ID

 OT_CHANGED_THREAD_PARTITION_ID (1U << 7)

เปลี่ยนรหัสพาร์ติชันแล้ว

OT_CHANGED_THREAD_RLOC_ADDED

 OT_CHANGED_THREAD_RLOC_ADDED (1U << 5)

เพิ่ม RLOC แล้ว

OT_CHANGED_THREAD_RLOC_REMOVED

 OT_CHANGED_THREAD_RLOC_REMOVED (1U << 6)

นำ RLOC ออกแล้ว

OT_CHANGED_THREAD_ROLE

 OT_CHANGED_THREAD_ROLE (1U << 2)

บทบาท (ปิดใช้ ปลดออก ย่อย เราเตอร์ ผู้นำ) มีการเปลี่ยนแปลง

OT_UPTIME_STRING_SIZE

 OT_UPTIME_STRING_SIZE 24

ขนาดที่แนะนำสำหรับการแสดงสตริงของระยะเวลาทำงาน

แหล่งข้อมูล

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