/// <summary> /// 检测按键状态. /// </summary> /// <param name="anJianDtVal"></param> void CheckAnJianDt(AnJianDt anJianDtVal) { //test //if (anJianDtVal.IndexAnJian != AnJianIndex.bt03) //{ // return; //} //test byte indexVal = (byte)anJianDtVal.IndexAnJian; indexVal -= 1; if ((anJianDtVal.YouXiaoDt & anJianDtVal.YouXiao_01) == anJianDtVal.YouXiao_01 && (anJianDtVal.YouXiaoDt & anJianDtVal.YouXiao_02) != anJianDtVal.YouXiao_02) { //按键有效位01. if ((anJianDtVal.AnJianVal & anJianDtVal.AnJianKey_01) == anJianDtVal.AnJianKey_01 && AnJianState[indexVal] == 0) { AnJianState[indexVal] = 1; OnClickPcvrBtEvent(anJianDtVal.IndexAnJian, InputEventCtrl.ButtonState.UP); Debug.Log(anJianDtVal.IndexAnJian + "-UP: YouXiaoDt " + anJianDtVal.YouXiaoDt.ToString("X2") + ", AnJianVal " + anJianDtVal.AnJianVal.ToString("X2") + ", YouXiao_01 " + anJianDtVal.YouXiao_01.ToString("X2") + ", AnJianKey_01 " + anJianDtVal.AnJianKey_01.ToString("X2")); } else if ((anJianDtVal.AnJianVal & anJianDtVal.AnJianKey_01) == 0x00 && AnJianState[indexVal] == 1) { AnJianState[indexVal] = 0; OnClickPcvrBtEvent(anJianDtVal.IndexAnJian, InputEventCtrl.ButtonState.DOWN); Debug.Log(anJianDtVal.IndexAnJian + "-DOWN: YouXiaoDt " + anJianDtVal.YouXiaoDt.ToString("X2") + ", AnJianVal " + anJianDtVal.AnJianVal.ToString("X2") + ", YouXiao_01 " + anJianDtVal.YouXiao_01.ToString("X2") + ", AnJianKey_01 " + anJianDtVal.AnJianKey_01.ToString("X2")); } } if ((anJianDtVal.YouXiaoDt & anJianDtVal.YouXiao_01) != anJianDtVal.YouXiao_01 && (anJianDtVal.YouXiaoDt & anJianDtVal.YouXiao_02) == anJianDtVal.YouXiao_02) { //按键有效位02. if ((anJianDtVal.AnJianVal & anJianDtVal.AnJianKey_02) == anJianDtVal.AnJianKey_02 && AnJianState[indexVal] == 0) { AnJianState[indexVal] = 1; OnClickPcvrBtEvent(anJianDtVal.IndexAnJian, InputEventCtrl.ButtonState.UP); Debug.Log(anJianDtVal.IndexAnJian + "-UP: YouXiaoDt " + anJianDtVal.YouXiaoDt.ToString("X2") + ", AnJianVal " + anJianDtVal.AnJianVal.ToString("X2") + ", YouXiao_02 " + anJianDtVal.YouXiao_02.ToString("X2") + ", AnJianKey_02 " + anJianDtVal.AnJianKey_02.ToString("X2")); } else if ((anJianDtVal.AnJianVal & anJianDtVal.AnJianKey_02) == 0x00 && AnJianState[indexVal] == 1) { AnJianState[indexVal] = 0; OnClickPcvrBtEvent(anJianDtVal.IndexAnJian, InputEventCtrl.ButtonState.DOWN); Debug.Log(anJianDtVal.IndexAnJian + "-DOWN: YouXiaoDt " + anJianDtVal.YouXiaoDt.ToString("X2") + ", AnJianVal " + anJianDtVal.AnJianVal.ToString("X2") + ", YouXiao_02 " + anJianDtVal.YouXiao_02.ToString("X2") + ", AnJianKey_02 " + anJianDtVal.AnJianKey_02.ToString("X2")); } } }
/// <summary> /// 更新按键数据状态. /// </summary> void UpdateAnJianLbDt(byte[] buffer) { //按键1(投币3) AnJianDt anJianDtVal = new AnJianDt(AnJianIndex.bt01, buffer[21], buffer[20], 0x10, 0x40, 0x04, 0x10); CheckAnJianDt(anJianDtVal); //按键2(投币4) anJianDtVal = new AnJianDt(AnJianIndex.bt02, buffer[22], buffer[24], 0x10, 0x40, 0x20, 0x80); CheckAnJianDt(anJianDtVal); //按键3(开始1) anJianDtVal = new AnJianDt(AnJianIndex.bt03, buffer[52], buffer[35], 0x10, 0x40, 0x20, 0x80); CheckAnJianDt(anJianDtVal); //按键4(开始2) anJianDtVal = new AnJianDt(AnJianIndex.bt04, buffer[51], buffer[38], 0x04, 0x10, 0x04, 0x10); CheckAnJianDt(anJianDtVal); //按键5(开始3) anJianDtVal = new AnJianDt(AnJianIndex.bt05, buffer[37], buffer[42], 0x02, 0x20, 0x08, 0x04); CheckAnJianDt(anJianDtVal); //按键6(开始4) anJianDtVal = new AnJianDt(AnJianIndex.bt06, buffer[39], buffer[43], 0x02, 0x80, 0x01, 0x02); CheckAnJianDt(anJianDtVal); //按键7(设置) anJianDtVal = new AnJianDt(AnJianIndex.bt07, buffer[36], buffer[40], 0x04, 0x10, 0x04, 0x10); CheckAnJianDt(anJianDtVal); //按键8(移动) anJianDtVal = new AnJianDt(AnJianIndex.bt08, buffer[25], buffer[27], 0x10, 0x40, 0x02, 0x10); CheckAnJianDt(anJianDtVal); //按键9(彩票1) anJianDtVal = new AnJianDt(AnJianIndex.bt09, buffer[28], buffer[32], 0x01, 0x80, 0x04, 0x20); CheckAnJianDt(anJianDtVal); //按键10(彩票2) anJianDtVal = new AnJianDt(AnJianIndex.bt10, buffer[34], buffer[29], 0x01, 0x80, 0x01, 0x08); CheckAnJianDt(anJianDtVal); }