private void textBox1_TextChanged(object sender, EventArgs e) //IP address change event { aDashBoard = new DashBoard(textBox1.Text); if (aRTClient.Status != RTClientStatus.Stopped) { aRTClient.stopRTClient(); } aRTClient = new RTClient(textBox1.Text); if (aRTDE.isSynchronizing) { aRTDE.stopSync(); } aRTDE = new RTDE(System.Windows.Forms.Application.StartupPath + "\\RTDEConfig.xml", textBox1.Text); }
private void moveCompleted(object sender, EventArgs e) { aRTDE.stopSync(); MainWindow parentWindow = ((Grid)this.Parent).Parent as MainWindow; parentWindow.removeRobotDisplay(); }
private IEnumerator timer2_Tick() { while (true) { try { aRTDE.startSync(); //启动 RTDE server 同步 } catch { throw; } if (aRTDE.isSynchronizing) { RTDEOutputObj outobj = aRTDE.getOutputObj(); //读取 RTDE output 数据 CurTCPPos = outobj.actual_TCP_pose; //CurPX = outobj.actual_TCP_pose.X; //CurPY = outobj.actual_TCP_pose.Y; //CurPZ = outobj.actual_TCP_pose.Z; //CurRX = outobj.actual_TCP_pose.Rx; //CurRY = outobj.actual_TCP_pose.Ry; //CurRZ = outobj.actual_TCP_pose.Rz; CurJointPos = outobj.actual_q; //CurJ1 = outobj.actual_q.X;//机座 //CurJ2 = outobj.actual_q.Y;//肩部 //CurJ3 = outobj.actual_q.Z;//肘部 //CurJ4 = outobj.actual_q.Rx;//手腕1 //CurJ5 = outobj.actual_q.Ry;//手腕2 //CurJ6 = outobj.actual_q.Rz;//手腕3 string tcppose = outobj.actual_TCP_pose.ToString(); RTDEMessage aMsg = new RTDEMessage("Content of message", "Message source", RTDEMessage.INFO_MESSAGE); //创建 RTDEMessage 对象, Warning Level 为 Info aRTDE.sendMessage(aMsg); //发送 RTDEMessage RTDEInputObj inobj = new RTDEInputObj(); //创建 RTDE input 对象 // 将数字输出置为 0b00000011,RTDEInputObj 同步数据一定要是 RTDEConfig.xml 文件中已经配置好的 input inobj.standard_digital_output = 3; aRTDE.setInputObj(inobj); //发送 input } //TCP当前位置 if (CurTCPPos != null) { //ActTCPTB_X.Text = (CurTCPPos.X * 1000).ToString("0.00"); //ActTCPTB_Y.Text = (CurTCPPos.Y * 1000).ToString("0.00"); //ActTCPTB_Z.Text = (CurTCPPos.Z * 1000).ToString("0.00"); //ActTCPTB_RX.Text = (CurTCPPos.Rx).ToString("0.00"); //ActTCPTB_RY.Text = (CurTCPPos.Ry).ToString("0.00"); //ActTCPTB_RZ.Text = (CurTCPPos.Rz).ToString("0.00"); } //关节当前位置 if (CurJointPos != null) { Pos[0].text = (CurJointPos.X * 180 / PI).ToString("0.00"); Pos[1].text = (CurJointPos.Y * 180 / PI).ToString("0.00"); Pos[2].text = (CurJointPos.Z * 180 / PI).ToString("0.00"); Pos[3].text = (CurJointPos.Rx * 180 / PI).ToString("0.00"); Pos[4].text = (CurJointPos.Ry * 180 / PI).ToString("0.00"); Pos[5].text = (CurJointPos.Rz * 180 / PI).ToString("0.00"); } aRTDE.stopSync(); //关闭 RTDE server 同步,释放资源 yield return(new WaitForSeconds(1f)); } }