public void WriteAsyn(MvLoggerEventArgs ea) { this.msgQueue.Enqueue(ea); lock (this) { if (this.Task != null) { if (this.Task.IsEnd()) { using (var obj = this.Task) obj.Cancel(); } else { return; } } this.Task = MvCancelTask.RunLoop(() => { MvSpinWait.SpinUntil(() => this.msgQueue.Count > 0); MvLoggerEventArgs eaLog; if (!this.msgQueue.TryDequeue(out eaLog)) { return(true); } this.WriteSyn(eaLog); return(true); }); } }
private void btnStartPns0102_Click(object sender, EventArgs e) { if (this.task != null) { return; } this.task = MvCancelTask.RunLoop(() => { //大迴圈, 來回一次 try { robotHandler.SgsVerifyStartPns0102(ri => { this.Invoke(new Action(() => { tbPoseX.Text = ri.x + ""; tbPoseY.Text = ri.y + ""; tbPoseZ.Text = ri.z + ""; tbPoseW.Text = ri.w + ""; tbPoseP.Text = ri.p + ""; tbPoseR.Text = ri.r + ""; })); }); return(true); } catch (Exception ex) { this.LogWrite(ex.Message); return(false); } }, 1000); }
public int StartAsyn() { this.m_keepConnection = MvCancelTask.RunLoop(() => { this.Write(MacHalPlcEnumVariable.PC_TO_PLC_CheckClock, false); if (!SpinWait.SpinUntil(() => !this.Read <bool>(MacHalPlcEnumVariable.PC_TO_PLC_CheckClock_Reply), 2500)) { this.LockAssign(ref this.m_isConnected, false); return(false); } this.LockAssign(ref this.m_isConnected, true); this.Write(MacHalPlcEnumVariable.PC_TO_PLC_CheckClock, true); if (!SpinWait.SpinUntil(() => this.Read <bool>(MacHalPlcEnumVariable.PC_TO_PLC_CheckClock_Reply), 2500)) { this.LockAssign(ref this.m_isConnected, false); //throw new MvException("PLC connection T1 timeout"); return(false); } else { this.LockAssign(ref this.m_isConnected, true); } return(true); }, 1000); return(0); }
void TaskClose() { if (this.task != null) { using (var obj = this.task) obj.Cancel(); this.task = null; } }
public void Close() { if (this.PlcLdd != null) { using (var obj = this.PlcLdd) { obj.NLPLC_ClosePort(); this.PlcLdd = null; } } if (this.m_keepConnection != null) { using (var obj = this.m_keepConnection) { obj.Cancel(); SpinWait.SpinUntil(() => obj.IsEnd(), 1000); } this.m_keepConnection = null; } }
private void Button4_Click(object sender, EventArgs e) { if (this.task != null) { return; } if (this.task != null && !this.task.IsEnd()) { return; } this.task = MvCancelTask.RunLoop(() => { //大迴圈, 來回一次 try { robotHandler.SgsVerifyStartPns0102(ri => { this.Invoke(new Action(() => { X_VALUE.Text = ri.x + ""; Y_VALUE.Text = ri.y + ""; Z_VALUE.Text = ri.z + ""; W_VALUE.Text = ri.w + ""; P_VALUE.Text = ri.p + ""; R_VALUE.Text = ri.r + ""; E1_VALUE.Text = ri.e1 + ""; })); }); return(true); } catch (Exception ex) { this.LogWrite(ex.Message); return(false); } }, 1000); }
public int StartAsyn() { this.PlcLdd = new MvOmronPlcLdd(); this.PlcLdd.NLPLC_Initial("192.168.0.200", 2); this.m_keepConnection = MvCancelTask.RunLoop(() => { this.Write(MvEnumPlcVariable.PC_TO_PLC_CheckClock, false); if (!SpinWait.SpinUntil(() => !this.Read <bool>(MvEnumPlcVariable.PC_TO_PLC_CheckClock_Reply), 2500)) { this.LockAssign(ref this.m_isConnected, false); return(false); } this.LockAssign(ref this.m_isConnected, true); this.Write(MvEnumPlcVariable.PC_TO_PLC_CheckClock, true); if (!SpinWait.SpinUntil(() => this.Read <bool>(MvEnumPlcVariable.PC_TO_PLC_CheckClock_Reply), 2500)) { this.LockAssign(ref this.m_isConnected, false); //throw new MvException("PLC connection T1 timeout"); return(false); } else { this.LockAssign(ref this.m_isConnected, true); } return(true); }, 500); return(0); }