LiteOS组件尝鲜-玩转Librws

W922 发表于 2022/04/02 11:02:57 2022/04/02
【摘要】 本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅吧!III  基本介绍  IIILibrws是一个跨平台的websocket客户端,使用C语言编写。它有如下特点:无其他依赖关系带有公共方法的单独的公共方法库librws.h线程安全后台线程中的发送/接收逻辑详情参考:https://github.com/OlehKulykov/librws。...
本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅吧!


III  基本介绍  III



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

  • 无其他依赖关系

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

  • 线程安全

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

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

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

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


III  使能Librws Demo  III



  • 在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。



III  编译运行Librws Demo  III



服务端配置

服务端代码路径为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.aliblibrws_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.0
build data : Jul 14 2021 17:15:39
**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
lwip_init OK!!
dhcp start...
Librws demo start to run.
Huawei LiteOS #
Websocket connected
Websocket receive text:
your submit context: LiteOS Websocket demo data

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



III  结语  III



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

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:  
https://gitee.com/LiteOS/LiteOS/issues
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。

11.jpg

- end

22.jpg

 -

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。