예제 #1
0
        /// <summary>
        /// Parsing Interpolation
        /// </summary>
        /// <param name="data">Interpolation</param>
        /// <param name="errMsg">Error Message</param>
        /// <param name="pol">Interpolation</param>
        /// <returns></returns>
        public bool ParseInterpolation(string data, ref string errMsg, ref InterpolationAlgorithm pol)
        {
            bool ret = true;

            try
            {
                pol = (InterpolationAlgorithm)Enum.Parse(typeof(InterpolationAlgorithm), data);
            }
            catch
            {
                ret    = false;
                errMsg = ERROR_INTERPOLATION;
                pol    = InterpolationAlgorithm.LINEAR;
            }
            return(ret);
        }
예제 #2
0
        /// <summary>
        /// Read ini file.
        /// </summary>
        /// <returns>result</returns>
        public bool ReadParameterIni()
        {
            ClrMsppManager msObj = ClrMsppManager.getInstance();
            ClrIniFile     ini   = msObj.getParameters();

            uint   sectionNum = ini.getNumberOfSections();
            uint   parameterNum;
            string parameterName;
            bool   flgSectionFound = default(bool);
            string errMsg          = "";

            for (uint i = 0; i < sectionNum; i++)
            {
                if (ini.getSection(i) == PARAMETERS_INI_SECTION_NAME)
                {
                    parameterNum    = ini.getNumberOfParameters(ini.getSection(i));
                    flgSectionFound = true;

                    for (uint j = 0; j < parameterNum; j++)
                    {
                        parameterName = ini.getParameterName(ini.getSection(i), j);
                        string parseResult = ini.getParameterValue(ini.getSection(i), j);
                        switch (parameterName)
                        {
                        //Sampling Points
                        case PARAMETERS_INI_SAMPLINGPOINTS:
                            SamplingMode mode = SamplingMode.FIRST;
                            if (ParseResamplingMode(parseResult, ref errMsg, ref mode) == false)
                            {
                                ErrorMessage += (errMsg + "\n");
                            }
                            else
                            {
                                ResamplingMode = mode;
                            }

                            break;

                        //Interpolation
                        case PARAMETERS_INI_INTERPOLATION:
                            InterpolationAlgorithm pol = InterpolationAlgorithm.LINEAR;
                            if (ParseInterpolation(parseResult, ref errMsg, ref pol) == false)
                            {
                                ErrorMessage += (errMsg + "\n");
                            }
                            Interpolation = pol;

                            break;

                        //Output range MIN
                        case PARAMETERS_INI_OUTPUTRANGEMIN:
                            double?min = null;
                            if (ParseOutputRangeMin(parseResult, ref errMsg, ref min) == false)
                            {
                                ErrorMessage += (errMsg + "\n");
                            }
                            OutputLowerRange = min;

                            break;

                        //Output range MAX
                        case PARAMETERS_INI_OUTPUTRANGEMAX:
                            double?max = null;
                            if (ParseOutputRangeMax(parseResult, ref errMsg, ref max) == false)
                            {
                                ErrorMessage += (errMsg + "\n");
                            }
                            OutputHigherRange = max;

                            break;

                        //Specified Interval
                        case PARAMETERS_INI_SPECIFIED_INTERVAL:
                            double?Interval = null;
                            if (ParseSpecifiedInterval(parseResult, ref errMsg, ref Interval, ResamplingMode) == false)
                            {
                                ErrorMessage = ErrorMessage + errMsg + "\n";
                            }
                            SpecifiedInterval = Interval;

                            break;

                        default:
                            break;
                        }
                    }
                }
            }


            //Debug.WriteLine(ini.getSection(0));

            return(flgSectionFound);
        }