ปฏิบัติการวิทยุ

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

สรุป

ฟังก์ชัน

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
ไดรเวอร์วิทยุเรียกใช้วิธีการนี้เพื่อแจ้งโมดูลการวินิจฉัย OpenThread เกี่ยวกับเฟรมที่ได้รับ
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
คนขับวิทยุเรียกวิธีการนี้เพื่อแจ้งโมดูลการวินิจฉัย OpenThread ว่าการส่งข้อมูลเสร็จสมบูรณ์แล้ว
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
เพิ่มกำลังที่ปรับเทียบของช่องที่ระบุไปยังตารางการปรับเทียบพลังงาน
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
เพิ่มที่อยู่ที่ขยายลงในตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
เพิ่มที่อยู่แบบสั้นในตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
ล้างค่ากำลังที่ปรับเทียบทั้งหมดออกจากตารางการปรับเทียบพลังงาน
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
ล้างที่อยู่แบบขยาย/ยาวทั้งหมดออกจากตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
นําที่อยู่แบบขยายออกจากตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
ล้างที่อยู่แบบย่อทั้งหมดออกจากตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
นำที่อยู่แบบสั้นออกจากตารางการจับคู่ที่อยู่ต้นทาง
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
เปิด/ปิดใช้งานหรืออัปเดตการตรวจสอบแบบปรับปรุงแล้วในวิทยุสำหรับ Initiator ที่ระบุ
otPlatRadioDisable(otInstance *aInstance)
ปิดใช้วิทยุ
otPlatRadioEnable(otInstance *aInstance)
เปิดใช้วิทยุ
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
เปิดหรือปิดใช้ตัวรับ CSL
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
เปิด/ปิดใช้ฟีเจอร์การจับคู่ที่อยู่ต้นทาง
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
เริ่มต้นลำดับการสแกนพลังงานทางวิทยุ
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
ไดรเวอร์วิทยุเรียกใช้วิธีการนี้เพื่อแจ้ง OpenThread ว่าการสแกนพลังงานเสร็จสมบูรณ์แล้ว
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
ดูเมตริกการใช้งานวิทยุร่วมกัน
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
รับความแม่นยำของกล่องที่แย่ที่สุดโดยประมาณในปัจจุบัน (ความเบี่ยงเบนสูงสุด ± ค่าเบี่ยงเบนจากความถี่น้อย) ของนาฬิกาวิทยุท้องถิ่นในหน่วย PPM
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
ความไม่แน่นอนแบบคงที่ (เช่น
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
รับมาสก์ช่องแบบวิทยุที่อุปกรณ์ต้องการสร้าง
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
รับการตั้งค่าพลังงานดิบสำหรับช่องที่ระบุ
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
รับรหัสภูมิภาค
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
ดูการวัด RSSI ล่าสุด
otPlatRadioGetState(otInstance *aInstance)
ดูสถานะปัจจุบันของวิทยุ
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
รับมาสก์ช่องวิทยุที่รองรับซึ่งอุปกรณ์ดังกล่าวใช้ได้
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
รับเฟรมบัฟเฟอร์เฟรมสำหรับสัญญาณวิทยุ
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
ตรวจสอบว่ามีการเปิดใช้ Coex ของวิทยุหรือไม่
otPlatRadioIsEnabled(otInstance *aInstance)
bool
ตรวจสอบว่าได้เปิดใช้งานวิทยุไว้หรือไม่
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
เปลี่ยนวิทยุจาก "นอนหลับ" เป็น "รับ" (เปิดวิทยุ)
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
กำหนดเวลาหน้าต่างรับวิทยุตามเวลาและระยะเวลาที่ระบุ
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
ไดรเวอร์วิทยุเรียกใช้เมธอดนี้เพื่อแจ้ง OpenThread เกี่ยวกับเฟรมที่ได้รับ
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
ตั้งค่ากำลังส่งสูงสุดสำหรับช่องใดช่องหนึ่ง
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
ตั้งค่าพลังงานเป้าหมายสำหรับแชแนลที่ระบุ
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
เปิดใช้ Coex ของวิทยุ
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
ตั้งค่ารหัสภูมิภาค
otPlatRadioSleep(otInstance *aInstance)
เปลี่ยนวิทยุจากโหมดรับเป็นโหมดสลีป (ปิดวิทยุ)
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
เริ่มลำดับการส่งทางวิทยุ
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
ไดรเวอร์วิทยุเรียกใช้ฟังก์ชันนี้เพื่อแจ้ง OpenThread ว่าการส่งเสร็จสิ้นแล้ว โดยจะให้ทั้งเฟรมที่ส่งและเฟรม Ack ที่ได้รับ (หากมี)
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
คนขับวิทยุเรียกวิธีการนี้เพื่อแจ้ง OpenThread ว่าการส่งข้อมูลเริ่มขึ้นแล้ว
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
อัปเดตเวลาตัวอย่าง CSL ในไดรเวอร์วิทยุ

ฟังก์ชัน

otPlatDiagRadioReceiveDone

void otPlatDiagRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

ไดรเวอร์วิทยุเรียกใช้วิธีการนี้เพื่อแจ้งโมดูลการวินิจฉัย OpenThread เกี่ยวกับเฟรมที่ได้รับ

ใช้เมื่อเปิดใช้การวินิจฉัย

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aFrame
ตัวชี้ไปยังเฟรมที่ได้รับหรือ NULL ถ้าการดำเนินการรับล้มเหลว
[in] aError
OT_ERROR_NONE เมื่อรับเฟรมสำเร็จ, OT_ERROR_ABORT เมื่อยกเลิกการรับและไม่ได้รับเฟรม, OT_ERROR_NO_BUFS เมื่อไม่ได้รับเฟรมเนื่องจากไม่มีพื้นที่บัฟเฟอร์ Rx

otPlatDiagRadioTransmitDone

void otPlatDiagRadioTransmitDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

คนขับวิทยุเรียกวิธีการนี้เพื่อแจ้งโมดูลการวินิจฉัย OpenThread ว่าการส่งข้อมูลเสร็จสมบูรณ์แล้ว

ใช้เมื่อเปิดใช้การวินิจฉัย

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aFrame
ตัวชี้ไปยังเฟรมที่ส่ง
[in] aError
OT_ERROR_NONE เมื่อส่งเฟรม OT_ERROR_CHANNEL_ACCESS_FAILURE tx ที่ไม่สามารถดำเนินการได้เนื่องจากกิจกรรมในช่อง หรือ OT_ERROR_ABORT เมื่อมีการล้มเลิกการส่งเนื่องจากสาเหตุอื่นๆ

otPlatRadioAddCalibratedPower

otError otPlatRadioAddCalibratedPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aActualPower,
  const uint8_t *aRawPowerSetting,
  uint16_t aRawPowerSettingLength
)

