【语音告警】博灵智能语音报警灯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

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav