otRadioFrame

#include <radio.h>

Đại diện cho khung radio IEEE 802.15.4.

Tóm tắt

Thuộc tính công khai

mAckFrameCounter
uint32_t
Bộ đếm khung hình bảo mật ACK (áp dụng khi bạn đặt mAckedWithSecEnhAck).
mAckKeyId
uint8_t
Chỉ mục khoá bảo mật ACK (áp dụng khi bạn đặt mAckedWithSecEnhAck).
mAckedWithFramePending
bool
Cột này cho biết liệu khung này đã được xác nhận với khung đang chờ xử lý hay chưa.
mAckedWithSecEnhAck
bool
Điều này cho biết liệu khung này có được xác nhận bằng ACK tăng cường bảo mật hay không.
mAesKey
Chất liệu chính dùng để bảo mật khung AES-CCM.
mChannel
uint8_t
Kênh dùng để truyền/nhận khung.
mCslPresent
bool
Đặt thành true nếu có tiêu đề CSL bằng IE.
mCsmaCaEnabled
bool
Đặt thành true để bật CSMA-CA cho gói này, nếu không thì đặt là false.
mIeInfo
Con trỏ đến thông tin liên quan đến(các) Tiêu đề IE.
mInfo
union otRadioFrame::@24
Kết hợp truyền và nhận thông tin cho khung vô tuyến.
mIsARetx
bool
Cho biết khung hình đó có được truyền lại hay không.
mIsHeaderUpdated
bool
Cho biết liệu bộ đếm khung hình và CSL IE có được cập nhật chính xác trong tiêu đề hay không.
mIsSecurityProcessed
bool
Đúng nếu SubMac nên bỏ qua quá trình xử lý AES của khung này.
mLength
uint16_t
Độ dài của PSDU.
mLqi
uint8_t
Chỉ báo chất lượng liên kết cho khung hình đã nhận.
mMaxCsmaBackoffs
uint8_t
Số lần thử thời gian đợi tối đa trước khi khai báo lỗi về CCA.
mMaxFrameRetries
uint8_t
Số lần thử lại tối đa được phép sau khi truyền không thành công.
mPsdu
uint8_t *
PSDU.
mRadioType
uint8_t
Loại đường liên kết đến vô tuyến – nên được trình điều khiển vô tuyến bỏ qua.
mRssi
int8_t
Chỉ báo cường độ tín hiệu đã nhận bằng dBm cho khung hình đã nhận.
mRxChannelAfterTxDone
uint8_t
Kênh RX sau khi TX khung hoàn tất (sau khi tất cả các lần thử lại khung hình – ack đã nhận, hết thời gian chờ hoặc huỷ).
mRxInfo
struct otRadioFrame::@24::@26
Cấu trúc biểu thị thông tin nhận khung vô tuyến.
mTimestamp
uint64_t
Thời gian của đồng hồ vô tuyến cục bộ tính bằng micrô giây khi kết thúc SFD trên ăng ten cục bộ.
mTxDelay
uint32_t
Thời gian trễ tính bằng micrô giây của quá trình truyền này được tham chiếu đến mTxDelayBaseTime.
mTxDelayBaseTime
uint32_t
Thời gian cơ sở tính bằng micrô giây cho quá trình truyền theo lịch so với đồng hồ vô tuyến cục bộ, hãy xem otPlatRadioGetNowmTxDelay.
mTxInfo
struct otRadioFrame::@24::@25
Cấu trúc biểu thị thông tin truyền khung vô tuyến.

Thuộc tính công khai

mAckFrameCounter

uint32_t otRadioFrame::mAckFrameCounter

Bộ đếm khung hình bảo mật ACK (áp dụng khi bạn đặt mAckedWithSecEnhAck).

mAckKeyId

uint8_t otRadioFrame::mAckKeyId

Chỉ mục khoá bảo mật ACK (áp dụng khi bạn đặt mAckedWithSecEnhAck).

mAckedWithFramePending