เพิ่มกำลังที่ปรับเทียบของช่องที่ระบุไปยังตารางการปรับเทียบพลังงาน

aActualPower คือกำลังขาออกจริงที่วัดได้เมื่อพารามิเตอร์ของโมดูลฮาร์ดแวร์วิทยุตั้งค่าเป็น aRawPowerSetting

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

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aChannel
ช่องวิทยุ
[in] aActualPower
กำลังไฟฟ้าจริงในหน่วย 0.01dBm
[in] aRawPowerSetting
ตัวชี้ไปยังอาร์เรย์ไบต์ของการตั้งค่าพลังงานดิบ
[in] aRawPowerSettingLength
ความยาวของ aRawPowerSetting
แสดงผลค่า
OT_ERROR_NONE
เพิ่มกำลังที่ปรับเทียบไปยังตารางการปรับเทียบพลังงานเรียบร้อยแล้ว
OT_ERROR_NO_BUFS
ไม่มีรายการในตารางการปรับเทียบพลังงาน
OT_ERROR_INVALID_ARGS
aChannel, aActualPower หรือ aRawPowerSetting ไม่ถูกต้องหรือมี aActualPower อยู่แล้วในตารางการปรับเทียบพลังงาน
OT_ERROR_NOT_IMPLEMENTED
ยังไม่ได้นำฟีเจอร์นี้ไปใช้

