【语音告警】博灵智能语音报警灯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对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过