功能说明
本文将以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 Parameter
var 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_desc | string | 通知组 |
tts_text | string | 语音播报内容 |
其中通知组名为设备管理页面中需要配置的通知组。通知组负责管理这个告警的播报样式
,提示音
,重复次数
,播报间隔
。
所以如果需要使用自定义样式,需要提前设置!
无限循环播报接口说明
无限循环播报的接口与周期播报相似,不同之处在于没有间隔和次数限制,会不停的播报,直到手动取消!
请求地址:
http://<报警灯IP地址>/api/api/not_stop_repeat_alarm
请求方法:POST
+form-data
请求参数如下:
参数名 | 类型 | 说明 |
---|---|---|
notify_desc | string | 通知组 |
tts_text | string | 语音播报内容 |
效果演示
Modbus-博灵语音通知终端与PLC联动告警介绍
Api文档参考链接以及错误码详解
语音报警应用场景范围以及限制
由于该功能属于无限循环播报,需要严格遵守使用场景的限制,防止产生告警风暴。对于工业场所,用到组态管理软件,例如组态王等情况下,当出现停机时,需要实现语音循环播报。又或者在医疗机构中的信息化管理系统,需要通过使用循环播报功能来提醒患者或医生实现操作。
此时需要实现无限循环播报以及周期播报,直到用户进行确认才可以停止播报。
业务限制范围:MIS系统、ERP系统 关键业务告警、BPM系统 重要业务流程告警、动力环境监测系统 传感器故障告警、服务器监控平台 性能故障告警、工单系统 新工单告警、合规监控平台 违规操作告警、OA系统 重要事项待处理告警、工业化监控平台 重要信息告警。