otPlatRadioAddSrcMatchExtEntry

otError otPlatRadioAddSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

เพิ่มที่อยู่ที่ขยายลงในตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aExtAddress
ที่อยู่แบบขยายที่จะเก็บไว้ในลำดับไบต์ส่วนน้อย
แสดงผลค่า
OT_ERROR_NONE
เพิ่มที่อยู่ที่ขยายลงในตารางการจับคู่ต้นทางเรียบร้อยแล้ว
OT_ERROR_NO_BUFS
ไม่มีรายการในตารางการจับคู่แหล่งที่มา

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

เพิ่มที่อยู่แบบสั้นในตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aShortAddress
ที่อยู่แบบย่อที่จะเพิ่ม
แสดงผลค่า
OT_ERROR_NONE
เพิ่มที่อยู่แบบสั้นลงในตารางการจับคู่แหล่งที่มาเรียบร้อยแล้ว
OT_ERROR_NO_BUFS
ไม่มีรายการในตารางการจับคู่แหล่งที่มา

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

ล้างค่ากำลังที่ปรับเทียบทั้งหมดออกจากตารางการปรับเทียบพลังงาน

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

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

ล้างที่อยู่แบบขยาย/ยาวทั้งหมดออกจากตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

otPlatRadioClearSrcMatchExtEntry

otError otPlatRadioClearSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

นําที่อยู่แบบขยายออกจากตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aExtAddress
ที่อยู่แบบขยายที่จะนำออกซึ่งเรียงลำดับตามไบต์ส่วนน้อย
แสดงผลค่า
OT_ERROR_NONE
นำที่อยู่แบบขยายออกจากตารางการจับคู่ต้นทางเรียบร้อยแล้ว
OT_ERROR_NO_ADDRESS
ที่อยู่ที่ขยายไม่ได้อยู่ในตารางการจับคู่ที่อยู่ต้นทาง

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

ล้างที่อยู่แบบย่อทั้งหมดออกจากตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

นำที่อยู่แบบสั้นออกจากตารางการจับคู่ที่อยู่ต้นทาง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aShortAddress
ที่อยู่แบบสั้นที่จะนำออก
แสดงผลค่า
OT_ERROR_NONE
นำที่อยู่แบบสั้นออกจากตารางการจับคู่ต้นทางเรียบร้อยแล้ว
OT_ERROR_NO_ADDRESS
ที่อยู่แบบสั้นไม่ได้อยู่ในตารางการจับคู่ที่อยู่ต้นทาง

otPlatRadioConfigureEnhAckProbing

otError otPlatRadioConfigureEnhAckProbing(
  otInstance *aInstance,
  otLinkMetrics aLinkMetrics,
  otShortAddress aShortAddress,
  const otExtAddress *aExtAddress
)

เปิด/ปิดใช้งานหรืออัปเดตการตรวจสอบแบบปรับปรุงแล้วในวิทยุสำหรับ Initiator ที่ระบุ

