Example #1
0
        private void SetColorTempValue()
        {
            int            hz            = cbHz1.SelectedValue.ToString().GetInt32(System.Globalization.NumberStyles.Number);
            colorTempGroup group         = this.colorTempData.arrGroup[hz];
            int            colorTmp      = cbColorTempType1.SelectedValue.ToString().GetInt32(System.Globalization.NumberStyles.Number);
            colorTemp      colorTempData = group.arrData[colorTmp];

            UInt16 redVal   = (UInt16)numRed.Value;
            UInt16 greenVal = (UInt16)numGreen.Value;
            UInt16 blueVal  = (UInt16)numBlue.Value;

            byte[] redBtValue   = redVal.GetBytes();
            byte[] greenBtValue = greenVal.GetBytes();
            byte[] blueBtValue  = blueVal.GetBytes();

            //Red
            colorTempData.Red_Hi = redBtValue[0];
            colorTempData.Red_Lo = redBtValue[1];

            //Green
            colorTempData.Green_Hi = greenBtValue[0];
            colorTempData.Green_Lo = greenBtValue[1];

            //Blue
            colorTempData.Blue_Hi = blueBtValue[0];
            colorTempData.Blue_Lo = blueBtValue[1];
        }
Example #2
0
        public static colorTempData GetColorTempData(byte[] data)
        {
            int           offset        = 0;
            colorTempData colorTempData = new colorTempData();

            for (int i = 0; i < 4; i++)
            {
                //第一套为60Hz色温组,第二套为50Hz色温组,第三套为3D色温组,第四套预留用途
                colorTempData.arrGroup[i] = new colorTempGroup();
                colorTempGroup group = colorTempData.arrGroup[i];
                for (int j = 0; j < 10; j++)
                {
                    //10个色温,0 = 3200K , 1=6500K, 2=8500K,3=9300K,其他为自定义色温值
                    group.arrData[j] = new colorTemp();
                    colorTemp colorTemp = group.arrData[j];
                    colorTemp.Red_Hi   = data[0 + offset];
                    colorTemp.Red_Lo   = data[1 + offset];
                    colorTemp.Green_Hi = data[2 + offset];
                    colorTemp.Green_Lo = data[3 + offset];
                    colorTemp.Blue_Hi  = data[4 + offset];
                    colorTemp.Blue_Lo  = data[5 + offset];
                    offset            += 6;
                }
            }
            return(colorTempData);
        }
Example #3
0
        private void InitColorTempValue()
        {
            numRed.ValueChanged   -= numRed_ValueChanged;
            numGreen.ValueChanged -= numGreen_ValueChanged;
            numBlue.ValueChanged  -= numBlue_ValueChanged;

            int            hz            = cbHz1.SelectedValue.ToString().GetInt32(System.Globalization.NumberStyles.Number);
            colorTempGroup group         = this.colorTempData.arrGroup[hz];
            int            colorTmp      = cbColorTempType1.SelectedValue.ToString().GetInt32(System.Globalization.NumberStyles.Number);
            colorTemp      colorTempData = group.arrData[colorTmp];

            byte[] tmp = new byte[2];
            //Red
            tmp[0] = colorTempData.Red_Hi;
            tmp[1] = colorTempData.Red_Lo;
            ushort val = tmp.GetUInt16(0);

            numRed.Value = val;

            //Green
            tmp[0]         = colorTempData.Green_Hi;
            tmp[1]         = colorTempData.Green_Lo;
            val            = tmp.GetUInt16(0);
            numGreen.Value = val;

            //Blue
            tmp[0]        = colorTempData.Blue_Hi;
            tmp[1]        = colorTempData.Blue_Lo;
            val           = tmp.GetUInt16(0);
            numBlue.Value = val;

            numRed.ValueChanged   += numRed_ValueChanged;
            numGreen.ValueChanged += numGreen_ValueChanged;
            numBlue.ValueChanged  += numBlue_ValueChanged;
        }
Example #4
0
        public static byte[] GetData(colorTempData ct)
        {
            int offset = 0;

            byte[] data = new byte[1024].Fill(0xff);
            for (int i = 0; i < 4; i++)
            {
                //第一套为60Hz色温组,第二套为50Hz色温组,第三套为3D色温组,第四套预留用途
                colorTempGroup group = ct.arrGroup[i];
                for (int j = 0; j < 10; j++)
                {
                    //10个色温,0 = 3200K , 1=6500K, 2=8500K,3=9300K,其他为自定义色温值
                    colorTemp colorTemp = group.arrData[j];
                    data[0 + offset] = colorTemp.Red_Hi;
                    data[1 + offset] = colorTemp.Red_Lo;
                    data[2 + offset] = colorTemp.Green_Hi;
                    data[3 + offset] = colorTemp.Green_Lo;
                    data[4 + offset] = colorTemp.Blue_Hi;
                    data[5 + offset] = colorTemp.Blue_Lo;
                    offset          += 6;
                }
            }
            return(data);
        }
