修改蓝牙断开问题,增加剩料收集页面
This commit is contained in:
parent
c4e435b40b
commit
d114d3a7b8
|
@ -0,0 +1,288 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
<link rel="stylesheet" href="../css/mui_min.css">
|
||||
<link href="../css/mui_picker_min.css" rel="stylesheet"/>
|
||||
<link href="../css/mui_poppicker_css" rel="stylesheet"/>
|
||||
<script src="../script/api.js"></script>
|
||||
<script src="../script/mui.min.js"></script>
|
||||
<script src="../script/mui.picker.min.js"></script>
|
||||
<script src="../script/mui.poppicker.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
.head {
|
||||
height: 10vh;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #a3caef;
|
||||
}
|
||||
.content{
|
||||
height: 79vh;
|
||||
box-sizing: border-box; border: 1px solid #a3caef;
|
||||
}
|
||||
.footer{
|
||||
height: 10vh;
|
||||
box-sizing: border-box; border: 1px solid #a3caef;
|
||||
}
|
||||
|
||||
/*.content {*/
|
||||
/* width: 100%;*/
|
||||
/* height: 100vh;*/
|
||||
/* box-sizing: border-box;*/
|
||||
/* !* background-color: #007aff; *!*/
|
||||
/* border: 1px solid #a3caef;*/
|
||||
/*}*/
|
||||
|
||||
.form {
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #a3caef;
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: xx-large;
|
||||
width: 300px;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #a3caef;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 20px;
|
||||
}
|
||||
.flex {
|
||||
/*flex 布局*/
|
||||
display: flex;
|
||||
/*实现垂直居中*/
|
||||
align-items: center;
|
||||
/*实现水平居中*/
|
||||
justify-content: center;
|
||||
text-align: justify;
|
||||
width: 100%;
|
||||
}
|
||||
.flex1 {
|
||||
/*flex 布局*/
|
||||
display: flex;
|
||||
/*实现垂直居中*/
|
||||
align-items: center;
|
||||
/*实现水平居中*/
|
||||
justify-content: flex-start;
|
||||
text-align: justify;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div class="mui-row">
|
||||
<div class="head flex mui-row">
|
||||
<div class="mui-col-sm-3" style="display:flex;align-items: center;">
|
||||
<button class="btnc mui-btn-inline mui-btn-danger" onclick="handleBackMain()">返回</button>
|
||||
</div>
|
||||
<div class="mui-col-sm-9" style="display:flex;justify-content: flex-end;">
|
||||
<button class="btnc mui-btn-inline mui-btn-danger" onclick="closeApp()" type='button'>关闭系统</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--中间内容开始-->
|
||||
<div class="mui-row content">
|
||||
<div class="mui-col-sm-4">
|
||||
<div class="mui-row form flex1">
|
||||
<button class="mui-btn-inline mui-btn-info" style="font-size: large;" type='button'>绑定设备</button>
|
||||
<button id='initsb' class="mui-btn-inline mui-btn-primary" style="font-size: large;" type='button'>
|
||||
请选择设备
|
||||
</button>
|
||||
<button class="mui-btn-inline mui-btn-success" style="font-size: large;" onclick="initsb()">保存
|
||||
</button>
|
||||
</div>
|
||||
<div class="mui-row form flex1">
|
||||
<button class="mui-btn-inline mui-btn-info" style="font-size: large;" type='button'>默认页面</button>
|
||||
<button id='initpage' class="mui-btn-inline mui-btn-primary" style="font-size: large;" type='button'>
|
||||
请选择页面
|
||||
</button>
|
||||
<input id="indexPage" type="hidden" value="">
|
||||
<button class="mui-btn-inline mui-btn-success" style="font-size: large;" onclick="initpage()">保存
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-col-sm-4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer flex mui-row">
|
||||
<div class="mui-col-sm-12 flex"style="width:100%;height:8vh;white-space: nowrap !important;overflow-x: scroll;" id="list">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
var carListener = null;
|
||||
var pageListener = null;
|
||||
var userPicker;
|
||||
var pagePicker;
|
||||
var pickData = [];
|
||||
var btnArray = ['取消', '<b style="font-weight:900">确认</b>'];
|
||||
var pageData = []
|
||||
pageData.push({value: "index", text: "首页"})
|
||||
pageData.push({value: "index1", text: "装料页面"})
|
||||
pageData.push({value: "collection", text: "剩料收集页面"})
|
||||
pageData.push({value: "config", text: "设置页面"})
|
||||
|
||||
function init() {
|
||||
}
|
||||
|
||||
var apiready = function apiready() {
|
||||
initSbList()
|
||||
init()
|
||||
muiInitPage()
|
||||
var indexPage = api.getPrefs({
|
||||
sync: true,
|
||||
key: 'initpage'
|
||||
});
|
||||
if (indexPage) {
|
||||
pageData.forEach(p => {
|
||||
if (indexPage === p.value) {
|
||||
document.getElementById('initpage').innerHTML = p.text
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//返回主页
|
||||
function handleBackMain() {
|
||||
api.closeWin();
|
||||
}
|
||||
|
||||
function closeApp() {
|
||||
mui.confirm('确认关闭TMR饲喂系统?', '提示', btnArray, function (e) {
|
||||
if (e.index == 0) {
|
||||
} else {
|
||||
api.closeWidget({
|
||||
id: api.appId, //应用ID
|
||||
retData: {name: 'closeWidget'},
|
||||
silent: true
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化设备查询
|
||||
function initSbList() {
|
||||
pickData = [];
|
||||
api.ajax({
|
||||
url: 'https://tmr.nxcyx.com/api/app/tmr/sbList?sourceCow=' + api.getPrefs({sync: true, key: 'sourceCow'}),
|
||||
method: 'get',
|
||||
timeout: 5
|
||||
}, function (ret, err) {
|
||||
if (ret) {
|
||||
var initsb = api.getPrefs({
|
||||
sync: true,
|
||||
key: 'initsb'
|
||||
});
|
||||
ret.data.forEach(function (e) {
|
||||
if (initsb === e.name) {
|
||||
var json = {value: e.sbId, text: e.name};
|
||||
pickData.push(json);
|
||||
}
|
||||
});
|
||||
ret.data.forEach(function (e) {
|
||||
if (initsb !== e.name) {
|
||||
var json = {value: e.sbId, text: e.name};
|
||||
pickData.push(json);
|
||||
}
|
||||
});
|
||||
document.getElementById('initsb').innerHTML = pickData[0].text;
|
||||
muiInit();
|
||||
} else {
|
||||
mui.alert("sbList:" + err.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化设备下拉
|
||||
function muiInit() {
|
||||
(function ($, doc) {
|
||||
$.init();
|
||||
$.ready(function () {
|
||||
/**
|
||||
* 获取对象属性的值
|
||||
* 主要用于过滤三级联动中,可能出现的最低级的数据不存在的情况,实际开发中需要注意这一点;
|
||||
* @param {Object} obj 对象
|
||||
* @param {String} param 属性名
|
||||
*/
|
||||
var _getParam = function _getParam(obj, param) {
|
||||
return obj[param] || '';
|
||||
};
|
||||
if (userPicker) {
|
||||
} else {
|
||||
userPicker = new $.PopPicker();
|
||||
var showUserPickerButton = doc.getElementById('initsb');
|
||||
carListener = null;
|
||||
carListener = showUserPickerButton.addEventListener('tap', function (event) {
|
||||
userPicker.show(function (items) {
|
||||
console.log('设备切换');
|
||||
showUserPickerButton.innerHTML = items[0].text;
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
userPicker.setData(pickData);
|
||||
});
|
||||
})(mui, document);
|
||||
}
|
||||
|
||||
function muiInitPage() {
|
||||
(function ($, doc) {
|
||||
$.init();
|
||||
$.ready(function () {
|
||||
/**
|
||||
* 获取对象属性的值
|
||||
* 主要用于过滤三级联动中,可能出现的最低级的数据不存在的情况,实际开发中需要注意这一点;
|
||||
* @param {Object} obj 对象
|
||||
* @param {String} param 属性名
|
||||
*/
|
||||
var _getParam = function _getParam(obj, param) {
|
||||
return obj[param] || '';
|
||||
};
|
||||
if (pagePicker) {
|
||||
} else {
|
||||
pagePicker = new $.PopPicker();
|
||||
var showPagePickerButton = doc.getElementById('initpage');
|
||||
pageListener = null;
|
||||
pageListener = showPagePickerButton.addEventListener('tap', function (event) {
|
||||
pagePicker.show(function (items) {
|
||||
console.log('设备切换');
|
||||
document.getElementById('indexPage').value = items[0].value;
|
||||
showPagePickerButton.innerHTML = items[0].text;
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
pagePicker.setData(pageData);
|
||||
});
|
||||
})(mui, document);
|
||||
}
|
||||
|
||||
function initsb() {
|
||||
// var value = document.getElementById('initsb').value;
|
||||
var value = document.getElementById('initsb').innerHTML
|
||||
if (value) {
|
||||
api.setPrefs({
|
||||
key: 'initsb',
|
||||
value: value
|
||||
});
|
||||
mui.alert('绑定设备"' + value + '"成功');
|
||||
}
|
||||
}
|
||||
|
||||
function initpage() {
|
||||
var value = document.getElementById('indexPage').value;
|
||||
if (value) {
|
||||
api.setPrefs({
|
||||
key: 'initpage',
|
||||
value: value
|
||||
});
|
||||
var name = document.getElementById('initpage').innerHTML;
|
||||
mui.alert('默认页面"' + name + '"设置成功');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -109,13 +109,15 @@
|
|||
<div class="mui-row">
|
||||
<!--头部信息开始-->
|
||||
<div class="head flex mui-row">
|
||||
<div class="mui-col-xs-5" style="display:flex;align-items: center;">
|
||||
<div class="mui-col-xs-6" style="display:flex;align-items: center;">
|
||||
<button class="btnc mui-btn-inline mui-btn-danger" onclick="handleBackMain()">返回</button>
|
||||
<button id='showUserPicker' class="btnc mui-btn-inline mui-btn-primary" type='button'>请选择设备</button>
|
||||
<text id='batchName' style="font-size: x-large;margin-left:15px;font-weight: 900;"></text>
|
||||
<button class="btnc mui-btn-inline mui-btn-primary" type='button' onclick="refreshDayPlan()">更新计划</button>
|
||||
<!-- <button class="btnc mui-btn-inline mui-btn-primary" type='button' onclick="reloadPage()">刷新页面</button> -->
|
||||
</div>
|
||||
<div class="mui-col-xs-7" style="display:flex;justify-content: flex-end;">
|
||||
<div class="mui-col-xs-6" style="display:flex;justify-content: flex-end;">
|
||||
|
||||
<button class="btnc mui-btn-inline mui-btn-danger" onclick="closeApp()" type='button'>关闭系统</button>
|
||||
<button id="driveName" class="btnc mui-btn-info" type="button" onclick="handleBackSys()">机车手</button>
|
||||
<button id='wifiDom' class="btnc mui-btn-inline mui-btn-info"
|
||||
|
@ -210,7 +212,7 @@
|
|||
var textInterval = null;
|
||||
var echartsType = '';
|
||||
var weightStatus = true;
|
||||
var IFlyVoice = null;
|
||||
// var IFlyVoice = null;
|
||||
var text = '';
|
||||
var speed = '30';
|
||||
var zfk;
|
||||
|
@ -253,8 +255,8 @@
|
|||
clearInterval(resultInterval);
|
||||
clearInterval(totalInterval);
|
||||
clearInterval(textInterval);
|
||||
IFlyVoice = api.require('IFlyVoice');
|
||||
IFlyVoice.initSpeechSynthesizer(function (ret) {
|
||||
// IFlyVoice = api.require('IFlyVoice');
|
||||
// IFlyVoice.initSpeechSynthesizer(function (ret) {
|
||||
// textInterval = setInterval(function () {
|
||||
// console.log(text);
|
||||
// if (text.length > 0) {
|
||||
|
@ -263,24 +265,22 @@
|
|||
// speed = '30';
|
||||
// }
|
||||
// }, 2000);
|
||||
});
|
||||
// });
|
||||
initPage();
|
||||
setTimeout(function(){
|
||||
initService()
|
||||
},1000)
|
||||
api.addEventListener({
|
||||
name: 'keyback'
|
||||
}, function (ret, err) {
|
||||
mui.confirm('确认关闭TMR饲喂系统?', '提示', btnArray, function (e) {
|
||||
if (e.index == 0) {} else {
|
||||
api.closeWidget({
|
||||
id: api.appId, //应用ID
|
||||
retData: { name: 'closeWidget' },
|
||||
silent: true
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
initService()
|
||||
// api.addEventListener({
|
||||
// name: 'keyback'
|
||||
// }, function (ret, err) {
|
||||
// mui.confirm('确认关闭TMR饲喂系统?', '提示', btnArray, function (e) {
|
||||
// if (e.index == 0) {} else {
|
||||
// api.closeWidget({
|
||||
// id: api.appId, //应用ID
|
||||
// retData: { name: 'closeWidget' },
|
||||
// silent: true
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
};
|
||||
|
||||
function rescan(){
|
||||
|
@ -637,7 +637,14 @@ function getDateStr(date) {
|
|||
allow = json[0].allow;
|
||||
// 计划
|
||||
_planSum = json[0].weight.toFixed(0);
|
||||
allowAuto = _planSum >= 100;
|
||||
renderUnload();
|
||||
feedMyChart.setOption({
|
||||
dataset: {
|
||||
source: [[1, _feedNum]]
|
||||
}
|
||||
});
|
||||
// 误差小于100必须校准才能自动跳转
|
||||
allowAuto = false;
|
||||
document.getElementById('feedNum').innerHTML = '<font style="color:blue">:' + _planSum + '</font>/<font style="color:green">已装:' + _feedNum + '</font>';
|
||||
text = feedName + _planSum;
|
||||
batchName = e.className + e.trainNumber;
|
||||
|
@ -709,12 +716,26 @@ function getDateStr(date) {
|
|||
networkStatus = true;
|
||||
api.hideProgress();
|
||||
document.getElementById('text').innerHTML = '设备初始化成功';
|
||||
sbId = ret.data[0].sbId;
|
||||
document.getElementById('showUserPicker').innerHTML = ret.data[0].name;
|
||||
ret.data.forEach(function (e) {
|
||||
var json = { value: e.sbId, text: e.name };
|
||||
pickData.push(json);
|
||||
var initsb = api.getPrefs({
|
||||
sync: true,
|
||||
key: 'initsb'
|
||||
});
|
||||
ret.data.forEach(function (e) {
|
||||
if (initsb === e.name){
|
||||
var json = { value: e.sbId, text: e.name };
|
||||
pickData.push(json);
|
||||
}
|
||||
});
|
||||
ret.data.forEach(function (e) {
|
||||
if (initsb !== e.name){
|
||||
var json = { value: e.sbId, text: e.name };
|
||||
pickData.push(json);
|
||||
}
|
||||
});
|
||||
// sbId = ret.data[0].sbId;
|
||||
// document.getElementById('showUserPicker').innerHTML = ret.data[0].name;
|
||||
sbId = pickData[0].value;
|
||||
document.getElementById('showUserPicker').innerHTML = pickData[0].text;
|
||||
muiInit();
|
||||
initTime();
|
||||
} else {
|
||||
|
@ -727,11 +748,16 @@ function getDateStr(date) {
|
|||
}
|
||||
// 刷新页面
|
||||
function reloadPage() {
|
||||
mui.confirm('确认重新初始化页面么?', '提示', btnArray, function (e) {
|
||||
if (e.index == 0) {} else {
|
||||
getWifiInfo();
|
||||
}
|
||||
});
|
||||
api.openWin({
|
||||
name: 'collection',
|
||||
reload:true,
|
||||
url:'../html/collection.html'
|
||||
})
|
||||
// mui.confirm('确认重新初始化页面么?', '提示', btnArray, function (e) {
|
||||
// if (e.index == 0) {} else {
|
||||
// getWifiInfo();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
var sid;
|
||||
// 获取WiFi信息,并刷新页面数据
|
||||
|
|
|
@ -59,7 +59,7 @@ export default {
|
|||
api.openWin({
|
||||
name: 'index',
|
||||
reload:true,
|
||||
url:'../html/index1.html'
|
||||
url:'../html/index.html'
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -263,7 +263,7 @@ export default {
|
|||
api.openWin({
|
||||
name: 'index',
|
||||
reload:true,
|
||||
url:'../html/index1.html'
|
||||
url:'../html/index.html'
|
||||
})
|
||||
// if (ret.loginUser.sourceCow !=2 ) {
|
||||
// api.openWin({
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
function initManager(param) {
|
||||
ble.initManager(param, function (ret) {
|
||||
if (ret.state === "poweredOn") {
|
||||
// console.log("初始化成功");
|
||||
scan({clean: true});
|
||||
} else if (ret.state === 'poweredOff') {
|
||||
api.hideProgress();
|
||||
|
@ -46,6 +45,7 @@ function scan(param) {
|
|||
modal: true
|
||||
});
|
||||
}else {
|
||||
stopScan()
|
||||
clearInterval(scanInter)
|
||||
getPeripheral();
|
||||
}
|
||||
|
@ -53,6 +53,11 @@ function scan(param) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
function stopScan(){
|
||||
ble.stopScan()
|
||||
}
|
||||
|
||||
/*获取扫描结果*/
|
||||
function getPeripheral() {
|
||||
ble.getPeripheral(function (ret) {
|
||||
|
@ -126,12 +131,22 @@ function connect(param) {
|
|||
document.getElementById('text').innerHTML = '设备已连接';
|
||||
text = '设备已连接';
|
||||
console.log('主机端连接成功')
|
||||
initWeight();
|
||||
discoverService({peripheralUUID: param.peripheralUUID});
|
||||
ble.setMtu({
|
||||
peripheralUUID: param.peripheralUUID,
|
||||
mtu:50
|
||||
},function(ret){
|
||||
if(ret.status){
|
||||
initWeight();
|
||||
discoverService({peripheralUUID: param.peripheralUUID});
|
||||
}else{
|
||||
mui.alert(ret.code)
|
||||
}
|
||||
});
|
||||
}else {
|
||||
connetcedStatus = false
|
||||
connectTimes ++;
|
||||
console.log('主机端连接失败'+connectTimes+' '+uuid)
|
||||
addNotice(sbId + '主机端连接失败'+connectTimes+'次 '+uuid);
|
||||
wifiDom.innerHTML = '连接失败';
|
||||
api.hideProgress();
|
||||
setTimeout(function (){
|
||||
|
@ -173,10 +188,11 @@ var serviceUUID =''
|
|||
var characteristicUUID =''
|
||||
// 蓝牙待发送消息列表
|
||||
var msgList = [];
|
||||
var timerMsgList = null;
|
||||
// 清除消息定时任务
|
||||
clearInterval(timerMsgList)
|
||||
/*蓝牙消息发送定时任务150ms*/
|
||||
var timerMsgList = setInterval(function(){
|
||||
timerMsgList = setInterval(function(){
|
||||
// console.log(new Date().getSeconds()+ ' ' + new Date().getMilliseconds() +' ' + msgList.length)
|
||||
if (msgList.length > 0) {
|
||||
// 发送报文
|
||||
|
@ -186,7 +202,8 @@ var timerMsgList = setInterval(function(){
|
|||
peripheralUUID: peripheralUUID,
|
||||
serviceUUID: serviceUUID,
|
||||
characteristicUUID: characteristicUUID,
|
||||
value: msg
|
||||
value: msg,
|
||||
writeType:'withoutResponse'
|
||||
};
|
||||
if(connetcedStatus && peripheralUUID && serviceUUID && characteristicUUID){
|
||||
writeValueForCharacteristic(param1, function (ret) {
|
||||
|
@ -195,6 +212,7 @@ var timerMsgList = setInterval(function(){
|
|||
}
|
||||
}
|
||||
},150)
|
||||
|
||||
// 未装料状态计数,采集达到10次,发送一次停止蜂鸣指令
|
||||
var bleConunt=0;
|
||||
// 默认不自动跳转
|
||||
|
@ -212,6 +230,10 @@ function discoverService(param) {
|
|||
serviceUUID: ret4,
|
||||
peripheralUUID: param.peripheralUUID
|
||||
}, function (ret5) {
|
||||
if(ret5.indexOf("0000ffe2")!==-1){
|
||||
return false
|
||||
}
|
||||
console.log(ret5)
|
||||
peripheralUUID = param.peripheralUUID;
|
||||
serviceUUID =ret4;
|
||||
characteristicUUID =ret5;
|
||||
|
@ -226,8 +248,15 @@ function discoverService(param) {
|
|||
return false
|
||||
}
|
||||
nowWeight = ret6;
|
||||
getMess({
|
||||
peripheralUUID: param.peripheralUUID,
|
||||
serviceUUID: ret4,
|
||||
characteristicUUID: ret5,
|
||||
value: ret6
|
||||
}, function (ret7) {
|
||||
});
|
||||
// 装料状态
|
||||
if(feedStatus){
|
||||
if(feedStatus && allowAuto){
|
||||
if (first) {
|
||||
first = false;
|
||||
beforeWeight = nowWeight;
|
||||
|
@ -249,18 +278,18 @@ function discoverService(param) {
|
|||
}
|
||||
serviceUUID = ret4;
|
||||
characteristicUUID = ret5;
|
||||
// 组装led报文
|
||||
if (ledStatus && !isNaN(nowWeight)) {
|
||||
getMess({
|
||||
peripheralUUID: param.peripheralUUID,
|
||||
serviceUUID: ret4,
|
||||
characteristicUUID: ret5,
|
||||
value: ret6
|
||||
}, function (ret7) {
|
||||
});
|
||||
}
|
||||
// // 组装led报文
|
||||
// if (ledStatus && !isNaN(nowWeight)) {
|
||||
// // getMess({
|
||||
// // peripheralUUID: param.peripheralUUID,
|
||||
// // serviceUUID: ret4,
|
||||
// // characteristicUUID: ret5,
|
||||
// // value: ret6
|
||||
// // }, function (ret7) {
|
||||
// // });
|
||||
// }
|
||||
// 装料状态
|
||||
if(feedStatus){
|
||||
if(feedStatus && allowAuto){
|
||||
// 计划-饲喂
|
||||
var feedErr = _planSum-_feedNum;
|
||||
if (isNaN(feedErr)) {
|
||||
|
@ -293,7 +322,6 @@ function discoverService(param) {
|
|||
} else if (0.1 < ration && ration <= 0.2) {
|
||||
time = "05";
|
||||
if (!statusEle || lastTime !== time) {
|
||||
console.log(feedErr + ' ' + allow + ' ' + _feedNum + ' ' + _planSum);
|
||||
lastTime = time;
|
||||
ledStatus = false;
|
||||
status = '间隔';
|
||||
|
@ -308,7 +336,6 @@ function discoverService(param) {
|
|||
} else if (0.05 < ration && ration <= 0.1) {
|
||||
time = "03";
|
||||
if (!statusEle || lastTime !== time) {
|
||||
console.log(feedErr + ' ' + allow + ' ' + _feedNum + ' ' + _planSum);
|
||||
lastTime = time;
|
||||
ledStatus = false;
|
||||
status = '间隔';
|
||||
|
@ -323,7 +350,6 @@ function discoverService(param) {
|
|||
} else if (0.02 < ration && ration <= 0.05) {
|
||||
time = "01";
|
||||
if (!statusEle || lastTime !== time) {
|
||||
console.log(feedErr + ' ' + allow + ' ' + _feedNum + ' ' + _planSum);
|
||||
lastTime = time;
|
||||
ledStatus = false;
|
||||
status = '间隔';
|
||||
|
@ -337,7 +363,6 @@ function discoverService(param) {
|
|||
}
|
||||
} else {
|
||||
if (status === '间隔' || status === '') {
|
||||
console.log(feedErr + ' ' + allow + ' ' + _feedNum + ' ' + _planSum);
|
||||
ledStatus = false;
|
||||
status = '长鸣';
|
||||
statusEle = true;
|
||||
|
@ -422,7 +447,6 @@ function StringToNum(hexx){
|
|||
/*监听蓝牙数据,转换重量数据*/
|
||||
function setNotify(param, callback) {
|
||||
ble.setNotify(param, function (ret) {
|
||||
// console.log(JSON.stringify(ret))
|
||||
var value = ret.characteristic.value;
|
||||
// if (ret && value.indexOf('ff01') !== -1) {
|
||||
if (ret && value.substr(0,4) === 'ff01') {
|
||||
|
@ -434,11 +458,11 @@ function setNotify(param, callback) {
|
|||
callback(wei);
|
||||
});
|
||||
}
|
||||
|
||||
/*发送消息到蓝牙*/
|
||||
function writeValueForCharacteristic(param, callback) {
|
||||
if (param.value && connetcedStatus){
|
||||
ble.writeValueForCharacteristic(param, function (ret) {
|
||||
// console.log(JSON.stringify(ret));
|
||||
if (ret.status) {
|
||||
// console.log("发送成功");
|
||||
} else {
|
||||
|
@ -450,7 +474,7 @@ function writeValueForCharacteristic(param, callback) {
|
|||
}
|
||||
var lastTime = new Date().getSeconds()*1000+ new Date().getMilliseconds();
|
||||
// 接收重量数据计数
|
||||
var count = 0;
|
||||
var countLED = 0;
|
||||
/*组装报文并发数*/
|
||||
function getMess(param, callback) {
|
||||
var param1 = {
|
||||
|
@ -509,22 +533,22 @@ function getMess(param, callback) {
|
|||
param1.msg = newmsg + Math.abs(Number(_planSum - _feedNum)).toFixed(0) + 'kg';
|
||||
}
|
||||
// param1.msg = newmsg + Math.abs(Number(param.value)).toFixed(0) + 'kg'
|
||||
console.log(param1.msg)
|
||||
// console.log(param1.msg)
|
||||
//组装字符卡LED报文
|
||||
zfk.getMsg(param1, function (ret, err) {
|
||||
var str = ret.sendMsg;
|
||||
str = str.replace(/\s+/g, "");
|
||||
var num = str.length / 2;
|
||||
param.value = "FF0500" + num.toString(16) + str;
|
||||
count ++;
|
||||
countLED ++;
|
||||
// 称重量数据3包取1包
|
||||
if (count >= 3){
|
||||
if (countLED >= 3){
|
||||
msgList.push(param.value);
|
||||
// var ms = strToHex(sbId,4)+strToHex(classCode,2)+strToHex(trainNumber,2)+strToHex(feedIndex,2)+strToHex(_planSum,4)+strToHex(_feedNum,4)+strToHex(nowWeight,4);
|
||||
// var num1 = ms.length / 2;
|
||||
// 同步刷新图表
|
||||
// 饲喂状态刷新实时状态,否则不刷新装料信息
|
||||
if(feedStatus){
|
||||
if(feedStatus && allowAuto){
|
||||
renderUnload();
|
||||
feedMyChart.setOption({
|
||||
dataset: {
|
||||
|
@ -538,7 +562,7 @@ function getMess(param, callback) {
|
|||
source: [[1, nowWeight]]
|
||||
}
|
||||
});
|
||||
count = 0 ;
|
||||
countLED = 0 ;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -173,8 +173,14 @@ function submitData() {
|
|||
document.querySelector('#feed_' + feedIndex).scrollIntoView(true);
|
||||
allow = feedList[feedIndex].allow;
|
||||
_planSum = feedList[feedIndex].weight.toFixed(0);
|
||||
renderUnload();
|
||||
feedMyChart.setOption({
|
||||
dataset: {
|
||||
source: [[1, _feedNum]]
|
||||
}
|
||||
});
|
||||
// 误差小于100必须校准才能自动跳转
|
||||
allowAuto = _planSum >= 100;
|
||||
allowAuto = false;
|
||||
text = feedName + _planSum;
|
||||
document.getElementById('nowFeed').innerHTML = '<font style="color:blue;margin-left:10px;">' + batchName + ',' + feedName + '</font>';
|
||||
ledStatus = false;
|
||||
|
@ -595,24 +601,30 @@ function hex2a(hexx) {
|
|||
}return str;
|
||||
}
|
||||
|
||||
function speakTest(text, speed) {
|
||||
// IFlyVoice.stopSpeaking();
|
||||
IFlyVoice.startSynthetic({
|
||||
text: text,
|
||||
commonPath_Android: 'widget://res/aisound/common.jet',
|
||||
pronouncePath_Android: 'widget://res/aisound/xiaofeng.jet',
|
||||
commonPath_iOS: 'widget://res/aisound/common.jet',
|
||||
pronouncePath_iOS: 'widget://res/aisound/xiaofeng.jet',
|
||||
pronounceName: 'xiaofeng',
|
||||
volume: '100',
|
||||
speed: speed
|
||||
}, function (ret, err) {
|
||||
if (ret.status) {
|
||||
console.log('合成成功');
|
||||
} else {}
|
||||
// function speakTest(text, speed) {
|
||||
// // IFlyVoice.stopSpeaking();
|
||||
// IFlyVoice.startSynthetic({
|
||||
// text: text,
|
||||
// commonPath_Android: 'widget://res/aisound/common.jet',
|
||||
// pronouncePath_Android: 'widget://res/aisound/xiaofeng.jet',
|
||||
// commonPath_iOS: 'widget://res/aisound/common.jet',
|
||||
// pronouncePath_iOS: 'widget://res/aisound/xiaofeng.jet',
|
||||
// pronounceName: 'xiaofeng',
|
||||
// volume: '100',
|
||||
// speed: speed
|
||||
// }, function (ret, err) {
|
||||
// if (ret.status) {
|
||||
// console.log('合成成功');
|
||||
// } else {}
|
||||
// });
|
||||
// }
|
||||
function handleBackMain() {
|
||||
mui.confirm('确认返回到首页?', '提示', btnArray, function (e) {
|
||||
if (e.index == 0) {} else {
|
||||
api.closeWin();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function closeApp() {
|
||||
mui.confirm('确认关闭TMR饲喂系统?', '提示', btnArray, function (e) {
|
||||
if (e.index == 0) {} else {
|
||||
|
@ -656,7 +668,6 @@ var WeightDataFilter = function () {
|
|||
this.dataBuffer.shift();
|
||||
}
|
||||
var filteredValue = this.getAverageValue();
|
||||
// console.log(filteredValue,Math.abs(filteredValue - this.lastValidValue),this.maxDeviation);
|
||||
if (isNaN(this.lastValidValue) || Math.abs(filteredValue - this.lastValidValue) <= this.maxDeviation) {
|
||||
this.lastValidValue = filteredValue;
|
||||
return filteredValue;
|
||||
|
|
Loading…
Reference in New Issue