【C#】grbl-plotter 源码学习笔记(四)-MachineControl

  十一、MachineControl

db1eee9968463e9680680162c8a3399a.png

11.1 CheckUpdate.cs

通过Web请求获取远程版本信息,实现版本自动检查的后台逻辑,为界面提供版本更新提示。

d9f5cff5b3ff3bfa976eeacf964f01ee.png

11.2 Control2ndGRBL.cs

Control2ndGRBL类管理一个用于GRBL控制的额外窗体,包括处理用户输入、发送GRBL命令和更新界面上的状态和位置信息。代码中采用了多国语言支持,日志记录,以及对用户操作的响应。

f8e54dd7e83444e98c93b03c5af3a9b7.png

cb52e8e3bbcb4e3e6931f5cc763c2400.png

11.3 ControlCameraForm.cs

这个窗体类封装了摄像头的所有交互操作,用于在 GrblPlotter 应用程序中显示摄像头图像,处理图像,设置摄像头参数,以及校准摄像头。

32113be7605b10bfd317ae06965f5d68.png

5b8969361851556b2cd6209cc603710e.png

11.4 ControlCameraFormMisc.cs

ControlCameraForm.cs 包含用于视频帧处理、形状和位置检测以及真实世界坐标映射的复杂逻辑。它以事件驱动的模式控制摄像头,并执行图像处理,以适应如 CNC 这类需要视觉数据辅助操作的应用。

a3fe2ca61743d623d37d85bcd8113604.png

11.5 ControlCoordSystem.cs

代码的功能是提供一个用户界面,用于管理和调整GRBL控制器的坐标系统,包括显示和设置不同的工作坐标系统(G54-G59, G28, G30等),以及工具长度偏移(TLO)。用户可以通过这个界面发送G-code命令来选择和设置控制板上的坐标系统。

326aac7a390b75660d53705055fa6830.png

0a0a0d318d6c64ac1c275a3ac63cb383.png

11.6 ControlDIYControlPad.cs

这段代码的主要功能是实现了一个可与 GRBL 控制器进行通信的 DIY 控制面板,用户可以通过串口发送指令,并接收指令执行的反馈。窗口还提供了日志功能,记录通信过程中的所有事件

2e2b823fa4bfb42ac341fbff92ce28d0.png

b01dc82ab507e7536a7936a6b028b458.png

11.7 ControlGamePad.cs

b69d1af4c1ff0d201d681167a76a58ab.png

11.8 ControlHeightMap.cs

主要用于处理三维打印和 CNC 雕刻中的高度图。它允许用户加载、编辑、保存以及从高度图生成 G-Code

0f16fa1483fa58ccb54e1e0ae8f8d348.png

c391de40051e72bb027017e1ac740a1c.png

11.9 ControlHeightMapClass.cs

61355051ff893c5ad140aad289c810ae.png

11.10 ControlJogPathCreator.cs

该代码实现了一个方便用户设计和编辑Jog路径的图形界面(GCode发送器)。用户可以通过鼠标操作绘制路径,然后将这些路径转换为GCode或者保存到XML文件中。还能够调整视图的缩放和移动,对路径进行旋转、撤销或删除操作

41b49c827e6750b62768752b54dd9838.png

a59c9667fa86ae4df1ec08cfcea5e1ac.png

11.11 ControlLaser.cs

205f634d52a7a53d8c4f57ad4d0be1d5.png

b0d7fd23c4002c6fa6f6acf3e586e0e8.png

11.12 ControlPowerSaving.cs

60330f9e66ed4de9b946e4c25d13849d.png

11.13 ControlProbing.cs

4a2f061aecdbf4079a27605281fb3137.png

ab8e52b9df8e05fad4617b7b835058ef.png

11.14 ControlProcessAutomation.cs

057a35856392ff99c07d323d9dc87bd5.png

a532a58f9575d013f8e42d36567574f6.png

11.15 ControlProjector.cs

1c2ceb2f2e2bbb12f167c747884c9dcc.png

71e99ec378eed5e09856ef382d674938.png

11.16 ControlSerialForm.cs

8f53ce3062deef9beb521efebeb8c884.png

a1cb33539973ad036f7f8121abfcdc50.png

11.17 ControlSetupForm.cs

aa118320642338259833f8927af51953.png

967993e60be877cd71bdff180cb5c0bd.png

11.18 ControlSetupUseCase.cs

ee0f36fd9b6124cb0650543d66e7b287.png

661270b7818bdf6d8788ab898fe79b50.png

11.19 ControlStreamingForm.cs

1ecca3c77861a4b77144229b0fd98a5d.png

f4eda28568704f74343d1c48eb62a096.png

11.20 ControlStreamingForm2.cs

2ed1e2c64eecab7c84769f5cd8fe31b1.png

6e86ab01fb89411b320c186cf693312e.png

11.21 GCode2DViewpaths.cs

