Ejemplo n.º 1
0
        private static byte[] CreatePayloadData(
            Color color,
            Percentage brightness,
            Temperature Temperature,
            Power power,
            Label label
            )
        {
            var hueData         = HueConverter.ConvertHueToUInt16(color.Hue).GetBytes();
            var saturationData  = PercentageConverter.ConvertPercentageToUInt16(color.Saturation).GetBytes();
            var brightnessData  = PercentageConverter.ConvertPercentageToUInt16(brightness).GetBytes();
            var temperatureData = ((ushort)Temperature).GetBytes();
            var reserved1       = new byte[2];
            var powerData       = ((ushort)power).GetBytes();
            var labelData       = Encoding.UTF8.GetBytes(label);
            var reserved2       = new byte[8];

            return(CombineArrays(
                       hueData,
                       saturationData,
                       brightnessData,
                       temperatureData,
                       reserved1,
                       powerData,
                       labelData,
                       reserved2
                       ));
        }
Ejemplo n.º 2
0
        public void GetDataShouldReturnValidHueData()
        {
            const int hueOffset = 1;

            var color = Color.Cyan;
            var data  = CreatePayloadData(color, Percentage.MaxValue, Temperature.None, 0);

            HueConverter.ConvertUInt16ToHue(data.ToUInt16(hueOffset)).Should().Be(color.Hue);
        }
Ejemplo n.º 3
0
        public override byte[] GetData()
        {
            var reservedData    = new byte[1];
            var hueData         = HueConverter.ConvertHueToUInt16(_color.Hue).GetBytes();
            var saturationData  = PercentageConverter.ConvertPercentageToUInt16(_color.Saturation).GetBytes();
            var brightnessData  = PercentageConverter.ConvertPercentageToUInt16(_brightness).GetBytes();
            var temperatureData = ((ushort)_temperature).GetBytes();
            var durationData    = _durationInMilliseconds.GetBytes();

            return(CombineArrays(reservedData, hueData, saturationData, brightnessData, temperatureData, durationData));
        }
Ejemplo n.º 4
0
        private static Hue ParseHue(byte[] data)
        {
            var value = data.ToUInt16(startIndex: 0);

            return(HueConverter.ConvertUInt16ToHue(value));
        }