หลังจากการตรวจสอบ ACK ที่ปรับปรุงแล้วได้รับการกำหนดค่าโดยผู้เริ่มใช้การตรวจสอบเฉพาะ ค่า Enhanced-ACK ที่ส่งไปยังโหนดดังกล่าวควรมี IE เฉพาะผู้ให้บริการที่มีข้อมูลเมตริกลิงก์ วิธีนี้แจ้งให้วิทยุเริ่ม/หยุดรวบรวมข้อมูลเมตริกลิงก์และรวม IE เฉพาะผู้ให้บริการที่มีข้อมูลใน Enhanced-ACK ที่ส่งไปยังผู้เริ่มต้นการตรวจสอบ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aLinkMetrics
พารามิเตอร์นี้จะระบุเมตริกที่จะค้นหา ตามข้อกำหนด 4.11.3.4.4.6 สามารถระบุเมตริกได้มากที่สุด 2 รายการ ระบบจะปิดใช้การตรวจสอบหาก aLinkMetrics เป็นบิตไวส์ 0
[in] aShortAddress
ที่อยู่แบบสั้นของผู้เริ่มการตรวจสอบ
[in] aExtAddress
ที่อยู่ต้นทางแบบขยายของผู้เริ่มการตรวจสอบ aExtAddr ต้องไม่เป็น NULL
แสดงผลค่า
OT_ERROR_NONE
กำหนดค่าการตรวจสอบแบบ Enhanced-ACK เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aExtAddress คือNULL
OT_ERROR_NOT_FOUND
ไม่พบผู้เริ่มต้นที่ระบุโดย aShortAddress เมื่อพยายามล้าง
OT_ERROR_NO_BUFS
ไม่สามารถรองรับผู้เริ่มต้นได้อีก
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้ฟีเจอร์นี้

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

ปิดใช้วิทยุ

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

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

เปิดใช้วิทยุ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
แสดงผลค่า
OT_ERROR_NONE
เปิดใช้เรียบร้อยแล้ว
OT_ERROR_FAILED
ไม่สามารถเปิดใช้งานวิทยุ

otPlatRadioEnableCsl

otError otPlatRadioEnableCsl(
  otInstance *aInstance,
  uint32_t aCslPeriod,
  otShortAddress aShortAddr,
  const otExtAddress *aExtAddr
)

เปิดหรือปิดใช้ตัวรับ CSL

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aCslPeriod
ช่วงเวลา CSL, 0 สำหรับการปิดใช้ CSL จุด CSL อยู่ในหน่วยของสัญลักษณ์ 10 ตัว
[in] aShortAddr
ที่อยู่ต้นทางแบบสั้นของเครื่องรับ CSL
[in] aExtAddr
ที่อยู่ต้นทางแบบขยายสำหรับเพียร์ของตัวรับ CSL
แสดงผลค่า
kErrorNotImplemented
ไดรเวอร์วิทยุไม่รองรับ CSL
kErrorFailed
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ
kErrorNone
เปิดหรือปิดใช้ CSL สำเร็จแล้ว

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

เปิด/ปิดใช้ฟีเจอร์การจับคู่ที่อยู่ต้นทาง

ฟีเจอร์การจับคู่ที่อยู่ต้นทางจะควบคุมวิธีที่เลเยอร์วิทยุกำหนดบิต "เฟรมที่รอดำเนินการ" สำหรับแอคที่ตอบสนองต่อคำสั่งคำขอข้อมูลจากรายการย่อย

หากปิดใช้ เลเยอร์วิทยุต้องตั้งค่า "เฟรมรอดำเนินการ" บนคำสั่งขอข้อมูลทั้งหมด

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

ตารางการจับคู่ที่อยู่ต้นทางจะแสดงรายการย่อยที่มีเฟรมที่รอดำเนินการ สามารถเพิ่มที่อยู่แบบสั้นหรือที่อยู่ที่ขยาย/ยาวลงในตารางการจับคู่ที่อยู่ต้นทางได้

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aEnable
เปิด/ปิดใช้ฟีเจอร์การจับคู่ที่อยู่ต้นทาง

otPlatRadioEnergyScan

otError otPlatRadioEnergyScan(
  otInstance *aInstance,
  uint8_t aScanChannel,
  uint16_t aScanDuration
)

เริ่มต้นลำดับการสแกนพลังงานทางวิทยุ