fb8faf3c92bbb0bbbcb61ee9e3d3c11a.png

11.22 GCodeAnalyze.cs

该代码的主要功能是解析 GCode 指令,并生成相应的绘制路径用于 2D 视图的显示,同时还包括对 GCode 文本的附加分析,如计算预计运行时间、距离、处理子程序和 XML 标签等。它提供了一整套用于从 GCode 指令中提取视觉化信息的工具。

d668fadd656ed375c1258511a19af44b.png

11.23 GCodeParser.cs

580ed6c2a082608eea2c1527a14f53f5.png

da3768576bca92fc12b2d33cc88cca12.png

11.24 GCodeSelectionHandle.cs

这段代码的功能是管理GRBL Plotter中用户对图形的选中、移动、缩放、旋转操作,提供一个用户可以直观操作的图形界面。它处理选中图形的显示,响应用户的操作,并根据操作更新图形的显示状态。

97b0f0afe3a473b5296944885b72c6a6.png

11.25 GCodeSelectionProperties.cs

74062d93856c032077600f9ea9e0aabc.png

f984c68b897c3a916ff75e041d3f290f.png

11.26 GCodeSimulate.cs

b003688ea817bb33b3b1ef91841be4e8.png

11.27 GCodeSynthesize.cs

ba091f42a19675ed1aa62ed0d4669e57.png

11.28 GCodeTransform.cs

3b00f5ff38e7558bebad200e78bbba43.png

11.29 GCodeVisuAndTransform.cs

0266ddd91915751c6c49db950cb68c76.png

11.30 GCodeVisuWorker.cs

5b4129744fbe6bfd663b573c06b7a117.png

dabbafff0bc260092f51c71e7f58602d.png

11.31 GrblRelated.cs

5ad25201061e15464bdbd9a3345e4ee2.png

11.32 GrblSetupForm.cs

e1a24ef3653e0b3df8540e0c0c07b115.png

4d0395a69dbec6bf406acc7070435653.png

11.33 IniFile.cs

697744d8143b78e03a06464ad82a806f.png

11.34 NativeMethods.cs

b59b6ca1be0530bc05d067c3aa2cb6a7.png

11.35 SerialPortFixer.cs

7e4782599082d6b5ce95e3a3c68bce4b.png

11.36 SimpleSerialForm.cs

a33e4522750efd3feb536795b6e77e21.png

b99dcaea096d6da82eef15c01501c5ff.png

The End

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805054.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【笔记】【开发方案】APN 配置参数 bitmask 数据转换(Android KaiOS)

一、参数说明 &#xff08;一&#xff09;APN配置结构对比 平台AndroidKaiOS文件类型xmljson结构每个<apn>标签是一条APN&#xff0c;包含完成的信息层级数组结构&#xff0c;使用JSON格式的数据。最外层是mcc&#xff0c;其次mnc&#xff0c;最后APN用数组形式配置&am…

6-ROX 羧酸,6-Rhodamine X carboxylic acid,用作需要透膜的生物探针的荧光报告基团

2891791-11-8 (6位); 2196185-85-8 (5位)&#xff0c;6-ROX 羧酸&#xff0c;6-Rhodamine X carboxylic acid&#xff0c;用作需要透膜的生物探针的荧光报告基团 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;2891791-11-8 (6位); 2196185-85-8 (5位)&#xff0c…

JAVA--File类与IO流

目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2、列出目录的下一级 3、File类的重命名功能 4、判断功能的方法 5、创建、删除功能 2. IO流原理及流的分类 2.1 Java IO原理 2.2 流的分类 2.3 流的API 3. 节点流之一…

Java SpringBoot测试OceanBase

对上篇mysql导入到OceanBase中的数据库进行代码测试&#xff0c;写了个demo包含测试方法&#xff0c;在原mysql库中成功执行&#xff0c;迁移到OceanBase时看是否能不修改业务代码而成功执行测试方法&#xff1a; 代码基于SpringBoot MyBastis测试增删改查、批量新增、多表联…

YOLOv8改进 | SPPF篇 | 利用YOLOv9最新的SPPELAN模块改进SPPF(全网独家创新,附手撕结构图)

一、本文介绍 本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的SPPELAN模块来改进SPPF&#xff0c;其中YOLOv9针对于这个模块并没有介绍&#xff0c;只是在其项目文件中用到了&#xff0c;我将其整理出来用于我们的YOLOv8的项目&#xff0c;同时空间金字…

【Java程序设计】【C00288】基于Springboot的篮球竞赛预约平台(有论文)

基于Springboot的篮球竞赛预约平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的篮球竞赛预约平台 本系统分为前台功能模块、管理员功能模块以及用户功能模块。 前台功能模块&#xff1a;用户进入到平台首页&a…

【java面试系列】服务的限流

