修改页面逻辑 增加js
This commit is contained in:
parent
4110e714c0
commit
318f6c1190
350
pages/main.stml
350
pages/main.stml
|
@ -25,28 +25,58 @@
|
|||
</template>
|
||||
<script>
|
||||
import {dbUtils} from '../script/dbUtils.js'
|
||||
import {serialPortUtil} from '../script/serialPortUtil.js'
|
||||
import {CrcUt} from '../script/CRCUtils.js'
|
||||
|
||||
export default {
|
||||
name: 'main',
|
||||
data() {
|
||||
return {
|
||||
listData:[]
|
||||
listData:[],
|
||||
stopRead:true,
|
||||
sendStatus:true,
|
||||
dianliuInte:null,
|
||||
jidianqiInte:null,
|
||||
dianliu1:null,
|
||||
dianliu2:null,
|
||||
dianliu3:null,
|
||||
dianliu4:null,
|
||||
map:new Map(),
|
||||
mapBefore:new Map(),
|
||||
};
|
||||
},
|
||||
//初始化
|
||||
apiready(){
|
||||
const vm = this;
|
||||
var db = api.require('db');
|
||||
db.openDatabase({
|
||||
name: 'test',
|
||||
path: 'fs://Database/cqjiouzai.db'
|
||||
}, function(ret, err) {
|
||||
if (ret.status) {
|
||||
//初始化设备表
|
||||
vm.initSb(db);
|
||||
}
|
||||
});
|
||||
const vm = this
|
||||
api.addEventListener({
|
||||
name: 'myEvent'
|
||||
}, function(ret, err) {
|
||||
if(ret.value){
|
||||
vm.initAll()
|
||||
}
|
||||
});
|
||||
vm.initAll()
|
||||
},
|
||||
methods: {
|
||||
initAll(){
|
||||
const vm = this
|
||||
clearInterval(vm.data.jidianqiInte)
|
||||
clearInterval(vm.data.dianliuInte)
|
||||
clearInterval(vm.data.dianliu1)
|
||||
clearInterval(vm.data.dianliu2)
|
||||
clearInterval(vm.data.dianliu3)
|
||||
clearInterval(vm.data.dianliu4)
|
||||
var db = api.require('db');
|
||||
db.openDatabase({
|
||||
name: 'test',
|
||||
path: 'fs://Database/cqjiouzai.db'
|
||||
}, function(ret, err) {
|
||||
if (ret.status) {
|
||||
//初始化设备表
|
||||
vm.initSb(db);
|
||||
}
|
||||
});
|
||||
},
|
||||
//跳转到设置页面
|
||||
handleToSet(){
|
||||
api.openWin({
|
||||
|
@ -71,24 +101,305 @@ export default {
|
|||
var data = ret.data;
|
||||
if(undefined != data && data.length > 0){
|
||||
vm.data.listData = data;
|
||||
var m = new Map()
|
||||
vm.data.listData.forEach(l=>{
|
||||
m.set(l.sbId,l.current)
|
||||
})
|
||||
vm.data.map = m;
|
||||
}
|
||||
if (ret.status == false || err.status == false) {
|
||||
dbUtils.execute(db, 'CREATE TABLE Sb(id varchar(50), circuitName varchar(50), current varchar(20), typeName varchar(30),isTypeOpen int(10))', function(ret, err) {
|
||||
dbUtils.execute(db, 'CREATE TABLE Sb(id varchar(50), sbId varchar(10), circuitName varchar(50), current varchar(20), typeName varchar(30),isTypeOpen int(10))', function(ret, err) {
|
||||
if (ret.status == true) {
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,circuitName,current,typeName,isTypeOpen) VALUES ('1','1','3.21','高压风冷',1);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,circuitName,current,typeName,isTypeOpen) VALUES ('2','2','3.21','中压风冷',1);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,circuitName,current,typeName,isTypeOpen) VALUES ('3','3','3.21','低压风冷',0);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,circuitName,current,typeName,isTypeOpen) VALUES ('4','4','3.21','闭锁调压',0);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,sbId,circuitName,current,typeName,isTypeOpen) VALUES ('1','0B','1','3.21','高压风冷',1);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,sbId,circuitName,current,typeName,isTypeOpen) VALUES ('2','0C','2','3.21','中压风冷',1);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,sbId,circuitName,current,typeName,isTypeOpen) VALUES ('3','0D','3','3.21','低压风冷',1);", function(ret, err) {})
|
||||
dbUtils.execute(db, "INSERT INTO Sb (Id,sbId,circuitName,current,typeName,isTypeOpen) VALUES ('4','0E','4','3.21','闭锁调压',1);", function(ret, err) {})
|
||||
console.log('创建设备表成功');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log('设备表已存在');
|
||||
// console.log('设备表已存在');
|
||||
vm.activeStatus()
|
||||
// dbUtils.execute(db, "DROP TABLE Sb", function(ret, err) {
|
||||
// console.log(JSON.stringify(ret))
|
||||
// })
|
||||
}
|
||||
});
|
||||
dbUtils.select(db, 'SELECT * FROM Log', function(ret, err) {
|
||||
if (ret.status == false || err.status == false) {
|
||||
dbUtils.execute(db, 'CREATE TABLE Log(action varchar(20), param varchar(100), time varchar(30), remark varchar(50))', function(ret, err) {
|
||||
if (ret.status == true) {
|
||||
console.log('创建日志表成功');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// console.log('日志表已存在');
|
||||
// dbUtils.execute(db, "DROP TABLE Log", function(ret, err) {
|
||||
// if(ret.status){
|
||||
// console.log("删除日志表成功");
|
||||
// }
|
||||
// })
|
||||
}
|
||||
})
|
||||
},
|
||||
activeStatus(){
|
||||
const vm = this;
|
||||
//初始化串口
|
||||
serialPortUtil.initSerial();
|
||||
serialPortUtil.closeSerial({ index: 0 });
|
||||
serialPortUtil.openSerial({ index: 0, port: '/dev/ttyS0', baudRate: '9600'}, function (ret, err) {})
|
||||
serialPortUtil.addEventListener({ index: 0, revType: 'hex', stopBits:1, flowCon:2 }, function (ret, err) {
|
||||
// console.log(JSON.stringify(ret));
|
||||
var data = vm.data.listData;
|
||||
var leng = data.length;
|
||||
if (ret.dataHex.startsWith("FE0101") && ret.dataHex.length > 8) {
|
||||
// console.log("读取设备状态");
|
||||
var jidianqi = ret.dataHex.substr(6, 2);
|
||||
jidianqi = parseInt(jidianqi, 16).toString(2);
|
||||
vm.data.jidianqi = vm.forJidianqi(jidianqi);
|
||||
jidianqi = vm.data.jidianqi;
|
||||
|
||||
// console.log("************main:"+jidianqi+"************");
|
||||
vm.data.mapBefore.set("0B",jidianqi[3] === '1');
|
||||
vm.data.mapBefore.set("0C",jidianqi[2] === '1');
|
||||
vm.data.mapBefore.set("0D",jidianqi[1] === '1');
|
||||
vm.data.mapBefore.set("0E",jidianqi[0] === '1');
|
||||
for(var j=0;j<jidianqi.length;j++){
|
||||
data[3-j].isTypeOpen = jidianqi[j]
|
||||
}
|
||||
vm.data.listData = data;
|
||||
}else{
|
||||
// console.log("读取设备电流");
|
||||
if(ret.evenType === 'onDataReceived'){
|
||||
vm.data.sendStatus=true
|
||||
for(var i=0;i<leng; i++){
|
||||
if(data[i] && data[i].sbId.toUpperCase() === ret.dataHex.substr(0,2).toUpperCase()){
|
||||
var current = parseInt(ret.dataHex.substr(10,4),16)/100;
|
||||
var sett = vm.data.map.get(data[i].sbId);
|
||||
data[i].current = current
|
||||
var sbId = data[i].sbId;
|
||||
var beforeStatus = vm.data.mapBefore.get(sbId)
|
||||
if(current >= sett){
|
||||
switch(sbId){
|
||||
case '0B':
|
||||
// 如果之前是关闭状态,则打开
|
||||
if(!beforeStatus){
|
||||
vm.controle1(true);
|
||||
vm.saveLog(data[i].typeName+"打开","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0C':
|
||||
if(!beforeStatus){
|
||||
vm.controle2(true);
|
||||
vm.saveLog(data[i].typeName+"打开","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0D':
|
||||
if(!beforeStatus){
|
||||
vm.controle3(true);
|
||||
vm.saveLog(data[i].typeName+"打开","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0E':
|
||||
if(!beforeStatus){
|
||||
vm.controle4(true);
|
||||
vm.saveLog(data[i].typeName+"打开","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
switch(sbId){
|
||||
case '0B':
|
||||
// 如果之前是打开状态,则关闭
|
||||
if(beforeStatus){
|
||||
vm.controle1(false);
|
||||
vm.saveLog(data[i].typeName+"关闭","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0C':
|
||||
if(beforeStatus){
|
||||
vm.controle2(false);
|
||||
vm.saveLog(data[i].typeName+"关闭","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0D':
|
||||
if(beforeStatus){
|
||||
vm.controle3(false);
|
||||
vm.saveLog(data[i].typeName+"关闭","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
case '0E':
|
||||
if(beforeStatus){
|
||||
vm.controle4(false);
|
||||
vm.saveLog(data[i].typeName+"关闭","实时电流"+current+"A,配置电流"+sett+"A","")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vm.data.listData = data
|
||||
}
|
||||
}
|
||||
})
|
||||
vm.data.jidianqiInte=setInterval(function () {
|
||||
if(vm.data.stopRead){
|
||||
vm.sendMsg('FE 01 00 00 00 08 29 C3');
|
||||
}
|
||||
},2000)
|
||||
|
||||
// var cmdArr = [];
|
||||
// vm.data.listData.forEach(s=>{
|
||||
// var cmd = s.sbId+" 03 00 48 00 02";
|
||||
// cmd = cmd + " " + CrcUt.GetCrc(cmd);
|
||||
// cmdArr.push(cmd);
|
||||
// })
|
||||
api.showProgress({
|
||||
title: '正在初始化...',
|
||||
text: '请稍后...',
|
||||
modal: true
|
||||
});
|
||||
|
||||
vm.data.dianliu1=setInterval(function () {
|
||||
if(vm.data.stopRead){
|
||||
vm.data.stopRead = false
|
||||
setTimeout(() => {
|
||||
vm.sendMsg("0B 03 00 48 00 02 " + CrcUt.GetCrc("0B 03 00 48 00 02"));
|
||||
setTimeout(() => {
|
||||
vm.data.stopRead = true
|
||||
}, 80);
|
||||
}, 50);
|
||||
}
|
||||
},500)
|
||||
vm.data.dianliu2=setInterval(function () {
|
||||
if(vm.data.stopRead){
|
||||
vm.data.stopRead = false
|
||||
setTimeout(() => {
|
||||
vm.sendMsg("0C 03 00 48 00 02 " + CrcUt.GetCrc("0C 03 00 48 00 02"));
|
||||
setTimeout(() => {
|
||||
vm.data.stopRead = true
|
||||
}, 80);
|
||||
}, 50);
|
||||
}
|
||||
},1000)
|
||||
vm.data.dianliu3=setInterval(function () {
|
||||
if(vm.data.stopRead){
|
||||
vm.data.stopRead = false
|
||||
setTimeout(() => {
|
||||
vm.sendMsg("0D 03 00 48 00 02 " + CrcUt.GetCrc("0D 03 00 48 00 02"));
|
||||
setTimeout(() => {
|
||||
vm.data.stopRead = true
|
||||
}, 80);
|
||||
}, 50);
|
||||
}
|
||||
},1500)
|
||||
vm.data.dianliu4=setInterval(function () {
|
||||
if(vm.data.stopRead){
|
||||
vm.data.stopRead = false
|
||||
setTimeout(() => {
|
||||
vm.sendMsg("0E 03 00 48 00 02 " + CrcUt.GetCrc("0E 03 00 48 00 02"));
|
||||
setTimeout(() => {
|
||||
vm.data.stopRead = true
|
||||
}, 80);
|
||||
}, 50);
|
||||
}
|
||||
},2000)
|
||||
|
||||
// vm.data.dianliuInte=setInterval(function () {
|
||||
// vm.data.listData.forEach(s=>{
|
||||
// var cmd = s.sbId+" 03 00 48 00 02";
|
||||
// cmd = cmd + " " + CrcUt.GetCrc(cmd);
|
||||
// if(vm.data.sendStatus && vm.data.stopRead){
|
||||
// vm.data.sendStatus = false
|
||||
// vm.sendMsg(cmd)
|
||||
// console.log(cmd);
|
||||
// }
|
||||
// })
|
||||
// }, 2000);
|
||||
setTimeout(() => {
|
||||
api.hideProgress();
|
||||
}, 3000);
|
||||
},
|
||||
sendMsg(cmd){
|
||||
let ret = serialPortUtil.send({
|
||||
index: 0,
|
||||
sendType: 'hex',
|
||||
data: cmd
|
||||
});
|
||||
},
|
||||
saveLog(action,param,remark){
|
||||
const vm = this
|
||||
var db = api.require('db');
|
||||
dbUtils.execute(db, "INSERT INTO Log (action,param,time,remark) VALUES ('"+action+"','"+param+"','"+vm.currTimeFn(new Date())+"','"+remark+"');", function(ret, err) {
|
||||
if(ret.status == false || err.status == false){
|
||||
console.log(JSON.stringify(err));
|
||||
// api.toast({
|
||||
// msg: '日志保存失败',
|
||||
// duration: 2000,
|
||||
// location: 'middle'
|
||||
// });
|
||||
}else{
|
||||
// api.toast({
|
||||
// msg: '日志保存成功',
|
||||
// duration: 2000,
|
||||
// location: 'middle'
|
||||
// });
|
||||
console.log('日志保存成功');
|
||||
}
|
||||
})
|
||||
},
|
||||
controle1(status){
|
||||
console.log("controle1"+status);
|
||||
const vm = this;
|
||||
vm.data.stopRead = false;
|
||||
setTimeout(function () {
|
||||
vm.sendMsg(status?'FE 05 00 00 FF 00 98 35':'FE 05 00 00 00 00 D9 C5');
|
||||
setTimeout(function () {
|
||||
vm.data.stopRead = true;
|
||||
}, 50)
|
||||
}, 80)
|
||||
},
|
||||
controle2(status){
|
||||
console.log("controle2"+(status?'打开':'关闭'));
|
||||
const vm = this;
|
||||
vm.data.stopRead = false;
|
||||
setTimeout(function () {
|
||||
vm.sendMsg(status?'FE 05 00 01 FF 00 C9 F5':'FE 05 00 01 00 00 88 05');
|
||||
setTimeout(function () {
|
||||
vm.data.stopRead = true;
|
||||
}, 50)
|
||||
}, 80)
|
||||
},
|
||||
controle3(status){
|
||||
console.log("controle3"+status);
|
||||
const vm = this;
|
||||
vm.data.stopRead = false;
|
||||
setTimeout(function () {
|
||||
vm.sendMsg(status?'FE 05 00 02 FF 00 39 F5':'FE 05 00 02 00 00 78 05');
|
||||
setTimeout(function () {
|
||||
vm.data.stopRead = true;
|
||||
}, 50)
|
||||
}, 80)
|
||||
},
|
||||
controle4(status){
|
||||
console.log("controle4"+status);
|
||||
const vm = this;
|
||||
vm.data.stopRead = false;
|
||||
setTimeout(function () {
|
||||
vm.sendMsg(status?'FE 05 00 03 FF 00 68 35':'FE 05 00 03 00 00 29 C5');
|
||||
setTimeout(function () {
|
||||
vm.data.stopRead = true;
|
||||
}, 50)
|
||||
}, 80)
|
||||
},
|
||||
forJidianqi(jidianqi) {
|
||||
if (jidianqi.length != 4) {
|
||||
var l = 4 - jidianqi.length
|
||||
for (var i = 0; i < l; i++) {
|
||||
jidianqi = '0' + jidianqi;
|
||||
}
|
||||
}
|
||||
return jidianqi;
|
||||
},
|
||||
// 获取当前时间字符串
|
||||
currTimeFn(_date) {
|
||||
|
@ -98,7 +409,8 @@ export default {
|
|||
let _hour = _date.getHours() < 10 ? '0' + _date.getHours() : _date.getHours();
|
||||
let _minutes = _date.getMinutes() < 10 ? '0' + _date.getMinutes() : _date.getMinutes();
|
||||
let _seconds = _date.getSeconds() < 10 ? '0' + _date.getSeconds() : _date.getSeconds();
|
||||
return _year + "." + _month + "." + _day + " " + _hour + ":" + _minutes + ":" + _seconds;
|
||||
// return _year + "." + _month + "." + _day + " " + _hour + ":" + _minutes + ":" + _seconds;
|
||||
return _year + "." + _month + "." + _day + " " + _hour + ":" + _minutes;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<view class="table_title">
|
||||
<text class="table_title_item_one">动作</text>
|
||||
<text class="table_title_item_two">实时参数</text>
|
||||
<text class="table_title_item_one">时间</text>
|
||||
<text class="table_title_item_three">时间</text>
|
||||
</view>
|
||||
<scroll-view
|
||||
class="history_list"
|
||||
|
@ -19,51 +19,68 @@
|
|||
class="history_list_inline"
|
||||
v-for="item in listData"
|
||||
>
|
||||
<text class="history_list_inline_item_one">{{item.name}}</text>
|
||||
<text class="history_list_inline_item_two">111</text>
|
||||
<text class="history_list_inline_item_one">111</text>
|
||||
<text class="history_list_inline_item_one">{{item.action}}</text>
|
||||
<text class="history_list_inline_item_two">{{item.param}}</text>
|
||||
<text class="history_list_inline_item_three">{{item.time}}</text>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {dbUtils} from '../../script/dbUtils.js'
|
||||
export default {
|
||||
name: 'history',
|
||||
data() {
|
||||
return{
|
||||
listData:[
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'},
|
||||
{name:'1'}
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'11.15 13:28:55'},
|
||||
// {name:'高压风冷关闭',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13:25:55'},
|
||||
// {name:'低压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.25:55'},
|
||||
// {name:'中压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.23:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.21:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.20:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'11.15 13:28:55'},
|
||||
// {name:'高压风冷关闭',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13:25:55'},
|
||||
// {name:'低压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.25:55'},
|
||||
// {name:'中压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.23:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.21:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.20:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'11.15 13:28:55'},
|
||||
// {name:'高压风冷关闭',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13:25:55'},
|
||||
// {name:'低压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.25:55'},
|
||||
// {name:'中压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.23:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.21:55'},
|
||||
// {name:'高压风冷开启',cmd:'A路电流(5.2A) B路电流(0.2A) C路电流(2.4A) D路电流(1.5A)',time:'12.15 13.20:55'},
|
||||
]
|
||||
}
|
||||
},
|
||||
apiready(){
|
||||
|
||||
const vm = this;
|
||||
var db = api.require('db');
|
||||
db.openDatabase({
|
||||
name: 'test',
|
||||
path: 'fs://Database/cqjiouzai.db'
|
||||
}, function(ret, err) {
|
||||
if (ret.status) {
|
||||
dbUtils.select(db, 'SELECT * FROM Log', function(ret, err) {
|
||||
var data = ret.data;
|
||||
if(undefined != data && data.length > 0){
|
||||
vm.data.listData = data;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
//返回首页
|
||||
handleBackIndex(){
|
||||
api.navigateBack({
|
||||
delta: 2,
|
||||
api.closeWin();
|
||||
api.sendEvent({
|
||||
name: 'myEvent',
|
||||
extra: {
|
||||
close: 'close',
|
||||
}
|
||||
});
|
||||
},
|
||||
//下拉刷新
|
||||
|
@ -80,7 +97,7 @@ export default {
|
|||
<style>
|
||||
.history_wrap{
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
background-image: url("../../image/login.png");
|
||||
|
@ -114,19 +131,28 @@ export default {
|
|||
align-items: center;
|
||||
}
|
||||
.table_title_item_one{
|
||||
font-size: 36px;
|
||||
font-size: 30px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 20%;
|
||||
width: 17%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
.table_title_item_two{
|
||||
font-size: 36px;
|
||||
font-size: 30px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 60%;
|
||||
width: 64%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
.table_title_item_three{
|
||||
font-size: 30px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 19%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
|
@ -142,18 +168,26 @@ export default {
|
|||
align-items: center;
|
||||
}
|
||||
.history_list_inline_item_one{
|
||||
font-size: 32px;
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 20%;
|
||||
width: 17%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
}
|
||||
.history_list_inline_item_two{
|
||||
font-size: 32px;
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 60%;
|
||||
width: 64%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
}
|
||||
.history_list_inline_item_three{
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
border: 1px solid #ffffff;
|
||||
width: 19%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
}
|
||||
|
|
|
@ -7,38 +7,37 @@
|
|||
class="list_inline"
|
||||
v-for="(item,index) in setList"
|
||||
>
|
||||
<view class="inline_item">
|
||||
<!-- <view class="inline_item">
|
||||
<text class="item_label">{{item.typeName}}:</text>
|
||||
<view class="item_content">
|
||||
<view class="switch_box"><switch class="switch" index={index} :checked="item.isTypeOpen==='1'" @change="handleSwitchChange" /></view>
|
||||
<input class="input" type="text" :disabled="item.isTypeOpen==='0'" placeholder="请输入电流值" />
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="inline_item">
|
||||
<text class="item_label">电流通道:</text>
|
||||
<view class="item_content">
|
||||
<text class="item_label" @click="handleSelectChange(index)">{{item.circuitName}}路电流</text>
|
||||
<text class="item_label" @click="handleSelectChange(index,item)">{{item.circuitName}}路电流</text>
|
||||
<input class="input" v-model="item.current" type="number" keyboard-type="decimal" confirm-type="done" :disabled="item.isTypeOpen==='0'" placeholder="请输入电流值" />
|
||||
<text class="item_label">A</text>
|
||||
<button class="btn" style="display:inline" @click="setDianliu(item)">保存</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<text class="set_btn" @click="handleSubmitSet">保存参数</text>
|
||||
<!-- <text class="set_btn" @click="handleSubmitSet">保存参数</text> -->
|
||||
</view>
|
||||
</scroll-view>
|
||||
</template>
|
||||
<script>
|
||||
import {dbUtils} from '../../script/dbUtils.js'
|
||||
import {serialPortUtil} from '../../script/serialPortUtil.js'
|
||||
import {CrcUt} from '../../script/CRCUtils.js'
|
||||
let UIMultiSelector = api.require("UIMultiSelector");
|
||||
export default {
|
||||
name: 'set',
|
||||
data() {
|
||||
return{
|
||||
setList:[
|
||||
// {isTypeOpen:false,setVal:'',circuitName:'请选择',typeName:'高压风冷'},
|
||||
// {isTypeOpen:true,setVal:'',circuitName:'请选择',typeName:'中压风冷'},
|
||||
// {isTypeOpen:false,setVal:'',circuitName:'请选择',typeName:'低压风冷'},
|
||||
// {isTypeOpen:true,setVal:'',circuitName:'请选择',typeName:'闭锁调压'},
|
||||
],
|
||||
setList:[],
|
||||
//电流通道列表
|
||||
currentList: [
|
||||
{
|
||||
|
@ -62,45 +61,38 @@ export default {
|
|||
},
|
||||
apiready(){
|
||||
const vm = this;
|
||||
var db = api.require('db');
|
||||
db.openDatabase({
|
||||
name: 'test',
|
||||
path: 'fs://Database/cqjiouzai.db'
|
||||
}, function(ret, err) {
|
||||
if (ret.status) {
|
||||
//初始化设备表
|
||||
vm.initSb(db);
|
||||
}
|
||||
});
|
||||
vm.initDb()
|
||||
},
|
||||
methods: {
|
||||
//初始化设备表
|
||||
initSb(db) {
|
||||
initDb(){
|
||||
const vm = this;
|
||||
dbUtils.select(db, 'SELECT * FROM Sb', function(ret, err) {
|
||||
var data = ret.data;
|
||||
if(undefined != data && data.length > 0){
|
||||
vm.data.setList = data;
|
||||
var db = api.require('db');
|
||||
db.openDatabase({
|
||||
name: 'test',
|
||||
path: 'fs://Database/cqjiouzai.db'
|
||||
}, function(ret, err) {
|
||||
if (ret.status) {
|
||||
dbUtils.select(db, 'SELECT * FROM Sb', function(ret, err) {
|
||||
var data = ret.data;
|
||||
if(undefined != data && data.length > 0){
|
||||
vm.data.setList = data;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//返回首页
|
||||
handleBackIndex(){
|
||||
api.navigateBack({
|
||||
delta: 2,
|
||||
api.closeWin();
|
||||
api.sendEvent({
|
||||
name: 'myEvent',
|
||||
extra: {
|
||||
close: 'close',
|
||||
}
|
||||
});
|
||||
},
|
||||
//switch开关选择
|
||||
handleSwitchChange(e){
|
||||
let _index = e.target.attributes.index;
|
||||
this.setList.forEach((item,index) => {
|
||||
if(index === _index){
|
||||
item.isTypeOpen = e.detail.value?'1':'0';
|
||||
}
|
||||
})
|
||||
},
|
||||
//下拉选择
|
||||
handleSelectChange(selectNum) {
|
||||
handleSelectChange(selectNum,item) {
|
||||
let _setList = this.data.setList;
|
||||
//设置下拉选项
|
||||
UIMultiSelector.open({
|
||||
|
@ -165,10 +157,43 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
setDianliu(item){
|
||||
var db = api.require('db');
|
||||
var sql = "update Sb set current = '"+ item.current+"' where id ='"+ item.id +"'";
|
||||
dbUtils.execute(db, sql, function(ret, err) {
|
||||
var msg = '更新成功'
|
||||
if(!ret.status){
|
||||
msg = '更新失败'
|
||||
}
|
||||
api.toast({
|
||||
msg: msg,
|
||||
duration: 2000,
|
||||
location: 'middle'
|
||||
});
|
||||
})
|
||||
},
|
||||
//保存参数
|
||||
handleSubmitSet(){
|
||||
console.log("保存参数");
|
||||
}
|
||||
var cmdArr = [];
|
||||
const vm = this;
|
||||
this.data.setList.forEach(s=>{
|
||||
var cmd = s.sbId+" 03 00 48 00 02";
|
||||
cmd = cmd + " " + CrcUt.GetCrc(cmd);
|
||||
cmdArr.push(cmd);
|
||||
})
|
||||
setInterval(() => {
|
||||
if(vm.data.stopRead){
|
||||
vm.sendMsg('FE 01 00 00 00 08 29 C3');
|
||||
}
|
||||
},2000)
|
||||
},
|
||||
sendMsg(cmd){
|
||||
let ret = serialPortUtil.send({
|
||||
index: 0,
|
||||
sendType: 'hex',
|
||||
data: cmd
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -193,7 +218,7 @@ export default {
|
|||
left: 20px;
|
||||
}
|
||||
.set_list{
|
||||
margin-top: 80px;
|
||||
margin-top: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
@ -204,7 +229,7 @@ export default {
|
|||
margin: 10px 0;
|
||||
}
|
||||
.inline_item{
|
||||
margin: 0 40px;
|
||||
margin: 0 20px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
@ -234,11 +259,21 @@ export default {
|
|||
padding: 5px;
|
||||
border: 1px solid silver;
|
||||
font-size: 32px;
|
||||
height: 60px;
|
||||
width: 200px;
|
||||
height: 100px;
|
||||
width: 140px;
|
||||
margin-left: 20px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.btn {
|
||||
padding: 5px;
|
||||
border-radius: 10px;
|
||||
font-size: 32px;
|
||||
width: 90px;
|
||||
height: 100px;
|
||||
margin-left: 20px;
|
||||
color: #fff;
|
||||
background-image: linear-gradient(to bottom, #00b, #006);
|
||||
}
|
||||
.set_btn{
|
||||
font-size: 40px;
|
||||
color: #5199FF;
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
export {
|
||||
crcUtils
|
||||
}
|
||||
var CRC = {};
|
||||
|
||||
var crcUtils = {
|
||||
GetCrc:function(cmd){
|
||||
return ToModbusCRC16(cmd)
|
||||
},
|
||||
}
|
||||
|
||||
CRC._auchCRCHi = [
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
|
||||
];
|
||||
CRC._auchCRCLo = [
|
||||
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,
|
||||
0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,
|
||||
0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
|
||||
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
|
||||
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,
|
||||
0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
|
||||
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,
|
||||
0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
|
||||
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
|
||||
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,
|
||||
0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,
|
||||
0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
|
||||
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,
|
||||
0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,
|
||||
0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
|
||||
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
|
||||
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,
|
||||
0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
|
||||
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,
|
||||
0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
|
||||
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
|
||||
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,
|
||||
0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,
|
||||
0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
|
||||
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,
|
||||
0x43, 0x83, 0x41, 0x81, 0x80, 0x40
|
||||
];
|
||||
function ToModbusCRC16(str){
|
||||
console.log(str);
|
||||
console.log(CRC._auchCRCLo);
|
||||
return CRC.CRC16(CRC.isArray(str) ? str : CRC.strToHex(str));
|
||||
}
|
||||
|
||||
CRC.CRC16 = function (buffer) {
|
||||
var hi = 0xff;
|
||||
var lo = 0xff;
|
||||
for (var i = 0; i < buffer.length; i++) {
|
||||
var idx = hi ^ buffer[i];
|
||||
hi = (lo ^ CRC._auchCRCHi[idx]);
|
||||
lo = CRC._auchCRCLo[idx];
|
||||
}
|
||||
|
||||
return CRC.padLeft((hi << 8 | lo ).toString(16).toUpperCase(), 4, '0');
|
||||
};
|
||||
|
||||
CRC.isArray = function (arr) {
|
||||
return Object.prototype.toString.call(arr) === '[object Array]';
|
||||
};
|
||||
|
||||
|
||||
CRC.strToHex = function (hex, isFilterChinese) {
|
||||
hex = isFilterChinese ? CRC.filterChinese(hex).join('') : CRC.convertChinese(hex).join('');
|
||||
|
||||
//清除所有空格
|
||||
hex = hex.replace(/\s/g, "");
|
||||
//若字符个数为奇数,补一个空格
|
||||
hex += hex.length % 2 != 0 ? " " : "";
|
||||
|
||||
var c = hex.length / 2, arr = [];
|
||||
for (var i = 0; i < c; i++) {
|
||||
arr.push(parseInt(hex.substr(i * 2, 2), 16));
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.ToCRC16 = function (str) {
|
||||
return CRC.CRC16(CRC.isArray(str) ? str : CRC.strToByte(str));
|
||||
};
|
||||
|
||||
CRC.strToByte = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var j = encodeURI(tmp[i]);
|
||||
if (j.length == 1) {
|
||||
arr.push(j.charCodeAt());
|
||||
} else {
|
||||
var b = j.split('%');
|
||||
for (var m = 1; m < b.length; m++) {
|
||||
arr.push(parseInt('0x' + b[m]));
|
||||
}
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.convertChinese = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var s = tmp[i].charCodeAt();
|
||||
if (s <= 0 || s >= 127) {
|
||||
arr.push(s.toString(16));
|
||||
}
|
||||
else {
|
||||
arr.push(tmp[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.filterChinese = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var s = tmp[i].charCodeAt();
|
||||
if (s > 0 && s < 127) {
|
||||
arr.push(tmp[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.padLeft = function (s, w, pc) {
|
||||
if (pc == undefined) {
|
||||
pc = '0';
|
||||
}
|
||||
for (var i = 0, c = w - s.length; i < c; i++) {
|
||||
s = pc + s;
|
||||
}
|
||||
return s;
|
||||
};
|
|
@ -0,0 +1,157 @@
|
|||
var CrcUt = {
|
||||
GetCrc:function(cmd){
|
||||
return CRC.ToModbusCRC16(cmd,true) //输出 3039
|
||||
},
|
||||
}
|
||||
export {
|
||||
CrcUt
|
||||
}
|
||||
|
||||
var CRC = {};
|
||||
|
||||
CRC._auchCRCHi = [
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
|
||||
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
|
||||
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
|
||||
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
|
||||
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
|
||||
];
|
||||
CRC._auchCRCLo = [
|
||||
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,
|
||||
0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,
|
||||
0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
|
||||
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
|
||||
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,
|
||||
0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
|
||||
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,
|
||||
0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
|
||||
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
|
||||
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,
|
||||
0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,
|
||||
0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
|
||||
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,
|
||||
0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,
|
||||
0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
|
||||
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
|
||||
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,
|
||||
0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
|
||||
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,
|
||||
0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
|
||||
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
|
||||
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,
|
||||
0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,
|
||||
0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
|
||||
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,
|
||||
0x43, 0x83, 0x41, 0x81, 0x80, 0x40
|
||||
];
|
||||
|
||||
CRC.CRC16 = function (buffer) {
|
||||
var hi = 0xff;
|
||||
var lo = 0xff;
|
||||
for (var i = 0; i < buffer.length; i++) {
|
||||
var idx = hi ^ buffer[i];
|
||||
hi = (lo ^ CRC._auchCRCHi[idx]);
|
||||
lo = CRC._auchCRCLo[idx];
|
||||
}
|
||||
return CRC.padLeft((hi << 8 | lo).toString(16).toUpperCase(), 4, '0');
|
||||
};
|
||||
|
||||
CRC.isArray = function (arr) {
|
||||
return Object.prototype.toString.call(arr) === '[object Array]';
|
||||
};
|
||||
|
||||
CRC.ToCRC16 = function (str) {
|
||||
return CRC.CRC16(CRC.isArray(str) ? str : CRC.strToByte(str));
|
||||
};
|
||||
|
||||
CRC.ToModbusCRC16 = function (str) {
|
||||
return CRC.CRC16(CRC.isArray(str) ? str : CRC.strToHex(str));
|
||||
};
|
||||
|
||||
CRC.strToByte = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var j = encodeURI(tmp[i]);
|
||||
if (j.length == 1) {
|
||||
arr.push(j.charCodeAt());
|
||||
} else {
|
||||
var b = j.split('%');
|
||||
for (var m = 1; m < b.length; m++) {
|
||||
arr.push(parseInt('0x' + b[m]));
|
||||
}
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.convertChinese = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var s = tmp[i].charCodeAt();
|
||||
if (s <= 0 || s >= 127) {
|
||||
arr.push(s.toString(16));
|
||||
}
|
||||
else {
|
||||
arr.push(tmp[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.filterChinese = function (str) {
|
||||
var tmp = str.split(''), arr = [];
|
||||
for (var i = 0, c = tmp.length; i < c; i++) {
|
||||
var s = tmp[i].charCodeAt();
|
||||
if (s > 0 && s < 127) {
|
||||
arr.push(tmp[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.strToHex = function (hex, isFilterChinese) {
|
||||
hex = isFilterChinese ? CRC.filterChinese(hex).join('') : CRC.convertChinese(hex).join('');
|
||||
|
||||
//清除所有空格
|
||||
hex = hex.replace(/\s/g, "");
|
||||
//若字符个数为奇数,补一个空格
|
||||
hex += hex.length % 2 != 0 ? " " : "";
|
||||
|
||||
var c = hex.length / 2, arr = [];
|
||||
for (var i = 0; i < c; i++) {
|
||||
arr.push(parseInt(hex.substr(i * 2, 2), 16));
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
CRC.padLeft = function (s, w, pc) {
|
||||
if (pc == undefined) {
|
||||
pc = '0';
|
||||
}
|
||||
for (var i = 0, c = w - s.length; i < c; i++) {
|
||||
s = pc + s;
|
||||
}
|
||||
// return s;
|
||||
return s.substr(0,2)+" "+ s.substr(2,4);
|
||||
};
|
|
@ -0,0 +1,39 @@
|
|||
var serialPortPlus = null
|
||||
var serialPortUtil = {
|
||||
initSerial:function(){
|
||||
serialPortPlus = api.require('serialPortPlus');
|
||||
},
|
||||
getAllDevices:function(params){
|
||||
var ret = serialPortPlus.getAllDevices(params);
|
||||
return ret;
|
||||
},
|
||||
getAllDeicesPath:function(params){
|
||||
var ret = serialPortPlus.getAllDeicesPath(params);
|
||||
return ret;
|
||||
},
|
||||
addEventListener:function(params,callback){
|
||||
serialPortPlus.addEventListener(params,function(ret, err) {
|
||||
callback(ret,err)
|
||||
});
|
||||
},
|
||||
openSerial:function(param,callback){
|
||||
serialPortPlus.open(param,function(ret, err) {
|
||||
callback(ret,err)
|
||||
});
|
||||
},
|
||||
send:function(params){
|
||||
params.data = params.data.replace(/\s+/g,"");
|
||||
var ret = serialPortPlus.send(params);
|
||||
return ret
|
||||
},
|
||||
closeSerial:function(params){
|
||||
var ret = serialPortPlus.close(params);
|
||||
return ret
|
||||
// console.log(JSON.stringify(ret));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export {
|
||||
serialPortUtil
|
||||
}
|
Loading…
Reference in New Issue