Ejemplo n.º 1
0
    /// <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"));
            }
        }
    }
Ejemplo n.º 2
0
    /// <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);
    }