bool otRadioFrame::mAckedWithFramePending

Cột này cho biết liệu khung này đã được xác nhận với khung đang chờ xử lý hay chưa.

mAckedWithSecEnhAck

bool otRadioFrame::mAckedWithSecEnhAck

Điều này cho biết liệu khung này có được xác nhận bằng ACK tăng cường bảo mật hay không.

mAesKey

const otMacKeyMaterial * otRadioFrame::mAesKey

Chất liệu chính dùng để bảo mật khung AES-CCM.

mChannel

uint8_t otRadioFrame::mChannel

Kênh dùng để truyền/nhận khung.

mCslPresent

bool otRadioFrame::mCslPresent

Đặt thành true nếu có tiêu đề CSL bằng IE.

mCsmaCaEnabled

bool otRadioFrame::mCsmaCaEnabled

Đặt thành true để bật CSMA-CA cho gói này, nếu không thì đặt là false.

mIeInfo

otRadioIeInfo * otRadioFrame::mIeInfo

Con trỏ đến thông tin liên quan đến(các) Tiêu đề IE.

mInfo

union otRadioFrame::@24 otRadioFrame::mInfo

Kết hợp truyền và nhận thông tin cho khung vô tuyến.

mIsARetx

bool otRadioFrame::mIsARetx

Cho biết khung hình đó có được truyền lại hay không.

mIsHeaderUpdated

bool otRadioFrame::mIsHeaderUpdated

Cho biết liệu bộ đếm khung hình và CSL IE có được cập nhật chính xác trong tiêu đề hay không.

Nếu lớp nền tảng không cung cấp tính năng OT_RADIO_CAPS_TRANSMIT_SEC, thì lớp đó có thể bỏ qua cờ này.

Nếu nền tảng đó cung cấp chức năng OT_RADIO_CAPS_TRANSMIT_SEC, thì nền tảng đó sẽ xử lý quá trình xử lý bảo mật tx và chỉ định bộ đếm khung. Trong trường hợp này, hành vi sau đây được dự kiến sẽ xảy ra:

Khi bạn đặt mIsHeaderUpdated, điều này cho biết lõi OpenThread đã đặt bộ đếm khung hình và CSL IE (nếu tính năng bảo mật được bật) trong khung đã chuẩn bị. Bộ đếm được đảm bảo khớp với giá trị bộ đếm từ các lần thử trước đó trong cùng một khung. Nền tảng không được chỉ định hoặc thay đổi bộ đếm khung hình (nhưng có thể vẫn cần phải thực hiện quá trình xử lý bảo mật tuỳ thuộc vào cờ mIsSecurityProcessed).

Nếu bạn không đặt mIsHeaderUpdated, thì bộ đếm khung và khoá CSL IE sẽ không được đặt trong khung theo lõi OpenThread và nền tảng radio có trách nhiệm chỉ định chúng. Nền tảng phải cập nhật tiêu đề khung (chỉ định bộ đếm và giá trị CSL IE) trước khi gửi khung qua vô tuyến. Tuy nhiên, nếu quá trình truyền bị huỷ và khung không được gửi qua vô tuyến (ví dụ: lỗi truy cập kênh), thì nền tảng có thể chọn không cập nhật tiêu đề. Nếu cập nhật tiêu đề, thì nền tảng cũng phải đặt cờ này trước khi truyền khung trở lại từ lệnh gọi lại otPlatRadioTxDone().

mIsSecurityProcessed

bool otRadioFrame::mIsSecurityProcessed

Đúng nếu SubMac nên bỏ qua quá trình xử lý AES của khung này.

mLength

uint16_t otRadioFrame::mLength

Độ dài của PSDU.

mLqi

uint8_t otRadioFrame::mLqi

Chỉ báo chất lượng liên kết cho khung hình đã nhận.

mMaxCsmaBackoffs

uint8_t otRadioFrame::mMaxCsmaBackoffs

Số lần thử thời gian đợi tối đa trước khi khai báo lỗi về CCA.

