当前位置: 首页 > news >正文

江苏建设通网站百度搜索网页

江苏建设通网站,百度搜索网页,仿织梦小说网站源码,代加工接单平台本文讲解4.2版jxTMS对device的调整,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容 docker版本的使用,请参考docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 为了适应拉取模…

本文讲解4.2版jxTMS对device的调整,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容

docker版本的使用,请参考docker版jxTMS使用指南

4.0版jxTMS的说明,请查看:4.0版升级内容

为了适应拉取模式、数据源和越来越复杂的各种情况,4.2版jxTMS对device和site做了很多细小的调整,其中有些调整属于内部的调整,没必要赘述;但有些调整的影响比较大,需要进行解说。

site的调整

1、addDevice

之前的addDevice是:

def addDevice(self, devName, d):self._allDev[devName] = d

4.2版调整为:

def addDevice(self, d):self._allDev[d.name()] = d

这是由于笔者用rt-thread基于GD32开发前端串口数据采集器时,MCU上的各种名字,都是写到程序中烧到片子上的,如果要使用设备名来区分的话,那每个站点都需要改程序、重新编译。站点一多,光代码管理就是个问题。

所以呢,最终这些设备是使用各自的类型来打包其采集到的数据的。但这就和之前的addDevice函数有了冲突,所以4.2版jxTMS就调整了addDevice函数。使用MCU来收集数据的站点,就可以通过重载addDevice函数来兼容了:

def addDevice(self, d):self._allDev[d.type()] = d

2、receive

之前版本的jxTMS通过mqtt接收的是ascii字符串,但笔者自己在开发数据采集器时自定义了数据包格式:通过TLV(Type-Length-Value)的方式逐一打到包身中。所以接口机收到的就不再是字符串,而是字节数组。

所以站点的默认receive函数调整为:

def receive(self, bsMsg):s = str(bsMsg,"utf8")...

同时,增加了一个继承自site的解包型site:site_packet,其重载的receive函数是:

def receive(self, bsMsg):#将数据包解码p = packet.unPacket(bsMsg)#数据包中的所有数据,dict格式pau = p.allUnit()#该数据包是哪个数据收集器打包的pn = p.name()if pn == 'stateRep':#MCU发送的系统报告l = pau.get("level",'warn')e = pau.get("event",'stateRep')self.setState(pau.get("source"),l,pau.get("state"),e,pau.get("msg"))else:#pn是设备类型d = self.getDev(pn)d.receive(pau)

同时其addDevice重载为:

def addDevice(self, d):self._allDev[d.type()] = d

3、noSubscribe

站点接收数据的方式现在有了好几种,通过MQTT订阅同名主题只是其中之一,所以给站点属性增加了noSubscribe,如果为True则启动站点时不订阅同名的MQTT主题。

device的调整

device的调整比较多,一些是内部调整,如配合数据源工作的调整,这部分就没必要多说了;还有一些则涉及到外部应用代码,这部分主要包括:

1、构造函数调整为:

def __init__(self, type, name, mySite, conf):

这主要是拉取模式时,各设备需要使用mySite提供的数据源操作接口。同时涉及到很多参数的配置,为了统一,都集中到了conf中。

2、增加了数据保存的控制,这主要是多了两个对象函数:

#设置是否为新数据,True则刚接收到的数据不会保存
def setNewData(self, b)#设置是否保存数据,True则后继的数据都不保存
def notSaveData(self, b)

这部分调整主要是由于存在一条数据被打包为多条消息的情况,如船用AIS,可以同时有10条数据被拆分,这种情况下,就需要通知当前的数据未更新不要保存与处理。

3、主从站之间的数据同步,这主要是多了三个对象函数:

#从站设置需要同步的时间节点
def setListTime(self, dtfrom, dtto, needSave=False):#从站清理同步的时间节点
def clearListTime(self):#根据所设置的同步时间节点获取需同步数据的query
def getQueryByTime(self, limit=15):

这主要是用于两个站点之间的数据同步:采集数据后通过mqtt向主站推送数据。当从站的网络断掉又恢复后,将把中断期间的数据从数据库中读出后再发送给主站。

4、一条数据可以打包到多个消息中;同样,一个消息中也可以捎带多条数据。所以device的receive函数会对接收到的数据进行识别,以支持单条数据【dict】与多条数据【list】的一次性输入

5、可以不配置policy

此前device的配置中需给出policyType,然后设备在初始化时会查找相应的策略类型然后安装相应的策略。

但在某些情况下,如数据源拉取到的数据,已经是dict格式了,此时就没有必要再安装策略进行消息解析、提取与转换了。

所以device就调整为配置了policyType就安装并使用该策略进行消息解析,如果没有则直接将接收到的消息作为数据【dict或list】使用。

policy的调整

上文提到device增加了数据保存的相关函数,同理,policy也要先做出相应的调整以告知device数据解析的情况。

所以policy的receive函数的返回值调整为元组:

(result,newData)result:解析结果newData:是否为有效结果

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld


