项目分块讲解.docx
- 文档编号:30013807
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:11
- 大小:574.42KB
项目分块讲解.docx
《项目分块讲解.docx》由会员分享,可在线阅读,更多相关《项目分块讲解.docx(11页珍藏版)》请在冰豆网上搜索。
项目分块讲解
项目分块讲解
UI界面
首先UI界面的编辑区,流程三,有四个下拉列表选择框,对应四个自定义函数,对应四个信息提示的弹出框,以及一个总开关,总开关连接一个switch判断,对应两个保存开关信息的自定义函数
四个下拉列表分别是列车通信波特率选择,列车通信串口号选择,轨道通信波特率选择,轨道通信串口号选择等。
几点发布按钮,打开浏览器输入http:
//localhost:
1880/ui/,展示到UI界面对应的效果是:
串口通信
串口通信收发
列车位置
如下图所示:
通过串口接收发来的列车位置协议,通过判断协议来获取列车位置。
我们知道列车位置信息的协议是:
EECC01(序列号)FF03(限速命令)00(车速)08(轨道号)0000000000000000FF如图所示,通过判断第六位我们获取到列车位置信息。
变灯
获取位置信息以后,根据列车的位置来决定发送什么协议,怎么变灯,在轨道一的时候,轨道一的小灯是红色,其余都是绿色,并且列车速度是0.
前面已经讲过他的逻辑关系,就不在重复了,注意到了return[m1….m9],是通过9个口发送的数据,因为我们有九条协议。
在配置中,最下方,可以配置输出口的多少。
连接9个delay节点,起到延迟效果,保证发送的协议是一条一条的,不是一堆协议同时发出,最后连接一个轨道电路的串口输出我们要发送的变灯协议。
来让轨道上的小灯变化
报警
项目中的报警分为:
区间模式正常行驶中发生倒车报警;进出站模式没有得到进出站允许强行进出站报警。
首先是区间模式正常行驶发生倒车,逻辑之前已经讲过了,讲一下关键的地方,列车移动,获取到的轨道号,每移动一次,都把轨道号赋值给定义的变量‘baojing’,相当于每移动一次列车,就刷新一次变量的值,这样,当我们倒车的时候,得到的轨道号小于变量‘baojing’的话我们就判定他违规倒车,报警
报警的协议。
与变灯发送数据的方式一样。
发送到轨道上,使其报警。
树莓派固定串口号
在这里讲一个特殊的点,在普通windows系统下,在Node-red中编辑串口号的命名一般是Com*,在树莓派中的名称就变了,不是com*,变成了ttyUSB*,而且还有一个问题比较麻烦,树莓派对第一个插入的USB设备命名为ttyUSB0,对第二个插入的命名为ttyUSB1,这样的话就比较麻烦,每次的修改Node-red中程序,修改串口号。
所以我们需要给树莓派固定串口号,并且起一个别名,这样我们可以给他起名为com*,这样在windows和树莓派程序中串口名称都不用改变,固定每个USB口的串口号,这样无论先插那个口,他都不会变。
教程如下:
树莓派的USB端口接通时被映射为一个文件存在/dev/目录下,通常是ttyUSB0,ttyUSB1等等。
实际应用它存在这样一个问题,树莓派并不是指定哪一个端口就是ttyUSB0,或哪一个就是ttyUSB1,而是把第一个接入设备的USB口定为ttyUSB0,第二个是ttyUSB1,这在接一个设备时是优点,可是接多个设备,在程序里就分不清ttyUSB0,ttyUSB1到底指的哪一个设备了。
所以应给各个USB口定一个固定的名字,在程序中好让我们准确地找到它。
方法如下:
1.查看USB号
执行命令:
ls–l/sys/class/tty
在树莓派系统里,其实对USB口是有区分的,反复插拔USB,并执行上面的命令,可以找出系统对USB口的命名规律,如下图所示:
不论怎样插拔USB,端口自身都是上面的编号,因此,只要给这几个编号指定别名就可以了
2.编辑配置文件
执行命令:
sudovi/etc/udev/rules.d/99-com.rules
在文件末尾加入下面内容,这里的SYMLINK+=“device*”可以改为SYMLINK+=“com*”更为方便。
(看个人习惯)
以上几句话的意思就是为USB编号指定别名。
3.重启服务
执行命令:
sudo/etc/init.d/udevrestart
4.查看结果
执行命令:
ls–l/dev|grepttyUSB*
这是一些编辑树莓派的简单命令,可以参考:
5.命令:
1.:
q直接退出
2.:
q!
强制退出,不保存
3.:
wq保存退出
4.:
w保存
5.h光标左移
6.j光标下移
7.k光标上移
8.l光标右移
9.i插入,在光标前
10.a插入,在光标后
11.d删除
网络通信
TCP输入节点
在项目中的网络通信就是指TCP通信了,服务端开启一个服务,我们只需要去连接他,然后拖入一个输入节点,如图:
输入端接受服务端传来的通信协议,经过函数,处理数据。
TCP输出节点
在之前的变灯中,大家可能注意到了,在最后有连接TCp的输出节点,没错;发送到服务器的协议也是这样,连接delay节点,保证结果正确,最快连接一个TCP输出节点,将列车位置发送到服务端。
提示信息
提示信息的代码层面,上层节点是函数,通过函数的判断,自定义输出的内容,如果符合判断条件,那么就输出提示信息,在项目中的逻辑就是选错波特率或者串口号就展示提示信息。
页面的效果是:
如图,我们知道列车通行中波特率应该选择115200,选择错误的话,右下角就弹出提示信息。
其他的都同理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 分块 讲解