예제 #1
0
        public static void save(StreamWriter sw, IJrkParameterHolder parameterSource)
        {
            string[] names  = Enum.GetNames(typeof(jrkParameter));
            byte[]   values = (byte[])Enum.GetValues(typeof(jrkParameter));

            int i;

            for (i = 0; i < names.Length; i++)
            {
                string parameter_name = names[i];
                byte   parameter      = values[i];
                uint   value          = parameterSource.getJrkParameter((jrkParameter)parameter);
                string value_string;
                switch (parameter)
                {
                case (byte)jrkParameter.PARAMETER_FEEDBACK_MODE:
                    value_string = Enum.GetName(typeof(jrkFeedbackMode), value).Substring("FEEDBACK_MODE_".Length);
                    break;

                case (byte)jrkParameter.PARAMETER_INPUT_MODE:
                    value_string = Enum.GetName(typeof(jrkInputMode), value).Substring("INPUT_MODE_".Length);
                    break;

                case (byte)jrkParameter.PARAMETER_SERIAL_MODE:
                    value_string = Enum.GetName(typeof(jrkSerialMode), value).Substring("SERIAL_MODE_".Length);
                    break;

                default:
                    value_string = value.ToString();
                    break;
                }

                // remove PARAMETER_, since it is always there (of course, if it isn't, this will create an unreadable file!)
                if (parameter_name.StartsWith("PARAMETER_"))
                {
                    parameter_name = parameter_name.Substring(10);
                }

                // write the name and value on a line
                sw.WriteLine(parameter_name + "\t" + value_string);
            }
        }
예제 #2
0
        public static void load(StreamReader sr, IJrkParameterHolder parameterDestination)
        {
            // set up dictionaries for each of the enums (couldn't this be done somewhere else?)
            string[] names = Enum.GetNames(typeof(jrkParameter));
            byte[] values = (byte[])Enum.GetValues(typeof(jrkParameter));

            var dictionary = new Dictionary<string, byte>();
            int i;
            for (i = 0; i < names.Length; i++)
            {
                dictionary[names[i]] = values[i];
            }

            names = Enum.GetNames(typeof(jrkFeedbackMode));
            values = (byte[])Enum.GetValues(typeof(jrkFeedbackMode));
            var feedback_mode_dictionary = new Dictionary<string, byte>();
            for (i = 0; i < names.Length; i++)
            {
                feedback_mode_dictionary[names[i]] = values[i];
            }

            names = Enum.GetNames(typeof(jrkInputMode));
            values = (byte[])Enum.GetValues(typeof(jrkInputMode));
            var input_mode_dictionary = new Dictionary<string, byte>();
            for (i = 0; i < names.Length; i++)
            {
                input_mode_dictionary[names[i]] = values[i];
            }

            names = Enum.GetNames(typeof(jrkSerialMode));
            values = (byte[])Enum.GetValues(typeof(jrkSerialMode));
            var serial_mode_dictionary = new Dictionary<string, byte>();
            for (i = 0; i < names.Length; i++)
            {
                serial_mode_dictionary[names[i]] = values[i];
            }

            string line;
            int line_number = 0;
            while (!sr.EndOfStream)
            {
                line = sr.ReadLine();
                line_number ++;
                string[] parts = line.Split(new char[] { ' ', '\t' });
                string parameter_name="", parameter_value="";

                // break up the string into a name and value pair
                foreach (string part in parts)
                {
                    if (part != "")
                    {
                        if (parameter_name == "")
                            parameter_name = part;
                        else if (parameter_value == "")
                            parameter_value = part;
                        else
                        {
                            throw new Exception("Error reading file: too many words on line " + line_number.ToString());
                        }
                    }
                }

                if (parameter_name == "")
                    continue; // blank line

                if(parameter_value == "")
                {
                    throw new Exception("Error reading file: missing value on line " + line_number.ToString());
                }

                // try to get the parameter and its value
                jrkParameter parameter;
                uint uint_value;
                try
                {
                    parameter = (jrkParameter)dictionary["PARAMETER_"+parameter_name];

                    switch (parameter)
                    {
                        case jrkParameter.PARAMETER_FEEDBACK_MODE:
                            uint_value = feedback_mode_dictionary["FEEDBACK_MODE_"+parameter_value];
                            break;
                        case jrkParameter.PARAMETER_INPUT_MODE:
                            uint_value = input_mode_dictionary["INPUT_MODE_"+parameter_value];
                            break;
                        case jrkParameter.PARAMETER_SERIAL_MODE:
                            uint_value = serial_mode_dictionary["SERIAL_MODE_"+parameter_value];
                            break;
                        default:
                            uint_value = uint.Parse(parameter_value);
                            break;
                    }
                }
                catch (KeyNotFoundException)
                {
                    throw new Exception("Error reading file: did not understand line " + line_number.ToString());
                }
                catch (FormatException)
                {
                    throw new Exception("Error reading file: did not understand a value on line " + line_number.ToString());
                }

                // now we can set it
                parameterDestination.setJrkParameter(parameter, uint_value);
            }
        }
