写点什么

玩转 LiteOS 组件:玩转 Librws

  • 2022 年 4 月 20 日
  • 本文字数:1729 字

    阅读完需:约 6 分钟

本文分享自华为云社区《LiteOS组件尝鲜-玩转Librws》,作者: W922  。


本期小编为大家带来 LiteOS 开源版本 Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅吧!

基本介绍


Librws 是一个跨平台的 websocket 客户端,使用 C 语言编写。它有如下特点:

  • 无其他依赖关系

  • 带有公共方法的单独的公共方法库 librws.h

  • 线程安全

  • 后台线程中的发送/接收逻辑

详情参考:https://github.com/OlehKulykov/librws


WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。


详情参考:https://baike.baidu.com/item/WebSocket/1953845?fr=aladdin


使能 Librws Demo

  • 在 LiteOS 源码根目录下根据实际使用的开发板,拷贝 tools/build/config/目录下的默认配置文件 ${platform}.config 到根目录,并重命名为.config。   

 注意:根据 Librws 所需资源,暂时只支持在 STM32F769 开发板上运行 LibrwsDemo。

  • 在 LiteOS 源码根目录下执行 make menuconfig 命令,按如下菜单路径使能 Librws Demo

Demos  --->   Librws Demo  --->          [*] Enable Librws Demo
复制代码

注意:使能 Librws Demo 后会自动使能 Librws 组件和 LWIP。


保存退出后,会从 github 上自动下载 Librws 源代码,并从 gitee 上下载适配于 LiteOS 系统的 patch 包,并打入 patch。详细流程在 components/download.sh 文件中。


注意: 下载需要 Linux 主机可以访问互联网,并安装 git。

编译运行 Librws Demo


服务端配置


服务端代码路径为 LiteOS/demos/librws/websocketserver.py,需要 python3 环境可运行。启动服务端步骤如下(命令行操作):


  • 修改服务端代码中的变量的 ip 为服务器 ip 地址。

# creat websockets server, please change ip as your ip address.ip = ''startServer = websockets.serve(MainLogic, ip, 8000)
复制代码
  • 通过 python pip 命令安装 websocket 包。

pip install websockets
复制代码
  • 运行 websocketserver.py 脚本。

python websocketserver.py
复制代码

客户端配置

Librws Demo 需要网络连接,在 STM32F769 开发板插入网线,并确保网络连接。客户端操作步骤如下:

  • 修改 LiteOS/demos/librws/librws_demo.c 中的 WEBSOCKET_DEMO_SERVER 为服务端 IP 或域名。

#define TEXT_BUFF_LEN                   1024#define BIN_BUFF_LEN                    1024#define WEBSOCKET_DEMO_SERVER           "your.ip.address"#define WEBSOCKET_DEMO_PORT             8000#define LIBRWS_TASK_PRIORITY            6#define LIBRWS_TASK_STACK_SIZE          0x1400
复制代码

注意: 改为域名需要开启 LWIP_DHCP(DNS 需要 DHCP 来初始化,在 Linux 下编译,使能 LWIP       会默认开启 DHCP)。

  • 修改 Kernel 中默认任务栈大小。在 LiteOS 源码根目录下执行 make menuconfig 命令,按如下菜单路径设置,修改为 4096

Kernel  --->    Basic Config  --->        Task  --->            (4096) Task Defalut Stack Size
复制代码

编译烧录

  • 在 LiteOS 源码根目录下执行 make clean; make -j 命令编译 LiteOS 工程,编译成功后会在 out/{platform}/lib 路径下生成 liblibrws.a liblibrws_demo.a 文件,系统镜像文件为 Huawei_LiteOS.bin。

  • 烧录操作请参考 https://gitee.com/LiteOS/LiteOS/blob/master/doc/LiteOS_Quick_Start.md。

  • 启动 LiteOS 后会先初始化网络,开启 DHCP,然后运行 Librws Demo,建立 websocket 连接并向服务端发送数据,服务端接收到数据后会返回数据,运行结果如下:

********Hello Huawei LiteOS********LiteOS Kernel Version : 5.1.0build data : Jul 14 2021 17:15:39**********************************OsAppInitcpu 0 entering schedulerapp init!Hello, welcome to liteos demo!lwip_init OK!!dhcp start...Librws demo start to run.Huawei LiteOS #Websocket connectedWebsocket receive text:your submit context: LiteOS Websocket demo data
复制代码

以上为“Librws”使用说明的全部内容,欢迎大家学习交流。

结语


未来我们还会持续新增更多组件、开发板、架构、特性等。


感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:  

https://gitee.com/LiteOS/LiteOS/issues


为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。



点击关注,第一时间了解华为云新鲜技术~​

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
玩转LiteOS组件:玩转Librws_TCP_华为云开发者社区_InfoQ写作社区