ผู้จัดการช่องทางจัดจำหน่าย

โมดูลนี้ประกอบด้วยฟังก์ชันสําหรับผู้จัดการช่อง

สรุป

ฟังก์ชันในโมดูลนี้จะพร้อมใช้งานเมื่อเปิดใช้ฟีเจอร์ผู้จัดการช่อง (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE) ผู้จัดการช่องพร้อมให้บริการบนบิลด์ของ FTD เท่านั้น

ฟังก์ชัน

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
ระบุว่ามีการเปิดใช้ฟังก์ชันการเลือกช่องทางอัตโนมัติหรือไม่
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
รับช่วงเวลา (เป็นวินาที) ที่ใช้โดยฟังก์ชันการเลือกช่องทางอัตโนมัติ
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
รับเกณฑ์อัตราความล้มเหลวของ CCA
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
รับความล่าช้า (เป็นวินาที) ที่ผู้จัดการช่องใช้ในการเปลี่ยนช่อง
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
รับมาสก์ของช่องโปรด
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
รับช่องจากการโทรที่สําเร็จครั้งล่าสุดไปยัง otChannelManagerRequestChannelChange()
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
รับมาสก์ของช่องที่รองรับ
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
ขอเปลี่ยนแปลงช่องของเครือข่ายชุดข้อความ
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
คําขอให้ ChannelManager ตรวจสอบและเลือกช่องใหม่และเริ่มทําการเปลี่ยนแปลงช่อง
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
เปิดหรือปิดใช้งานฟังก์ชันการเลือกช่องทางอัตโนมัติ
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
ตั้งค่าช่วงเวลา (เป็นวินาที) ที่ใช้โดยฟังก์ชันการเลือกช่องทางอัตโนมัติ
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
กําหนดเกณฑ์อัตราความล้มเหลวของ CCA
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
ตั้งค่าการหน่วงเวลา (เป็นวินาที) ที่ใช้สําหรับการเปลี่ยนแปลงช่อง
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
กําบังภาพของช่องที่ชื่นชอบ
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
ตั้งค่ามาสก์ของช่องที่รองรับ

ฟังก์ชัน

OTChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

ระบุว่ามีการเปิดใช้ฟังก์ชันการเลือกช่องทางอัตโนมัติหรือไม่

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

ช่วงเวลาในการมีส่วนร่วมกับผู้จัดการช่องอัตโนมัติ

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

รับช่วงเวลา (เป็นวินาที) ที่ใช้โดยฟังก์ชันการเลือกช่องทางอัตโนมัติ

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

OTผู้จัดการผู้จัดการรับ CacaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

รับเกณฑ์อัตราความล้มเหลวของ CCA

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
เกณฑ์อัตราความล้มเหลวของ CCA ค่า 0 จะแมปกับ 0% และ 0xffff แมปกับ 100%

OTChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

รับความล่าช้า (เป็นวินาที) ที่ผู้จัดการช่องใช้ในการเปลี่ยนช่อง

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

ช่องการจัดการช่องโปรด

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

รับมาสก์ของช่องโปรด

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

ช่อง ChannelGet

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

รับช่องจากการโทรที่สําเร็จครั้งล่าสุดไปยัง otChannelManagerRequestChannelChange()

รายละเอียด
การส่งคืน
ช่องที่ขอล่าสุดหรือ 0 หากยังไม่มีคําขอเปลี่ยนช่อง

ช่อง ChannelGetGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

รับมาสก์ของช่องที่รองรับ

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

เปลี่ยนช่องผู้จัดการช่อง

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

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

เครือข่ายจะเปลี่ยนไปใช้ช่องที่ระบุหลังจากการหน่วงเวลาที่ระบุ (ดู otChannelManagerSetDelay()) การเปลี่ยนแปลงช่องดําเนินการโดยการอัปเดตชุดข้อมูลการดําเนินการที่รอดําเนินการ

การโทรครั้งต่อๆ ไปจะยกเลิกการเปลี่ยนแปลงช่องที่ร้องขอก่อนหน้านี้

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

ช่องแชแนล

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

คําขอให้ ChannelManager ตรวจสอบและเลือกช่องใหม่และเริ่มทําการเปลี่ยนแปลงช่อง