예제 #3
0
        public static void save(StreamWriter sw, IJrkParameterHolder parameterSource)
        {
            string[] names = Enum.GetNames(typeof(jrkParameter));
            byte[] values = (byte[])Enum.GetValues(typeof(jrkParameter));

            int i;
            for (i = 0; i < names.Length; i++)
            {
                string parameter_name = names[i];
                byte parameter = values[i];
                uint value = parameterSource.getJrkParameter((jrkParameter)parameter);
                string value_string;
                switch(parameter)
                {
                    case (byte)jrkParameter.PARAMETER_FEEDBACK_MODE:
                        value_string = Enum.GetName(typeof(jrkFeedbackMode), value).Substring("FEEDBACK_MODE_".Length);
                        break;
                    case (byte)jrkParameter.PARAMETER_INPUT_MODE:
                        value_string = Enum.GetName(typeof(jrkInputMode), value).Substring("INPUT_MODE_".Length);
                        break;
                    case (byte)jrkParameter.PARAMETER_SERIAL_MODE:
                        value_string = Enum.GetName(typeof(jrkSerialMode), value).Substring("SERIAL_MODE_".Length);
                        break;
                    default:
                        value_string = value.ToString();
                        break;
                }

                // remove PARAMETER_, since it is always there (of course, if it isn't, this will create an unreadable file!)
                if (parameter_name.StartsWith("PARAMETER_"))
                    parameter_name = parameter_name.Substring(10);

                // write the name and value on a line
                sw.WriteLine(parameter_name+"\t"+value_string);
            }
        }
예제 #4
0
        public static void load(StreamReader sr, IJrkParameterHolder parameterDestination)
        {
            // set up dictionaries for each of the enums (couldn't this be done somewhere else?)
            string[] names  = Enum.GetNames(typeof(jrkParameter));
            byte[]   values = (byte[])Enum.GetValues(typeof(jrkParameter));

            var dictionary = new Dictionary <string, byte>();
            int i;

            for (i = 0; i < names.Length; i++)
            {
                dictionary[names[i]] = values[i];
            }

            names  = Enum.GetNames(typeof(jrkFeedbackMode));
            values = (byte[])Enum.GetValues(typeof(jrkFeedbackMode));
            var feedback_mode_dictionary = new Dictionary <string, byte>();

            for (i = 0; i < names.Length; i++)
            {
                feedback_mode_dictionary[names[i]] = values[i];
            }

            names  = Enum.GetNames(typeof(jrkInputMode));
            values = (byte[])Enum.GetValues(typeof(jrkInputMode));
            var input_mode_dictionary = new Dictionary <string, byte>();

            for (i = 0; i < names.Length; i++)
            {
                input_mode_dictionary[names[i]] = values[i];
            }

            names  = Enum.GetNames(typeof(jrkSerialMode));
            values = (byte[])Enum.GetValues(typeof(jrkSerialMode));
            var serial_mode_dictionary = new Dictionary <string, byte>();

            for (i = 0; i < names.Length; i++)
            {
                serial_mode_dictionary[names[i]] = values[i];
            }

            string line;
            int    line_number = 0;

            while (!sr.EndOfStream)
            {
                line = sr.ReadLine();
                line_number++;
                string[] parts = line.Split(new char[] { ' ', '\t' });
                string   parameter_name = "", parameter_value = "";

                // break up the string into a name and value pair
                foreach (string part in parts)
                {
                    if (part != "")
                    {
                        if (parameter_name == "")
                        {
                            parameter_name = part;
                        }
                        else if (parameter_value == "")
                        {
                            parameter_value = part;
                        }
                        else
                        {
                            throw new Exception("Error reading file: too many words on line " + line_number.ToString());
                        }
                    }
                }

                if (parameter_name == "")
                {
                    continue; // blank line
                }
                if (parameter_value == "")
                {
                    throw new Exception("Error reading file: missing value on line " + line_number.ToString());
                }

                // try to get the parameter and its value
                jrkParameter parameter;
                uint         uint_value;
                try
                {
                    parameter = (jrkParameter)dictionary["PARAMETER_" + parameter_name];

                    switch (parameter)
                    {
                    case jrkParameter.PARAMETER_FEEDBACK_MODE:
                        uint_value = feedback_mode_dictionary["FEEDBACK_MODE_" + parameter_value];
                        break;

                    case jrkParameter.PARAMETER_INPUT_MODE:
                        uint_value = input_mode_dictionary["INPUT_MODE_" + parameter_value];
                        break;

                    case jrkParameter.PARAMETER_SERIAL_MODE:
                        uint_value = serial_mode_dictionary["SERIAL_MODE_" + parameter_value];
                        break;

                    default:
                        uint_value = uint.Parse(parameter_value);
                        break;
                    }
                }
                catch (KeyNotFoundException)
                {
                    throw new Exception("Error reading file: did not understand line " + line_number.ToString());
                }
                catch (FormatException)
                {
                    throw new Exception("Error reading file: did not understand a value on line " + line_number.ToString());
                }

                // now we can set it
                parameterDestination.setJrkParameter(parameter, uint_value);
            }
        }