Operasi Radio

Modul ini mencakup abstraksi platform untuk operasi radio.

Ringkasan

Fungsi

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Driver radio memanggil metode ini untuk memberi tahu modul diagnostik OpenThread tentang frame yang diterima.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Driver radio memanggil metode ini untuk memberi tahu modul diagnostik OpenThread bahwa transmisi telah selesai.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Menambahkan daya yang dikalibrasi dari saluran yang ditentukan ke tabel kalibrasi daya.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Tambahkan alamat yang diperluas ke tabel pencocokan alamat sumber.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Tambahkan alamat singkat ke tabel pencocokan alamat sumber.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Hapus semua kekuatan yang dikalibrasi dari tabel kalibrasi daya.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Hapus semua alamat panjang/diperluas dari tabel pencocokan alamat sumber.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Hapus alamat yang diperluas dari tabel pencocokan alamat sumber.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Hapus semua alamat pendek dari tabel pencocokan alamat sumber.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Hapus alamat singkat dari tabel pencocokan alamat sumber.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Mengaktifkan/menonaktifkan atau memperbarui Pemeriksaan Berbasis ACK Enhanced di radio untuk Inisiator tertentu.
otPlatRadioDisable(otInstance *aInstance)
Nonaktifkan radio.
otPlatRadioEnable(otInstance *aInstance)
Aktifkan radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Aktifkan atau nonaktifkan penerima CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Mengaktifkan/Menonaktifkan fitur pencocokan alamat sumber.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Mulai urutan pemindaian energi di radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Pengemudi radio memanggil metode ini untuk memberi tahu OpenThread bahwa pemindaian energi selesai.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Mendapatkan metrik koeksistensi radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Dapatkan estimasi akurasi kasus terburuk saat ini (maksimum ± deviasi dari frekuensi nominal) dari jam radio lokal dalam unit PPM.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
Ketidakpastian tetap (yaitu
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Mendapatkan mask saluran pilihan radio yang lebih disukai perangkat untuk dibentuk.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Mendapatkan setelan daya mentah untuk saluran tertentu.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Dapatkan kode wilayah.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Dapatkan pengukuran RSSI terbaru.
otPlatRadioGetState(otInstance *aInstance)
Mendapatkan status radio saat ini.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Dapatkan mask saluran radio yang didukung tempat perangkat diizinkan untuk aktif.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Mendapatkan buffering frame transmisi radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Periksa apakah coex radio diaktifkan atau tidak.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Periksa apakah radio diaktifkan atau tidak.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Transisikan radio dari Tidur ke Terima (nyalakan radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Menjadwalkan jendela penerimaan radio pada waktu dan durasi tertentu.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Driver radio memanggil metode ini untuk memberi tahu OpenThread tentang frame yang diterima.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Menyetel daya pancar maksimum untuk saluran tertentu.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Menyetel daya target untuk saluran tertentu.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Aktifkan coex radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Setel kode wilayah.
otPlatRadioSleep(otInstance *aInstance)
Transisi radio dari Terima ke Tidur (matikan radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Memulai urutan transmisi di radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Driver radio memanggil fungsi ini untuk memberi tahu OpenThread bahwa operasi transmisi telah selesai, yang menyediakan frame yang ditransmisikan dan, jika berlaku, frame ack yang diterima.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Driver radio memanggil metode ini untuk memberi tahu OpenThread bahwa transmisi telah dimulai.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Memperbarui waktu sampel CSL di driver radio.

Fungsi

otPlatDiagRadioReceiveDone

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

Driver radio memanggil metode ini untuk memberi tahu modul diagnostik OpenThread tentang frame yang diterima.

Digunakan saat diagnostik diaktifkan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang diterima atau NULL jika operasi terima gagal.
[in] aError
OT_ERROR_NONE ketika berhasil menerima bingkai, OT_ERROR_ABORT ketika penerimaan dibatalkan dan bingkai tidak diterima, OT_ERROR_NO_BUFS ketika bingkai tidak dapat diterima karena kurangnya ruang buffer rx.

otPlatDiagRadioTransmitDone

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

Driver radio memanggil metode ini untuk memberi tahu modul diagnostik OpenThread bahwa transmisi telah selesai.

Digunakan saat diagnostik diaktifkan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang ditransmisikan.
[in] aError
OT_ERROR_NONE saat frame ditransmisikan, OT_ERROR_CHANNEL_ACCESS_FAILURE tx tidak dapat terjadi karena aktivitas di saluran, OT_ERROR_ABORT saat transmisi dibatalkan karena alasan lain.

otPlatRadioAddCalibratedPower

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

Menambahkan daya yang dikalibrasi dari saluran yang ditentukan ke tabel kalibrasi daya.

aActualPower adalah daya output aktual yang diukur saat parameter modul hardware radio disetel ke aRawPowerSetting.

Setelan daya mentah adalah array byte buram. OpenThread tidak menentukan format setelan daya mentah. Formatnya berkaitan dengan hardware radio dan harus ditentukan oleh developer di driver radio platform. Misalnya, jika hardware radio berisi chip radio dan chip FEM, setelan daya mentah dapat berupa kombinasi dari register daya radio dan nilai penguatan FEM.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aChannel
Saluran radio.
[in] aActualPower
Daya sebenarnya dalam 0,01 dBm.
[in] aRawPowerSetting
Pointer ke array byte setelan daya mentah.
[in] aRawPowerSettingLength
Panjang aRawPowerSetting.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menambahkan daya yang dikalibrasi ke tabel kalibrasi daya.
OT_ERROR_NO_BUFS
Tidak ada entri dalam tabel kalibrasi daya.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower, atau aRawPowerSetting tidak valid atau aActualPower sudah ada dalam tabel kalibrasi daya.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioAddSrcMatchExtEntry

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

Tambahkan alamat yang diperluas ke tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aExtAddress
Alamat yang diperluas yang akan ditambahkan disimpan dalam urutan byte bit-endian.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menambahkan alamat yang diperluas ke tabel pencocokan sumber.
OT_ERROR_NO_BUFS
Tidak ada entri yang tersedia di tabel pencocokan sumber.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Tambahkan alamat singkat ke tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aShortAddress
Alamat singkat yang akan ditambahkan.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menambahkan alamat singkat ke tabel pencocokan sumber.
OT_ERROR_NO_BUFS
Tidak ada entri yang tersedia di tabel pencocokan sumber.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Hapus semua kekuatan yang dikalibrasi dari tabel kalibrasi daya.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menghapus semua kekuatan yang dikalibrasi dari tabel kalibrasi daya.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Hapus semua alamat panjang/diperluas dari tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.

otPlatRadioClearSrcMatchExtEntry

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

Hapus alamat yang diperluas dari tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aExtAddress
Alamat tambahan yang akan dihapus disimpan dalam urutan byte bit-endian.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menghapus alamat yang diperluas dari tabel pencocokan sumber.
OT_ERROR_NO_ADDRESS
Alamat yang diperluas tidak ada dalam tabel pencocokan alamat sumber.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Hapus semua alamat pendek dari tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Hapus alamat singkat dari tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aShortAddress
Alamat singkat yang akan dihapus.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menghapus alamat singkat dari tabel pencocokan sumber.
OT_ERROR_NO_ADDRESS
Alamat singkat tidak ada dalam tabel pencocokan alamat sumber.

otPlatRadioConfigureEnhAckProbing

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

Mengaktifkan/menonaktifkan atau memperbarui Pemeriksaan Berbasis ACK Enhanced di radio untuk Inisiator tertentu.

Setelah Pemeriksaan Berbasis Enhanced-ACK dikonfigurasi oleh Inisiator Pemeriksaan tertentu, Enhanced-ACK yang dikirim ke node tersebut harus menyertakan data IE Khusus Vendor yang berisi data Metrik Link. Metode ini memberi tahu radio untuk memulai/berhenti mengumpulkan data Metrik Link dan menyertakan Vendor-Khusus IE yang berisi data dalam Enhanced-ACK yang dikirim ke Inisiator Pemeriksaan tersebut.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aLinkMetrics
Parameter ini menetapkan metrik yang akan dikueri. Sesuai spesifikasi 4.11.3.4.4.6, maksimal 2 metrik yang dapat ditentukan. Pemeriksaan akan dinonaktifkan jika aLinkMetrics adalah bitwise 0.
[in] aShortAddress
Alamat singkat Inisiator Pemeriksaan.
[in] aExtAddress
Alamat sumber yang diperluas Inisiator Pemeriksaan. aExtAddr TIDAK BOLEH NULL.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengonfigurasi Pemeriksaan Berbasis Enhanced-ACK.
OT_ERROR_INVALID_ARGS
aExtAddress adalah NULL.
OT_ERROR_NOT_FOUND
Inisiator yang ditunjukkan oleh aShortAddress tidak ditemukan saat mencoba menghapus.
OT_ERROR_NO_BUFS
Tidak ada lagi Inisiator yang dapat didukung.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Nonaktifkan radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil ditransisikan ke Nonaktif.
OT_ERROR_INVALID_STATE
Radio tidak dalam status tidur.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Aktifkan radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil diaktifkan.
OT_ERROR_FAILED
Radio tidak dapat diaktifkan.

otPlatRadioEnableCsl

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

Aktifkan atau nonaktifkan penerima CSL.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aCslPeriod
Periode CSL, 0 untuk menonaktifkan CSL. Periode CSL menggunakan 10 simbol.
[in] aShortAddr
Alamat sumber singkat peer penerima CSL.
[in] aExtAddr
Alamat sumber yang diperluas peer penerima CSL.
Nilai Pengembalian
kErrorNotImplemented
Driver radio tidak mendukung CSL.
kErrorFailed
Error khusus platform lainnya.
kErrorNone
Berhasil mengaktifkan atau menonaktifkan CSL.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Mengaktifkan/Menonaktifkan fitur pencocokan alamat sumber.

Fitur pencocokan alamat sumber mengontrol cara lapisan radio memutuskan bit "frame tertunda" untuk ack yang dikirim sebagai respons terhadap perintah permintaan data dari turunan.

Jika dinonaktifkan, lapisan radio harus menetapkan "frame pending" di semua ack ke perintah permintaan data.

Jika diaktifkan, lapisan radio akan menggunakan tabel pencocokan alamat sumber untuk menentukan apakah akan menetapkan atau menghapus bit "frame pending" dalam ack ke perintah permintaan data.

Tabel pencocokan alamat sumber menyediakan daftar turunan yang memiliki frame yang tertunda. Alamat pendek atau alamat panjang/panjang dapat ditambahkan ke tabel pencocokan alamat sumber.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aEnable
Mengaktifkan/menonaktifkan fitur pencocokan alamat sumber.

otPlatRadioEnergyScan

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

Mulai urutan pemindaian energi di radio.

Digunakan ketika radio menyediakan kemampuan OT_Radio_CAPS_ENERGY_SCAN.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aScanChannel
Saluran tempat pemindaian energi aktif.
[in] aScanDuration
Durasi, dalam milidetik, untuk saluran yang akan dipindai.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil memulai pemindaian saluran.
OT_ERROR_BUSY
Radio sedang melakukan pemindaian energi.
OT_ERROR_NOT_IMPLEMENTED
Radio tidak mendukung pemindaian energi.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Pengemudi radio memanggil metode ini untuk memberi tahu OpenThread bahwa pemindaian energi selesai.

Digunakan ketika radio menyediakan kemampuan OT_Radio_CAPS_ENERGY_SCAN.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aEnergyScanMaxRssi
RSSI maksimum yang ditemukan pada saluran yang dipindai.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Mendapatkan metrik koeksistensi radio.

Digunakan saat fitur OPENANCHOR_CONFIG_PLATFORM_Radio_COEX_ENABLE diaktifkan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aCoexMetrics
Pointer ke struktur metrik koeksistensi.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil metrik coex.
OT_ERROR_INVALID_ARGS
aCoexMetrics adalah NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Dapatkan estimasi akurasi kasus terburuk saat ini (maksimum ± deviasi dari frekuensi nominal) dari jam radio lokal dalam unit PPM.

Ini adalah jam yang digunakan untuk menjadwalkan operasi CSL.

Jika implementasi tidak memperkirakan nilai saat ini, tetapi menampilkan nilai tetap, nilai ini HARUS merupakan akurasi kasus terburuk atas semua kemungkinan kondisi pengoperasian yang diperkirakan (suhu, tekanan, dll.) dari implementasi tersebut.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Hasil
Penyimpangan penjadwalan rx/tx CSL saat ini, dalam PPM.

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

Ketidakpastian tetap (yaitu

jitter acak) dari waktu kedatangan transmisi CSL yang diterima oleh perangkat ini dalam unit 10 mikrodetik.

Hal ini menunjukkan penyimpangan positif atau negatif konstan kasus terburuk dari waktu kedatangan aktual suatu transmisi dari waktu transmisi yang dihitung relatif terhadap jam radio lokal, terlepas dari waktu berlalu. Selain ketidakpastian yang terakumulasi selama waktu berlalu, sampel saluran CSL ("jendela RX") harus diperpanjang dua kali deviasi ini sehingga transmisi yang sebenarnya dijamin akan dideteksi oleh penerima lokal dengan adanya jitter waktu kedatangan acak.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Hasil
Ketidakpastian CSL dalam satuan 10 kita.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Mendapatkan mask saluran pilihan radio yang lebih disukai perangkat untuk dibentuk.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Mask saluran pilihan radio.

otPlatRadioGetRawPowerSetting

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

Mendapatkan setelan daya mentah untuk saluran tertentu.

Lapisan radio platform harus mengurai setelan daya mentah berdasarkan format yang ditentukan lapisan radio dan menyetel parameter setiap modul hardware radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aChannel
Saluran radio.
[out] aRawPowerSetting
Pointer ke array byte setelan daya mentah.
[in,out] aRawPowerSettingLength
Pada input, pointer ke ukuran aRawPowerSetting. Pada output, pointer ke panjang data setelan daya mentah.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mendapatkan kekuatan target.
OT_ERROR_INVALID_ARGS
aChannel tidak valid, aRawPowerSetting atau aRawPowerSettingLength NULL atau terlalu pendek.
OT_ERROR_NOT_FOUND
Setelan daya mentah untuk aChannel tidak ditemukan.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Dapatkan kode wilayah.

Format region radio adalah representasi ASCII 2 byte dari kode ISO 3166 alpha-2.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aRegionCode
Wilayah radio.
Nilai Pengembalian
OT_ERROR_INVALID_ARGS
aRegionCode adalah nullptr.
OT_ERROR_FAILED
Error khusus platform lainnya.
OT_ERROR_NONE
Berhasil mendapatkan kode wilayah.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Dapatkan pengukuran RSSI terbaru.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
RSSI dalam dBm jika valid. 127 jika RSSI tidak valid.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Mendapatkan status radio saat ini.

Tidak diperlukan oleh OpenThread. Ini dapat digunakan untuk tujuan proses debug dan/atau khusus aplikasi.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Status radio saat ini.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Dapatkan mask saluran radio yang didukung tempat perangkat diizinkan untuk aktif.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Mask saluran yang didukung radio.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Mendapatkan buffering frame transmisi radio.

OpenThread membentuk frame IEEE 802.15.4 dalam buffer ini, lalu memanggil otPlatRadioTransmit() untuk meminta transmisi.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Pointer ke buffering frame transmisi.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Periksa apakah coex radio diaktifkan atau tidak.

Digunakan saat fitur OPENANCHOR_CONFIG_PLATFORM_Radio_COEX_ENABLE diaktifkan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
TRUE jika radio coex diaktifkan, FALSE jika sebaliknya.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Periksa apakah radio diaktifkan atau tidak.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
TRUE jika radio diaktifkan, FALSE jika tidak.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Transisikan radio dari Tidur ke Terima (nyalakan radio).

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aChannel
Saluran yang digunakan untuk menerima.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil bertransisi ke Accept.
OT_ERROR_INVALID_STATE
Radio dinonaktifkan atau ditransmisikan.

otPlatRadioReceiveAt

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

Menjadwalkan jendela penerimaan radio pada waktu dan durasi tertentu.

Detail
Parameter
[in] aChannel
Saluran radio yang digunakan untuk menerima.
[in] aStart
Waktu mulai jendela penerimaan yang relatif terhadap jam radio lokal, lihat otPlatRadioGetNow. Penerima radio AKAN aktif dan siap menerima simbol pertama SHR frame pada waktu mulai jendela.
[in] aDuration
Durasi jendela penerimaan, dalam mikrodetik, yang diukur oleh jam radio lokal. Radio HARUS dimatikan (atau dialihkan ke mode TX jika bingkai ACK perlu dikirim) setelah durasi tersebut kecuali jika masih aktif menerima bingkai. Dalam kasus terakhir, radio AKAN disimpan dalam mode penerimaan sampai penerimaan bingkai berhasil atau gagal.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menjadwalkan jendela penerimaan.
OT_ERROR_FAILED
Jendela terima tidak dapat dijadwalkan.

otPlatRadioReceiveDone

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

Driver radio memanggil metode ini untuk memberi tahu OpenThread tentang frame yang diterima.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang diterima atau NULL jika operasi terima gagal.
[in] aError
OT_ERROR_NONE ketika berhasil menerima bingkai, OT_ERROR_ABORT ketika penerimaan dibatalkan dan bingkai tidak diterima, OT_ERROR_NO_BUFS ketika bingkai tidak dapat diterima karena kurangnya ruang buffer rx.

otPlatRadioSetChannelMaxTransmitPower

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

Menyetel daya pancar maksimum untuk saluran tertentu.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aChannel
Saluran radio.
[in] aMaxPower
Daya maksimum dalam dBm, meneruskan OT_Radio_RSSI_INVALID akan menonaktifkan saluran ini.
Nilai Pengembalian
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan
OT_ERROR_INVALID_ARGS
Saluran yang ditentukan tidak valid.
OT_ERROR_FAILED
Error khusus platform lainnya.
OT_ERROR_NONE
Berhasil menyetel daya pancar maksimum.

otPlatRadioSetChannelTargetPower

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

Menyetel daya target untuk saluran tertentu.

Driver radio harus menyetel daya output aktual menjadi kurang dari atau sama dengan daya target dan sedekat mungkin dengan daya target.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aChannel
Saluran radio.
[in] aTargetPower
Daya target dalam 0,01 dBm. Meneruskan INT16_MAX akan menonaktifkan saluran ini untuk menggunakan daya target.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menetapkan kekuatan target.
OT_ERROR_INVALID_ARGS
aChannel atau aTargetPower tidak valid.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktifkan coex radio.

Digunakan saat fitur OPENANCHOR_CONFIG_PLATFORM_Radio_COEX_ENABLE diaktifkan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aEnabled
TRUE untuk mengaktifkan radio coex, FALSE untuk mengaktifkan coex radio.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil diaktifkan.
OT_ERROR_FAILED
Coex radio tidak dapat diaktifkan.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Setel kode wilayah.

Format region radio adalah representasi ASCII 2 byte dari kode ISO 3166 alpha-2.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aRegionCode
Kode wilayah radio. aRegionCode >> 8 adalah karakter ASCII pertama dan aRegionCode & 0xff adalah karakter ASCII kedua.
Nilai Pengembalian
OT_ERROR_FAILED
Error khusus platform lainnya.
OT_ERROR_NONE
Berhasil menetapkan kode wilayah.
OT_ERROR_NOT_IMPLEMENTED
Fitur ini tidak diterapkan.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Transisi radio dari Terima ke Tidur (matikan radio).

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil dialihkan ke Tidur.
OT_ERROR_BUSY
Radio sedang ditransmisikan.
OT_ERROR_INVALID_STATE
Radio dinonaktifkan.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Memulai urutan transmisi di radio.

Pemanggil harus membentuk frame IEEE 802.15.4 dalam buffer yang disediakan oleh otPlatRadioGetTransmitBuffer() sebelum meminta transmisi. Saluran dan daya pancar juga disertakan dalam struktur otRadioFrame.

Urutan transmisi terdiri dari:

  1. Mengalihkan radio ke Transmit dari salah satu status berikut:
    • Terima jika RX aktif saat perangkat tidak ada aktivitas atau OT_Radio_CAPS_SLEEP_TO_TX tidak didukung
    • Tidur jika RX nonaktif saat perangkat tidak ada aktivitas dan OT_Radio_CAPS_SLEEP_TO_TX didukung.
  2. Mengirimkan psdu pada saluran yang diberikan dan pada daya pancar yang diberikan.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang akan ditransmisikan.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil bertransisi ke Transmit.
OT_ERROR_INVALID_STATE
Radio tidak dalam status Terima.

otPlatRadioTxDone

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

Driver radio memanggil fungsi ini untuk memberi tahu OpenThread bahwa operasi transmisi telah selesai, yang menyediakan frame yang ditransmisikan dan, jika berlaku, frame ack yang diterima.

Jika radio menyediakan kemampuan OT_RADIO_CAPS_TRANSMIT_SEC, lapisan platform radio akan memperbarui aFrame dengan penghitung frame keamanan dan nilai indeks kunci yang dikelola oleh radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang ditransmisikan.
[in] aAckFrame
Pointer ke bingkai ACK, NULL jika tidak ada ACK yang diterima.
[in] aError
OT_ERROR_NONE saat frame ditransmisikan, OT_ERROR_NO_ACK saat frame ditransmisikan, tetapi tidak ada ACK yang diterima, OT_ERROR_CHANNEL_ACCESS_FAILURE tx tidak dapat terjadi karena aktivitas pada saluran, OT_ERROR_ABORT saat transmisi dibatalkan karena alasan lain.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Driver radio memanggil metode ini untuk memberi tahu OpenThread bahwa transmisi telah dimulai.

Detail
Parameter
[in] aInstance
Pointer ke struktur instance OpenThread.
[in] aFrame
Pointer ke frame yang sedang ditransmisikan.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Memperbarui waktu sampel CSL di driver radio.

Waktu sampel disimpan di driver radio sebagai salinan untuk menghitung fase saat mengirim ACK dengan CSL IE. Sampel CSL (jendela) penerima CSL diperluas sebelum dan setelah waktu sampel. Waktu sampel CSL menandai stempel waktu dalam jendela sampel CSL saat frame harus diterima dalam "kondisi ideal" jika tidak ada ketidakakuratan/penyimpangan jam.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aCslSampleTime
Waktu sampel berikutnya, dalam mikrodetik. Ini adalah waktu ketika simbol pertama MHR frame diharapkan.

Referensi

Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.