ฟังก์ชันนี้จะขอให้ ChannelManager เลือกช่องด้วยตัวเอง (ขึ้นอยู่กับข้อมูลคุณภาพช่องที่รวบรวม) ซึ่งแตกต่างจากช่อง otChannelManagerRequestChannelChange() ที่จะต้องมีการระบุช่องเป็นพารามิเตอร์

เมื่อเรียกใช้แล้ว ผู้จัดการช่องจะดําเนินการ 3 ขั้นตอนต่อไปนี้

1) ChannelManager ตัดสินใจว่าการเปลี่ยนแปลงช่องจะเป็นประโยชน์หรือไม่ คุณจะข้ามการตรวจสอบนี้ได้หากมีการตั้งค่า aSkipQualityCheck เป็น "จริง" (ซึ่งบังคับให้มีการเลือกช่องที่จะเกิดขึ้นและข้ามการตรวจสอบคุณภาพ) ขั้นตอนนี้ใช้เมตริกคุณภาพของลิงก์ที่รวบรวมไว้ในอุปกรณ์ (เช่น อัตราความล้มเหลวของ CCA, อัตราเฟรมและข้อผิดพลาดของข้อความต่อเพื่อนบ้าน ฯลฯ) เพื่อพิจารณาว่าคุณภาพปัจจุบันของช่องอยู่ในระดับที่เหมาะสําหรับการเปลี่ยนแปลงของช่องทางหรือไม่

2) หากผ่านขั้นตอนแรก ChannelManager จะเลือกช่องทางที่ดีกว่า ใช้ข้อมูลคุณภาพของช่องที่ ChannelMonitor รวบรวม ช่องทางที่ได้รับการสนับสนุนและเป็นที่ชื่นชอบจะถูกนํามาใช้ในขั้นตอนนี้ (โปรดดู otChannelManagerSetSupportedChannels() และ otChannelManagerSetFavoredChannels())

3) หากช่องใหม่ที่เลือกแตกต่างจากช่องปัจจุบัน ChannelManager จะขอ/เริ่มกระบวนการเปลี่ยนแปลงช่อง (เรียกใช้ RequestChannelChange() ภายใน)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSkipQualityCheck
ระบุว่าควรข้ามการตรวจสอบคุณภาพ (ขั้นตอนที่ 1) หรือไม่
แสดงผลค่า
OT_ERROR_NONE
เลือกแชแนลเสร็จเรียบร้อยแล้ว
OT_ERROR_NOT_FOUND
มาส์กแชแนลที่สนับสนุนว่างเปล่า จึงไม่สามารถเลือกแชแนลได้

เปิดใช้แชแนลผู้จัดการอัตโนมัติช่องที่เลือก

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิดหรือปิดใช้งานฟังก์ชันการเลือกช่องทางอัตโนมัติ

เมื่อเปิดใช้ ChannelManager จะเรียกใช้ RequestChannelSelect(false) เป็นระยะ คุณตั้งค่าระยะเวลา SetAutoChannelSelectionInterval() ได้

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

ช่วงเวลาของผู้จัดการช่องอัตโนมัติการเลือกช่วง

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

ตั้งค่าช่วงเวลา (เป็นวินาที) ที่ใช้โดยฟังก์ชันการเลือกช่องทางอัตโนมัติ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aInterval
ช่วงเวลาเป็นวินาที
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าช่วงเวลาสําเร็จแล้ว
OT_ERROR_INVALID_ARGS
aInterval ไม่ถูกต้อง (ศูนย์)

OTChannelManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

กําหนดเกณฑ์อัตราความล้มเหลวของ CCA

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aThreshold
เกณฑ์อัตราความล้มเหลวของ CCA ค่า 0 จะแมปกับ 0% และ 0xffff แมปกับ 100%

OTChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

ตั้งค่าการหน่วงเวลา (เป็นวินาที) ที่ใช้สําหรับการเปลี่ยนแปลงช่อง

การหน่วงเวลาควรมากกว่าช่วงการสํารวจข้อมูลสูงสุดที่อุปกรณ์นอนหลับทั้งหมดภายในเครือข่ายเทรดใช้

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

ช่องแชแนลที่ตั้งค่าช่องโปรด

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

กําบังภาพของช่องที่ชื่นชอบ

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

ช่องแชแนลที่รองรับชุดช่อง

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

ตั้งค่ามาสก์ของช่องที่รองรับ

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

แหล่งข้อมูล

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