LED情报板网关项目概况介绍以及如何维护

概况 本人是从去年大概四五月份的时候接手情报板的项目,当时交接过来的很杂其中一些设计理念也很奇葩比如采用的是多进程的方式 以及宿主机的操作系统是一个嵌入式的什么乱七八糟的系统容易丢文件,由于是中途接手的,而且旧系统跑的情报板太多,牵一发而动全身,只能基于现有项目做些缝缝补补的工作,后来还有个2.0的项目 设计的还是多进程方式 我们的新版本 完全抛弃

并发量太小 单进程的方式 绰绰有余 足够满足需求了

目前情报板的主要项目有那么几家

  1. 江苏交控
  2. 江苏交通强国
  3. 河北交投
  4. 河北高速
  5. 河南(很久没有反馈了 忽略不计)

江苏的两家是需要先登录VPN之后ssh登录到对应的跳板机 然后再从对应的跳板机通过telnet或者ssh的方式登录到对应的前置机

河北的是通过IP地址白名单的方式直接登录到对应的跳板机 然后再从跳板机telnet或者ssh到对应的前置机

江苏交控下面的路段公司如下:

江苏交通强国路公司如下

河北高速:(已经全部更换为Ubuntu 18.04系统全部是ssh登录方式)

河北高速 这个时不时有新增的  telnet登录为主

运行的操作系统目前主要有三种

  1. MES嵌入式操作系统(这也是目前最多的操作系统) 经常遇到文件丢失的问题,已经建议公司逐渐淘汰掉此操作系统 
  2. CENTOS 比较另类 代表:江苏交控崇启大桥 已经建议更换
  3. Ubuntu18.04以上 这是目前希望替换成的版本 以后更换的系统也都会更换到此版本或者以上版本 不仅可以兼容老版本 后期的新版本也都是基于此系统上开发。

由于操作系统的不同 所需要的维护的版本就会比较乱 目前主要维护两个版本:

nboard为代表的1.X版本 需要运维参与的主要是这个版本

CENTOS版本 目前不维护了 都是之前存在的版本再跑

Ubuntu 系统上跑的LED2.1版本   兼容1系版本和新的2.1版本

1系版本存在的主要问题

  • 平台和网关都需要保存对应各个LED的配置信息 IP协议等等,如果要改的话网关和平台都需要更改
  • 网关采取多进程的方式 如果配置文件很多的话 修改启动脚本 查看日志信息会非常不方便
  • 配置文件容易丢失 
  • 如果要新增加配置文件很麻烦 必须先上传到跳板机然后再从跳板机下载到前置机,而且这个流程对于河北交投行不通 每次都需要找平台或者维护人员协助操作
  • 情报板只有在线或者离线的状态 如果离线的话不能给出离线的原因(这也是目前最花费运维人员时间的部分)

针对1系版本存在的问题 新的2.1版本解决了如上的问题

  • 配置文件通过平台下发,网关不需要维护 修改的话只需要修改平台一侧即可
  • 改为单进程的方式
  • 由于更换了操作系统 不存在配置文件莫名丢失的问题
  • 配置文件直接通过平台下发 不存在这个问题
  • 如果是离线会给出详细的离线原因(到情报板的网络问题,情报板无返回,还是协议不匹配的问题)这些附带的消息会反馈给平台 运维人员根本不需要登录到前置机就能知道离线的原因

针对运维人员参与的主要是1系版本现在说下流程 1系版本必须要登录到前置机

客户方反馈问题,首先需要定位到哪个项目的那一台前置机 哪一台LED 由于路公司的名字有的比较重复或者相似 最好通过名称和前置机IP精确定位

登录到对应的前置机之后 首先检查网络问题 有的前置机禁止ping了 比如崇启大桥的 以及交通强国的部分前置机

这个时候就需要通过小工具 去定位了 比如tcpclient(这个不是写的  可能只适用于三思协议) 后面建议都换成 client_app来测试 目前包含了大部分协议 但是client_app不能再centos的操作系统下使用 

现在说下实际操作流程 登录到对应的前置机之后

切换到 /data/apps/conf目录 1系版本除了崇启大桥之外 都是这个目录

崇启大桥是 这个目录 /data/apps/conf_New

然后根据客户反馈的哪块情报板 通过finddev.sh脚本 查找关键字

finddev.sh直接执行的话是输入所有的配置文件信息如下图 目前是在崇启大桥的前置机上操作

通过grep搜索关键字

先介绍tcpclient  运行方式为 ./tcpclient ip地址 端口 协议 地址

有如下几种情况 

1.网络connect 连接失败

2.情报板无数据返回

3.正常有数据返回的情况(包含返回数据和协议不匹配的问题)

