private void Page_Loaded(object sender, RoutedEventArgs e) { XDocument PageConfig = XDocument.Load(@"UI Config/DiagPageConfig.xml"); #region I/O foreach (XElement do_element in PageConfig.Root.Elements("Do")) { Control.DigitalIndicator LED = new Control.DigitalIndicator(); LED.Caption = do_element.Attribute("Name").Value; LED.DigitalIndicatorClicked += DigitalOutput_Clicked; LED.Index = int.Parse(do_element.Attribute("Index").Value); DigitalOutputs.Add(LED); } foreach (XElement di_element in PageConfig.Root.Elements("Di")) { Control.DigitalIndicator LED = new Control.DigitalIndicator(); LED.Caption = di_element.Attribute("Name").Value; //LED.DigitalIndicatorClicked += DigitalIndicator_Clicked; LED.Index = int.Parse(di_element.Attribute("Index").Value); DigitalInputs.Add(LED); } for (int i = 0; i < DigitalOutputs.Count; i++) { DoContent.Children.Add(DigitalOutputs[i]); } for (int i = 0; i < DigitalInputs.Count; i++) { DiContent.Children.Add(DigitalInputs[i]); } #endregion #region AXIS for (int i = 0; i < TwincatConnector.Axis_Count; i++) { TabItem AxisTab = new TabItem(); AxisTab.Header = "Axis " + i.ToString(); AxisDiagnostic AxisDiagObj = new AxisDiagnostic(); AxisDiagObj.ID = i; AxisDiagObj.AxisName = "Axis " + (i + 1).ToString(); AxisDiagObj.ControlSetClicked += AxDiagSetControl_Clicked; AxisDiagObj.JogBwFastClicked += AxisDiagObj_JogBwFastClicked; AxisDiagObj.JogBwSlowClicked += AxisDiagObj_JogBwSlowClicked; AxisDiagObj.JogFwFastClicked += AxisDiagObj_JogFwFastClicked; AxisDiagObj.JogFwSlowClicked += AxisDiagObj_JogFwSlowClicked; AxisDiagObj.ResetClicked += AxisDiagObj_ResetClicked; AxisDiagObj.MoveAbsClicked += AxisDiagObj_MoveAbsClicked; AxisDiagObj.MoveRelClicked += AxisDiagObj_MoveRelClicked; AxisTab.Content = AxisDiagObj; MainContent.Items.Add(AxisTab); } #endregion if (TwincatConnector.IsConnected) { dispatcherTimer.Tick += dispatcherTimer_Tick; dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 50); dispatcherTimer.Start(); } else { TwincatConnector.LogMessage("Not connected to device. Polling not started."); } }
private void DigitalOutput_Clicked(object sender, ADS_Sample.Control.DigitalIndicator.DigitalIndicationEventArgs e) { TwincatConnector.tcWriteData(e.Index, !e.State); TwincatConnector.LogMessage(string.Format("{0}\t: {1}", "Report", "Digital output triggered " + e.Index.ToString())); }