- 博客(84)
- 收藏
- 关注
原创 1. ModBus从入门到精通
手写CRC/帧拼接/解析极易出错(字节序、位操作、异常帧处理),NModbus4封装了所有底层细节,只留干净的API。:站在协议制定者的角度思考——协议的目的是数据传输,存储区是数据的载体,功能码是行为的代号。从站地址 + 功能码 + 开始地址 + 写入数量 + 字节计数 + 写入数据 + CRC。,与多数工业设备一致。从站地址 + 功能码 + 开始地址 + 读取数量 + CRC。从站地址 + 功能码 + 具体地址 + 写入数据 + CRC。从站地址 + 功能码 + 开始地址 + 写入数量 + CRC。
2026-06-01 22:06:43
286
原创 标定加测量的上位机与视觉通信指令
• 吸嘴1:SC2,... → DD2,...(9+3) → EC2,...• 吸嘴2:SC3,... → DD3,... → EC3,...• 吸嘴3:SC4,... → DD4,... → EC4,...• 回:0,X,Y,R / 1,999,999,999。• 预指令:CC,921,0~2 → 回 0/1。• 空吸嘴:CC,12,N → 回 0,X,Y。• 下相机垫片:CC,16,N → 0,X,Y。• 下相机:CC,18,N → 0,X,Y,R。• 复检:CC,913,0~5 → 状态,垫片。
2026-05-26 07:59:15
199
原创 C#反射从入门到精通
反射(Reflection)是.NET框架提供的一种强大机制,它允许程序在运行时动态获取类型信息、创建对象、调用方法和访问属性,而无需在编译时知道这些类型的具体信息反射,就是这个让你能“透视”并操作这个黑盒子的X光机。Type 是一个包含类型信息的类。它是访问元数据(Metadata)的主要入口,是进行反射操作的“钥匙”或“手柄”。理解:每个数据类型都可以获取到Type, 反之 type对象也包含数据类型的所有信息:例如:类型名,成员type能做什么?通过Type 我们可以获取什么内容呢?获取类型名称。
2026-04-15 15:38:45
368
原创 C#上位机通信故障排查步骤手l
n可用端口:{string.Join(", ", SerialPort.GetPortNames())}");Log($"测试: {combo.Baud},{combo.Data},{combo.Parity},{combo.Stop}...");logCallback($"发现新端口: {string.Join(", ", newPorts)}");logCallback($"重启后端口: {string.Join(", ", portsAfter)}");
2026-01-14 23:29:06
717
原创 上位机与下位机通信排查手册
起始符][地址码][命令码][数据长度][数据域][校验码][结束符]检查通信参数配置(波特率、数据位、停止位、校验位)· 确认接口类型匹配(DB9、端子、RJ45)· 数据编码格式(ASCII/HEX/二进制)· 确认使用正确的电缆类型(直连线/交叉线)检查通信协议一致性(帧格式、命令码、校验方式)串口通信(RS232/RS485/RS422)· 测量信号线通断(TX、RX、GND)使用调试工具验证(串口助手、网络调试助手)· LRC校验(纵向冗余校验)是否一致。· 检查IP地址、子网掩码、网关配置。
2026-01-14 23:13:06
563
原创 上位机通信-通信介质与通信协议关系
匹配协议:通常选择基于流或报文的协议,如 EtherNet/IP、PROFINET IRT、或自定义的TCP/UDP协议。不适合低速的串行协议。· 一次成功的通信就像是:一辆符合标准的货车(协议数据帧),安全高效地通过一条合适的公路(介质),将货物(应用数据)从A地(上位机)运到B地(下位机)。· 例如 以太网线缆 上可以跑:Modbus TCP、EtherNet/IP、PROFINET、HTTP、OPC UA 等无数种协议。· 通信介质是 “公路基础设施”:泥土路、柏油路、高速公路、铁路、航线。
2026-01-14 23:03:19
427
原创 C#专题之线程
如果一个任务t1的执行是依赖于另一个任务t2的,那么就需要在这个任务t2执行完毕后才开始执行t1。这个时候我们就可以使用连续任务。 枚举定义的一个值。在 Thread 类中,可以设置。 属性,以影响线程的基本优先级,
2024-06-25 15:40:19
542
原创 C#高级语法之特性
创建特性其实就是创建特性类,特性类的命名必须以 Attribute 结尾} }} }} }特性类需要继承Attribute 类特性类需要添加sealed 关键字,表示该类不能被继承 表示该特性需要应用于类[ Information("tkzc" , "v1.0" , "这个类是用来....的类") ] internal class Program {} }"tkzc"
2024-06-25 15:38:54
565
原创 c#文件操作
用法:如果文件存在,则打开文件,清除这个文件中的内容,把指针指到文件的开始,保留最初文件的创建日期(重写);用法:打开或者新建文件夹,如果文件存在,则打开文件,把指针指到文件的开始;如果文件不存在,则新建文件。用法:追加,如果文件存在,则打开文件,把指针指到文件的末尾;如果文件不存在,则新建文件。用法:创建新的文件,如果文件已存在,则覆盖;用法:获得对文件的写入访问权限,进而可以将数据写入该文件(只写)。用法:创建新的文件,如果文件已存在,则会抛出异常。用法:打开文件,如果文件不存在,则会抛出异常。
2024-06-25 15:33:04
1239
原创 循环练习题50道
60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
2024-06-24 16:48:00
510
原创 苹果系统基本设置
设置方法:打开系统偏好设置-键盘-快捷键-聚焦,先把显示 聚焦搜索的对号去掉,去掉之后再点击输入法,在选择上一下输入法的右边按进去,按command+空格键,显示的图标变成command+空格键的符号就代表已经设置完成了,(注意:设置的快捷键不能与其他的快捷键重复,否则是无效的哦)因为电脑时间是根据定位和网络来自动同步时间的。打开系统偏好设置-启动磁盘-解锁,Macintosh HD是苹果系统,bootcamp是win系统,需要设置默认开机是那个系统,就点击对应的系统磁盘,最后点击重新启动就可以了。
2024-05-31 20:15:16
956
原创 深入了解Nodejs模块机制
模块上下文提供了exports对象用于导入导出当前模块的方法或者变量,并且它是唯一的导出出口。模块中存在一个module对象,它代表模块自身,exports是module的属性。一个文件就是一个模块//math.jsreturn sum;这样就可像test.js里那样在require()之后调用模块的属性或者方法了。
2024-05-26 02:21:45
609
原创 mac清理缓存的命令
请注意,在运行这些命令时可能需要管理员权限,因此你需要使用 sudo 来获取相应的权限。在运行这些命令之前,请确保你了解每个命令的作用,并且它们不会影响系统的稳定性或安全性。mac清理缓存的命令。
2024-05-26 01:42:30
2008
原创 mysql入门与mongoDB入门
sql 语句 结尾必须要有 分号启动:到安装的bin文件下 或者用可视化工具1: 登录:密码mysql 连接 -u用户名root -p2: 查看有哪些数据库3: 切换数据库use 数据库名;没有表: 必须创建表 create table ceshi(id int,name varchar(20));5: 查看表字段明细desc 表名;6: 插入数据insert into 表名 (字段1,..) values (值1...)插入的是数据,表中字段;
2024-05-15 11:15:16
552
原创 如何玩转github
很多的小伙伴,经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的问题:“我不会搜啊,我该怎么找呀?”,最终只能放弃。相信看完这篇文章,你就可以学会如何精准地在GitHub搜索项目。
2024-05-15 11:13:24
741
原创 【无标题】给线下技术培训一点yi jian
10.积极增加每一位学员的就业机会,对每一位学员未来发展有逐一规划与建议。5.启发学员的独立思考力度,培养学员独立思考的能力,提高独立解决问题的能力。7.注意主要矛盾,解决好重点和难点的教学(选择题),由浅入深,由易到难,由简到繁。3.教学与实操结合,老师教学的同时,要求你按照老师的效果,进行复现,会给新的针对性实操题。2.完善的教学设备,与具备现场落地设备要求,注意: 与工业互联网有关的设备很重要。8.考核,每日考核,每日考核老师汇总教学。9.因材施教,这个很有难度,很难接受的,将会有老师针对性教学。
2023-10-07 13:47:17
213
原创 BUG:pm2启动verdaccio报错:Invalid or unexpected toke
pm2启动verdaccio遇到bug:Invalid or unexpected token
2023-07-27 17:53:20
2213
原创 【无标题】
node中stream流学习方式什么是 stream在编写代码时,我们应该有一些方法将程序像连接水管一样连接起来– 当我们需要获取一些数据时,可以去通过"拧"其他的部分来达到目的。这也应该是 I/O 应有的方式。– Doug McIlroy. October 11, 1964 stream 并不是 node.js 特有的。从早先的 unix 开始,stream 便开始进入了人们的视野,在过去的几十年的时间里,它被证明是一种可依赖的编程方式,它可以将一个大型的系统拆成一些很小的部分,并且让这些部分之
2022-05-16 18:47:38
309
2
原创 父子组件通信时候触发的生命周期有哪些
父子组件通信时候触发的生命周期有哪些1:父子组件之间共享了数据2:数据是响应式,并且会存在更新线上先说结婚,再解释,为什么是这样结果初始化结论初始化数据父:beforeCreate created 子 beforeCreate created初始化渲染dom父beforeMount 子beforeMounte 子 mounted 父mounted生命周期为什么这么执行?因为vue的模板需要经过编译处理,变为真是的dom,1:vue模板是根据初始化响应式数据生成虚拟
2022-05-13 10:12:23
279
原创 微前端简介
微前端概念详解什么是微前端?微前端(Micro-Frontend),是将微服务(Micro-Services)理念应用于前端技术后的 相关实践,使得一个前端项目能够经由多个团队独立开发以及独立部署。01 微前端开发的特性技术无关:各个开发团队都可以自行选择技术栈,不受同一项目中其它团队影 技术无关 响;代码独立:各个交付产物都可以被独立使用,避免和其它交付产物耦合;样式隔离:各个交付产物中的样式不会污染到其它组件;原生支持:各个交付产物都可以⾃由使⽤浏览器原⽣ API,⽽⾮要求使⽤封装
2022-05-11 22:15:28
1736
原创 markdown语法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-03-28 23:19:53
170
原创 monorepo是做什么
monorepo做什么?用来管理多套第三方库,第三方库如下:组件库插件工具函数库项目框架模板问题:以上4个我都写过,从来没有成体系?如何整合到一起,更加容易管理??monorepo工具 我可以使用monorepe,将我写过的所有的组件库、插件、工具函数库、项目模板管理为一个系列问题:多个第三方库配置文件过多;如果管理mongorepo 帮你解决问题:如何解决 vue中的工具函数a,如何在react和angular中使用?将工具函数a变为公共的包,在不同的框架框架独立安装
2021-12-27 20:10:08
966
原创 数据结构与算法导论
你所编写的程序都是由数据结构与算法构成。程序优化问题可以从算法结合合理的数据结构来考虑。算法复杂度时间复杂度:指的是程序执行时间为。可以从两个角度考虑:1 电脑配置越好计算速度越快。2 优化程序,较低复杂度。**时间复杂度等级比较 **O(1)<O(logn)<O(n)<O(n)2空间复杂度指的是数据在内存中所用的单元格复杂度目前可以通过消耗空间方式来优化时间。下一节 具体结合程序介绍复杂度问题...
2021-11-05 23:56:24
236
原创 GitHub的fork
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《GitHub的fork 使用方式》, 一起来围观吧 https://blog.csdn.net/yale_zy/article/details/106891761?utm_source=app&app_version=4.5.2
2021-09-16 02:20:59
250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