【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯

本文主要是介绍【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

功能说明

本文将以JavaScript代码为实例,讲解如何通过JavaScript代码调用博灵语音通知终端 A4实现声光语音告警。主要博灵语音通知终端如何实现无线循环播报或者周期播报的功能。
本代码实现HTTP接口的声光语音播报,并指定循环次数、播报内容。由于通知终端采用TTS语音合成技术,所以本次案例中无需预先录制音频。

代码实战

为了通过JavaScript调用博灵语音通知终端,实现HTTP方式调用声光语音报警,首先需要配置JavaScript环境。

本文使用的环境为

  • Chrome浏览器
  • 关闭CROS,以便支持跨站链接
  • ES6及以上环境

闲话少说,直接看代码

注意!本代码仅展示了关于Ajax 部分的请求部分,签名计算部分需要参考·说明书文档·来使用。
也可以参考官方Demo中对于Postman的签名计算方式,实现一键请求。

var notify_desc = "默认";
var tts_text = "测试";
var sign = "c2ffd2c025dfbfd5a31dac396dd5ce0c";
var time = "1725506055";// 创建FormData对象
var formData = new FormData();
formData.append('notify_desc', notify_desc);
formData.append('tts_text', tts_text);
formData.append('time', time);
formData.append('sign', sign);// 发送POST请求
fetch('http://192.168.0.66/api/api/not_stop_repeat_alarm', {method: 'POST',body: formData
})
.then(response => response.json()) // 解析响应为JSON
.then(data => console.log(data))    // 打印响应数据
.catch(error => console.error('Error:', error));

这部分代码直接复制到控制台,即可使用。

关于Postman的签名自校验算法代码

由于HTTP的语音播报demo中提供了一键请求方法,这部分功能又Postman的Scripts实现,可以实现请求前对请求体进行修改。详情见下图:
在这里插入图片描述
自签名校验部分的代码如下:

let sign_time = parseInt(new Date().valueOf() / 1000);
pm.environment.set('sign_time', sign_time);if(pm.request.method == 'GET'){// 遍历Get Parametervar query_params = pm.request.url.query.all();var sign_data = {};query_params.each(function(param){if( !param.disabled ) {sign_data[ param.key ] = param.value;}});
}else{sign_data = request.data;
}sign_data['token'] = pm.collectionVariables.get('token');
sign_data['time'] = sign_time;let keys = Object.keys(sign_data);
keys.sort();
sign_temp = '';
for (let i in keys){if(keys[i] == 'sign') continue;// 此处原本的reqdate的time是{{time}},需要处理if(keys[i] == 'time'){sign_temp += 'time' + sign_time;continue;}sign_temp += keys[i] + sign_data[keys[i]];
}
console.log(sign_temp);
let sign = CryptoJS.MD5(sign_temp).toString();
pm.environment.set('sign', sign);

周期播报接口说明

博灵语音通知终端A4支持通过HTTP调用接口,或者通过云端调用接口实现循环播报,同时可以允许用户通过按钮清空周期循环播报功能。
周期循环播报为间隔性质的播报,隔几分钟播报一次,播报n次后停止
周期接口说明如下:

请求地址: http://<报警灯IP地址>/api/api/set_api_repeat_alarm
请求方法:POST +form-data

请求参数如下:

参数名类型说明
notify_descstring通知组
tts_textstring语音播报内容

其中通知组名为设备管理页面中需要配置的通知组。通知组负责管理这个告警的播报样式提示音重复次数,播报间隔

所以如果需要使用自定义样式,需要提前设置!

无限循环播报接口说明

无限循环播报的接口与周期播报相似,不同之处在于没有间隔和次数限制,会不停的播报,直到手动取消!

请求地址:http://<报警灯IP地址>/api/api/not_stop_repeat_alarm
请求方法:POST +form-data

请求参数如下:

参数名类型说明
notify_descstring通知组
tts_textstring语音播报内容

效果演示

Modbus-博灵语音通知终端与PLC联动告警介绍

Api文档参考链接以及错误码详解

参见博灵通知终端A4的说明书

产品参数说明

语音报警应用场景范围以及限制

由于该功能属于无限循环播报,需要严格遵守使用场景的限制,防止产生告警风暴。对于工业场所,用到组态管理软件,例如组态王等情况下,当出现停机时,需要实现语音循环播报。又或者在医疗机构中的信息化管理系统,需要通过使用循环播报功能来提醒患者或医生实现操作。
此时需要实现无限循环播报以及周期播报,直到用户进行确认才可以停止播报。
业务限制范围:MIS系统、ERP系统 关键业务告警、BPM系统 重要业务流程告警、动力环境监测系统 传感器故障告警、服务器监控平台 性能故障告警、工单系统 新工单告警、合规监控平台 违规操作告警、OA系统 重要事项待处理告警、工业化监控平台 重要信息告警。

这篇关于【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146610

相关文章

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F