mMaxFrameRetries

uint8_t otRadioFrame::mMaxFrameRetries

Số lần thử lại tối đa được phép sau khi truyền không thành công.

mPsdu

uint8_t * otRadioFrame::mPsdu

PSDU.

mRadioType

uint8_t otRadioFrame::mRadioType

Loại đường liên kết đến vô tuyến – nên được trình điều khiển vô tuyến bỏ qua.

mRssi

int8_t otRadioFrame::mRssi

Chỉ báo cường độ tín hiệu đã nhận bằng dBm cho khung hình đã nhận.

mRxChannelAfterTxDone

uint8_t otRadioFrame::mRxChannelAfterTxDone

Kênh RX sau khi TX khung hoàn tất (sau khi tất cả các lần thử lại khung hình – ack đã nhận, hết thời gian chờ hoặc huỷ).

Các nền tảng phát thanh có thể chọn hoàn toàn bỏ qua thông báo này. Ngăn xếp OT đảm bảo gọi otPlatRadioReceive() bằng kênh RX mong muốn sau khi một TX khung hoàn tất và được báo hiệu trong lệnh gọi lại otPlatRadioTxDone(). Những nền tảng phát thanh không cung cấp OT_RADIO_CAPS_TRANSMIT_RETRIES phải luôn bỏ qua thông số này.

Chế độ này dành cho các trường hợp có thể có sự chậm trễ trong hoạt động tương tác giữa ngăn xếp OT và vô tuyến, ví dụ: cơ chế này được sử dụng trong cấu trúc RCP/máy chủ để đảm bảo RCP chuyển sang kênh PAN nhanh hơn. Cụ thể, chế độ này có thể giúp chuyển đổi CSL cho trẻ đang ngủ, trong đó trẻ có thể dùng một kênh khác cho CSL chứ không phải kênh PAN. Sau khi đưa vào khung hình, chúng ta muốn đài/RCP nhanh chóng quay lại kênh PAN để đảm bảo rằng cha mẹ không bỏ lỡ tx từ trẻ sau đó, ví dụ: trẻ phản hồi khung hình CSL đã truyền trước đó từ cha mẹ bằng kênh PAN trong khi đài vẫn ở trên kênh CSL.

Việc chuyển sang kênh RX PHẢI xảy ra sau khi khung TX hoàn tất, tức là sau tất cả các lần thử lại và khi nhận được ack (khi cờ "Yêu cầu Ack" được đặt trên khung TX) hoặc hết thời gian chờ ack. Xin lưu ý rằng thông báo xác nhận quyền sở hữu xuất hiện trên chính kênh mà khung hình được gửi đi.

mRxInfo

struct otRadioFrame::@24::@26 otRadioFrame::mRxInfo

Cấu trúc biểu thị thông tin nhận khung vô tuyến.

mTimestamp

uint64_t otRadioFrame::mTimestamp

Thời gian của đồng hồ vô tuyến cục bộ tính bằng micrô giây khi kết thúc SFD trên ăng ten cục bộ.

mTxDelay

uint32_t otRadioFrame::mTxDelay

Thời gian trễ tính bằng micrô giây của quá trình truyền này được tham chiếu đến mTxDelayBaseTime.

Lưu ý: mTxDelayBaseTime + mTxDelay SẼ trỏ tới thời điểm khi điểm cuối của SFD xuất hiện trên ăng-ten cục bộ, so với đồng hồ vô tuyến cục bộ.

mTxDelayBaseTime

uint32_t otRadioFrame::mTxDelayBaseTime

Thời gian cơ sở tính bằng micrô giây cho quá trình truyền theo lịch so với đồng hồ vô tuyến cục bộ, hãy xem otPlatRadioGetNowmTxDelay.

mTxInfo

struct otRadioFrame::@24::@25 otRadioFrame::mTxInfo

Cấu trúc biểu thị thông tin truyền khung vô tuyến.

Tài nguyên

Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.