jxTMS提供了python扩展来提供业务支持的全能力需要。4.0版jxTMS对python服务的基础能力进行了全面的提升。整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容
docker版本的使用,请参考:docker版jxTMS使用指南
4.0版jxTMS中提供了一个示例性的python服务。其位于/home/tms/python目录中【需以指南中所讲述的root用户登录】。其主要功能包括:
1、授权管理
2、设备处理数据
3、将数据和日志保存到数据库中
4、系统管理
5、mqtt接收数据
6、通过REST接口对外提供数据服务
7、数据服务提供不同的SLA
8、设备失联时通过钉钉告警
镜像中所提供的demo服务主要包括三个部分:
-
jx目录中为python服务的基础部件,完成上述的主体框架
-
app目录中为用户定制部分:特定设备的数据保存、特定的设备、特定设备接收数据的解析策略、操作特定设备的数据、特定的告警策略、特定的数据服务SLA、特定的web服务
-
main.py完成系统加载与启动
demo示例的设备数据采集服务的主工作流是:
1、一个站点有多个设备,这些设备通过串口发送文本消息,站点将串口号、消息文本打包组成站点消息文本,然后通过串口发送到DTU,该DTU然后以MQTT透传的方式以站点名为topic发送到MQTT服务器
注:站点有两种类型:无多串口卡的单设备型站点、带多串口卡的多设备型站点,前者直接将设备串口连接到DTU的串口即可
2、运行python服务的接口机订阅该站点名的topic,接收到MQTT消息后,以topic查找该站点,如果找到则将消息文本递交给站点
3、站点提取出所属各设备的消息后将其递交给相应的设备
4、该设备对接收到的文本进行解析,得到实时数据,然后根据配置,或立刻保存到数据库中,或定时保存
5、设备在启动时会配置超时检测间隔,超过此间隔未接收到数据则触发超时事件,设备状态切换到失联状态,设备状态的切换会保存到数据库中
6、外部系统通过REST端口访问时,按JWT模式执行身份认证。请求对某个资源执行某项操作时,按【资源(组)-角色-操作】进行权限检查,得到授权才能访问
7、读取到数据后,可根据用户名、用户角色来配置数据转换功能,以实现针对不同用户的剪裁、过滤、加工等SLA
后文将逐一介绍系统主要功能模块的功能,然后再介绍app模块和main.py,以展示如何具体实现接口机的功能。
参考资料:
jxTMS设计思想
jxTMS编程手册
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
如何用jxTMS开发一个功能
下面的系列文章讲述了jxTMS的一些基本开发能力:
jxTMS的HelloWorld