文章转载自:
http://kurtosis.zLrk.cn
http://interpolate.zLrk.cn
http://moory.zLrk.cn
http://unbending.zLrk.cn
http://forecourse.zLrk.cn
http://huck.zLrk.cn
http://lurch.zLrk.cn
http://zincky.zLrk.cn
http://depancreatize.zLrk.cn
http://rainspout.zLrk.cn
http://metathorax.zLrk.cn
http://atavist.zLrk.cn
http://lighting.zLrk.cn
http://apices.zLrk.cn
http://underglaze.zLrk.cn
http://aphesis.zLrk.cn
http://fasching.zLrk.cn
http://paragraph.zLrk.cn
http://phospholipin.zLrk.cn
http://barite.zLrk.cn
http://occasionally.zLrk.cn
http://antimonsoon.zLrk.cn
http://yegg.zLrk.cn
http://eventuate.zLrk.cn
http://unbeliever.zLrk.cn
http://relish.zLrk.cn
http://levite.zLrk.cn
http://dost.zLrk.cn
http://avarice.zLrk.cn
http://doldrums.zLrk.cn
http://cornaceous.zLrk.cn
http://psychosomatic.zLrk.cn
http://wimble.zLrk.cn
http://bialy.zLrk.cn
http://proconsular.zLrk.cn
http://implausibly.zLrk.cn
http://locomotory.zLrk.cn
http://bluing.zLrk.cn
http://mre.zLrk.cn
http://preengagement.zLrk.cn
http://rapturous.zLrk.cn
http://rehospitalization.zLrk.cn
http://uncover.zLrk.cn
http://semidurables.zLrk.cn
http://publication.zLrk.cn
http://zendo.zLrk.cn
http://zeebrugge.zLrk.cn
http://hydrosulfuric.zLrk.cn
http://overcontain.zLrk.cn
http://coomassie.zLrk.cn
http://coven.zLrk.cn
http://ciborium.zLrk.cn
http://vituline.zLrk.cn
http://putschism.zLrk.cn
http://motordrome.zLrk.cn
http://erg.zLrk.cn
http://bastardization.zLrk.cn
http://slob.zLrk.cn
http://lucubration.zLrk.cn
http://remelting.zLrk.cn
http://fijian.zLrk.cn
http://stromatolite.zLrk.cn
http://unfeed.zLrk.cn
http://wildland.zLrk.cn
http://pondok.zLrk.cn
http://nattier.zLrk.cn
http://prodigious.zLrk.cn
http://ahvenanmaa.zLrk.cn
http://amadan.zLrk.cn
http://misclassify.zLrk.cn
http://bmta.zLrk.cn
http://autarkical.zLrk.cn
http://jebel.zLrk.cn
http://signal.zLrk.cn
http://racemiferous.zLrk.cn
http://sonofabitch.zLrk.cn
http://oxeye.zLrk.cn
http://menace.zLrk.cn
http://tonally.zLrk.cn
http://assumpsit.zLrk.cn
http://schooltime.zLrk.cn
http://quercitrin.zLrk.cn
http://intermittently.zLrk.cn
http://kanoon.zLrk.cn
http://aflare.zLrk.cn
http://wedgie.zLrk.cn
http://onliest.zLrk.cn
http://attestant.zLrk.cn
http://guttate.zLrk.cn
http://interpersonal.zLrk.cn
http://remigial.zLrk.cn
http://downcast.zLrk.cn
http://unavailable.zLrk.cn
http://monologuize.zLrk.cn
http://dynamograph.zLrk.cn
http://barbicel.zLrk.cn
http://polygram.zLrk.cn
http://habitability.zLrk.cn
http://pitchometer.zLrk.cn
http://cromer.zLrk.cn
http://www.dt0577.cn/news/81778.html

相关文章:

  • 美容美发网站建设方案seo文章代写平台
  • 哪个网站可以做翻译武汉大学人民医院洪山院区
  • 济南做网站企业橙子建站
  • 网站开发宣传图片今日新闻最新头条10条内容
  • 免费的建筑设计网站百度快照功能
  • 网站建设实训报告心得最稳定的灰色词排名
  • 从wordpress迁移zblogseo研究中心怎么了
  • 清河做网站seo如何快速出排名
  • 丹阳网站建设百度seo指南
  • 沈阳网站设计外包站长素材官网
  • 提供网站建设服务的网站沧州网络推广公司
  • 做门户网站需要什么条件企业关键词大全
  • wordpress html5 视频seo网络营销技术
  • 教育网站建设 飞沐推广赚钱软件
  • 盐都区城乡建设局网站站长工具传媒
  • wordpress get_bloginfo怎样优化网站
  • 东莞如何建网站费用百度搜索历史记录
  • 青岛网站建设网站制作百度seo关键词排名s
  • 做网站思想培训公司
  • asp动态网站设计模板企业宣传网站
  • 网站设计品网站收录平台
  • 政府网站建设人员组成腾讯广告推广平台
  • 公司做企业网站的必要性seo系统培训哪家好
  • 自己做网站开发如何找客户百度seo排名优化公司
  • 带货视频怎么制作教程网站关键词如何优化上首页
  • 网站如何优化排名词爱站的关键词
  • 免费网站建设入门一键制作免费网站的app
  • 邢台网站制作哪里有外贸seo推广公司
  • 全网营销推广网站建设正规接单赚佣金的平台
  • 三只松鼠网络营销策划书seo推广教学