コード例 #1
0
ファイル: Configuration.cs プロジェクト: tobig82/iRduino
 //fill with defaults
 public DisplayConfiguration(bool t)
 {
     ButtonFunctions = new List<ButtonFunctionsEnum>
         {
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None,
             ButtonFunctionsEnum.None
         };
     ButtonOptions = new List<string> {"", "", "", "", "", "", "", ""};
     ButtonOptionsScreens = new List<int> {-1, -1, -1, -1, -1, -1, -1, -1};
     //LapDisplayTime = 2;
     LapStyle = LapDisplayStylesEnum.LapTimeDeltaPersonal;
     NumScreens = 1;
     PitLights = false;
     PitLimiterSpeed = PitFlashSpeedsEnum.Full;
     PitLimiterStyle = PitFlashStyleEnum.GreenRedAlternateFlash;
     RevLimiterLights = false;
     RevLimiterStyle = RevFlashStyleEnum.StayRed;
     ShiftLightStyle = ShiftStyleEnum.GreenRedProgressiveRedShift;
     ShowLap = false;
     ShowShiftLights = false;
     FFBClippingLights = false;
     FFBClippingScreen = -1;
     if (t)
     {
         var temp = new Screen
             {
                 Example = "148 3 43",
                 Variables = new List<string> {"Speed", "Space", "Gear", "Space", "Laps2"}
             };
         Screens = new List<Screen> {temp};
     }
 }
コード例 #2
0
        // ReSharper restore UnusedParameter.Local
        // ReSharper disable UnusedParameter.Local
        public DisplayUnitConfiguration(bool t)
        {
            ButtonConfigurations = new ButtonConfiguration
                {
                    ButtonFunctions = new List<string>
                        {
                            "None",
                            "None",
                            "None",
                            "None",
                            "None",
                            "None",
                            "None",
                            "None"
                        },
                    ButtonOptions = new List<string> {"", "", "", "", "", "", "", ""},
                    ButtonOptionsScreens = new List<int> {-1, -1, -1, -1, -1, -1, -1, -1}
                };
            Inverted = false;
            IsTM1640 = false;
            SwitchLEDs = false;
            ShowDC = false;
            DCDisplayTime = 0;
            LapStyle = "Lap Time (12.34) and Personal Delta (-0.12)"; //LapDisplayStylesEnum.LapTimeDeltaPersonal;
            NumScreens = 0;
            LEDsConfigurations = new LEDsConfiguration
                {
                    PitLights = false,
                    PitLimiterSpeed = "Full Speed",
                    PitLimiterStyle = "Green & Red Alternate Switch",
                    RevLimiterLights = false,
                    RevLimiterStyle = "Stay Red",
                    ShiftLightStyle = "Green and Red Progressive with Red Shift",
                    ShiftClumps = false
                };
            ShowLap = false;
            LEDsConfigurations.ShowShiftLights = false;
            LEDsConfigurations.FFBClippingLights = false;
            LEDsConfigurations.FFBClippingScreen = 0;

            var temp = new Screen
                {
                    Example = "148 3 43",
                    Variables = new List<string> {"Speed", "Space", "Gear", "Space", "Laps2"}
                };
            Screens = new List<Screen> {temp};
        }
