【乐吾乐2D可视化组态编辑器】数据通信

External Player - 哔哩哔哩嵌入式外链播放器

乐吾乐2D可视化组态编辑器地址:https://2d.le5le.com/  

Meta2d.js支持 mqtt、websocket 和 http 轮询 3 种方式进行实时数据监听。

如果配置过 mqtt 或 websocket 或 http,下次打开时,会自动连接。

注意

浏览器(b/s)只支持ws(s)开头的协议。mqtt开头协议是c/s下使用的,不能用于浏览器。

MQTT

const params = {mqtt: 'url',mqttTopics: 'topic1/#,topoc2', // 多个主题用,分割mqttOptions: {clientId: 'string';username: 'string';password: 'string';// 如果clientId不为空,默认会随机重新生成一个clientId,避免连接冲突// 如果设置customClientId=true,不随机生成,使用用户自定义的固定的clientIdcustomClientId: false;}
};// 方式1
meta2d.connectMqtt(params);// 方式2
meta2d.store.data.mqtt = params.mqtt;
meta2d.store.data.mqttTopics = params.mqttTopics;
meta2d.store.data.mqttOptions = params.mqttOptions;
meta2d.connectMqtt();

Copy

Websocket

const url = "url";// 方式1
meta2d.connectWebsocket(url);// 方式2
meta2d.store.data.websocket = url;
meta2d.connectWebsocket();

Copy

HTTP

const url = "/test"; // 可访问的 http
meta2d.store.data.http = url;
meta2d.store.data.httpTimeInterval = 500; // 轮询间隔时间, 默认 1000
meta2d.store.data.httpHeaders = {}; // 请求头设置
meta2d.connectHttp();//新版
meta2d.store.data.https[i].http = url;
meta2d.store.data.https[i].method="POST"|"GET"; //设置请求方式 版本1.0.26以上支持
meta2d.store.data.https[i].httpTimeInterval = 500; // 轮询间隔时间, 默认 1000
meta2d.store.data.https[i].httpHeaders = {};
meta2d.connectHttp();

Copy

监听数据

Meta2d.js会自动监听数据并实时刷新。后台只需按照格式发送数据即可。

// 修改text
{id: 'pen1',text: 'new text'
}// 修改所有tag为'tag'的颜色
{tag: 'tag',color: 'red'
}// 修改绑定变量数据
{dataId: 'xxx',value: 'red'
}// 批量修改
[{id: 'pen1',text: 'new text'
},{tag: 'tag',color: 'red'
}]

Copy

发送数据

当连接成功后,可以获取 mqtt.js 、websocket 客户端或http发送数据

// 仅连接成功后有效// mqtt
meta2d.mqttClient.publish("event", "data");
// websocket
meta2d.websocket.send("data");
// http
fetch(url, {method: 'post',body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}
});

Copy

解析自定义格式数据

当数据格式不是Meta2d.js可识别的数据格式时,可自定义解析

// 方式1:直接设置socket回调函数
//① version < 1.0.17 
meta2d.socketFn = (message, topic) => {// Do sthmeta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
};//② version >= 1.0.17
meta2d.socketFn = (message, context) => {// Do sthmeta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
};//③ version >= 1.0.46
meta2d.socketFn = (message, context) => {// Do sthmeta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法/*let newMessage = fn(message); //伪代码,对message数据转化return newMessage; //将新的message数据代入到核心库处理。新的message需要满足“监听数据”里的格式*/
};// 方式2:socket回调函数js保存到图纸数据
// data = {...}
//① version < 1.0.17
data.socketCbJs = `// params: e - the message// params: topic - mqtt 有,ws 和 http 是空串constole.log(e, topic);// Do sth.meta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
`;
// 自动监听
meta2d.open(data);// 或
meta2d.store.data.socketCbJs = `// params: e - the message// params: topic - mqtt 有,ws 和 http 是空串constole.log(e, topic);// Do sth.meta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
`;
// 手动监听
meta2d.listenSocket();//② version >= 1.0.17
data.socketCbJs = `// params: e - the message// params: context:{//         meta2d: meta2d对象,//         type:通信类型,//         url:通信地址,//         topic:mqtt-topic mqtt 有,ws 和 http 是空串//         }constole.log(e, context);// Do sth.meta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
`;
// 自动监听
meta2d.open(data);// 或
meta2d.store.data.socketCbJs = `// params: e - the message// params: context:{//         meta2d: meta2d对象,//         type:通信类型,//         url:通信地址,//         topic:mqtt-topic mqtt 有,ws 和 http 是空串//         }constole.log(e, topic);// Do sth.meta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法
`;
// 手动监听
meta2d.listenSocket();//③ version >= 1.0.46
data.socketCbJs = `// params: e - the message// params: context:{//         meta2d: meta2d对象,//         type:通信类型,//         url:通信地址,//         topic:mqtt-topic mqtt 有,ws 和 http 是空串//         }constole.log(e, context);// Do sth.meta2d.setValue(pen);//return false; //表示仅执行自定义的回调函数方法//return true; //表示除了执行自定义的回调方法外,还会执行核心库方法/*let newMessage = fn(JSON.parse(message)); //伪代码,对数据进行转化return newMessage; //将新的message数据代入到核心库处理。新的message需要满足“监听数据”里的格式*/
`;

