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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下