WHC 客制化通路-CUST_PATH
WHC 客制化通路介绍
核心能力
提供 Host 与 Device 间的客制化数据传输通道,支持双向任意数据传输
典型应用场景
功能扩展:开发除标准 Wi-Fi/BT/Socket 之外的私有协议
Slim Host 模式适配:在资源受限环境中替代标准 Wi-Fi API,实现轻量级控制
技术优势
灵活性:不依赖特定协议,客户可自定义数据结构和交互逻辑
低耦合性:与标准通信接口(如 Wi-Fi/BT)隔离,避免功能冲突
WHC 客制化通路 API
WHC Wi-Fi 头文件
whc_host_linux/common/whc_host_cmd_path_api.h
whc_host_linux/app/whc_host_app_api.h
component/wifi/whc/whc_host_rtos/whc_host_app.h
component/wifi/whc/whc_dev/whc_dev_api.h
WHC CUST_PATH API 参考
int whc_host_buf_rx_to_user(u8 *buf, u16 size);
项目 |
描述 |
---|---|
功能 |
处理设备到主机的数据包传输,默认实现将数据包转发至用户空间 |
参数 |
buf: 数据包缓冲区指针,size: 数据包有效长度(字节) |
返回值 |
0表示成功,非零为错误码 |
备注
此为 RTK SDK 中的弱定义接口,建议用户根据实际场景重载实现。
void whc_host_send_data_to_dev(u8 *pbuf, u32 len, u32 with_txdesc);
项目 |
描述 |
---|---|
功能 |
内核空间到设备的数据包传输接口 |
参数 |
pbuf: 发送数据缓冲区,len: 有效数据长度 , with_txdesc: 1表示缓冲区已包含TX描述符头 |
返回值 |
无 |
int whc_host_api_send_nl_data(uint8_t *buf, uint32_t buf_len);
项目 |
描述 |
---|---|
功能 |
用户空间到设备的Netlink数据传输接口 |
参数 |
buf: 结构化数据缓冲区,buf_len: 数据长度 |
返回值 |
0表示成功,非零为错误码 |
void whc_host_pkt_rx_to_user(u8 *payload, u32 len);
项目 |
描述 |
---|---|
功能 |
设备到主机应用的数据包分发接口 |
参数 |
payload: 有效载荷指针,len: 数据长度 |
返回值 |
无 |
备注
此为 RTK SDK 中的弱定义接口,建议用户根据实际场景重载实现。
void whc_host_send_to_dev(u8 *buf, u32 len);
项目 |
描述 |
---|---|
功能 |
应用层到设备的数据传输接口 |
参数 |
buf: 发送数据缓冲区,len: 数据长度 |
返回值 |
无 |
void whc_dev_api_send_to_host(u8 *buf, u32 len);
项目 |
描述 |
---|---|
功能 |
设备到主机的数据包传输接口 |
参数 |
buf: 数据缓冲区指针,len: 有效数据长度 |
返回值 |
无 |
void whc_dev_pkt_rx_to_user(u8 *rxbuf, u8 *real_buf, u16 size);
项目 |
描述 |
---|---|
功能 |
处理设备接收到的用户数据包,并将其传递至设备端应用程序 |
参数 |
rxbuf: 指向接收到的数据有效载荷 real_buf: 指向数据包最终释放的内存地址 size: 数据包长度(字节) |
返回值 |
无 |
备注
此函数在 RTK SDK 中定义为弱符号接口(weak symbol),开发者可根据实际应用场景重写实现。
备注
Fat Host: Wi-Fi/BT/Socket 通信均采用标准 API,客户可以使用 CUST_PATH API 实现 Host 和 Device 之间客制化数据的传输。
Slim Host: BT/Socket 采用标准 API,但是 Wi-Fi 无法使用标准 API,此时需要 CUST_PATH API 实现 Wi-Fi 的控制以及客制化数据的传输。