本文由RT-Thread论坛用户@SINE_9692原创公布:https://club.rt-thread.org/as...
一,我的项目形容
有一些设施。不具备联网性能。对外进油一个串口。为了让设施可能接入互联网,串口服务器是一个不错的抉择。也有称之为dtu的。nuc980反对网口,并且反对10个串口。是做串口服务器的绝佳抉择。打算参考市场上的一些dtu,做出一个性能相似的串口服务器。
二,DIY过程
1.工程创立
开发工具应用rtthread stdio(2.2.3),基于开发板,抉择NK-980IOt。新装置的须要在RT-Thread SDK管理器中装置板卡的bsp
装置实现后抉择基于开发板创立工程。如下图所示
点击实现。即可创立。
2. 工程设置以及所需软件包增加
- 双击RT_Thread Setting。并点击下图中蓝圈地位
- 在软件包中找到webnet软件包进行如下设置
因为咱们的html页面将放在sd卡上。所以Server root directory须要设置为
/mnt/sd1/webnet - 点击硬件如下图所示
板子引出了串口1,串口4和串口5.这里咱们把串口1和串口4使能。应用串口1和串口4来作为串口服务器的多串口。致辞设置结束。保留。编译。 - 在内存卡根目录下创立webnet目录。在webnet目录下创立admin,upload,download三个目录。并把index.html的文件放在webnet目录下。如下图所示
3.模块阐明
- 代码地址
串口服务器 - 串口模块
负责接管串口数据,并转发给与本人绑定的socket - 配置模块
基于cjson编写。保留串口与网络的相干参数 - 网络模块
负责接管网络数据,并转发给与本人绑定的串口 - web模块
提供一个可视化的配置前端
4.两头遇到问题以及解决办法
- thread pri status sp stack size max used left tick error
这个问题是在编写tcp server过程中遇到到。次要是因为select进行操作时,socket数值超过了设置的select最大的socket嵌套字导致的。只有留神在select函数第一个参数比所有须要监听的scoket都大就行了。
- 文件操作失败
文件寄存在sd卡上,这个问题是main函数执行时。sd卡还没挂载导致的。在main函数后面减少一个500ms的延时就能够了。可能更短也行。没试。
5.前端页面操作阐明
因为我的前端程度不高。所以做的很low,只用到了超链接,文本框和按钮。操作很简略。看一眼就明确。贴图如下。
三,心得体会
首先感激rtthread这次流动。这次在做这个小东西的过程中,粗浅体验到的rtthread的便当。好多软件包开箱即用,大大缩短了开发工夫。这次这个小我的项目做的也很仓促,可能有很多不太欠缺的中央,前面看大家的反馈在欠缺吧。
四,拍个小视频
9daa05b276a7e6af781d135d5fc76ff7.mp4