ใช้เมื่อวิทยุมีความสามารถในการ OT_RADIO_CAPS_ENERGY_SCAN

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

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

ไดรเวอร์วิทยุเรียกใช้วิธีการนี้เพื่อแจ้ง OpenThread ว่าการสแกนพลังงานเสร็จสมบูรณ์แล้ว

ใช้เมื่อวิทยุมีความสามารถในการ OT_RADIO_CAPS_ENERGY_SCAN

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aEnergyScanMaxRssi
RSSI สูงสุดที่พบในช่องที่สแกน

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

ดูเมตริกการใช้งานวิทยุร่วมกัน

จะใช้เมื่อเปิดใช้งานคุณลักษณะ OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aCoexMetrics
ตัวชี้ไปยังโครงสร้างเมตริกการใช้งานร่วมกัน
แสดงผลค่า
OT_ERROR_NONE
เรียกข้อมูลเมตริก Coex เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aCoexMetrics มีค่าเป็น NULL

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

รับความแม่นยำของกล่องที่แย่ที่สุดโดยประมาณในปัจจุบัน (ความเบี่ยงเบนสูงสุด ± ค่าเบี่ยงเบนจากความถี่น้อย) ของนาฬิกาวิทยุท้องถิ่นในหน่วย PPM

นี่คือนาฬิกาที่ใช้กำหนดเวลาดำเนินการ CSL

ในกรณีที่การใช้งานไม่ได้ประมาณค่าปัจจุบัน แต่แสดงผลค่าคงที่ ค่านี้จะต้องเป็นค่าความถูกต้องในกรณีที่แย่ที่สุดเมื่อเทียบกับเงื่อนไขการทำงานที่คาดไว้ทั้งหมด (อุณหภูมิ แรงดัน ฯลฯ) ของการติดตั้งใช้งาน

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

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

ความไม่แน่นอนแบบคงที่ (เช่น

เสียงรบกวนแบบสุ่ม) ของเวลาถึงของการส่งข้อมูล CSL ที่อุปกรณ์นี้ได้รับในหน่วย 10 ไมโครวินาที

ค่านี้ระบุค่าเบี่ยงเบนเป็นบวกหรือค่าลบคงที่ที่แย่ที่สุดของเวลาถึงจริงๆ ของการส่งจากเวลาในการส่งที่คำนวณเมื่อเทียบกับนาฬิกาวิทยุท้องถิ่นโดยไม่ขึ้นกับเวลาที่ผ่านไป นอกจากความไม่แน่นอนที่เกิดขึ้นเมื่อเวลาผ่านไปแล้ว ตัวอย่างช่อง CSL ("หน้าต่าง RX") ต้องขยายค่าเบี่ยงเบนนี้เพิ่มเป็น 2 เท่าเพื่อให้เครื่องรับสัญญาณท้องถิ่นตรวจพบการรับส่งข้อมูลจริงหากมีเสียงรบกวนเวลาถึงที่สุ่มขึ้น

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

รับมาสก์ช่องแบบวิทยุที่อุปกรณ์ต้องการสร้าง

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

otPlatRadioGetRawPowerSetting

otError otPlatRadioGetRawPowerSetting(
  otInstance *aInstance,
  uint8_t aChannel,
  uint8_t *aRawPowerSetting,
  uint16_t *aRawPowerSettingLength
)

รับการตั้งค่าพลังงานดิบสำหรับช่องที่ระบุ