目录 一、常用的限流算法1.固定窗口计数器(计数器算法)2 滑动窗口计数器算法3. 漏桶算法4 令牌桶算法(`常用`)Google开源项目Guava中的RateLimiter使用的就是令牌桶控制算法二、 分布式限流1、网关层(Nginx、Openresty、Spring Cloud Gateway等)流量限制nginx限流Spring Cl…

使用向量数据库pinecone构建应用01:相似语义检索 Semantic Search

Building Applications with Vector Databases 下面是DeepLearning.AI上面这门课的学习笔记&#xff1a;https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement…

(六)激光线扫描-三维重建

本篇文章是《激光线扫描-三维重建》系列的最后一篇。 1. 基础理论 1.1 光平面 在之前光平面标定的文章中,已经提到过了,是指 激光发射器投射出一条线,形成的一个扇形区域平面就是光平面。 三维空间中平面的公式是: A X + B Y + C Z + D = 0 A X+B Y+C Z+D=0

jetson nano——安装archiconda

目录 1.archiconda3我在这提供了下载链接&#xff0c;点解下面链接即可1.看好文件所在位置&#xff0c;如果装错了&#xff0c;那么环境变量的路径自己进行相应的修改。2.添加环境变量 2.可能部分伙伴输入一些激活&#xff0c;啥的命令激活不了&#xff0c;那么输入下面这些代码…

Threejs 实现3D影像地图,Json地图,地图下钻

1.使用threejs实现3D影像地图效果&#xff0c;整体效果看起来还可以&#xff0c;底层抽象了基类&#xff0c;实现了通用&#xff0c;对任意省份&#xff0c;城市都可以只替换数据&#xff0c;即可轻松实现效果。 效果如下&#xff1a; 链接https://www.bilibili.com/video/BV1…

【前端素材】推荐优质后台管理系统Sneat平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;它通常作为一个独立的后台界面存在&#xff0c;供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能&#xff1a; 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

spark 少量key倾斜的join优化

背景 在使用spark join时&#xff0c;我们经常遇到少量key拥有大量的数据而导致的数据倾斜的问题&#xff0c;这导致了task任务数据处理非常不均匀而影响最终时效 少量key数据倾斜的join优化 这里有一个前提&#xff0c;join的另一边的表没有数据倾斜问题&#xff0c;也就是…

Python reversed函数

在Python编程中&#xff0c;reversed()函数是一个内置函数&#xff0c;用于反转序列对象的元素顺序。这个函数可以应用于列表、元组、字符串等可迭代对象&#xff0c;并返回一个反向迭代器&#xff0c;可以按照相反的顺序遍历序列中的元素。本文将深入探讨Python中的reversed()…

华清远见嵌入式学习——驱动开发——day9

目录 作业要求&#xff1a; 作业答案&#xff1a; 代码效果&#xff1a; ​编辑 Platform总线驱动代码&#xff1a; 应用程序代码&#xff1a; 设备树配置&#xff1a; 作业要求&#xff1a; 通过platform总线驱动框架编写LED灯的驱动&#xff0c;编写应用程序测试&…

ArcgisForJS如何在线编辑ArcGIS Server发布的几何要素?

文章目录 0.引言1.ArcGIS创建几何要素2.ArcGIS Server发布几何要素3.ArcgisForJS在线编辑ArcGIS Server发布的几何要素 0.引言 ArcGIS For JS 是一种用于创建和编辑地理信息的 JavaScript 库&#xff0c;它允许用户在线编辑 ArcGIS Server 发布的几何要素。本文从ArcGIS创建几…

linux drm mipi dsi lcd 点屏之设备树配置

linux drm mipi dsi lcd 点屏之设备树配置 设备树文档&#xff1a; https://elixir.bootlin.com/linux/v6.8-rc5/source/Documentation/devicetree/bindings/display/dsi-controller.yaml https://elixir.bootlin.com/linux/v6.8-rc5/source/Documentation/devicetree/binding…

C# OpenCvSharp 利用白平衡技术进行图像修复

目录 效果 灰度世界(GrayworldWB)-白平衡算法 完美反射(SimpleWB)-白平衡算法 基于学习的(LearningBasedWB)-白平衡算法 代码 下载 C# OpenCvSharp 利用白平衡技术进行图像修复 OpenCV xphoto模块中提供了三种不同的白平衡算法&#xff0c;分别是&#xff1a;灰度世界(G…

了解人工智能的13个细分领域

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;作为当今最热门和前沿的技术之一&#xff0c;已经在各种领域发挥着越来越重要的作用。随着人工智能技术的不断进步和应用&#xff0c;AI的细分领域也越来越多。目前&#xff0c;根据AI的应用领域和特…

Java向ES库中插入数据报错:I/O reactor status: STOPPED

Java向ES库中插入数据报错&#xff1a;java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STO 一、问题问题原因 二、解决思路 一、问题 在使用Java向ES库中插入数据时&#xff0c;第一次成功插入&#xff0c;第二次出现以下错误&#xff1a…