private int CompareBrightnessByValue(DisplayAutoBrightMapping x, DisplayAutoBrightMapping y)
        {
            if (x.EnvironmentBright == null)
            {
                if (y.EnvironmentBright == null)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            }
            else
            {
                if (y.EnvironmentBright == null)
                {
                    return(1);
                }
                else
                {
                    int retval = x.EnvironmentBright.CompareTo(y.EnvironmentBright);

                    if (retval != 0)
                    {
                        return(retval);
                    }
                    else
                    {
                        return(x.EnvironmentBright.CompareTo(y.EnvironmentBright));
                    }
                }
            }
        }
        private void confirmButton_Click(object sender, EventArgs e)
        {
            ConfigState = LightSensorConfigState.OK_State;
            if (_useablePeripheral == null || _useablePeripheral.Count == 0)
            {
                ConfigState = LightSensorConfigState.NoSensor_State;
            }
            if (_brightnessMappingTable == null || _brightnessMappingTable.Count == 0)
            {
                ConfigState = LightSensorConfigState.NoMapping_State;
            }

            for (int i = 0; i < opticalProbeDataGridView.Rows.Count; i++)
            {
                var    cell      = opticalProbeDataGridView.Rows[i].Cells[3] as DataGridViewTextBoxCell;
                string cellValue = cell.Value as string;
                if (!string.IsNullOrEmpty(cellValue))
                {
                    ConfigState = LightSensorConfigState.InvalidSensor_State;
                    break;
                }
            }

            brightnessDataGridView_Validated(sender, e);
            BrightExtendData = new AutoBrightExtendData();
            BrightExtendData.AutoBrightMappingList = new List <DisplayAutoBrightMapping>();
            BrightExtendData.UseLightSensorList    = new List <PeripheralsLocation>();
            if (this.enableCheckBox.Checked)
            {
                BrightExtendData.OpticalFailureInfo = new OpticalProbeFailureInfo()
                {
                    IsEnable = true, BrightnessValue = (int)this.brightnessNumericUpDown.Value
                };
            }
            else
            {
                BrightExtendData.OpticalFailureInfo = new OpticalProbeFailureInfo()
                {
                    IsEnable = false, BrightnessValue = (int)this.brightnessNumericUpDown.Value
                };
            }
            foreach (var mappingItem in _brightnessMappingTable)
            {
                var displayBrightMapping = new DisplayAutoBrightMapping();
                displayBrightMapping.EnvironmentBright = mappingItem.EnvironmentBrightness;
                displayBrightMapping.DisplayBright     = mappingItem.LedBrightness;
                BrightExtendData.AutoBrightMappingList.Add(displayBrightMapping);
            }
            foreach (var peripheralItem in _useablePeripheral)
            {
                var peripheral = new UseablePeripheral();
                peripheral = peripheralItem;
                BrightExtendData.UseLightSensorList.Add(peripheral);
            }
            BrightExtendData.AutoBrightMappingList.Sort(CompareBrightnessByValue);
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
        }
        private DisplaySmartBrightEasyConfig GetConfig()
        {
            DisplaySmartBrightEasyConfig config = new DisplaySmartBrightEasyConfig();
            config.DisplayUDID = "0123456789";
            config.OneDayConfigList = new List<OneSmartBrightEasyConfig>();

            OneSmartBrightEasyConfig oneItem = new OneSmartBrightEasyConfig()
            {
                ScheduleType = SmartBrightAdjustType.FixBright,
                StartTime = DateTime.Now.AddMinutes(1),
                BrightPercent = 60,
                CustomDayCollection = new List<DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday }
            };
            //config.OneDayConfigList.Add(oneItem);

            oneItem = new OneSmartBrightEasyConfig()
            {
                ScheduleType = SmartBrightAdjustType.AutoBright,
                StartTime = DateTime.Now.AddMinutes(1),
                BrightPercent = 60,
                CustomDayCollection = new List<DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday }
            };
            config.OneDayConfigList.Add(oneItem);

            oneItem = new OneSmartBrightEasyConfig()
            {
                ScheduleType = SmartBrightAdjustType.FixBright,
                StartTime = DateTime.Now.AddMinutes(11),
                BrightPercent = 40,
                CustomDayCollection = new List<DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday }
            };
            config.OneDayConfigList.Add(oneItem);


            List<PeripheralsLocation> locateList = new List<PeripheralsLocation>();
            PeripheralsLocation location = new PeripheralsLocation()
            {
                FirstSenderSN = "abc",
                SenderIndex = 0,
                SensorType = PeripheralsType.LightSensorOnSender
            };
            locateList.Add(location);

            location = new PeripheralsLocation()
            {
                FirstSenderSN = "acb",
                SenderIndex = 0,
                PortIndex = 0,
                FuncCardIndex = 0,
                SensorIndex = 1,
                SensorType = PeripheralsType.LightSensorOnFuncCardInPort
            };
            locateList.Add(location);

            List<DisplayAutoBrightMapping> maplist = new List<DisplayAutoBrightMapping>();
            DisplayAutoBrightMapping map = new DisplayAutoBrightMapping()
            {
                EnvironmentBright = 50,
                DisplayBright = 30
            };
            maplist.Add(map);

            map = new DisplayAutoBrightMapping()
            {
                EnvironmentBright = 300,
                DisplayBright = 60
            };
            maplist.Add(map);

            AutoBrightExtendData autoData = new AutoBrightExtendData()
            {
                CalcType = AutoBrightCalcType.AllAverage,
                UseLightSensorList = locateList,
                AutoBrightMappingList = maplist
            };
            config.AutoBrightSetting = autoData;

            return config;
        }
        private int CompareBrightnessByValue(DisplayAutoBrightMapping x, DisplayAutoBrightMapping y)
        {
            if (x.EnvironmentBright == null)
            {
                if (y.EnvironmentBright == null)
                {
                    return 0;
                }
                else
                {
                    return -1;
                }
            }
            else
            {
                if (y.EnvironmentBright == null)
                {
                    return 1;
                }
                else
                {
                    int retval = x.EnvironmentBright.CompareTo(y.EnvironmentBright);

                    if (retval != 0)
                    {
                        return retval;
                    }
                    else
                    {
                        return x.EnvironmentBright.CompareTo(y.EnvironmentBright);
                    }
                }
            }
        }