import SoftKey3W from "@/assets/js/Syunew3";
|
import {deviceAlarm} from "@/assets/js/alarmAdmian/deviceTimequery";
|
|
export default {
|
namespaced: true,
|
state() {
|
return {
|
connect: 0, // 判断是否安装了客户端服务,0未安装,1已安装
|
isIn: 0, // uKey的插拔状态
|
id: "", // uKey的唯一编号
|
}
|
},
|
getters: {
|
getId(state) {
|
if(state.isIn) {
|
return state.id;
|
}else {
|
return "";
|
}
|
}
|
},
|
mutations: {
|
changeIsIn(state, isIn) {
|
state.isIn = isIn;
|
},
|
changeConnect(state, isConnect) {
|
state.connect = isConnect;
|
},
|
changeId(state, id) {
|
state.id = id;
|
},
|
},
|
actions: {
|
/**
|
* 监控uKey的插拔事件
|
* @param context
|
* @returns {boolean}
|
*/
|
load(context, isLoad) {
|
//如果是IE10及以下浏览器,则跳过不处理,
|
if(navigator.userAgent.indexOf("MSIE")>0 && !navigator.userAgent.indexOf("opera") > -1)
|
{
|
//该例子只支持HTM5的浏览器
|
return;
|
}
|
try {
|
let s_pnp=new SoftKey3W();//创建UK类
|
context.commit('changeConnect', 0); //客户端服务安装状态
|
s_pnp.Socket_UK.onopen = function()
|
{
|
context.commit('changeConnect', 1);//代表已经连接,用于判断是否安装了客户端服务
|
}
|
|
// uKey插拔事件监听
|
s_pnp.Socket_UK.onmessage =function got_packet(Msg)
|
{
|
let PnpData = JSON.parse(Msg.data);
|
if(PnpData.type=="PnpEvent")//如果是插拨事件处理消息
|
{
|
if(PnpData.IsIn){
|
context.commit('changeIsIn', 1); // 已插入uKey
|
}else{
|
context.commit('changeIsIn', 0); // 未插入uKey
|
context.commit('changeId', ""); // 初始化uKeyId为空
|
}
|
}
|
}
|
|
s_pnp.Socket_UK.onclose = function()
|
{
|
console.log('关闭监控插拔监控');
|
}
|
}catch (error) {
|
console.log(error.name + ": " + error.message);
|
return false;
|
}
|
},
|
/**
|
* 检测是否插入uKey
|
* @param context
|
* @param isConnent 客户端服务安装状态
|
*/
|
checkIsIn(context, isConnent) {
|
if(isConnent) {
|
try {
|
let s_simnew1 = new SoftKey3W(); //创建UK类
|
let DevicePath, version;
|
s_simnew1.Socket_UK.onopen = function() {
|
s_simnew1.ResetOrder();//这里调用ResetOrder将计数清零,这样,消息处理处就会收到0序号的消息,通过计数及序号的方式,从而生产流程
|
}
|
|
s_simnew1.Socket_UK.onmessage =function got_packet(Msg) {
|
let UK_Data = JSON.parse(Msg.data);
|
if(UK_Data.type!="Process")return ;//如果不是流程处理消息,则跳过
|
switch(UK_Data.order) {
|
case 0:
|
{
|
s_simnew1.FindPort(0); //发送命令取UK的路径
|
}
|
break;
|
case 1:
|
{
|
if(UK_Data.LastError!=0) {
|
context.commit('changeIsIn', 0); // 未插入
|
context.commit('changeId', ""); // 初始化uKeyId为空
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
context.commit('changeIsIn', 1); // 已插入
|
DevicePath=UK_Data.return_value;//获得返回的UK的路径
|
s_simnew1.GetVersion(DevicePath); //发送命令取UK的版本
|
}
|
break;
|
case 2:
|
{
|
if(UK_Data.LastError!=0){
|
console.log("返回版本号错误,错误码为:"+UK_Data.LastError.toString());
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
version=UK_Data.return_value;//获得返回的UK的版本
|
if(version>10) {
|
//取得锁的出厂编码
|
s_simnew1.GetProduceDate(DevicePath);//发送命令取UK的出厂编码
|
}else
|
{
|
console.log("锁的版本少于11,不支持返回锁的出厂编码功能\n2013年9月15号以后出厂的锁都支持这个功能。");
|
}
|
}
|
break;
|
case 3:
|
{
|
if(UK_Data.LastError!=0){
|
console.log("取得锁的出厂编码错误,错误码为:"+UK_Data.LastError.toString());
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
let id = UK_Data.return_value;//获得返回的UK的出厂编码
|
context.commit('changeId', id);
|
//所有工作处理完成后,关掉Socket
|
s_simnew1.Socket_UK.close();
|
}
|
break;
|
default:
|
{
|
//所有工作处理完成后,关掉Socket
|
s_simnew1.Socket_UK.close();
|
}
|
break;
|
}
|
}
|
s_simnew1.Socket_UK.onclose = function(){
|
console.log('初始化设置uKey插拔状态和uKey唯一编号监控程序关闭');
|
}
|
return true;
|
}catch (e) {
|
console.log('设置uKey插拔状态和uKey唯一编号监控程序报错');
|
console.log(error.name + ": " + error.message);
|
return false;
|
}
|
}else {
|
context.commit('changeIsIn', 0);
|
}
|
},
|
changeId(context, isIn) {
|
if(isIn) {
|
try {
|
let s_simnew1 = new SoftKey3W(); //创建UK类
|
let DevicePath, version;
|
s_simnew1.Socket_UK.onopen = function() {
|
s_simnew1.ResetOrder();//这里调用ResetOrder将计数清零,这样,消息处理处就会收到0序号的消息,通过计数及序号的方式,从而生产流程
|
}
|
|
s_simnew1.Socket_UK.onmessage =function got_packet(Msg) {
|
let UK_Data = JSON.parse(Msg.data);
|
if(UK_Data.type!="Process")return ;//如果不是流程处理消息,则跳过
|
switch(UK_Data.order) {
|
case 0:
|
{
|
s_simnew1.FindPort(0); //发送命令取UK的路径
|
}
|
break;
|
case 1:
|
{
|
if(UK_Data.LastError!=0) {
|
context.commit('changeId', ""); // 初始化uKeyId为空
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
DevicePath=UK_Data.return_value;//获得返回的UK的路径
|
s_simnew1.GetVersion(DevicePath); //发送命令取UK的版本
|
}
|
break;
|
case 2:
|
{
|
if(UK_Data.LastError!=0){
|
console.log("返回版本号错误,错误码为:"+UK_Data.LastError.toString());
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
version=UK_Data.return_value;//获得返回的UK的版本
|
if(version>10) {
|
//取得锁的出厂编码
|
s_simnew1.GetProduceDate( DevicePath);//发送命令取UK的出厂编码
|
}else
|
{
|
console.log("锁的版本少于11,不支持返回锁的出厂编码功能\n2013年9月15号以后出厂的锁都支持这个功能。");
|
}
|
}
|
break;
|
case 3:
|
{
|
if(UK_Data.LastError!=0){
|
console.log("取得锁的出厂编码错误,错误码为:"+UK_Data.LastError.toString());
|
s_simnew1.Socket_UK.close();
|
return false;
|
}
|
let id = UK_Data.return_value;//获得返回的UK的出厂编码
|
context.commit('changeId', id);
|
//所有工作处理完成后,关掉Socket
|
s_simnew1.Socket_UK.close();
|
}
|
break;
|
default:
|
{
|
//所有工作处理完成后,关掉Socket
|
s_simnew1.Socket_UK.close();
|
}
|
break;
|
}
|
}
|
s_simnew1.Socket_UK.onclose = function(){
|
console.log('设置uKey唯一编号监控程序关闭');
|
}
|
return true;
|
}catch (e) {
|
console.log('设置uKey唯一编号监控程序报错');
|
console.log(error.name + ": " + error.message);
|
return false;
|
}
|
}else {
|
context.commit("changeId", "");
|
}
|
}
|
}
|
}
|