private void SetControllerConfig(XmlNode configRoot) { int temp_mapping = 0; for (int i = 0; i < (int)ChannelNumber.NUM_CHANNELS; i++) { configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["min"].Value = channel_config[i].MIN.ToString(); configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["max"].Value = channel_config[i].MAX.ToString(); configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["default"].Value = channel_config[i].CENTER.ToString(); configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["precision"].Value = precisionFormat[i]; configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["gain"].Value = channelGain[i].ToString(); configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).InnerXml = channelPrefix[i]; temp_mapping = (int)inputMapping[i]; if (inputInverted[i]) { temp_mapping *= -1; } configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["map"].Value = temp_mapping.ToString(); } configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue(ChannelNumber.CH1))).Item(0).Attributes["persist"].Value = z_persist.ToString(); configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue(ChannelNumber.CH1))).Item(0).Attributes["accum"].Value = z_accumulating.ToString(); configRoot.SelectNodes(".//ChannelSeparator").Item(0).InnerXml = chanSeparator; configRoot.SelectNodes(".//StopCommand").Item(0).InnerXml = stopCommand; configRoot.SelectNodes(".//StartOfFrame[@type='absolute']").Item(0).InnerXml = cmdPrefixAbsolute; configRoot.SelectNodes(".//StartOfFrame[@type='relative']").Item(0).InnerXml = cmdPrefixRelative; }
private void ParseControllerConfig(XmlNode configRoot) { int temp_mapping = 0; for (int i = 0; i < (int)ChannelNumber.NUM_CHANNELS; i++) { channel_config[i] = new ChannelConfigValues(); inputMapping[i] = new ControllerProperty(); temp_mapping = int.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["map"].Value); inputMapping[i] = (ControllerProperty)Math.Abs(temp_mapping); if (temp_mapping < 0) { inputInverted[i] = true; } channel_config[i].MIN = double.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["min"].Value); channel_config[i].MAX = double.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["max"].Value); channel_config[i].CENTER = double.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["default"].Value); precisionFormat[i] = configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["precision"].Value; channelGain[i] = double.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).Attributes["gain"].Value); channelPrefix[i] = configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue((ChannelNumber)i))).Item(0).InnerXml; } z_persist = Boolean.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue(ChannelNumber.CH1))).Item(0).Attributes["persist"].Value); z_accumulating = Boolean.Parse(configRoot.SelectNodes(String.Format(".//Channel[@param='{0}']", StringEnum.GetStringValue(ChannelNumber.CH1))).Item(0).Attributes["accum"].Value); chanSeparator = configRoot.SelectNodes(".//ChannelSeparator").Item(0).InnerXml; stopCommand = configRoot.SelectNodes(".//StopCommand").Item(0).InnerXml; cmdPrefixAbsolute = configRoot.SelectNodes(".//StartOfFrame[@type='absolute']").Item(0).InnerXml; cmdPrefixRelative = configRoot.SelectNodes(".//StartOfFrame[@type='relative']").Item(0).InnerXml; }
/******************************************************************************** * FUNCTION: UpdateInputLabels * Description: Update label text beside each input select button based on the * current channel mapping * Parameters: N/A ********************************************************************************/ private void UpdateInputLabels() { int index = 0; Control[] labels = { label1, label2, label3, label4, label5 }; String temp_str = ""; if (ChannelMapping != null) { foreach (ControllerProperty cp in ChannelMapping) { switch (cp) { case ControllerProperty.X: temp_str = StringEnum.GetStringValue(ControllerProperty.X); break; case ControllerProperty.Y: temp_str = StringEnum.GetStringValue(ControllerProperty.Y); break; case ControllerProperty.Z: temp_str = StringEnum.GetStringValue(ControllerProperty.Z); break; case ControllerProperty.RotationX: temp_str = StringEnum.GetStringValue(ControllerProperty.RotationX); break; case ControllerProperty.RotationY: temp_str = StringEnum.GetStringValue(ControllerProperty.RotationY); break; case ControllerProperty.RotationZ: temp_str = StringEnum.GetStringValue(ControllerProperty.RotationZ); break; case ControllerProperty.Button_0: temp_str = StringEnum.GetStringValue(ControllerProperty.Button_0); break; case ControllerProperty.Button_1: temp_str = StringEnum.GetStringValue(ControllerProperty.Button_1); break; case ControllerProperty.Button_2: temp_str = StringEnum.GetStringValue(ControllerProperty.Button_2); break; case ControllerProperty.Button_3: temp_str = StringEnum.GetStringValue(ControllerProperty.Button_3); break; case ControllerProperty.Button_4: temp_str = StringEnum.GetStringValue(ControllerProperty.Button_4); break; default: break; } if (ChannelInverted[index] == true) { temp_str = "-" + temp_str; } labels[index].Text = temp_str; labels[index].Font = new Font(labels[index].Font, FontStyle.Bold); labels[index].BackColor = SystemColors.Control; index++; } } }