コード例 #3
0
ファイル: Configuration.cs プロジェクト: tobig82/iRduino
        public static bool LoadConfigurationFromFile(string fileLocation, out Configuration loaded)
        {
            var newConf = new Configuration { FileLocation = fileLocation };
            bool fileReadOk = true;
            int currentDisplayUnit = 0;
            int currentController = 0;
            int currentButton = 0;
            int currentScreen = 0;
            try
            {
                using (var sr = new StreamReader(fileLocation))
                {
                    bool fileEnded = false;
                    while (sr.EndOfStream == false && !fileEnded)
                    {
                        string line = sr.ReadLine();
                        // ReSharper disable StringIndexOfIsCultureSpecific.1
                        if (line == null) continue;
                        int commaLoc = line.IndexOf(",");
                        // ReSharper restore StringIndexOfIsCultureSpecific.1
                        if (commaLoc <= 0) continue;
                        string parameter = line.Substring(0, commaLoc);
                        string value = line.Substring(commaLoc + 1);

                        ButtonFunctionsEnum temp;
                        switch (parameter)
                        {
                            //ButtonOptionsScreens
                            case "ConfName":
                                newConf.Name = value;
                                break;
                            case "ComPort":
                                int.TryParse(value, out newConf.SerialPortSettings.PreferredComPort);
                                break;
                            case "SerialSpeed":
                                int.TryParse(value, out newConf.SerialPortSettings.SerialPortSpeed);
                                break;
                            case "LogArduinoMessages":
                                Boolean.TryParse(value, out newConf.AdvancedSettings.LogArduinoMessages);
                                break;
                            case "UseCustomSerialSpeed":
                                Boolean.TryParse(value, out newConf.SerialPortSettings.UseCustomSerialSpeed);
                                break;
                            case "DisplayRefreshRate":
                                int.TryParse(value, out newConf.RefreshRates.DisplayRefreshRate);
                                break;
                            case "LEDRefreshRate":
                                int.TryParse(value, out newConf.RefreshRates.LEDRefreshRate);
                                break;
                            case "UseCustomFuelCalculations":
                                Boolean.TryParse(value, out newConf.OtherSettings.UseCustomFuelCalculationOptions);
                                break;
                            case "UseWeightedFuelCalculation":
                                Boolean.TryParse(value, out newConf.OtherSettings.UseWeightedFuelCalculations);
                                break;
                            case "CustomFuelLaps":
                                int.TryParse(value, out newConf.OtherSettings.FuelCalculationLaps);
                                break;
                            case "ButtonFunction1":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[0] = temp;
                                }
                                break;
                            case "ButtonFunction2":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[1] = temp;
                                }
                                break;
                            case "ButtonFunction3":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[2] = temp;
                                }
                                break;
                            case "ButtonFunction4":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[3] = temp;
                                }
                                break;
                            case "ButtonFunction5":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[4] = temp;
                                }
                                break;
                            case "ButtonFunction6":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[5] = temp;
                                }
                                break;
                            case "ButtonFunction7":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[6] = temp;
                                }
                                break;
                            case "ButtonFunction8":
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.DisplayConfigurations[currentDisplayUnit].ButtonFunctions[7] = temp;
                                }
                                break;
                            case "ButtonOption1":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[0] = value;
                                break;
                            case "ButtonOption2":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[1] = value;
                                break;
                            case "ButtonOption3":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[2] = value;
                                break;
                            case "ButtonOption4":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[3] = value;
                                break;
                            case "ButtonOption5":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[4] = value;
                                break;
                            case "ButtonOption6":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[5] = value;
                                break;
                            case "ButtonOption7":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[6] = value;
                                break;
                            case "ButtonOption8":
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptions[7] = value;
                                break; ///////
                            case "ButtonOptionScreens1":
                                int buttonOptionScreenInt1;
                                int.TryParse(value, out buttonOptionScreenInt1);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[0] =
                                    buttonOptionScreenInt1;
                                break;
                            case "ButtonOptionScreens2":
                                int buttonOptionScreenInt2;
                                int.TryParse(value, out buttonOptionScreenInt2);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[1] =
                                    buttonOptionScreenInt2;
                                break;
                            case "ButtonOptionScreens3":
                                int buttonOptionScreenInt3;
                                int.TryParse(value, out buttonOptionScreenInt3);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[2] =
                                    buttonOptionScreenInt3;
                                break;
                            case "ButtonOptionScreens4":
                                int buttonOptionScreenInt4;
                                int.TryParse(value, out buttonOptionScreenInt4);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[3] =
                                    buttonOptionScreenInt4;
                                break;
                            case "ButtonOptionScreens5":
                                int buttonOptionScreenInt5;
                                int.TryParse(value, out buttonOptionScreenInt5);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[4] =
                                    buttonOptionScreenInt5;
                                break;
                            case "ButtonOptionScreens6":
                                int buttonOptionScreenInt6;
                                int.TryParse(value, out buttonOptionScreenInt6);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[5] =
                                    buttonOptionScreenInt6;
                                break;
                            case "ButtonOptionScreens7":
                                int buttonOptionScreenInt7;
                                int.TryParse(value, out buttonOptionScreenInt7);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[6] =
                                    buttonOptionScreenInt7;
                                break;
                            case "ButtonOptionScreens8":
                                int buttonOptionScreenInt8;
                                int.TryParse(value, out buttonOptionScreenInt8);
                                newConf.DisplayConfigurations[currentDisplayUnit].ButtonOptionsScreens[7] =
                                    buttonOptionScreenInt8;
                                break;
                            case "FFBClipLights":
                                Boolean.TryParse(value,
                                                 out newConf.DisplayConfigurations[currentDisplayUnit].FFBClippingLights);
                                break;
                            case "FFBClipScreen":
                                Int32.TryParse(value,
                                               out newConf.DisplayConfigurations[currentDisplayUnit].FFBClippingScreen);
                                break;
                            case "HeaderDisplayTime":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.HeaderDisplayTime);
                                break;
                            case "LapDisplayTime":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.LapDisplayTime);
                                break;
                            case "ShowEngineWarnings":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].ShowEngineWarnings);
                                break;
                            case "WarningType":
                                Enum.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].WarningType);
                                break;
                            case "LapStyle":
                                Enum.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].LapStyle);
                                break;
                            case "PitLights":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].PitLights);
                                break;
                            case "ShiftClumps":
                                Boolean.TryParse(value,
                                                 out newConf.DisplayConfigurations[currentDisplayUnit].ShiftClumps);
                                break;
                            case "PitLimiterSpeed":
                                Enum.TryParse(value,
                                              out newConf.DisplayConfigurations[currentDisplayUnit].PitLimiterSpeed);
                                break;
                            case "PitLimiterStyle":
                                Enum.TryParse(value,
                                              out newConf.DisplayConfigurations[currentDisplayUnit].PitLimiterStyle);
                                break;
                            case "QuickInfoDisplayTime":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.QuickInfoDisplayTime);
                                break;
                            case "RevLimiterLights":
                                Boolean.TryParse(value,
                                                 out newConf.DisplayConfigurations[currentDisplayUnit].RevLimiterLights);
                                break;
                            case "RevLimiterStyle":
                                Enum.TryParse(value,
                                              out newConf.DisplayConfigurations[currentDisplayUnit].RevLimiterStyle);
                                break;
                            case "ShiftLightStyle":
                                Enum.TryParse(value,
                                              out newConf.DisplayConfigurations[currentDisplayUnit].ShiftLightStyle);
                                break;
                            case "MatchCarShiftStyle":
                                Boolean.TryParse(
                                    value, out newConf.DisplayConfigurations[currentDisplayUnit].MatchCarShiftStyle);
                                break;
                            case "MatchCarShiftConfiguration":
                                Enum.TryParse(
                                    value,
                                    out newConf.DisplayConfigurations[currentDisplayUnit].MatchCarShiftStyleOption);
                                break;
                            case "MatchRedShift":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].MatchRedShift);
                                break;
                            case "ShowHeaders":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.ShowHeaders);
                                break;

                            case "ColourDeltaByDD":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.ColourDeltaByDD);
                                break;
                            case "DeltaLightsOnDefault":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.DeltaLightsOnDefault);
                                break;
                            case "DeltamessageScreen":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.DeltaMessageScreen);
                                break;
                            case "DeltaRange":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.DeltaRange);
                                break;

                            case "ShowLap":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].ShowLap);
                                break;
                            case "Inverted":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].Inverted);
                                break;
                            case "TM1640":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].IsTM1640);
                                break;
                            case "DeltaLightsPosition":
                                Enum.TryParse(
                                    value,
                                    out newConf.DisplayConfigurations[currentDisplayUnit].DeltaLightsPosition);
                                break;
                            case "DeltaLightsShow":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].DeltaLightsShow);
                                break;

                            case "SwitchLEDs":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].SwitchLEDs);
                                break;
                            case "ShowDC":
                                Boolean.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].ShowDC);
                                break;
                            case "DCDisplayTime":
                                Int32.TryParse(value,
                                               out newConf.DisplayConfigurations[currentDisplayUnit].DCDisplayTime);
                                break;
                            case "ShowShiftLights":
                                Boolean.TryParse(value,
                                                 out newConf.DisplayConfigurations[currentDisplayUnit].ShowShiftLights);
                                break;
                            case "NumScreens":
                                Int32.TryParse(value, out newConf.DisplayConfigurations[currentDisplayUnit].NumScreens);
                                break;
                            case "Intensity":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.Intensity);
                                break;
                            case "ShiftIntensity":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.ShiftIntensity);
                                break;
                            case "ShiftIntensityType":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.ShiftIntensityType);
                                break;
                            case "WarningTextDisplayTime":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.WarningTextDisplayTime);
                                break;
                            case "QuickInfoLightsColour":
                                Boolean.TryParse(value, out newConf.TMDisplaySettings.QuickInfoLightsColour);
                                break;
                            case "ShiftIntensityAmount":
                                Int32.TryParse(value, out newConf.TMDisplaySettings.ShiftIntensityAmount);
                                break;
                            case "ScreenNumber":
                                Int32.TryParse(value, out currentScreen);
                                if (newConf.DisplayConfigurations[currentDisplayUnit].Screens.Count <= currentScreen)
                                {
                                    var tempScreen = new Screen();
                                    tempScreen.Variables.Clear();
                                    newConf.DisplayConfigurations[currentDisplayUnit].Screens.Add(tempScreen);
                                }
                                break;
                            case "DisplayUnit":
                                Int32.TryParse(value, out currentDisplayUnit);
                                if (newConf.DisplayConfigurations.Count <= currentDisplayUnit)
                                {
                                    var unitTemp = new DisplayConfiguration(true);
                                    unitTemp.Screens.Clear();
                                    newConf.DisplayConfigurations.Add(unitTemp);
                                }
                                currentScreen = 0;
                                break;
                            case "UseCustomHeader":
                                bool tempUch;
                                Boolean.TryParse(value, out tempUch);
                                newConf.DisplayConfigurations[currentDisplayUnit].Screens[currentScreen].UseCustomHeader = tempUch;
                                break;
                            case "CustomHeader":
                                newConf.DisplayConfigurations[currentDisplayUnit].Screens[currentScreen].CustomHeader = value;
                                break;
                            case "Variable":
                                newConf.DisplayConfigurations[currentDisplayUnit].Screens[currentScreen].Variables.Add(
                                    value);
                                break;
                            case "ControllerNumber":
                                currentButton = -1;
                                Int32.TryParse(value, out currentController);
                                if (newConf.ControllerConfigurations.Count <= currentController)
                                {
                                    var controllerTemp = new ControllerConfiguration();
                                    newConf.ControllerConfigurations.Add(controllerTemp);
                                }
                                break;
                            case "DeviceGuid":
                                Guid.TryParse(value, out newConf.ControllerConfigurations[currentController].DeviceGuid);
                                break;
                            case "ConButtonFunction":
                                currentButton++;
                                if (Enum.TryParse(value, out temp))
                                {
                                    newConf.ControllerConfigurations[currentController].ButtonFunctions[currentButton] =
                                        temp;
                                }
                                break;
                            case "ConButtonOption":
                                newConf.ControllerConfigurations[currentController].ButtonOptions[currentButton] = value;
                                break;
                            case "ConButtonOptionScreens":
                                int conButtonOptionScreenInt1;
                                int.TryParse(value, out conButtonOptionScreenInt1);
                                newConf.ControllerConfigurations[currentController].ButtonOptionsScreens[currentButton]
                                    =
                                    conButtonOptionScreenInt1;
                                break;
                            case "ConButtonNumber":
                                int conButtonNumberInt1;
                                int.TryParse(value, out conButtonNumberInt1);
                                newConf.ControllerConfigurations[currentController].ButtonNumbers[currentButton] =
                                    conButtonNumberInt1;
                                break;
                            case "ContSelected":
                                Boolean.TryParse(value, out newConf.ControllerConfigurations[currentController].Selected);
                                break;

                            case "END":
                                fileEnded = true;
                                break;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(String.Format("The file could not be read: {0}", e.Message), "File Read Error");
                fileReadOk = false;
            }
            loaded = fileReadOk ? newConf : null;
            return fileReadOk;
        }