เลเยอร์วิทยุของแพลตฟอร์มควรแยกวิเคราะห์การตั้งค่าพลังงานดิบตามรูปแบบที่กำหนดของเลเยอร์วิทยุ และตั้งค่าพารามิเตอร์ของโมดูลฮาร์ดแวร์วิทยุแต่ละโมดูล

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aChannel
ช่องวิทยุ
[out] aRawPowerSetting
ตัวชี้ไปยังอาร์เรย์ไบต์ของการตั้งค่าพลังงานดิบ
[in,out] aRawPowerSettingLength
เมื่อป้อนข้อมูล ตัวชี้ไปยังขนาด aRawPowerSetting เมื่อเอาต์พุต ตัวชี้ไปยังความยาวของข้อมูลการตั้งค่าพลังงานดิบ
แสดงผลค่า
OT_ERROR_NONE
ได้รับพลังเป้าหมายสำเร็จแล้ว
OT_ERROR_INVALID_ARGS
aChannel ไม่ถูกต้อง aRawPowerSetting หรือ aRawPowerSettingLength ไม่มีข้อมูล หรือสั้นเกินไป
OT_ERROR_NOT_FOUND
ไม่พบการตั้งค่าพลังงานดิบสำหรับ aChannel

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

รับรหัสภูมิภาค

รูปแบบภูมิภาคของวิทยุคือรูปแบบ 2 ไบต์ ascii ของรหัส ISO 3166 alpha-2

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aRegionCode
ภูมิภาคของวิทยุ
แสดงผลค่า
OT_ERROR_INVALID_ARGS
aRegionCode มีค่าเป็น nullptr
OT_ERROR_FAILED
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ
OT_ERROR_NONE
รับรหัสภูมิภาคเรียบร้อยแล้ว
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้ฟีเจอร์นี้

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

ดูการวัด RSSI ล่าสุด

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
การส่งคืน
RSSI ใน dBm เมื่อถูกต้อง 127 เมื่อ RSSI ไม่ถูกต้อง

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

ดูสถานะปัจจุบันของวิทยุ

OpenThread ไม่ได้กำหนดให้ใช้ ซึ่งอาจใช้เพื่อแก้ไขข้อบกพร่องและ/หรือเพื่อวัตถุประสงค์เฉพาะแอปพลิเคชัน

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

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

รับมาสก์ช่องวิทยุที่รองรับซึ่งอุปกรณ์ดังกล่าวใช้ได้

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

รับเฟรมบัฟเฟอร์เฟรมสำหรับสัญญาณวิทยุ

OpenThread จะสร้างเฟรม IEEE 802.15.4 ในบัฟเฟอร์นี้ จากนั้นจะเรียก otPlatRadioTransmit() เพื่อขอให้ส่ง

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

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

ตรวจสอบว่ามีการเปิดใช้ Coex ของวิทยุหรือไม่

จะใช้เมื่อเปิดใช้งานคุณลักษณะ OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE

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

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

ตรวจสอบว่าได้เปิดใช้งานวิทยุไว้หรือไม่

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

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

เปลี่ยนวิทยุจาก "นอนหลับ" เป็น "รับ" (เปิดวิทยุ)

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

otPlatRadioReceiveAt

otError otPlatRadioReceiveAt(
  otInstance *aInstance,
  uint8_t aChannel,
  uint32_t aStart,
  uint32_t aDuration
)

กำหนดเวลาหน้าต่างรับวิทยุตามเวลาและระยะเวลาที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aChannel
ช่องวิทยุที่จะรับ
[in] aStart
เวลาเริ่มต้นของหน้าต่างการรับที่สัมพันธ์กับนาฬิกาวิทยุท้องถิ่น โปรดดูที่ otPlatRadioGetNow เครื่องรับวิทยุจะเปิดอยู่และพร้อมที่จะรับสัญลักษณ์แรกของ SHR ของเฟรมที่เวลาเริ่มต้นของหน้าต่าง
[in] aDuration
ระยะเวลาของหน้าต่างการรับเป็นไมโครวินาที ตามที่วัดโดยนาฬิกาวิทยุท้องถิ่น ควรปิดวิทยุ (หรือเปลี่ยนเป็นโหมด TX หากต้องส่งเฟรม ACK) หลังจากระยะเวลานั้นจนกว่าจะยังรับเฟรมอยู่ ในกรณีหลัง วิทยุจะคงอยู่ในโหมดรับจนกว่าการรับภาพจะสำเร็จหรือล้มเหลว
แสดงผลค่า
OT_ERROR_NONE
กำหนดเวลารับพัสดุเรียบร้อยแล้ว
OT_ERROR_FAILED
กำหนดเวลากรอบเวลาในการรับไม่ได้

