Người quản lý kênh

Học phần này bao gồm các chức năng dành cho Trình quản lý kênh.

Tóm tắt

Các chức năng trong mô-đun này khả dụng khi bạn bật tính năng Trình quản lý kênh (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE). Trình quản lý kênh chỉ được cung cấp trên bản dựng FTD.

Hàm

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
Cho biết chức năng lựa chọn kênh tự động có được bật hay không.
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
Xem khoảng thời gian (tính bằng giây) mà chức năng lựa chọn kênh tự động sử dụng.
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
Xem ngưỡng tỷ lệ lỗi CCA.
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
Xem độ trễ (tính bằng giây) mà Trình quản lý kênh sử dụng để thay đổi kênh.
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
Nhận mặt nạ kênh được ưa thích.
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
Nhận kênh từ cuộc gọi thành công cuối cùng đến otChannelManagerRequestChannelChange()
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
Nhận mặt nạ kênh được hỗ trợ.
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
Yêu cầu thay đổi kênh mạng chuỗi.
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
Yêu cầu ChannelManager kiểm tra và chọn kênh mới và bắt đầu thay đổi kênh.
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
Bật hoặc tắt chức năng lựa chọn kênh tự động.
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
Đặt khoảng thời gian (tính bằng giây) mà chức năng lựa chọn kênh tự động sử dụng.
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
Đặt ngưỡng tỷ lệ lỗi CCA.
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
Đặt độ trễ (tính bằng giây) dùng để thay đổi kênh.
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Đặt mặt nạ kênh ưa thích.
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Đặt mặt nạ kênh được hỗ trợ.

Hàm

Đã bật otChannelManagerGetAutoChannelSelection

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

Cho biết chức năng lựa chọn kênh tự động có được bật hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
TRUE nếu được bật, FALSE nếu bị tắt.

otChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

Xem khoảng thời gian (tính bằng giây) mà chức năng lựa chọn kênh tự động sử dụng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
Khoảng thời gian tính bằng giây.

otChannelManagerGetCcaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

Xem ngưỡng tỷ lệ lỗi CCA.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
Ngưỡng tỷ lệ lỗi CCA. Giá trị 0 ánh xạ đến 0% và 0xffff ánh xạ đến 100%.

otChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

Xem độ trễ (tính bằng giây) mà Trình quản lý kênh sử dụng để thay đổi kênh.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
Độ trễ (tính bằng giây) để thay đổi kênh.

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

Nhận mặt nạ kênh được ưa thích.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
Các kênh được yêu thích như một mặt nạ bit.

otChannelManagerGetRequestChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

Nhận kênh từ cuộc gọi thành công cuối cùng đến otChannelManagerRequestChannelChange()

Thông tin chi tiết
Trả về
Kênh được yêu cầu gần đây nhất hoặc số 0 nếu chưa có yêu cầu thay đổi kênh.

otChannelManagerGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

Nhận mặt nạ kênh được hỗ trợ.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Trả về
Các kênh được hỗ trợ như một mặt nạ bit.

Thay đổi kênh yêu cầu quản lý kênh

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

Yêu cầu thay đổi kênh mạng chuỗi.

Mạng chuyển sang kênh nhất định sau độ trễ đã chỉ định (xem otChannelManagerSetDelay()). Thay đổi kênh được thực hiện bằng cách cập nhật Tập dữ liệu hoạt động đang chờ xử lý.

Cuộc gọi tiếp theo sẽ hủy thay đổi kênh đã được yêu cầu trước đó.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aChannel
Kênh mới dành cho Mạng chuỗi.

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

Yêu cầu ChannelManager kiểm tra và chọn kênh mới và bắt đầu thay đổi kênh.

Không giống như otChannelManagerRequestChannelChange(), trong đó kênh phải được cung cấp dưới dạng tham số, hàm này sẽ yêu cầu ChannelManager tự chọn một kênh (dựa trên thông tin chất lượng thu thập được trên kênh).

Sau khi được gọi, Người quản lý kênh sẽ thực hiện 3 bước sau:

1) ChannelManager quyết định xem thay đổi kênh có hữu ích hay không. Bạn có thể bỏ qua bước kiểm tra này nếu đặt chính sách aSkipQualityCheck thành true (buộc kênh phải được chọn và bỏ qua bước kiểm tra chất lượng). Bước này sử dụng các chỉ số chất lượng liên kết đã thu thập trên thiết bị (chẳng hạn như tỷ lệ lỗi CCA, tỷ lệ lỗi khung và lỗi tin nhắn trên mỗi người hàng xóm, v.v.) để xác định xem chất lượng kênh hiện tại có đạt yêu cầu đối với thay đổi kênh hay không.

2) Nếu bước đầu tiên thành công, thì ChannelManager sẽ chọn một kênh có thể phù hợp hơn. Báo cáo này sử dụng dữ liệu chất lượng kênh đã thu thập theo mô-đun ChannelMonitor. Các kênh được hỗ trợ và yêu thích được sử dụng ở bước này. (xem otChannelManagerSetSupportedChannels()otChannelManagerSetFavoredChannels()).

3) Nếu kênh mới chọn khác với kênh hiện tại, ChannelManager sẽ yêu cầu/bắt đầu quy trình thay đổi kênh (gọi nội bộ là RequestChannelChange()).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aSkipQualityCheck
Cho biết liệu quá trình kiểm tra chất lượng (bước 1) có nên bỏ qua hay không.
Giá trị trả về
OT_ERROR_NONE
Đã hoàn tất thành công việc lựa chọn kênh.
OT_ERROR_NOT_FOUND
Mặt nạ kênh được hỗ trợ trống nên không thể chọn kênh.

Đã bật otChannelManagerSetAutoChannelSelection

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật hoặc tắt chức năng lựa chọn kênh tự động.

Khi được bật, ChannelManager sẽ định kỳ gọi một RequestChannelSelect(false). SetAutoChannelSelectionInterval() có thể đặt khoảng thời gian.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aEnabled
Cho biết liệu bạn muốn bật hay tắt chức năng này.

otChannelManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Đặt khoảng thời gian (tính bằng giây) mà chức năng lựa chọn kênh tự động sử dụng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aInterval
Khoảng thời gian tính bằng giây.
Giá trị trả về
OT_ERROR_NONE
Đã đặt khoảng thời gian thành công.
OT_ERROR_INVALID_ARGS
aInterval không hợp lệ (không).

otChannelManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

Đặt ngưỡng tỷ lệ lỗi CCA.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aThreshold
Ngưỡng tỷ lệ lỗi CCA. Giá trị 0 ánh xạ đến 0% và 0xffff ánh xạ đến 100%.

otChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

Đặt độ trễ (tính bằng giây) dùng để thay đổi kênh.

Tốt nhất là độ trễ này phải dài hơn khoảng thời gian thăm dò dữ liệu tối đa mà tất cả thiết bị end-end trong mạng Thread đã sử dụng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aDelay
Độ trễ tính bằng giây.
Giá trị trả về
OT_ERROR_NONE
Đã cập nhật thành công độ trễ.
OT_ERROR_INVALID_ARGS
Độ trễ aDelay đã cho quá ngắn.

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Đặt mặt nạ kênh ưa thích.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aChannelMask
Một mặt nạ kênh.

otChannelManagerSetSupportedChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Đặt mặt nạ kênh được hỗ trợ.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aChannelMask
Một mặt nạ kênh.

Tài nguyên

Các chủ đề Tham chiếu API OpenThread bắt nguồn từ mã nguồn, có sẵn 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 phần Tài nguyên.