docker版jxTMS使用指南:通过REST接口访问站点数据

这篇具有很好参考价值的文章主要介绍了docker版jxTMS使用指南:通过REST接口访问站点数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文讲解4.4版jxTMS中如何通过web访问站点数据,整个系列的文章请查看
:[docker版jxTMS使用指南:docker版jxTMS使用指南:4.4版升级内容

docker版本的使用,请查看:docker版jxTMS使用指南

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

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

我们以新增的app/sinosoarSP30H/site_master.py中所定义的sp30h_master站点为例来演示如何通过REST接口来获取jxTMS中的数据。

web用户获取数据需要经过如下的步骤:

  • 登录

  • 鉴权,用户是否有对指定资源执行相应操作的权限

  • 对指定资源执行相应的操作

  • 对操作所获得的数据执行策略性处理

  • 将处理后的数据返回用户

鉴权部分我们合并到后面的文章中进行解说。本文主要讲解如何添加操作与后处理。

除去授权部分,增加外部数据访问需要两个步骤:增加操作、增加操作后处理。

增加操作

分为两步:定义操作、注册。

定义,我们增加一个操作函数:

def op_getSiteData(user, siteName, params):
    s = site.getSite(siteName)
    if s is None:
        return None,None,404,f'站点[{siteName}]不存在'
    else:
        return s.type(),s.data(),200,None

该操作函数是根据所给出的站点名来查询站点,并返回站点类型和站点数据。

我们打算演示的操作是sp30h_slave型的站点。所以我们看一下【app/sinosoarSP30H/site_slave.py】文件,可以发现其重载了newOrmData函数:

def newOrmData(self):
    return SP30H()

大家可以再去看一下上篇文章的讲解,其中说到newOrmData返回一个数据对象,则站点就会在数据回送时为其准备数据,如果返回None则不保存数据。

site_slave由于没有重载onReceive函数,所以jxTMS会从回送数据中为SP30H准备数据,这些数据可以通过data()对象函数获得。

所以,op_getSiteData函数所返回的s.data(),就是site_slave的实时数据。

则,当op_getSiteData的参数是一个site_slave类型的站点名时,会返回其站点类型和根据SP30H数据类中的属性定义从起下属各设备的回送数据中进行综合后的实时数据。

注册操作

注册一个操作非常简单,在定义好操作函数后,执行:

auth.registerOP('getSiteData', op_getSiteData)

就将操作函数注册为操作:getSiteData。

注册后,当用户access时,只要给出参数【op:getSiteData】,如果通过了授权,jxTMS就会调用op_getSiteData函数。

op_getSiteData的定义和注册可查看:app/sinosoarSP30H/op_getSiteData.py

增加操作后处理

当操作执行完毕后,jxTMS会用其所返回的第一个结果:数据类型【op_getSiteData函数返回的是站点类型】来请求数据策略【dataPolicy】进行后处理。

如果我们为这个结果类型注册了相应的数据策略策略的话,jxTMS就会将操作所返回的第二个结果【数据】递交给改策略进行加工处理。

数据策略同样包括定义和注册两个步骤:

1、定义数据策略

def resultTrans_sp30h_slave(data):
    rd = {}
	rd['VoltageA'] = date.get('VoltageA')
	rd['VoltageB'] = data.get('VoltageB')
	rd['VoltageC'] = data.get('VoltageC')
	rd['DG1_VoltageAB'] = date.get('DG1_VoltageAB')
	#rd['DG1_VoltageBC'] = data.get('DG1_VoltageBC')
	#rd['DG1_VoltageCA'] = data.get('DG1_VoltageCA')
	rd['SOC1'] = date.get('SOC1')
	rd['SOC2'] = date.get('SOC2')
	rd['SOC3'] = date.get('SOC3')
    rd['timestamp'] = data.get('timestamp')
    return rd

resultTrans_sp30h_slave只演示了最简单的数据加工:从各设备的回送数据data中搬运自己感兴趣的数据返回给用户。

需要注意的是:站点的回送数据来自下属的各站点,所以其综合后的数据每次只是其中的一小部分。

2、注册数据策略

注册数据策略同样非常简单,执行:

dataPolicy.register('sp30h_slave',resultTrans_sp30h_slave,target='webServer')

数据策略在注册时有一个target参数,其指示的是用户名或角色名,我们这里的webServer是角色名,即所有角色为webServer的用户,当其操作后的数据是sp30h_slave类型时,需要调用resultTrans_sp30h_slave执行后处理。

默认的target是default,当注册了default的后处理,则当该类型的数据匹配不到其它target时就会使用default的后处理,如果该类型连default都未注册,则直接返回原始数据。

所以,当某类型的数据需要数据策略来做后处理时,一定要先定义一个最小精度的default的后处理策略来兜底。

sp30h_slave的数据后处理策略的定义和注册可查看:app/sinosoarSP30H/dualResult.py

参考资料:

jxTMS设计思想

jxTMS编程手册

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

如何用jxTMS开发一个功能

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

jxTMS的HelloWorld文章来源地址https://www.toymoban.com/news/detail-606744.html

到了这里,关于docker版jxTMS使用指南:通过REST接口访问站点数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker版jxTMS使用指南:数据源之API

    本文讲解4.2版jxTMS的数据源的API,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容 docker版本的使用,请参考docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 使用数据源前需导入: 其构造函数为: informDual其实就是一种通知机制,是接收端向数据源的

    2024年02月12日
    浏览(36)
  • docker版jxTMS使用指南:状态机的数据事件

    本文讲解4.4版jxTMS中新的有限状态自动机,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 4.2版jxTMS的说明,请查看:4.2版升级内容 前文我们介绍了【本地数据总线】,4.4版

    2024年02月16日
    浏览(34)
  • docker版jxTMS使用指南:自定义频率型动态管控

    本文讲解4.4版jxTMS中如何自行定义一个频率型的动态管控,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 4.2版jxTMS的说明,请查看:4.2版升级内容 上篇文章中我们讲解了j

    2024年02月14日
    浏览(35)
  • docker版jxTMS使用指南:数据源之表达式

    本文讲解4.2版jxTMS的数据产生与校验表达式,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容 docker版本的使用,请参考docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 数据产生式 数据产生式是一个字符串的表达式,jxTMS在需要时将运行该表达式以获

    2024年02月12日
    浏览(37)
  • 如何通过 Docker 使用 AutoGPT:分步指南

    AutoGPT 是一个自治的 GPT-4 代理。AutoGPT 基本上是 ChatGPT 与自己对话。它可以创建代码、执行代码,还可以访问互联网。通过与自身对话,ChatGPT 可以自行验证源代码、创建程序和调试程序。这是 AI 领域的最新大事。在本文中,我将帮助您逐步使用 Docker 运行 AutoGPT。 我假设您知

    2024年02月07日
    浏览(51)
  • 接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调

    2024年02月15日
    浏览(54)
  • 2023版Postman接口测试使用全指南(原来使用 Postman测试API接口如此简单)

    下面是一篇详细介绍postman接口测试的文章,如果文章内容不太明白的话, 我建议看看视频版本,更加清洗,更加直观! 最详细的postman接口测试实战教程_哔哩哔哩_bilibili 最详细的postman接口测试实战教程共计129条视频,包括:1、Postman之接口测试灵魂考问、2、Postman之接口返

    2024年02月14日
    浏览(75)
  • pydantic 库(Python 数据接口定义)基本使用指南

    pydantic 库是 python 中用于数据接口定义检查与设置管理的库。 pydantic 在运行时强制执行类型提示,并在数据无效时提供友好的错误。 具有如下优点: 易于使用: Pydantic 很容易安装与使用,并且有一个简单的 API,使得所有开发者都可以快速上手使用。 快速验证: Pydantic 快速

    2024年02月04日
    浏览(39)
  • C++ STL之list接口的详细使用指南

    本文详细介绍了C++ STL中list接口的使用,包括list的基本特性、底层结构、与其他容器的比较,以及各种操作方法如插入、删除、迭代、排序等。通过阅读本文,您将对C++中的list有更深入的理解。

    2024年02月13日
    浏览(84)
  • Docker 网络使用指南

    目录 前言 Docker网络类型 Docker 网络概念 使用 Docker 网络 运行容器并连接到网络 检查网络 清理网络资源 Docker Compose网络 Docker 是一种容器化平台,它允许你将应用程序和它们的依赖项打包成一个称为容器的独立单元。Docker 提供了一种轻量级、可移植和自包含的方式来部署应用

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包