Copy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对于在pycharm中终端失去环境 报错-bash: conda: command not found 2024.6

背景介绍 我是在服务器上一个已经创建好conda环境&#xff0c;可以用vscode去执行conda命令 但是在pycharm上连接之后就一直不能使用conda命令 一直报错 -bash: conda: command not found 问题解读 加载环境变量文件.bashrc&#xff08;前提是你的服务器上已经给conda配置好了环…

解决linux下载github项目下载不下来,下载失败, 连接失败的问题

第一步&#xff1a;打开/etc/hosts文件 linux vim /etc/hosts 第二步&#xff1a;文件拉到最下面&#xff0c;输入以下内容 linux #GitHub Start 140.82.113.3 github.com 140.82.114.20 gist.github.com 151.101.184.133 assets-cdn.github.com 151.101.184.133 raw.githubus…

力扣(2024.06.21)

1. 54——螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 标签&#xff1a;数组&#xff0c;矩阵&#xff0c;模拟 代码&#xff1a; class Solution:def spiralOrder(self, matrix: List[List[int]]) -&…

2024会展行业发展趋势预测

在当今这个数字化浪潮汹涌的时代&#xff0c;会展行业也迎来了自己的变革时刻。 根据《2023中国会展主办机构数字化调研报告》&#xff0c;我们可以清晰地看到几个显著的趋势&#xff1a; 首先&#xff0c;数字化转型已经不再是一道选择题&#xff0c;而是必答题。 超过90%的…

Word中删除空白页

① 文字后面出现的空白页 把鼠标放在空白页的位置&#xff0c;按住Ctrl Delete即可。 ② 表格后面的空白页 把鼠标放在空白页左侧&#xff0c;直到出现一个空白的箭头&#xff0c;点击一下选中空白页&#xff0c;然后再Ctrl D&#xff0c;打开字体选项卡&#xff0c;在效果中…

Zabbix 监控 Kubernetes 集群

Zabbix 监控 Kubernetes 集群 Zabbix作为一个成熟且功能强大的监控系统&#xff0c;被许多企业广泛采用。它能够对各种IT基础设施进行全面的监控&#xff0c;包括服务器、网络设备、应用程序等。而将Zabbix与Kubernetes结合&#xff0c;可以实现对Kubernetes集群的全面监控&am…

“打造智能售货机系统,基于ruoyi微服务版本生成基础代码“

目录 # 开篇 1. 菜单 2. 字典配置 3. 表配置 3.1 导入表 3.2 区域管理 3.3 合作商管理 3.4 点位管理 4. 代码导入 4.1 后端代码生成 4.2 前端代码生成 5. 数据库代码执行 6. 点位管理菜单顺序修改 7. 页面展示 8. 附加设备表 8.1 新增设备管理菜单 8.2 创建字…

使用上海云盾 CDN 和 CloudFlare 后 Nginx、 WordPress、 Typecho 获取访客真实 IP 方法

最近因为被 DDoS/CC 攻击的厉害,明月就临时的迁移了服务器,原来的服务器就空置下来了,让明月有时间对服务器进行了重置重新部署安装生产环境。因为站点同时使用了上海云盾和 CloudFlare(具体思路可以参考【国内网站使用国外 CloudFlare CDN 的思路分享】一文)两个 CDN 服务…

实验13 简单拓扑BGP配置

实验13 简单拓扑BGP配置 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 BGP&#xff08;Border Gateway Protocol&#xff0c;边界网关协议&#xff09;是一种用于自治系统间的动态路由协议&#xff0c;用于在自治系统&#xff08;AS&…

