news 2026/5/23 16:23:17

上位机状态机开发之旋转标定

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上位机状态机开发之旋转标定

上位机状态机开发之旋转标定

一 平移旋转标定

/// <summary>/// 平移旋转标定/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidmaterialButton17_Click(objectsender,EventArgse){// 一 初始化操作vartask1=Task.Run(()=>{//// 1.回零//commomCMD.ReturnOrg();//// 2.回避让位//commomCMD.MoveSafePlace();});// 二运行主流程// 协同取消操作cts3=newCancellationTokenSource();// 当前步骤CurrentStep3=0;Tasktask2=task1.ContinueWith(newAction<Task>((t)=>{boolresult=RotateCalibProcess();}),cts3.Token);}

二 定义旋转标定工序

publicenumRotateStep{旋转1,旋转2,旋转3,旋转4,旋转5,}

三 定义全局变量

privateCancellationTokenSourcects3;//当前步骤privateRotateStepCurrentStep3=0;publicboolIsPause3=false;

四 RotateCalibProcess

/// <summary>/// 旋转标定流程/// </summary>/// <returns></returns>privateboolRotateCalibProcess(){// 循环while(cts3.IsCancellationRequested==false){Invoke(newAction(()=>{rtb_info.AppendText($"执行到步骤【{(int)CurrentStep3+1}】:"+CurrentStep3.ToString()+"\n");}));switch(CurrentStep3){caseRotateStep.旋转1:// 1.移动到第一个位置commomCMD.Move(txtMStartX.Text.Trim(),txtMStartY.Text.Trim(),txtMStartZ.Text.Trim(),-20);// 2.触发拍照CommunicateService.Instance.Send3("Rotate,-20");// 3.(等待拍照结束)拍照结束才能走Thread.Sleep(3000);CurrentStep3++;break;caseRotateStep.旋转2:// 1.移动到第二个位置// 1.移动到第一个位置commomCMD.Move(txtMStartX.Text.Trim(),txtMStartY.Text.Trim(),txtMStartZ.Text.Trim(),-10);// 2.触发拍照CommunicateService.Instance.Send3("Rotate,-10");// 3.(等待拍照结束)拍照结束才能走Thread.Sleep(3000);CurrentStep3++;break;caseRotateStep.旋转3:// 1.移动到第一个位置commomCMD.Move(txtMStartX.Text.Trim(),txtMStartY.Text.Trim(),txtMStartZ.Text.Trim(),0);// 2.触发拍照CommunicateService.Instance.Send3("Rotate,0");// 3.(等待拍照结束)拍照结束才能走Thread.Sleep(3000);CurrentStep3++;break;caseRotateStep.旋转4:// 1.移动到第一个位置commomCMD.Move(txtMStartX.Text.Trim(),txtMStartY.Text.Trim(),txtMStartZ.Text.Trim(),10);// 2.触发拍照CommunicateService.Instance.Send3("Rotate,10");// 3.(等待拍照结束)拍照结束才能走Thread.Sleep(3000);CurrentStep3++;break;caseRotateStep.旋转5:// 1.移动到第一个位置commomCMD.Move(txtMStartX.Text.Trim(),txtMStartY.Text.Trim(),txtMStartZ.Text.Trim(),20);// 2.触发拍照CommunicateService.Instance.Send3("Rotate,20");// 3.(等待拍照结束)拍照结束才能走Thread.Sleep(3000);CurrentStep3++;break;default:break;}// 暂停while(true){if(IsPause3){Thread.Sleep(20);System.Windows.Forms.Application.DoEvents();}else{break;}}}returnfalse;}

五 停止流程

/// <summary>/// 停止流程/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidmaterialButton16_Click(objectsender,EventArgse){cts3.Cancel();}

六 暂停流程

/// <summary>/// 继续运行/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidmaterialButton11_Click(objectsender,EventArgse){IsPause3=true;}

七 继续流程

/// <summary>/// 继续运行/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidmaterialButton11_Click(objectsender,EventArgse){IsPause3=false;}


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 13:04:14

比Google快10倍:AI秒解Python模块错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个交互式Python错误诊断工具原型&#xff0c;能够自动检测module is not callable错误&#xff0c;分析调用栈&#xff0c;并立即提供修复建议。工具应展示错误定位和修正的完…

作者头像 李华
网站建设 2026/5/22 1:48:18

传统开发vsAI辅助:Pigx项目效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请生成一个完整的Pigx权限管理模块对比案例&#xff1a;1. 传统方式手写代码&#xff08;预计需要8小时&#xff09; 2. AI生成优化版本。要求包含&#xff1a;用户角色关联、菜单权…

作者头像 李华
网站建设 2026/5/22 11:37:38

SQL Server 2022极速安装:比传统方法快3倍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个SQL Server 2022一键安装脚本生成器&#xff0c;功能包括&#xff1a;1. 基于应答文件的自动安装配置&#xff1b;2. 并行安装组件优化&#xff1b;3. 静默安装参数自动生成…

作者头像 李华
网站建设 2026/5/21 11:50:15

零基础入门:30分钟学会Modbus TCP通信开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向初学者的Modbus TCP教学演示程序。要求&#xff1a;1. 图形化展示协议通信过程&#xff1b;2. 提供可交互的示例代码&#xff1b;3. 包含常见问题解答&#xff1b;4. 内…

作者头像 李华
网站建设 2026/5/22 2:20:22

AI帮你一键搞定.deb包安装,告别命令行恐惧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个AI辅助的.deb包安装工具&#xff0c;用户只需输入.deb文件名或描述&#xff0c;系统自动完成以下功能&#xff1a;1. 分析.deb包内容及依赖关系 2. 生成适合当前Linux发行版…

作者头像 李华
网站建设 2026/5/22 12:38:33

LaTeX学习笔记:学术文档排版

LaTeX 学习笔记&#xff1a;学术文档排版 在实际应用中&#xff0c;如果我们仅仅需要完成的是《[[LaTeX学习笔记&#xff1a;文档排版基础]]》中所介绍的那些纯文本排版工作&#xff0c;其实并不一定需要用到 \(\LaTeX\) 这样复杂的排版系统。毕竟&#xff0c;\(\LaTeX\) 的核心…

作者头像 李华