接着说另一个工具client_app的使用方式

由于这个工具是新开发的 很多老的前置机上没有 没有的时候需要从跳板机下载到前置机即可

 运行方式如上提示 需要5个参数 依次是IP 端口  tcp或者udp 协议类型 延迟发送数据包的秒数

前四个参数没啥说的 主要是 最后一个参数 这个主要是测试过程中发现有的LED情报板采用的是短连接 如果 5秒或者多长时间内 没有和客户端交互的话 会主动关闭掉这个socket 运维人员目前 这个参数写0即可 

正常成功的测试会显示如下结果 

 如果网络或者端口不通 会显示如下两种情况

 

 如果是情报板无数据返回的话会显示如下结果

 此外该工具还能测试出来针对有的三思情报板 必须设置地址为1才有用的问题  这个目前运维人员不需要涉及  

这是直接通过测试工具查看的 这个比较准确

然后有的情报板LED 不支持 多连接 测试 

可以通过查看日志的方式 查看情报板的状态变化  目前只有新版本的程序 支持

日志目录 为/data/apps/bin/logs

切换到日志目录 根据ip地址或者bmsid找到对应的情报板序号 日志目录下记录了所有的情报板配置的日志文件

 比如如果查看led_config1的日志 cat led_config1.log即可 如下图

 新版本的日志 摒弃了之前日志的无数多的冗余的log 无论对运维人员还是程序员来说都毫无意义 新版本的日志只会记录 情报板状态发生变化 或者 下发显示内容时的log  大大减少了 磁盘空间占用,而且每一次比如从离线变成在线 或者从在线 变成离线发生的时间 更加有助于 问题的定位

以上情况对于运维人员来说 可以解决90%的问题 

剩下10%的不能解决的就需要其他网关或者web来协助解决了

另外还存在一种情况就是由于LED的情报板服务端不支持多个socket同时连接 会导致测试不准 目前只在部分三思的板子上发现  此问题 也有可能是串口服务器的设置问题  这个可以暂时忽略

下面是附加的内容 

1X版本的程序目录结构

 

 主要包括nboard主程序  测试程序client_app  tcpclient(后面会逐渐淘汰掉)

几个脚本 killcmd.sh (用于杀死所有nboard 以及守护程序)

RunCmd.sh(启动所有程序)

finddev.sh(辅助脚本) 

savedisk.sh (保存文件 只有MES的系统上需要 不一定好使,但是不执行 的话重启必然不会保存)

以及N多led_config开头的配置文件

再来看下2.1版本的目录结构 (目前2.1版本主目录默认为/data/apps/led2/)

 清爽很多 包含

主程序led 

程序配置文件config.json  内容如下

 主要是设置了前置机的ip 平台通过前置机ip下发对应的配置文件

http通信时平台的ip 端口 以及本机的端口  以及是否启用加密选项 

是否加密选项最终也需要放到平台 通过平台下发给网关程序

killcmd.sh 和Runcmd.sh 功能相同 

savedish.sh 和finddev.sh 抛弃 

zlog.conf日志的配置文件

led_list.json 平台下发过来的led情报板配置信息如下 目前是未格式化的json格式 

 日志在led主程序同级目录下 log目录

log目录如下

 由于2.1版本支持图片发送 

image目录用于保存每次下发的图片   如下 每次会按序号 覆盖掉

 text目录原来设计是保存下发的文字信息 

但是现在 直接记录在led.log文件中了 所以 目前未使用

 新版本的日志记录 一撇 可以看到所有关于对情报板的操作都一览无余

如果下发的是文字信息可以直接看到共有几屏 每屏有几行  如下

2.1版本的还支持http接口查看情报板的具体状态:
中间的ip为前置机的ip端口8081  

curl http://10.106.228.34:8081/qmcy

请求之后会返回json格式的数据如下图 如果离线 会给出离线的原因 

最后说下如何上传文件到前置机 

江苏交控和交通强国和登录到跳板机之后 切到/tmp目录 然后然后将文件上传到tmp目录之后 通过 python起一个http服务器 命令如下 

python -m SimpleHTTPServer 8000 

然后在前置机上就可以通过wget http://172.30.100.1:8000/nboard  下载下来即可

河北高速的 将文件放到/usr/local/ledcc-tomcat-8.0.29/webapps/download/

wget http://192.168.37.23:18080/download/backup.zip -O backup.zip

然后通过如上命令下载 到前置机 

河北交投 需要平台或者运维人员协助 网关操作不了 

LED2.1部署方式 

需要文件主程序led

zlog的so库  config.json配置文件 zlog.conf日志配置文件 

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
 

部署资源包

点击链接下载 LED1.0

点击链接下载 LED2.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值