155 lines
3.9 KiB
JavaScript
155 lines
3.9 KiB
JavaScript
|
|
var isshowQR = true;
|
|
|
|
|
|
//读取二维码
|
|
|
|
function fromKeyCode(code) {
|
|
if((code >= 48 && code <= 57) || (code >= 65 && code <= 90)) return String.fromCharCode(code);
|
|
var keys = {186: ';', 188: ',', 189: '-', 190: '.', 191: '/', 222: "'", 219: '[', 221: ']', 187: '=',
|
|
96:'Num 0', 97:'Num 1', 98:'Num 2', 99:'Num 3', 100:'Num 4', 101:'Num 5', 102:'Num 6', 103:'Num 7', 104:'Num 8', 105:'Num 9',
|
|
111:'Num /', 106:'Num *', 109:'Num -', 111:'Num /', 107:'Num +',13:'[enter]',8:'[back]',110:'Num .'
|
|
//,45:'0', 35:'1', 40:'2', 34:'3', 37:'4', 12:'5', 39:'6', 36:'7', 38:'8', 33:'9'
|
|
};
|
|
if(keys[code]) return keys[code];
|
|
return '*err*';
|
|
}
|
|
function hashCode(strKey)
|
|
{
|
|
var hash = 0;
|
|
if(strKey != null && strKey != "")
|
|
{
|
|
for (var i = 0; i < strKey.length; i++)
|
|
{
|
|
hash = hash * 31 + strKey.charCodeAt(i);
|
|
hash = intValue(hash);
|
|
}
|
|
}
|
|
return hash;
|
|
}
|
|
|
|
function intValue(num)
|
|
{
|
|
var MAX_VALUE = 0x7fffffff;
|
|
var MIN_VALUE = -0x80000000;
|
|
if(num > MAX_VALUE || num < MIN_VALUE)
|
|
{
|
|
return num &= 0xFFFFFFFF;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
document.onkeydown = function() {
|
|
var code = event.keyCode; //alert(code+","+fromKeyCode(code));return;
|
|
//[st]sduf87fjsdfysd78,526976123;
|
|
if(code == 16) return ;
|
|
|
|
dealKey('1', fromKeyCode(code));//document.getElementById("div1").innerHTML += fromKeyCode(code);
|
|
//document.getElementById("div1").innerHTML += fromKeyCode(code)+"|";
|
|
}
|
|
var maxInputTime = 10;
|
|
var kb_status = {'1':'1','2':'1'};
|
|
var kb_readStr = {'1':'','2':''};
|
|
var kb_timeOut = {'1':'','2':''};
|
|
var last1time = 0;
|
|
var nowInput = false;
|
|
var inputCode = '';
|
|
var closeTime = 0;
|
|
var closeItv;
|
|
var nowInputFrom = '1';
|
|
var nowLaseInput = 0;
|
|
var lastCloseInput = 0;
|
|
var lastInput1 = 0;
|
|
var lastSucTime = 0;
|
|
var lastddh = '';
|
|
var lastdctype = '';
|
|
|
|
//[st]a7nd823sd,-235435454;
|
|
|
|
|
|
function dealKey(from, c) {
|
|
|
|
if(from == '1') last1time = new Date().getTime();//alert(from);
|
|
|
|
if(kb_status[from] == '1') { //开始
|
|
if(c == '[') {
|
|
kb_timeOut[from] = setTimeout("readErr('"+from+"', 1);", 2000);
|
|
kb_status[from] = '2';
|
|
}
|
|
else readErr(from, 2);
|
|
} else if(kb_status[from] == '2') { //读取s
|
|
if(c == 'S') kb_status[from] = '3';
|
|
else {
|
|
kb_status[from] = '1';
|
|
readErr(from, 3);
|
|
}
|
|
} else if(kb_status[from] == '3') { //读取t
|
|
if(c == 'T') kb_status[from] = '4';
|
|
else {
|
|
kb_status[from] = '1';
|
|
readErr(from, 4);
|
|
}
|
|
} else if(kb_status[from] == '4') { //读取]
|
|
if(c == ']') {
|
|
kb_status[from] = '5';
|
|
kb_readStr[from] = '';
|
|
} else {
|
|
kb_status[from] = '1';
|
|
readErr(from, 5);
|
|
}
|
|
} else if(kb_status[from] == '5') { //读取内容
|
|
if(c == ';') {
|
|
try{clearTimeout(kb_timeOut[from]);} catch(e){}
|
|
kb_status[from] = '1';
|
|
var a = kb_readStr[from].split(",");
|
|
if(a.length == 2) {
|
|
var s1 = a[0].toLowerCase();
|
|
var hcode = a[1];
|
|
if(hashCode(s1) == hcode) {
|
|
if(from == '1') {
|
|
qrReadContent2(from, s1);
|
|
} else {
|
|
setTimeout(function() {
|
|
if(new Date().getTime() - last1time > 1000) {
|
|
qrReadContent2(from, s1);
|
|
}
|
|
}, 300);
|
|
}
|
|
} else {
|
|
//alert(s1+","+hcode+","+hashCode(s1));
|
|
readErr(from, 6);
|
|
}
|
|
} else {
|
|
readErr(from, 7);
|
|
}
|
|
|
|
kb_readStr[from] = '';
|
|
} else {
|
|
if(c == '*err*') {
|
|
kb_status[from] = '1';
|
|
readErr(from, 8);
|
|
} else {
|
|
kb_readStr[from] += c;
|
|
}
|
|
}
|
|
}
|
|
//document.getElementById("div1").innerHTML += c+"|"+kb_status[from]+"$";
|
|
}
|
|
function readErr(from, rs) {
|
|
kb_status[from] = '1';
|
|
kb_readStr[from] = '';
|
|
try{clearTimeout(kb_timeOut[from]);} catch(e){}
|
|
//alert(from+":读取错误!"+rs);
|
|
}
|
|
|
|
function qrReadContent2(from, str) {
|
|
//document.getElementById("div1").innerHTML += from+": "+str + '<br />';
|
|
if(lastddh == str && new Date().getTime() - lastSucTime < 30000) return ;
|
|
|
|
lastSucTime = new Date().getTime();
|
|
//testdiv.innerHTML += str+"<br />";
|
|
//addOrder(str)
|
|
//alert(str);
|
|
//document.getElementById("div1").innerHTML += str;
|
|
qrReadContent(str);
|
|
} |