otPlatRadioReceiveDone

void otPlatRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

ไดรเวอร์วิทยุเรียกใช้เมธอดนี้เพื่อแจ้ง OpenThread เกี่ยวกับเฟรมที่ได้รับ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aFrame
ตัวชี้ไปยังเฟรมที่ได้รับหรือ NULL ถ้าการดำเนินการรับล้มเหลว
[in] aError
OT_ERROR_NONE เมื่อรับเฟรมสำเร็จ, OT_ERROR_ABORT เมื่อยกเลิกการรับและไม่ได้รับเฟรม, OT_ERROR_NO_BUFS เมื่อไม่ได้รับเฟรมเนื่องจากไม่มีพื้นที่บัฟเฟอร์ Rx

otPlatRadioSetChannelMaxTransmitPower

otError otPlatRadioSetChannelMaxTransmitPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int8_t aMaxPower
)

ตั้งค่ากำลังส่งสูงสุดสำหรับช่องใดช่องหนึ่ง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aChannel
ช่องวิทยุ
[in] aMaxPower
กำลังสูงสุดในหน่วย dBm ที่ผ่าน OT_RADIO_RSSI_INVALID จะเป็นการปิดใช้ช่องนี้
แสดงผลค่า
OT_ERROR_NOT_IMPLEMENTED
ยังไม่ได้นำฟีเจอร์นี้ไปใช้
OT_ERROR_INVALID_ARGS
แชแนลที่ระบุไม่ถูกต้อง
OT_ERROR_FAILED
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ
OT_ERROR_NONE
ตั้งค่ากำลังส่งสูงสุดสำเร็จแล้ว

otPlatRadioSetChannelTargetPower

otError otPlatRadioSetChannelTargetPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aTargetPower
)

ตั้งค่าพลังงานเป้าหมายสำหรับแชแนลที่ระบุ

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

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aChannel
ช่องวิทยุ
[in] aTargetPower
กำลังเป้าหมายในหน่วย 0.01dBm การส่งผ่าน INT16_MAX จะเป็นการปิดใช้แชแนลนี้เพื่อใช้พลังงานเป้าหมาย
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่ากำลังเป้าหมายสำเร็จแล้ว
OT_ERROR_INVALID_ARGS
aChannel หรือ aTargetPower ไม่ถูกต้อง
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้ฟีเจอร์นี้

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิดใช้ Coex ของวิทยุ

จะใช้เมื่อเปิดใช้งานคุณลักษณะ OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aEnabled
TRUE เพื่อเปิดใช้ Coex ของวิทยุ มิฉะนั้นจะเป็น FALSE
แสดงผลค่า
OT_ERROR_NONE
เปิดใช้เรียบร้อยแล้ว
OT_ERROR_FAILED
เปิดใช้ Coex ของวิทยุไม่ได้

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

ตั้งค่ารหัสภูมิภาค

รูปแบบภูมิภาคของวิทยุคือรูปแบบ 2 ไบต์ ascii ของรหัส ISO 3166 alpha-2

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aRegionCode
รหัสภูมิภาคของวิทยุ aRegionCode >> 8 คืออักขระ ASCII ตัวแรกและ aRegionCode & 0xff คืออักขระ ASCII รายการที่ 2
แสดงผลค่า
OT_ERROR_FAILED
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ
OT_ERROR_NONE
ตั้งค่ารหัสภูมิภาคเรียบร้อยแล้ว
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้ฟีเจอร์นี้

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

