예제 #1
0
        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.");
            }
        }
예제 #2
0
 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()));
 }