映射文件中#{}里的其他属性

#{}里除了可以写接收参数的名称外&#xff0c;还可以设置javaType&#xff0c;jdbcType&#xff0c;mode&#xff0c;numericScale,resultMap,typeHandler,jdbcTypeName这些属性的。 其他的属性除mode&#xff08;存储过程相关讲到存储过程的时候在讲&#xff09;外使用方式都…

在Linux上为Windows目标配置Qt交叉编译

问题描述 我想使用Linux x86_64主机为Windows x86_64目标交叉编译Qt库&#xff08;最终也包括我的应用程序&#xff09;。我觉得自己已经接近成功了&#xff0c;但可能对整个过程有一些基本的误解。 我从在我的Fedora机器上安装所有mingw包开始&#xff0c;并修改了win32-g的…

openEuler 22.03 (LTS-SP1)服务器用ntpd同步GPS时间服务器的案例

本文记录了openEuler 22.03 (LTS-SP1)的二级时间服务器用chronyd不能自动同步GPS时间服务器&#xff0c;改用ntpd同步GPS时间服务器成功的案例 一、环境简述 1、本环境中有两台GPS一级时间服务器&#xff0c;IP如下&#xff1a; 192.168.188.66 192.168.188.74 2、有一台o…

go-admin-ui开源后台管理系统华为云部署

1.华为云开通8000与9527端口 2.编译 编译成功 3.发布到远程服务器 4.登陆华为云终端 5.安装Nginx 6.查看服务启动状态 7.添加网站 添加与修改配置www-data 改为 www 自定义日志输出格式 添加网站配置文件go_admin_ui.conf 添加如下内容: location 下的root指向网站文件夹 修…

Java用文件流mask文本文件某些特定字段

思路 在Java中&#xff0c;如果你想要掩码&#xff08;mask&#xff09;文本文件中的某些特定字段&#xff0c;你可以按照以下步骤进行&#xff1a; 读取文本文件内容。找到并识别需要掩码的字段。用特定的掩码字符&#xff08;如星号*&#xff09;替换这些字段。将修改后的内…

一个自定义流程的平台

脚本语言使用的是C#&#xff0c;当用户发布一个新的流程时&#xff0c;会把C#的脚本编译成dll&#xff0c;然后添加到微服务中&#xff0c;因为有了硬编译&#xff0c;所以执行速度是非常快的。逻辑脚本支持调试&#xff0c;可以断点和逐行调试。平台提供了调试工具&#xff0c…

如何在使用 Qt 时打印到控制台

在开发过程中&#xff0c;打印变量值到控制台对于调试和监控非常重要。使用 Qt 和 C 开发时&#xff0c;有多种方法可以实现这一点。在本文中&#xff0c;我们将探索几种在 Qt 中打印到控制台的专业方法。 1. 使用 qDebug、qWarning、qCritical 和 qFatal Qt 提供了一些方便的…

python测试工程师 之 unittest框架总结

unittest 学习目标unittest 框架的基本使⽤⽅法(组成)断⾔的使⽤ (让程序⾃动的判断预期结果和实际结果是否相符)参数化(多个测试数据, 测试代码写⼀份 传参)⽣成测试报告 复习pythonunittest 框架的介绍核⼼要素(组成)1. TestCase 测试⽤例, 这个测试⽤例是 unittest 的组成部…

Vue P17-54

18、计算属性 示例&#xff1a;实现姓名的联动效果 可以用插值语法、method {{func()}} 这里必须有 &#xff08;&#xff09;表示返回值 在事件处理中&#xff0c;click“func1” 有没有无所谓 computed的计算属性和data中的属性都在vm中&#xff0c;但vm._data里只有后者…

一文让你彻底搞懂什么是VR、AR、AV、MR

随着科技的飞速发展&#xff0c;现实世界与虚拟世界的界限变得越来越模糊。各种与现实增强相关的技术如雨后春笋般涌现&#xff0c;令人眼花缭乱。本文将为你详细解读四种常见的现实增强技术&#xff1a;虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff0…

【windows】字体安装手册

windows字体安装手册 1 下载字体文件 百度搜索XXX字体ttf文件进行下载 附&#xff1a;宋体gb2312下载地址&#xff1a; https://www.downza.cn/soft/7780.html 2 字体安装 1.搜索字体 2.将下载的ttf文件拖拽添加 3.关闭办公软件重新打开后&#xff0c;outlook、word、…