Esempio n. 1
0
        public void SetLED(BIPLedPositionEnum bipLedPositionEnum, PanelLEDColor panelLEDColor)
        {
            try
            {
                var    row   = GetRow(bipLedPositionEnum);
                var    index = GetIndex(bipLedPositionEnum);
                byte[] array = { 0x0 };
                byte   mask  = 0;

                switch (row)
                {
                case 1:
                {
                    array = _upperRowBytes;
                    break;
                }

                case 2:
                {
                    array = _middleRowBytes;
                    break;
                }

                case 3:
                {
                    array = _lowerRowBytes;
                    break;
                }
                }

                switch (index)
                {
                case 1:
                {
                    mask = _1BIPMask;
                    break;
                }

                case 2:
                {
                    mask = _2BIPMask;
                    break;
                }

                case 3:
                {
                    mask = _3BIPMask;
                    break;
                }

                case 4:
                {
                    mask = _4BIPMask;
                    break;
                }

                case 5:
                {
                    mask = _5BIPMask;
                    break;
                }

                case 6:
                {
                    mask = _6BIPMask;
                    break;
                }

                case 7:
                {
                    mask = _7BIPMask;
                    break;
                }

                case 8:
                {
                    mask = _8BIPMask;
                    break;
                }
                }

                switch (panelLEDColor)
                {
                case PanelLEDColor.DARK:
                {
                    // Set all to 0
                    array[0] = (array[0] &= (byte)~mask);
                    array[1] = (array[1] &= (byte)~mask);
                    break;
                }

                case PanelLEDColor.GREEN:
                {
                    // Set first byte's bit to 1
                    array[0] = array[0] |= mask;
                    array[1] = (array[1] &= (byte)~mask);
                    break;
                }

                case PanelLEDColor.YELLOW:
                {
                    // Set both byte's bit to 1
                    array[0] = array[0] |= mask;
                    array[1] = array[1] |= mask;
                    break;
                }

                case PanelLEDColor.RED:
                {
                    // Set second byte's bit to 1
                    array[0] = (array[0] &= (byte)~mask);
                    array[1] = array[1] |= mask;
                    break;
                }
                }

                /*
                 * 01000000 2nd BIP from left GREEN
                 * 00000000
                 *
                 * 01000000 2nd BIP from left YELLOW
                 * 01000000
                 *
                 * 00000000 2nd BIP from left RED
                 * 01000000
                 *
                 * 00000000 2nd BIP from left DARK
                 * 00000000
                 *
                 */

                // _upperRowBytes = { (byte)0x0, (byte)0x0 }; //byte 1 & 4
                // _middleRowBytes = { (byte)0x0, (byte)0x0 };//byte 2 & 5
                // _lowerRowBytes = { (byte)0x0, (byte)0x0 }; //byte 3 & 6
                var finalArray = new byte[7];
                finalArray[0] = 0xb8;
                finalArray[1] = _upperRowBytes[0];
                finalArray[2] = _middleRowBytes[0];
                finalArray[3] = _lowerRowBytes[0];
                finalArray[4] = _upperRowBytes[1];
                finalArray[5] = _middleRowBytes[1];
                finalArray[6] = _lowerRowBytes[1];

                SendLEDData(finalArray);


                AppEventHandler.LedLightChanged(this, HIDInstance, null, PanelLEDColor.DARK);
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }