private void ToClear() { for (int i = 0; i < 6; i++) { SinglePlatFormControl.P2P_runing_start(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, i, m_ControlData.mConfigXML.FU_Acc, m_ControlData.mConfigXML.FU_speed, m_ControlData.mConfigXML.FU_speed, 0); } WaitForTime tm = new WaitForTime(1.0f, /*ToReady*/ Showms); }
private void CompleteFuWei() { for (int i = 0; i < 6; i++) { SinglePlatFormControl.P2P_runing_StopOne(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, i); } WaitForTime tm = new WaitForTime(1.0f, TCaculator); }
private void TCaculator() { m_ControlData.mSinglePlatFormControl.thisplatform.CaculatorBili(m_ControlData.mConfigXML.P_XingC); m_ControlData.mSinglePlatFormControl.thisplatform.SetOrigPosAll(); for (int i = 0; i < 6; i++) { SinglePlatFormControl.P2P_runing_start(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, i, m_ControlData.mConfigXML.FU_Acc, m_ControlData.mConfigXML.FU_speed, m_ControlData.mConfigXML.FU_speed, 0); } WaitForTime tm = new WaitForTime(1.0f, ToClear); // m_ControlData.mSinglePlatFormControl.Set_Limitswitch(0); }
private void Timer2_Tick(object sender, EventArgs e) { //throw new NotImplementedException(); LightDataPoint ldx = new LightDataPoint(); LightDataPoint ldy = new LightDataPoint(); LightDataPoint ldz = new LightDataPoint(); ldx.XValue = talsec; ldy.XValue = talsec; ldz.XValue = talsec; //ld.YValue = Math.Sin(i * 0.1); //_chart.Series[0].DataPoints.Add(ld); if (BeginMove) { commandListBox.SelectedIndex = NowIndex; RunTime.Text = "时间:" + Math.Round(talsec, 2) + "秒"; RunState.Text = "俯仰:" + rx + "\n偏航:" + ry + "\n滚转:" + rz; RunType.Text = nowModel; RunSpeed.Text = nowSpeed.ToString() + "度/秒"; /// @Todo: 增加保存rx,ry,rz,以绘制曲线 ldx.YValue = rx; ldy.YValue = ry; ldz.YValue = rz; _chart.Series[0].DataPoints.Add(ldx); _chart.Series[1].DataPoints.Add(ldy); _chart.Series[2].DataPoints.Add(ldz); } else { rx = 0; ry = 0; rz = 0; float[] abc = m_ControlData.mSixPlaneF.rounds(0, 0, 0); float[] Le = m_ControlData.mSixPlaneF.Six_Platform_RoundF(0, 45, 0, abc[0], abc[1], abc[2]); int[] Spos = m_ControlData.mSinglePlatFormControl.thisplatform.Conver_LengthTopluse2(Le); for (int i = 0; i < 6; i++) { Spos[i] = Spos[i] + m_ControlData.mConfigXML.DeltalPos[i]; } SinglePlatFormControl.SixSame_ManualStart(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, Spos, 10, 10 * 0.01f, 0); RunTime.Text = "时间:" + Math.Round(talsec, 2) + "秒"; RunState.Text = "俯仰:" + rx + "\n偏航:" + ry + "\n滚转:" + rz; RunType.Text = "N/A"; RunSpeed.Text = nowSpeed.ToString() + "度/秒"; EnabledBeginEnd(true); timer2.Stop(); } }
private void CalutorToMiddle(Action callback) { if (usemanual) { ///计算中间位置每个缸的长度 /// float[] abc = m_ControlData.mSixPlaneF.rounds(0, 0, 0); float[] Zitaidata = m_ControlData.mSixPlaneF.Six_Platform_RoundF(0, 45, 0, abc[0], abc[1], abc[2]); ///将缸的长度转换成脉冲 int[] Spos = m_ControlData.mSinglePlatFormControl.thisplatform.Conver_LengthTopluse2(Zitaidata); //for (int i = 0; i < 6; i++) //{ // Spos[i] = Spos[i] + m_ControlData.mConfigXML.DeltalPos[i]; //} TargetPos = Spos; for (int j = 0; j < 6; j++) { SinglePlatFormControl.P2P_runing_start(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, j, 1, m_ControlData.mConfigXML.FU_speed, m_ControlData.mConfigXML.FU_speed, Spos[j]); } } else { ///计算中间位置每个缸的长度 /// float[] abc = m_ControlData.mSixPlaneF.rounds(0, 0, 0); float[] Zitaidata = m_ControlData.mSixPlaneF.Six_Platform_RoundF(0, 45, 0, abc[0], abc[1], abc[2]); ///将缸的长度转换成脉冲 int[] Spos = m_ControlData.mSinglePlatFormControl.thisplatform.Conver_LengthTopluse2(Zitaidata); for (int i = 0; i < 6; i++) { Spos[i] = Spos[i] + m_ControlData.mConfigXML.DeltalPos[i]; } TargetPos = Spos; for (int j = 0; j < 6; j++) { SinglePlatFormControl.P2P_runing_start(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, j, 1, m_ControlData.mConfigXML.FU_speed, m_ControlData.mConfigXML.FU_speed, Spos[j]); } } //回中后回调赋值给ReachAndCallBack ReachAndCallBack = callback; //将CheckToDoCallback检查回中是否完成放到mthread1线程 mDocheck = null; mDocheck = CheckToDoCallback; }
//public event Action WriteConfig = null; private void OnCompleteL() { EnabledBeginEnd(true); float[] abc = m_ControlData.mSixPlaneF.rounds(0, 0, 0); float[] Le = m_ControlData.mSixPlaneF.Six_Platform_RoundF(0, 45, 0, abc[0], abc[1], abc[2]); int[] Spos = m_ControlData.mSinglePlatFormControl.thisplatform.Conver_LengthTopluse2(Le); for (int i = 0; i < 6; i++) { Spos[i] = Spos[i] + m_ControlData.mConfigXML.DeltalPos[i]; } SinglePlatFormControl.SixSame_ManualStart(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, Spos, 10, 10 * 0.01f, 0); //if (WriteConfig != null) { WriteConfig(); } }
private void CaculatorTosend() { if (BeginMove) { TimeSpan tmpd = DateTime.Now - StartTime; talsec = tmpd.TotalSeconds; float starttime = Mlist[NowIndex].StartTime; float edtime = Mlist[NowIndex].EndTime; int model = Mlist[NowIndex].Model; nowSpeed = Mlist[NowIndex].cury_K; switch (model) { case 0: rz = Mlist[NowIndex].GetAngle((float)talsec); nowModel = "俯仰"; break; case 1: ry = Mlist[NowIndex].GetAngle((float)talsec); nowModel = "偏航"; break; case 2: rx = Mlist[NowIndex].GetAngle((float)talsec); nowModel = "滚转"; break; case 3: nowModel = "延迟"; break; default: nowModel = "N/A"; break; } if (m_ControlData.mSinglePlatFormControl.HaveCompeleteFuwei) { float[] abc = m_ControlData.mSixPlaneF.rounds(rx, ry, rz); float[] Le = m_ControlData.mSixPlaneF.Six_Platform_RoundF(xx, yy, zz, abc[0], abc[1], abc[2]); int[] Spos = m_ControlData.mSinglePlatFormControl.thisplatform.Conver_LengthTopluse2(Le); for (int i = 0; i < 6; i++) { Spos[i] = Spos[i] + m_ControlData.mConfigXML.DeltalPos[i]; } SinglePlatFormControl.SixSame_ManualStart(m_ControlData.mSinglePlatFormControl.thisplatform.g_handle, Spos, m_ControlData.mConfigXML.WorkSpeed, m_ControlData.mConfigXML.WorkSpeed * 0.01f, 0); } if (talsec > edtime) { if (NowIndex + 1 < Mlist.Count) { NowIndex++; } else { G_Over(); } } } else { EnabledBeginEnd(true); } }