/// <summary> /// Process DiagPacket (axis state in it) arrived event /// </summary> private void SetAxisState(NewDiagPacketArrivedEventArgs e) { labelAxisState.Text = e.Data[this.axisIndex].DriveStatus.Enabled.ToString(); labelAxisHomed.Text = e.Data[this.axisIndex].AxisStatus.Homed.ToString(); labelAxisFault.Text = (!e.Data[this.axisIndex].AxisFault.None).ToString(); labelAxisPosition.Text = e.Data[this.axisIndex].PositionFeedback.ToString(); labelAxisSpeed.Text = e.Data[this.axisIndex].VelocityFeedback.ToString(); }
protected void Diagnostics_NewDiagPacketArrived(object sender, NewDiagPacketArrivedEventArgs e) { this.IsEnable = e.Data[ControlIdent].DriveStatus.Enabled; this.HasFault = e.Data[ControlIdent].AxisFault.None != true; this.Position = (int)(e.Data[ControlIdent].PositionCommand * 10000); this.Velocity = (int)(e.Data[ControlIdent].VelocityCommand * 10000); }
/// <summary> /// Handle DiagPacket (axis state in it) arrived event. Invoke SetAxisState to process data /// </summary> private void Diagnostics_NewDiagPacketArrived(object sender, NewDiagPacketArrivedEventArgs e) { try { //URL: http://msdn.microsoft.com/en-us/library/ms171728.aspx //How to: Make Thread-Safe Calls to Windows Forms Controls this.Invoke(new Action <NewDiagPacketArrivedEventArgs>(SetAxisState), e); } catch { } }
protected void Diagnostics_NewDiagPacketArrived(object sender, NewDiagPacketArrivedEventArgs e) { int DIn = e.Data[ControlIdent].DigitalInputs; int DOut = e.Data[ControlIdent].DigitalOutputs; foreach (var io in this.AllIOPorts) { if (io.PortType == IOPortType.IN || io.PortType == IOPortType.INOUT) { io.InValue = (DIn & (1 << io.Bit)) != 0; } if (io.PortType == IOPortType.OUT || io.PortType == IOPortType.INOUT) { io.OutValue = (DOut & (1 << io.Bit)) != 0; } } }