เปลี่ยนวิทยุจากโหมดรับเป็นโหมดสลีป (ปิดวิทยุ)

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

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

เริ่มลำดับการส่งทางวิทยุ

ผู้โทรจะต้องสร้างเฟรม IEEE 802.15.4 ในบัฟเฟอร์ที่ otPlatRadioGetTransmitBuffer() ระบุไว้ก่อนขอการส่งข้อมูล ช่องสัญญาณและกำลังส่งจะรวมอยู่ในโครงสร้าง otRadioFrame ด้วย

ลำดับการส่งประกอบด้วยข้อมูลต่อไปนี้

  1. การเปลี่ยนวิทยุเป็นการส่งจากรัฐต่อไปนี้
    • รับหาก RX เปิดอยู่เมื่ออุปกรณ์ไม่มีการใช้งาน หรือไม่รองรับ OT_RADIO_CAPS_SLEEP_TO_TX
    • เข้าสู่โหมดสลีปหากปิด RX ขณะที่ไม่มีการใช้งานอุปกรณ์และรองรับ OT_RADIO_CAPS_SLEEP_TO_TX
  2. ส่ง PSD ในช่องและตามกำลังส่งที่กำหนด

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aFrame
ตัวชี้ไปยังเฟรมที่จะส่ง
แสดงผลค่า
OT_ERROR_NONE
เปลี่ยนไปใช้การส่งสำเร็จแล้ว
OT_ERROR_INVALID_STATE
วิทยุไม่อยู่ในสถานะรับ

otPlatRadioTxDone

void otPlatRadioTxDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otRadioFrame *aAckFrame,
  otError aError
)

ไดรเวอร์วิทยุเรียกใช้ฟังก์ชันนี้เพื่อแจ้ง OpenThread ว่าการส่งเสร็จสิ้นแล้ว โดยจะให้ทั้งเฟรมที่ส่งและเฟรม Ack ที่ได้รับ (หากมี)

เมื่อวิทยุมีความสามารถในการใช้งาน OT_RADIO_CAPS_TRANSMIT_SEC เลเยอร์แพลตฟอร์มวิทยุจะอัปเดต aFrame ด้วยตัวนับกรอบความปลอดภัยและค่าดัชนีคีย์ที่วิทยุเก็บรักษาไว้

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aFrame
ตัวชี้ไปยังเฟรมที่ส่ง
[in] aAckFrame
ตัวชี้ไปยังเฟรม ACK จะ NULL ถ้าไม่ได้รับ ACK
[in] aError
OT_ERROR_NONE เมื่อส่งเฟรม, OT_ERROR_NO_ACK เมื่อส่งเฟรมแต่ไม่ได้รับ ACK, ไม่ดำเนินการ OT_ERROR_CHANNEL_ACCESS_FAILURE tx เนื่องจากกิจกรรมในช่อง, OT_ERROR_ABORT เมื่อยกเลิกการส่งเนื่องจากเหตุผลอื่นๆ

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

คนขับวิทยุเรียกวิธีการนี้เพื่อแจ้ง OpenThread ว่าการส่งข้อมูลเริ่มขึ้นแล้ว

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

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

อัปเดตเวลาตัวอย่าง CSL ในไดรเวอร์วิทยุ

เวลาตัวอย่างจะเก็บอยู่ในไดรเวอร์วิทยุเป็นสำเนาเพื่อคำนวณระยะขณะที่ส่ง ACK ด้วย CSL IE ตัวอย่าง CSL (กรอบเวลา) ของเครื่องรับ CSL จะขยายออกก่อนและหลังเวลาตัวอย่าง เวลาตัวอย่าง CSL จะระบุการประทับเวลาในหน้าต่างตัวอย่าง CSL ซึ่งควรได้รับเฟรมใน "เงื่อนไขที่เหมาะสม" หากไม่มีความไม่ถูกต้อง/การดริฟต์นาฬิกา

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

แหล่งข้อมูล

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