Example #5
0
    public void BrainPadLoop()
    {
        switch (choiceProg)
        {
        case progDemo.Attente:
            Thread.Sleep(10);
            break;

        case progDemo.Bulb:
            BrainPad.LightBulb.SetColor(BrainPad.Color.Red);
            Flash();
            BrainPad.LightBulb.SetColor(BrainPad.Color.Green);
            Flash();
            BrainPad.LightBulb.SetColor(BrainPad.Color.Blue);
            Flash();
            BrainPad.LightBulb.SetColor(BrainPad.Color.Yellow);
            Flash();
            break;

        case progDemo.Traffic:
            BrainPad.TrafficLight.TurnRedLightOn();
            BrainPad.Wait.Seconds(1);
            BrainPad.TrafficLight.TurnRedLightOff();
            BrainPad.TrafficLight.TurnGreenLightOn();
            BrainPad.Wait.Seconds(1);
            BrainPad.TrafficLight.TurnGreenLightOff();
            BrainPad.TrafficLight.TurnYellowLightOn();
            BrainPad.Wait.Seconds(0.5);
            BrainPad.TrafficLight.TurnYellowLightOff();
            break;

        case progDemo.Temperature:
            finTemp = false;

            if (temperature >= 77)
            {
                stateTemp = colorTemp.green;
            }
            else if (temperature >= 76)
            {
                stateTemp = colorTemp.blue;
            }
            else
            {
                stateTemp = colorTemp.red;
            }

            switch (stateTemp)
            {
            case colorTemp.blue:
                for (int i = 0; i < 3; i++)
                {
                    BrainPad.Display.DrawLine(4, 37 + i, 155, 37 + i, BrainPad.Color.Blue);
                    BrainPad.Display.DrawLine(4, 87 + i, 155, 87 + i, BrainPad.Color.Blue);
                }
                BrainPad.Display.DrawExtraLargeText(5, 50, temperature.ToString("F1") + " F", BrainPad.Color.Blue);
                break;

            case colorTemp.green:
                for (int i = 0; i < 3; i++)
                {
                    BrainPad.Display.DrawLine(4, 37 + i, 155, 37 + i, BrainPad.Color.Green);
                    BrainPad.Display.DrawLine(4, 87 + i, 155, 87 + i, BrainPad.Color.Green);
                }
                BrainPad.Display.DrawExtraLargeText(5, 50, temperature.ToString("F1") + " F", BrainPad.Color.Green);
                break;

            case colorTemp.red:
                for (int i = 0; i < 3; i++)
                {
                    BrainPad.Display.DrawLine(4, 37 + i, 155, 37 + i, BrainPad.Color.Red);
                    BrainPad.Display.DrawLine(4, 87 + i, 155, 87 + i, BrainPad.Color.Red);
                }
                BrainPad.Display.DrawExtraLargeText(5, 50, temperature.ToString("F1") + " F", BrainPad.Color.Red);
                break;

            default:
                break;
            }
            finTemp = true;
            Thread.Sleep(10);
            break;

        case progDemo.Light:
            brightness = BrainPad.LightSensor.ReadLightLevel();

            if (brightness < 0.5)
            {
                BrainPad.LightBulb.TurnOn();
            }
            else
            {
                BrainPad.LightBulb.TurnOff();
            }
            break;

        case progDemo.Accelerometer:
            BrainPad.Display.DrawText(5, 20, "X : " + BrainPad.Accelerometer.ReadX().ToString("F3"), BrainPad.Color.White);
            BrainPad.Display.DrawText(5, 30, "Y : " + BrainPad.Accelerometer.ReadY().ToString("F3"), BrainPad.Color.White);
            BrainPad.Display.DrawText(5, 40, "Z : " + BrainPad.Accelerometer.ReadZ().ToString("F3"), BrainPad.Color.White);
            Thread.Sleep(100);
            break;

        case progDemo.Buzzer:
            for (int i = 0; i < note.Length; i++)
            {
                BrainPad.Buzzer.Stop();
                BrainPad.Buzzer.PlayFrequency(note[i]);
                Thread.Sleep(duration[i]);
            }
            BrainPad.Buzzer.Stop();

            break;

        case progDemo.Game:
            BrainPad.Display.DrawRectangle(8, 8, 86, 86, BrainPad.Color.Yellow);

            while (bouncerOk)
            {
                x += dx; y += dy;
                BrainPad.Display.DrawCircle(x, y, r, BrainPad.Color.Yellow);
                if (y > 85)
                {
                    BrainPad.Buzzer.PlayNote(BrainPad.Buzzer.Note.A);
                }
                else if (y < 15)
                {
                    BrainPad.Buzzer.PlayNote(BrainPad.Buzzer.Note.D);
                }
                else
                {
                    BrainPad.Buzzer.Stop();
                }
                if (x < 15 || x > 85)
                {
                    dx *= -1;
                }
                if (y < 15 || y > 85)
                {
                    dy *= -1;
                }
                Thread.Sleep(25);
                BrainPad.Display.DrawCircle(x, y, r, BrainPad.Color.Black);
                Thread.Sleep(25);
            }

            break;

        default:
            break;
        }
    }