import console; press_signal = {0,0}; press_baseline = {0,0}; press_signal_data = {0,0}; press_baseline_data = {0,0}; lkey_signal = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; rkey_signal = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; lkey_baseline = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; rkey_baseline = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; lkey_signal_data = {}; rkey_signal_data = {}; lkey_baseline_data = {}; rkey_baseline_data = {}; for(i=1;16;1){ lkey_signal_data[i] = {}; rkey_signal_data[i] = {}; lkey_baseline_data[i] = {}; rkey_baseline_data[i] = {}; } LeftVibrationFault = 0; LeftTouchFault = 0; LeftPressSensorFault = 0; LeftCommonFault = 0; RightVibrationFault = 0; RightTouchFault = 0; RightPressSensorFault = 0; RightCommonFault = 0; keyL1 = 0; keyL2 = 0; keyL3 = 0; keyLup = 0; keyLdown = 0; keyLleft = 0; keyLright = 0; keyLok = 0; sldLlr = 0; sldLud = 0; keyR1 = 0; keyR2 = 0; keyR3 = 0; keyRup = 0; keyRdown = 0; keyRleft = 0; keyRright = 0; keyRok = 0; sldRvol = 0; sldRud = 0; sldRlr = 0; plx = 0; ply = 0; pls = 0; prx = 0; pry = 0; prs = 0; getbitdata = function(byte,startbit,len){ return ((byte>>startbit) & ((1<= 2048){ press_baseline[1] -= 4096 } if(press_signal[1] >= 2048){ press_signal[1] -= 4096 } } case 0x401 { //console.log(1); lkey_baseline_data[1] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[1] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[1]; lkey_baseline_data[2] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[2] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[2]; lkey_baseline[1]=lkey_baseline_data[1]; lkey_signal[1]=lkey_signal_data[1]; lkey_baseline[2]=lkey_baseline_data[2]; lkey_signal[2]=lkey_signal_data[2]; } case 0x402 { lkey_baseline_data[3] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[3] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[3]; lkey_baseline_data[4] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[4] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[4]; lkey_baseline[3]=lkey_baseline_data[3]; lkey_signal[3]=lkey_signal_data[3]; lkey_baseline[4]=lkey_baseline_data[4]; lkey_signal[4]=lkey_signal_data[4]; } case 0x403 { lkey_baseline_data[5] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[5] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[5]; lkey_baseline_data[6] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[6] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[6]; lkey_baseline[5]=lkey_baseline_data[5]; lkey_signal[5]=lkey_signal_data[5]; lkey_baseline[6]=lkey_baseline_data[6]; lkey_signal[6]=lkey_signal_data[6]; } case 0x404 { lkey_baseline_data[7] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[7] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[7]; lkey_baseline_data[8] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[8] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[8]; lkey_baseline[7]=lkey_baseline_data[7]; lkey_signal[7]=lkey_signal_data[7]; lkey_baseline[8]=lkey_baseline_data[8]; lkey_signal[8]=lkey_signal_data[8]; } case 0x405 { lkey_baseline_data[9] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[9] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[9]; lkey_baseline_data[10] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[10] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[10]; lkey_baseline[9]=lkey_baseline_data[9]; lkey_signal[9]=lkey_signal_data[9]; lkey_baseline[10]=lkey_baseline_data[10]; lkey_signal[10]=lkey_signal_data[10]; } case 0x406 { lkey_baseline_data[11] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[11] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[11]; lkey_baseline_data[12] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[12] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[12]; lkey_baseline[11]=lkey_baseline_data[11]; lkey_signal[11]=lkey_signal_data[11]; lkey_baseline[12]=lkey_baseline_data[12]; lkey_signal[12]=lkey_signal_data[12]; } case 0x407 { lkey_baseline_data[13] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[13] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[13]; lkey_baseline_data[14] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[14] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[14]; lkey_baseline[13]=lkey_baseline_data[13]; lkey_signal[13]=lkey_signal_data[13]; lkey_baseline[14]=lkey_baseline_data[14]; lkey_signal[14]=lkey_signal_data[14]; } case 0x408 { lkey_baseline_data[15] = data[1] + ((data[2]&0xff)<<8); lkey_signal_data[15] = data[3] + ((data[4]&0xff)<<8) - lkey_baseline_data[15]; lkey_baseline_data[16] = data[5] + ((data[6]&0xff)<<8); lkey_signal_data[16] = data[7] + ((data[8]&0xff)<<8) - lkey_baseline_data[16]; lkey_baseline[15]=lkey_baseline_data[15]; lkey_signal[15]=lkey_signal_data[15]; lkey_baseline[16]=lkey_baseline_data[16]; lkey_signal[16]=lkey_signal_data[16]; } case 0x410 { press_baseline_data[2] = data[1] + ((data[2]&0x0f)<<8); press_signal_data[2] = data[3] + ((data[4]&0x0f)<<8); press_baseline[2]=press_baseline_data[2]; press_signal[2]=press_signal_data[2]; if(press_baseline[2] >= 2048){ press_baseline[2] -= 4096 } if(press_signal[2] >= 2048){ press_signal[2] -= 4096 } } case 0x411 { rkey_baseline_data[1] = data[1] + ((data[2]&0xff)<<8); rkey_signal_data[1] = data[3] + ((data[4]&0xff)<<8) - rkey_baseline_data[1]; rkey_baseline_data[2] = data[5] + ((data[6]&0xff)<<8); rkey_signal_data[2] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[2]; rkey_baseline[1]=rkey_baseline_data[1]; rkey_signal[1]=rkey_signal_data[1]; rkey_baseline[2]=rkey_baseline_data[2]; rkey_signal[2]=rkey_signal_data[2]; } case 0x412 { rkey_baseline_data[3] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[4] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[3] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[3]; rkey_signal_data[4] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[4]; rkey_baseline[3]=rkey_baseline_data[3]; rkey_signal[3]=rkey_signal_data[3]; rkey_baseline[4]=rkey_baseline_data[4]; rkey_signal[4]=rkey_signal_data[4]; } case 0x413 { rkey_baseline_data[5] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[6] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[5] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[5]; rkey_signal_data[6] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[6]; rkey_baseline[5]=rkey_baseline_data[5]; rkey_signal[5]=rkey_signal_data[5]; rkey_baseline[6]=rkey_baseline_data[6]; rkey_signal[6]=rkey_signal_data[6]; } case 0x414 { rkey_baseline_data[7] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[8] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[7] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[7]; rkey_signal_data[8] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[8]; rkey_baseline[7]=rkey_baseline_data[7]; rkey_signal[7]=rkey_signal_data[7]; rkey_baseline[8]=rkey_baseline_data[8]; rkey_signal[8]=rkey_signal_data[8]; } case 0x415 { rkey_baseline_data[9] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[10] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[9] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[9]; rkey_signal_data[10] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[10]; rkey_baseline[9]=rkey_baseline_data[9]; rkey_signal[9]=rkey_signal_data[9]; rkey_baseline[10]=rkey_baseline_data[10]; rkey_signal[10]=rkey_signal_data[10]; } case 0x416 { rkey_baseline_data[11] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[12] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[11] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[11]; rkey_signal_data[12] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[12]; rkey_baseline[11]=rkey_baseline_data[11]; rkey_signal[11]=rkey_signal_data[11]; rkey_baseline[12]=rkey_baseline_data[12]; rkey_signal[12]=rkey_signal_data[12]; } case 0x417 { rkey_baseline_data[13] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[14] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[13] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[13]; rkey_signal_data[14] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[14]; rkey_baseline[13]=rkey_baseline_data[13]; rkey_signal[13]=rkey_signal_data[13]; rkey_baseline[14]=rkey_baseline_data[14]; rkey_signal[14]=rkey_signal_data[14]; } case 0x418 { rkey_baseline_data[15] = data[1] + ((data[2]&0xff)<<8); rkey_baseline_data[16] = data[3] + ((data[4]&0xff)<<8); rkey_signal_data[15] = data[5] + ((data[6]&0xff)<<8) - rkey_baseline_data[15]; rkey_signal_data[16] = data[7] + ((data[8]&0xff)<<8) - rkey_baseline_data[16]; rkey_baseline[15]=rkey_baseline_data[15]; rkey_signal[15]=rkey_signal_data[15]; rkey_baseline[16]=rkey_baseline_data[16]; rkey_signal[16]=rkey_signal_data[16]; } case 0x34 { LeftVibrationFault = getbitdata(data[1],0,2); LeftTouchFault = getbitdata(data[1],2,2); LeftPressSensorFault = getbitdata(data[1],4,3); LeftCommonFault = getbitdata(data[1],7,1); } case 0x38 { RightVibrationFault = getbitdata(data[1],0,2); RightTouchFault = getbitdata(data[1],2,2); RightPressSensorFault = getbitdata(data[1],4,3); RightCommonFault = getbitdata(data[1],7,1); } else { } } }