刚好在下载环境啊,然后给大家再分享一些。我的理解就是,如果你是在 windows 生态下选择这个上位机开发的时候,在 windows 下你没有其他选择,你一定要搞 casp。 在 点 net 的 生态下,用 casp 的 vfoam 去搞这种 qt, 不要问为什么,因为在 windows 生态下你没有其他选择,因为这个 casp 就是 微软家的。所以说你 不要去想着在 windows 下用 qt 去搞,你就用这个 casp 去搞。
粉丝3698获赞1.0万

想学 plc 上位机的朋友,必须推荐三大公控设备开发软件,其实你只要熟练掌握这三大语言当中的一款啊,老板都得听你的, 足够你嘚瑟。废话不多说,我们直接来看一下这个开发语言到底有哪三大。第一个 c 加加,第二个 say shop, 第三个 v b 点点,他们都是常用于公控设备界面开发的编程软件,他们各自有自己的特点和优势。第一个, c 加加, c 加加是一种通通的高级编程语言,具有广泛的应用领域,他提供更高的性能和灵活性,可以直接操作内存和底层的硬件资源, 性能要求较高,需要直接返还底层硬件的公控界面。公控设备界面开发 c 加加可能是一个不错的选择, 但是值得注意的是啊, c 加加编程相对会比较复杂,刚开始玩的时候可能你玩不转。第二个, c 上 c 下不是微软开发的一种面向对象编程的语言,注意了,是面向对象,什么叫对象? 这样就是面板上,面板上的所有的空间,所有图标,所有的图表,可以直接对他进行编程啊,他给我们提供了一种丰富的框架和库,简单开发过程具有较高的开发效率,所以 c 效具有良好的可读性和应用性,适合快速的开发公共设备的一些新手使用。 它同时也具备底层硬件的访问能力,虽然它没有 c 加加明火,但是仍然能够满足我们大部分工程师的一个硬件界面的开发。第三个就是 v b 点 点。 net vb 点 net 同样是微软开发的一种面向对象的编程员啊,专为这个点 net 平台设计啊,他与以前我们的那个 vb 六点零相比的话,改进很不少, 很多人其实都放弃了用那个 vb 六点零去做,包括老王以前也用 vb 六点零去做,他是 vb 六点零的一个升级版,而且他的所有的功能百分之九十是一样的,但是有关键的一些问题能够得到提升,然后让他让对我们的设计产生深远的影响。 与 c 校服相比的话, vb 点。 net 语法呢,更接近于自然语言,对于初学者来讲非常友好。 vb 点 net 对快速开发和可视化编程界面有一定的优势哦, 特别是可视化 v b 语言,不管是 v b 六点零还是 v b 店内,它的可视化做的相当好啊。所以老王就总结了,如果说 你要学习 prc 公共界面的尚未及开发,给你一个方向或者建议啊。好。第一个方面,如果说从直接操作底层逻辑或者有较高的性能要求的,比如大型项目的话,你可以用 c 加加啊, 如果相对于简单需要开发快速开发的,你可以用 v 加。呃,你可以用 c 笑和 v b 点列的去做更合适啊。第二个,如果你的开发团队有有 c 加加的,那肯定是 c 加,有 v b 的肯定是 v b, 有 c 笑的肯定是 c 笑。 三个方面,如果从开发工具和框架方面来说的话哈考虑可用的开发工具和框架呢? c 专家呢,有广泛的开发工具和库啊, c shop 和 v b 点。 net 呢,他依赖的是点。 net 平台 提供的工具与框架,所以按我个人来讲,没有单一的更强哈,只有合适的选择。如 如果说你真的是要做上位机开发软件的话,选择你合适或者你以前接触过的一个语言去做就完全够了。如果有想学习 prc 的朋友呢?或者是公共行业的一些朋友呢? 可以关注老王,老王每天会分享 p r c 学习方法,心得体会、框架模板。

兄弟们,今天分享入门 c shop 上位机开发七天语法通关计划,这是我们为期七天的学习路径图。每一天我们都会聚焦一个核心主题,从最基础的环境搭建开始,逐步深入到面向对象编程,最后通过一个综合案例来巩固所学知识。 跟着这个节奏,你一定能稳步前进。第一天我们首先要安装微数搜丢二零二二,并确保奈特六点零开发环境配置正确。 然后我们会简单了解一下 c shop 这门语言。最后亲手编辑并运行我们的第一个控制台程序。经典的 hell world。 今天的任务就是独立完成环境配置,并编写一个简单的程序,尝试定义不同类型的变量,以及如何从控制台读取输入和输出信息。第二天的核心是数据,我们会学习 c shop 中的各种数据类型以及各种类型之间的转换,同时我们还会掌握常用运算符。今天的时间任务是编辑一个类型转换的测试程序,以及一个功能完整的简易计算器。 在完成计算器的过程中,你需要特别注意如何处理用户可能输入的错误数据,这能帮助你更好地理解异常处理的重要性。第三天学习重点是 if else 和 switch case 这两种条件判断语句,以及 for while, joy well 和 forrest 这四种循环语句,它们是实现复杂逻辑的基础。今天的实践任务非常经典, 你需要用 ifelse 语句来完成成绩分级,并使用循环语句来解决一些数学问题。挑战一下用嵌套循环打印出九九乘法表吧。今天我们会学习数组的基本用法,然后对比学习 aries 和更推荐使用的范型集合 list。 同时,我们还会掌握字母串的一些常用处理方法,比如分割、替换和截取。今天的实践将围绕数据处理展开。 你需要用数组来统计学生成绩,并使用 list t 来实现一个简单的字串管理功能。通过对比,你会深刻体会到范型集合的强大之处。第五天,我们将学习如何定义和调用方法,理解参数传递和返回值的概念。 接着我们会学习方法重载,即一个方法名可以对应多个不同的实现。最后,我们将挑战地规编程。今天的任务是练习方法的定义和使用。你需要编写几个工具方法,并尝试用地规来解决阶乘和斐波纳器数列这两个经典问题。 记住,写递归时一定要想清楚终止条件。今天我们将学习类和对象的概念,理解它们之间的关系。我们会学习如何定义类的字段和属性,并了解用于抽象对象的构造函数。今天的实践是定义一个 person 类,并为其添加属性和方法。 然后你需要创建几个 percent 对 象,通过调用它们的属性和方法来模拟现实世界中的行为。今天要完整做一个控制台版本项目,它包含了我们这一周学习的所有核心知识点,数据类型、流程、控制数组或集合方法,甚至是面向对象。 你需要实现学生信息的增删、改查等基本功能。到这里,我们的七天语法通关计划就全部结束了。如果有帮助,记得关注点赞加收藏哦!需要完整详细学习资料,我主页有获取方式,欢迎在评论区补充分享你的入门计划哦!

上位机如何通过字节嵌套发送表格数据到下位机?介绍一下我的方案,我用的是会川的 a m 五二幺 plc, 上位机是 c 井开发的。先介绍一下我的上位机,我用是定了一个整体的框架,然后就是通过窗口库开发加入到整个主框架当中实现。例如我这个点位位置数据表格用的是 data grid view 控件,在一个窗体库建立好大致的 ui, 再由主框架调用十例, 我创建一个右键菜单,通过右键菜单去添加轴十例。现在看到上位机的表格数据已经发送到 plc, 是 当行发送的形式, 拿到这些数据后还需要进行分类提取,最后将不同的数据分配到对应的数据当中,方便后续调用。这里重要的一点就是数据解析要单独一个任务执行,不能和采集并行,不然在扫描周期内数据接收会受到影响。 可以看到已经将单列的数据按照设定的数据进行分类,最后可以直接在运动控制过程当中去调用这些数据,实现不同轴的多点位的连续控制。当然后续也可以通过在上位机开发模型正逆解出来的位置,也可以通过这种方式发送到下位。

是 invoke? 什么是 i think await? 什么又是 task? 看完这个视频,你会掌握三个非常重要的多县城编程概念,建议点赞收藏!在 winform 程序中,如何从后台县城更新 ui 界面呢? 直接在后台县城中修改 ui 控件的属性,会导致程序崩溃。这时候我们就需要用到 invoke 方法。 invoke 方法可以将我们的操作投到 ui 县城上执行,从而保证了县城安全。 大家可以看到,右边上半部分直接赋值会抛出异常,而下半部分是使用 invoke 的 安全写法。原理就是通过 invoke 方法将更新 ui 的 委托发送到 ui 县城执行,这样就能安全地更新界面了。接下来我们来看看 a sync await, 这是 c shop 中简化 e 部编程的利器。它的工作原理是这样的,当程序执行到 i 位的关键字时,它会暂停当前方法的执行,并把控制权交还给调用方,直到等待的 e 部操作完成。 这个过程中,县城并不会被阻塞,而是可以去做其他事情。当异步操作完成后,程序会从暂停的地方继续执行。 task 是 点 net 中对异步操作的一种封装,它代表了一个可以并发执行的操作。通过 task, 我 们可以对异步操作进行更精细的控制,比如等待任务完成,获取任务的返回结果,或者取消一个正在执行的任务。 task 还提供了一些静态方法,比如 one 脑和 one 的 你可以方便地组合多个异步操作。 在这个例子中,我们使用 task run 来启动一个后台任务进行计算,并通过 result 属性来获取计算结果。我整理了详细的学习计划和学习资料,获取方式见我主页。现在我们来对这三个概念做一个简单的比较。 invoke 主要用于跨县城 ui 更新,它是一种同步组色的方式。 a single wait 是 现代 c 警号中 e 部编程的首选,它提供了一种简洁优雅的 e 部编程模型,而 task 则是对 e 部操作的底层封装,提供了更多的控制选项。 在实际开发中,对于大多数 i o 密集型操作,我们应该优先使用 i sync await, 而对于 cpu 密集型操作或者需要精细控制异步流程的场景,则可以考虑使用 task。 理论说完了,我们来看两个实际的例子。 第一个例子是网络请求,这是一个典型的 i o 密集型操作,我们使用 i sync wait 来调用 tippy link 的 异步方法,这样可以避免阻塞 u i 线程。 第二个例子是文件读写,我们需要在后台读取一个大文件,并在 ui 上显示进度。这里我们使用 task run 来启动一个后台任务,并通过 i progress 接口来报告进度。 最后,我们来总结一下今天的内容。我们学习了 invoke, a sync wait 和 task 这三个 c sharp 中重要的多线程编程概念。 invoke 主要用于跨线程 ui 更新。 a sync wait 是 现代异步编程的首选,而 task 则提供了更底层的控制能力。大家有什么疑问?评论区留言。

c sharp 是 一种非常灵活的语言。我们可以用 c sharp 做各种事情。控制台应用网络服务游戏。如果你是一个有抱负的游戏开发者, c sharp 绝对是你想学习的语言。 和 c sharp 一 起,但为什么不同时学习两者呢?和 c sharp 开发人员的平均工资。 如果你有一些经验,根据 glassdoor 的 数据是每年六万三千美元。如果这一切听起来都很好,让我们开始使用 c sharp 编辑代码。我们需要一个 i d e, 那 是一个集成的开发环境,把它想象成软件,帮助我们编辑其他软件。我推荐的一个是 visual studio 社区, 所以你可以百度一下,然后前往顶部的这个 u r o。 好 吧,那我们要下载 visual studio, 并按照安装程序进行操作,所以让我们打开它并运行它,所以继续。在这里,我们可以下载一堆不同的包,你会想检查一下 nity 桌面开发使用 c。 如果你有兴趣,你也可以下载这个包。然后我们要安装。您可以选择登录,但我要点击不是现在。 也许以后您还可以为您的 i d e 选择颜色主题。我选深色的,因为我喜欢假装自己是精英黑客。然后启动 visual studio。 有 了这个主屏幕,我们将在没有代码的情况下向你们展示我们如何创建一个新项目。好了,现在要创建一个新项目,我们将去归档新项目。选择 c sharp 控制台应用程序。 接下来我们需要这个项目的名字。这是我的第一个程序, 接下来创建。现在这个字体大小很小,你可以放大底部的这里,或者您可以更改字体和字体大小。通过转到工具选项 环境,字体和颜色。您可以在此处更改大小。 这里我们有一个小程序,那是为我们创造的。所有这些只是显示一些输出你好世界,翻译和运行程序。你只需要点击顶部的绿色播放按钮。 这将创造一个控制台窗口,显示我们的输出。你好世界。我们在这里写的任何东西都在引号内。这行代码被称为 main 方法,这是我们节目开始的切入点。 还有这套花括号。 main message 之后是 main message 的 主体,所以我们的节目将开始通过在 main 方法顶部执行任何代码。它会一直往下走,并执行以下任何后续代码。所以这个 main 方法是由一堆单词组成的。我们还不太明白这里面的单词什么意思。 过段时间我们就会知道这些词的意思,但那是个更高级的话题。我曾经读过一本教科书,将主要方法视为我们不得不说的切入点。 为了让我们的程序运行,所以让我们看看如果我删除 main 方法会发生什么。但我还是会守着这条线。控制台右行。 hello world, 让我们试试看。 好吧,看起来有构建错误,所以我们不能像现在这样运行程序。所以我们确实需要那个主要方法。如果你缺少它,你可以输入它。现在应该可以了,这是标准的右直线法。 我们放在引号中的任何文本将出现在我们的控制台窗口中,显示为输出,所以让我们真正改变它。现在它说你好世界,但让我们输入其他东西,所以确保这在双引号内。让我们把这个改成我喜欢披萨, 然后再运行一次。所以现在我的输出应该是,我喜欢 pizza。 然后您可以添加第二行输出,只需编辑控制台点右行。然后在括号内和双引号内,你可以写点别的。好像真的很好, 现在我们有两条输出线。我喜欢 pizza, 真的 很好吃。所以要将输出写入控制台窗口。你输入控制台, 然后在引号内引用一些你想写的文本。你可能想要更改的一件事是字体以及控制台窗口的字体大小。因为现在我很难阅读, 所以要更改左上角的右键单机属性,然后转到字体,让我们将其增加到可能二十八。你也可以选择新的字体样式,我会保持不变的。然后你也可以改变配色。我会将屏幕文本更改为绿色。那好吧 好吧。但现在这个窗口很大,所以让我们改变这一点。所以再次转到左上角,转到属性,然后去布局。让我们将宽度更改为大约 五十,高度设置假设十五个,我想应该很好。好吧。是的,那还不算太脏。 这里实际上更容易阅读。我喜欢披萨,真的很好吃哦。我想给你们看的最后一件蠢事是,我们如何能够让我们的控制台发出哔哔声。进入控制台点 b 括号分号, 然后我们的程序会发出哔哔声。当它到达终点时。这根本不重要,我只是觉得可以加些有趣的东西进去。在这段视频的结尾,这就是如何让您的控制台发出哔哔声。某种原因。好吧,这就是 c sharp 语言的基础知识。 在下一个视频中,我们将详细介绍输出和评论,所以我会将此代码发布到下面的评论部分,而且很好,这是让你开始 c 语言的基础。

大家好,上节课我们实现了登录功能,今天我们接下来讲解通讯连接跟设备参数是怎么实现的。我们首先来进行它的 ui 设计, 我们这里带着大家一步一步地完成它的 ui 设计。首先我们刚才这个页面有很多参数,我们给它添加一个容器控件 table, 就 这个容器控件它可以比较方便地让我们对一些控件进行排列。 刚才我们的控件分为两大类,我们这里进行设置一下, 它有一列是名称,这边是名称,然后我们的参数内容 我们也可以在这里进行设置,比如说这里是百分之百分之二十三十,然后二十 三十 我们也可以根据它的实际情况进行调整。 先把这里调小一点, 我们刚才看一下,它总共分为一二、三、四、五六行,这里只有两行,我们再添加 四行,点击这个小三角添加行就可以。然后我们再来编辑这里选择行,它有一种是百分比,一种是绝对值, 我们这里全部调成自动吧,因为我们的行大小是确定的,是平均分的,这里好像不太可以 看一下有没有进行平均分的一个设置,没有的话,那我们六行我们就设百分之十三, 呃,一百除以六等于多少?十六六三十六,十六点六十六吧, 我们点击确定,看一下,这里大概就平均分成了等距的六行。第一个我们放一个 label, 放一个文字,可以直接拖拽到这里, 需要把它的自动设置尺寸给去掉, 我们再看一下,让它靠近四个边, ok, 这样子我们这个文字它就会布满整个格子, 这里它还没有居中,我们设置它右边这个文字在中间,这样子就显示在格子的中间了,我们再粘贴一个复制, 大家看我它就会自动地复制粘贴,它会自动地铺满整个框。我们第一个参数是数据路径 是否卡账,卡账就是说我们扫码的时候需要进行校验,一般在 mass 上叫做卡账 是否上传,这个上传是传到 mass 条码同步, 下一个是我们的设备编号, 最后一个是产品名称,好了,这里就设置完成了, 我们再放一二三四四个输入框,我们用 skin test box 找一下 四个同样的,我们需要设置它这个靠近边,选择四边都靠边, 这样就可以。 然后 设置一下它的这个内容,我们先把它清空,不需要进行设置。 ok, 复制粘贴长度,这里是需要进行设置的。 还有四位编号,产品名称 是否卡上跟是否上传,我们这里用一个呃 check box, check box 自动尺寸把它去掉, 设置这个安全这个属性。 ok, 复制一个, 这个叫做卡站吧,勾选了证明,说明我们需要进行卡站,不高的话就不用这里一样。 然后右边这个我们再看一下它有几个屏蔽的功能, 我们这里放了三个参数, 屏蔽 max, 屏蔽 prc, 就是 当我们没有的时候可以屏蔽它,进行软件的调试。主 a 主要是为了方便, 还有一个扫码枪,我们屏蔽扫码吧, 同样的我们这里放一个 check bar, 这个名称要改一下, 屏蔽 屏蔽 屏蔽,这里我们学习了如何用这个叫做 表格,表格的一个容器布局,容器 table layout panel。 ok, 我 们已经布局完成,再进行它的 name 设计。首先这个数据路径的 我们叫 s t x t pair, 然后是卡站的 toggle barcode, 然后是这个上传按钮的 条码长度的, 下一个是设备编号, 产品名称, 最后几个是我们的屏蔽选择框, 这个 plc 扫码,这 这里我们再加一个按钮, 嗯,我们这里放置一个按 钮,设置跟背景接近的颜色, 就我们进行修改之后,点一下保存按钮,保存我们所修改的内容, 这个参数设置这里就已经设置完成了。哎,但是我们这个大家看到没有,我们刚才是想把它放到这个参数这里的, 但是我们地方放错了,我们这应该放置在 这个页面,我们点一下复制粘贴过去, 这个好像也没有办法去复制,我看一下复制粘贴, 我们先选中它,然后进行复制,选到这个按钮,选到这个界面, ok, 可以 了,我们再返回来把这个删掉, 但是它的 name 是 不是就变了?确实变了,我们先撤回来 确认一下内幕有没有变,我们可以这样子剪剪切,粘贴过来,再看一下,这样就没有变了,就我们要剪切过来就可以,不要用复制粘贴。 然后再回到通讯连接,这样我们参数设置它的接下来布局就完成了。接下来是到通讯连接, 通讯连接总共分为三部分,一个是我们的 mash 通讯,我们这里用用一个 glove bug, 这里放置一个。 net 通讯,一个扫码枪的通讯, 这里放一个 plc 通讯, 我们设置一下, 这个设置完成之后,我们这些麦氏通讯它的参数设置。 首先放一个 label ip 地址, 我们的麦氏通讯它是通过 tcp ip 通讯的,所以需要放一个 ip 地址, 然后再四个输入框, 歪一点无所谓,先选中它,然后点这里可以进行平均分, 我们这里还要输入一个点, 把它置为底层, 置为底层的话就不会挡住我们的输入框,然后再选中这三个 进行平均分,对齐。 ok, 然后是端口号, 这就是 port, 我 们设置再加一个 button, 我 们用 skin button 吧,它的功能多一点, 把它修改为通讯测试, 这个颜色我们也改一下。 ok, 这个设置完成了,然后扫码枪我们也用的是仪泰网通讯,直接复制过来就可以 啊,这里剩下一个 plc, plc, 我 们用创口吧, 那就创口 这边用一个 come back combo bus, 用这个 也放一个通讯测试按钮, 外边再放一个 保存按钮, 拉大一点。 ok, 在 这里我们的整个界面就已经设计完成了,再把它的 name 设计一下, 卖 ip 一 ip 二, 这个是 ip 三 ip 四,然后是我们的 port, 这个是 max。 测试这里,刚才我们可能在操作的时候不小心把它的名字给改了,改回去, 然后 plc 的 我们也修改一下, 这 s t 八,嗯, plc, 然后是右边的,一样的,刚才是 mark i p 一, 这里就 scanner i p 一, i p 二,这个就再 p 三 四, ok, ok, camera port, 那 这是个设置 这里,呃,保存这里再加一个按钮吧,这是我们恢复它的出厂设置,这 我们给它起一个名字叫 ashi, 名字就叫恢复出厂设置,我们我们运行起来看一下, 这个是监控界面,通讯连接设备参数,那我们这三个主要的页面就已经设置完成了, 今天我们就献到这里,下节课来进行它的代码设计,谢谢大家。

上位机程序所需要的基础功能我们都知道了,现在我们把它们重新组合起来,形成一个新的完整的小程序。 vs 二零二六新建窗体项目,我们还是参考 plc 布局,在解决方案资源管理器中分几个组, 程序块,全举变量表、窗体界面。程序块中我们可以类似于 plc 建立多个 o b 块,我们这里还是写两个 o b 一, 还有 o b 二, o b 一 里面是循环 i o 扫描, o b 二里面是气缸自动控制程序。 再建立一个程序块管理类,写上启动所有程序,也就是我们之前讲的多线程。接着我们返回大局变量表,在文件夹中也是建立四个类, 大局常量 f b 时域表和 i o 变量也是仿造 plc 的 一个布局。最后是窗体界面,我们把系统给的 form 一 改成主界面,并拖到窗体界面中去, 再建立一个新的窗体参数界面,好到这里就能清晰的看到上维基的程序架构了。现在写代码,首先是连接 plc, 我 们现在改成程序启动后自动连接 plc, 双击主界面,这里会自动生成一个窗体载入事件,也就是在窗体产生时会进入这段代码。我们在这里连接 plc, 还是一样调用 s 七库安装。 然后到 f b 实力表中添加这个 plc 七两百实力化 s 七两百 smart 以及 ip 地址,我们这里把 ip 地址可以空出来,我们可以在全区长量中添加这个 ip 地址, 回到十六表调用它。最后回到载入事件中连接 plc, 并检测连接是否成功,验证一下连接成功。 接下来我们来读 plc 的 i o 状态,首先在 i o 变量表中,我们写上我们想读的几个 i o, 分别是 in 一 杠零, in 一 杠一和 out 一 杠零,对应 plc 中的 i 一 点零, i 一 点一和 q 一 点零。返回程序块 ob 中的循环, i o 扫描,这里加上死循环,在循环中我们读 i o 状态, 循环读取两个输入口和一个输出口。读上来后,我们还需要显示到界面上,在主界面中,我们使用标签的不同颜色来表示 i o 状态,利用 time 定时器,我们分别显示 i o 状态, 如果为 true 则显示绿色,如果是 false 就 显示灰色。之后是写输出口,我们这里可以用一个按钮做输出口的状态切换。在点击事件中,我们还是来读这个输出口的状态,如果 q 一 点零的状态为 true, 则写零。反之写一,记得要在连接成功后启动程序快以及启动定时器。 ok, 验证一下,我们打开摄像头监视一下状态, ok, 我 们继续。最后就是自动程序控制气缸伸缩,我们自动控制的逻辑是先伸出气缸, 动作完成后等待一定时间,然后缩回。进入参数界面,我们把之前的设计直接复制过来,这里报错是因为我们根本没有建立这些变量。先到局长量表中 添加参数文件的地址,再到局变量表中创建器缸等待时间的参数。回到主界面,我们通过一个按钮来打开参数界面,点击事件中打开这个界面, 再写自动控制程序,还是那个 switch case 语句,通过判断 step 的 值来进行动作跳转,我们到最上面再添加一个控制信号 run, 当 run 为 true 时才能执行程序。最后到主界面上,我们增加两个按钮, 自动程序启动和停止启动的点击事件中,我们把 run 写为 true, 并且把 step 写一,进入自动循环停止按钮,点击事件中把 run 写为 false, 不 再循环。好,验证一下,再改为两千毫秒 停止。 好,到此我们就完成了一个最简单的上微机程序了。

接着我们来讲一下上位机如何读写文件。就以最简单的 txt 文件,也就是文本文件为例。我们先在电脑中建立一个文本文件,比如到电脑的 d 盘根目录下,直接创建一个文本文件, 命名 abc。 好, 我们在文本的第一行写上。 hello, 二零二六,保存关闭。回到程序代码,我们在窗体界面添加两个按钮,读 txt 和写 txt。 然后再添加一个文本框,用于读写文件中的内容。还是一样 建立按钮的。点击事件,我们先来读文件中的内容。首先, capp 中关于文件读写,最简单的办法就是引用系统库。我们在整个代码框的最上方 using system 点 i o, 这是微软自带的。 正好在这里解释一下,为什么我们之前没有引用 s 七点。 net 库呢?是因为我们在这里将 plc 实体化时写的代码是 s 七点。 net 点, plc 前面这个 s 七点。 net 就 代表了库,如果我们直接使用 plc vs 二零二六,会在上面自动生成一个引用。 回到文件读写,这里就要用到 fill 点 read or test, 它可以读取文本文件中的所有内容,返回值是自复串, 我们这里建立临时变量来获取文本文件中的内容。这条 read or test 的 指令,它需要有一个输入变量,需要写文件的地址,我们可以在之前的全区变量中新增一个全区变量 字母串类型复制,就写 d 盘中的文件地址。好,我们这里把地址填上去,读上来的字母串,我们还要把它显示到界面的文本框中。 ok, 测试一下。 好,文本框中出现了 hello, 二零二六,我们还需要写入内容,之前的文本框中只有一行内容,我们现在想保持之前的内容不变,再追加一行内容,还是双击创建一个按钮,点击事件, 先建立一个临时的字不串变量,我们把文本框中的内容写入到临时变量 k 中,然后使用 appendalltest 把要追加的四幅串写入到文本中。因为我们刚才说的是要再追加一行,所以需要在四幅串的最前面添加一个换行指令, 用来表示另起一行。好,我们再测试一下。首先还是读文本,接着我们写入新的内容。你好,点击写 tst, 然后再读, 是不是就把刚才写的内容读上来了?最后我们回到硬盘中, d 盘打开文件,可以看到确实是新增了一行。

几个属性的快捷写法分享给大家,在做 c c 开发时,让我们写 winform 和 w p f 的 程序更加的高效。第一个就是 pop 加上 type 键,生成简单的自动属性。第二个就 pop four 加上 type 键,生成完整的带设置 get 访问器的属性框架。 第三个就是 dp 加上 tab 键,生成依赖属性的框架。第四个就是包括 a 加上 tab 键,它能生成附加属性的框架。那我想问一下大家理解附加属性的用读吗?评论区告诉我。

大家好,上节课我们学习了数据库的安装,今天我们一起来看看怎么实现它的登录功能 分为四大部分,第一个是我们的数据库安装跟 sql 语句设计和验证,还有登录代码的实现,第一个我们已经学习过了,我们来看看语句的设计,首先是数据库的创建, 我们来打开数据库软件,这个登录上节课说的密码是一二三四五六,我们点击连接, 看到数据库里面是没有数据库的,我们新建一个查询,把刚才的语句复制进去执行,我们刷新一下就能够看到串线的数据库,但是里面是没有表格的,我们再看一下其他语句。 第二个是切换数据库创建了,我们先切换到我们创建的数据库,然后再把这个新建表格添加进去, 我们先来切换数据库,点击执行,执行成功,我们复制用户登录表,创建这一个用户表格, 下面这个就不要了,复制回到我们的指令查询界面,一个是组建用户名跟密码, 组件是自动增加的,点击执行,执行成功,我们刷新一下,可以看到这里会多出来一个表格, user login, 我 们看一下前面一千行,它是没有数据,还没有设计这个用户名跟密码的, 我们来看看如何在里面插入用户。我们先复制这一串指令, 再把这个 sql 语句粘贴下这里点击执行一行受影响,我们看一下前面一江横,可以看到用户名跟密码已经添加进来了, 那如何删除用户呢?我们重新把这一句删除用户的语句复制进来粘贴,再执行一下 粘贴这里执行看到一行受影响,再看一下前面一千行,我们可以看到已经删除掉了, 我们再重新插入一个用户,然后再看修改密码的功能是怎么修改,复制到我们的查询里面粘贴, 我们把这个用户名修改一下,修改成我们的张三, 先增加一个七执行,我们再进行查询,前一千行可以看到添加了张三,一二三四五六七, 我们再加一个李四吧,李四,一二三四五六,点击执行再重新查询, 我们先来看一下修改用户名密码的语句是怎么样的, 先粘贴,先把这个就是说用户名等于这个管理员,我们改成张三,密码呢已经改成了一二三四五六, 我们执行一下修改语句,再看看我们的修改之后的可以看到密码已经改为一二三四五六了, 下一个是查询所有用户,我们界面上会要用到 粘贴,在这里点击执行可以看到我们这样就可以进行查询,我们上位机设计的时候需要用到这个查询语句, 语句验证跟色剂我们已经完成。第四个,我们看看如何在 c sharp 里面进行登录代码实现。 打开我们的上位机,看一下这个登录的按钮,登录事件点击,我们这里弹出了一个登录窗体, 我们这个窗体还需要重新设置一个页面,就是这个登录页面,双击我们的登录按钮, 我们要在这里实现数据库的查询,我们先来新建一个数据库的类,点击类, 我们给它起一个名字叫 s q l s q l d b helper 天下, 我们来看一下这个代码,这个代码因为我之前已经编写了一个完整的类,这里直接把它复制进来,大家可以在公众号或者我们这个抖音的群里面进行直接下载,这里需要引用 几个引用, data 跟 diskcleaner 也有现成,然后我们再把这个代码给它复制进来。 稍等一下,我这个代码是之前已经编辑好的,大家可以直接下载来使用。粘贴进来,可以看到它这个有三百多,四百多行代码生成一下, 看一下前面它有这些方法,生成成功了, 这个是表格,我们再回到登录,我们的登录代码如何实现呢? 我们需要先定义一些变量,把这个数据库的用法这个添加进来, 这个是用户名密码服务器数据库昵称,跟我们那个设置的是一样的。 然后我们需要实现这个用户登录,这里加了一个是否登录成功,还有当前用户, 我们再来进行点击登录按钮,它的代码是怎么实现的?我们点击登录之后会连接数据库,然后进行密码的对比,粘贴进来。 首先一个用户名直接获取界面的文本框里面的用户名, 然后密码 password 也是一样获取这个文本框的,然后就是判断它是不是空,它不能未空。先连接数据库, 如果连接失败,弹框提示,然后进行登录验证,这个 user login 是 我们的表格名,表格名称字段, 然后下面是我们是否登录成功的判断,这里检验密码,如果说他匹配到了就不会等于零,等于零就是用户不存在,不等于零就是匹配到了,我们获取他的密码置断, 然后进行判断是否相等,不等就是密码错误,如果先等就登录成功,登录成功再显示到我们的界面上, 如果登录异常,他也会弹框提示,提示他有哪些异常, 我们启动运行看一下, 移过来点一下登录,输入我们的张三, 然后密码一二三四五六,我们先输一二三四五六,再重新试一下一二三四五六 杠,三四五六,登录 刚才已经登录成功了,我们在,但是没有显示出来,我们需要在这个位置显示三山这个登录后的用户名,我们来看一下怎么去实现 在这显示,我们来看一下登录成功之后怎么把脏三这两个字显示在我们那里。登录图片那里 稍等一下,我粘贴一段代码进来,这个是我们的登录,登录成功,那么这个文字就会等于当前的 user, 这个右侧是我们这里刚才已经保存的当前登录用户。一个全剧变量启动, 我们拖到中间,再点一下登录按钮,张三二三四五六,看这里已经显示张三了, 刚才弹了两次框,我们看一下代码, 这里多了一行,把它删掉,重新启动试一下, 拖到中间点登录,输入张三 一二三四五六,登录, ok, 到这里就已经完成了,那么今天我们的内容就已经全部结束,非常感谢大家。

大家好,今天我们来讲解如何用 csab 去开发一个 plc 的 模拟器,我们这里采用的是 fx 三 u plc, 大家看这个界面,它可以实现 em 的 读写跟 d 的 读写,还可以模拟一些小程序,比如这里我们是幺八六五零的分选机程序, 我们一起来看看。首先它要实现哪些功能,像一个启动按钮,停止按钮,还有通讯参数 d 区、 m 区的一个设置跟显示,还有一个预制显示框提示我们的信息。 然后这里使用到的通讯协议是三菱里面的专用协议,就是计算机链接功能,这个是它的一个通讯格式协议帧。 我们总共需要用到四种指令, b 二 b w w、 r w w 这几个指令。 下面我们来带着大家从头到尾去完成这个项目的编写。首先创建一个新程序,我们选择 windows 圈的应用,点击下一步, 这里我们给它起一个名字,叫做三零 plc 模拟器,点击创建,等待它创建完成, 这里已经创建出来了, 我们先来实现它的 ui 界面设计, 刚才说了它有几个控件,一个是 button, 一个启动按钮,一个停止按钮。首先我们把这个界面的名称修改一下, 打开它的属性, 我们起一个 f s 三 u e 要 c 模拟器,大家看这里就改变过来了。还有它的窗体大小,我们现在看一下, 我们设置大一点吧, 这个 button 也可以拉大一点, 你可以在它的 size 这里进行修改, 这个是启动 停止,然后放一个容器 cloudbox, 这个我们修改一下,叫做通讯发送, 然后 总共要放一四个,五个窗口后播特率叫宴位,数据位停止位,然后再放一个呃 combs, 这个是窗口播特率 叫宴位, 这些尺寸大家可以先不用去管它,等写完之后我们再去调整它的位置, 这个是窗口号 扣特率, 椒盐味, 触觉味 停止位,我们把这些一起选中,选中之后点左对齐, 再进行一个平均分,往左边放一点, 这个选中左对齐,大小一致,平均分,这样就 ok 了。 有点大,我们可以往回拉一点。 好的,这里就画完了,下面是一个预制框, 然后放一个 text box, 我 们在这里选择多行显示,就可以拉大, 再放几个 label 显示淹没区, 一个是地区, 我们这里用这个 data gridview 进行显示我们的状态, 看一下它的属性,我们设置多少, 然后进行复制,一个 放到下面来,把这个 d 区往上拉一点, ok, 这样直接拖动,可以对整齐一些, 插最后右边这一点, 右边这里我们是放了一个运行程序,选择 也是放一个容器, 把它的名字改一下, 我们可以设置很多程序, 也可以是空白,空白就是说我们不需要里面的 d 进行变化,那就只是读写它的状态就可以。 我们放一个这个 radio button, 这里实现两个程序,一个是无程序,实现一个程序,两个选择,无程序 我们会实现一个幺八六五零。嗯,点击程序, 我们 y 已经设计完成,再来进行它的 nam 设计, 首先启动,我们叫做 b t n 运运行,这个就 b t n stop 这个 com box, 下一个是波特率, 再下一个是呃叫延位, 然后是数据位 停止位,这个 load, 这个是 d g v m 区,这个就 d g v d 区,然后剩下右边这两个, 右边这两个一个是无,我们就无程序, 这个就叫幺八六五零, ok, 我 们设置已经完成,就内米也设计完成,这个 ui 设计也完成了,我们把它显示在中间位置,这里屏幕中间,我们启动看一下, 大家可以看到我们这个界面已经设计完成,但是没有任何的程序逻辑。 接下来我们继续把这一个初步化的工作完成,就是今天的任务。 我们先来看一下,双击它的空白处,就可以进到它的这个加载函数里面, 加载函数我们主要先完成这个 com call 就是 通讯参数这一部分, 通讯参数我们给它起了一个函数名,这个函数名 它的功能是初步化这个串口,通讯参数它的初步化, 然后我们要刷新串口,就是我们的串口, 我们的创口要从系统中获取,跟上节课一样,我们再写一个函数, 刷新并获取系统中可用的 com 的 端口, 这里一定是要可用的。添,我们就把它添加到,添加到这里来, 先清空,然后获取这个函数,我们上节课用过 没有,可以用的时候,我们就显示一个未找到,然后对它进行排序,从小对它大进行排序, 这是我们初始化这个参数的时候,刷新窗口,那么刷新完创口,我们就把其他的下下拉列表菜单添加进去, 这个是常用的九六零零幺九二零零三八四零零幺幺五二零零,这个添加整个数组,这个一样,五焦燕即焦燕、藕焦燕, 我们运行起来看看,大家看这里已经显示完成了, 那么我们今天的课程就到这里,非常感谢大家。

零基础学上位机通信二零二六版,从入门到精通教程,从串口、网口、 modbus s 七全流程拆解,理论加代码加调试,三位一体零基础轻松掌握,高效搞定工业通信技能,需要对应刻件原码的九九九带走。大家好,呃,这里是朝夕教育啊,一对一半学师傅上位机通信专习。 呃,那么从这阶段开始啊,我们开始了解这个上行方面的内容,整个内容呢?整个内容来讲的话呢,咱们分的两个部分啊,一个部分呢,主要是讲这个叫啊,叫创口啊,通信以及相关比较常见的这个协议 啊。然后呢下面呢还有一个第二个阶段呢,就是关于网口的啊,这个通信以及相关的协议有一套网的 啊,一会这是关于咱们那个大概的一个,呃,两个阶段的一个内容啊,那么关于窗口这边呢,我们分为说啊,最基本的环境啊,包括咱们的窗口基本对象啊,以及呢,像咱们的这个协议的,这个 odot 协议的比较常见的啊,这个相关的讲解啊,它里面呢有哪些格式 啊?往下走的话呢,像这个网口这边呢,我们主要是一样的啊,差不多结构啊,你像比如说那个通行环境啊,是吧,包括网口对象啊,网口对象呢,还有两个啊,但是问题不大,基本都是一样的啊,我后面会啊,到时候一起来介绍一下,一起了解一下。 然后关于通讯协议呢,分为两部分啊,一部分呢也是关于 modus, 因为 modus 它这个本身来讲啊,它这个是吧,对于不同的方式它都支持啊,我们的也是对在这广口这边呢,给大家介绍一下啊,后面呢还有一个比较常见的啊,就是西门子的啊,一个 plc 的 开发的,我们的通讯叫 x 七协议 是吧?啊,大概也就这么一个结构啊,这个就是关于咱们下面两阶段的啊,一个内容的安排 好。呃,那在这之前呢啊,我们了解了这个相关的这个结构之后啊,可能结构之后,那么先了解一下关于啊什么是商务机通信是吧,因为有些小伙伴可能对商务机的不是很了解 啊,商务机通信呢,就是指的是工业啊,自动化,比如说像互联网啊,比如说像轻柔式等系统啊的领域里面非常关键的一个技术环节, 主要是用于主控计算机啊,也就是上位机是吧,我学了半天啊,什么上位机?大家了解是主控计算机,它以终端设备,比如下位机,也就是下位机啊,比如说呢,像 plc 啊,传感器,直延器是吧,智能仪表等等这些它之间的数据的交互。 呃,那么这个当然这是一个概念的说明,我们接下来呢会就是把那个再拆解一下啊,给大家介绍一下。 以下呢就说从概念啊,通行过程啊,常见的啊,这个通行方式,注意事项等方面呢,就是想要说明一下是吧。啊,首先第一个关于上网机,刚刚说的是什么啊?就是主控机,主控计算机是吧,其实啊也就是才 pc 啊,你像比如说如果,如果是公控机的话,其实现在也就是什么 pc 电脑吧, 然后呢主要是负责监控啊,数据采集,逻辑的一个控制和人机的交互是吧?啊,我们有经常有小本能够去看得到啊,有现场的小本能看到,特别是咱们从这个编辑啊,自动化机械着转行的小本是吧? prc 转行的小本都知道大家这么一个过程 啊,主要的功能演示功能呢啊,就比如说比较常见的啊,像,比如说像接收传感器的数据是吧?下发的控制指令啊,以及呢生成生成这个生成报表啊,报警处理等等这些这些功能 啊,这是上位机的啊,好,呃,有上位机呢,肯定是下位机啊,因为上位机这个概念它是个相对的是吧?那包括啊这个下位机这边是吧?那么包括咱们能够直接连到上位机的这种物理的中单控制器啊,比如说像 plc 单面机,前面有这个介绍啊,包括切尔氏系统等等是吧? 呃,功能一般,比如说像数据的信,就是温湿度的信号的传递是吧?电机的启停啊,控制啊,包括呢执行咱们的逻辑运生等等,这就像我们的 plc 是 吧?它是可编程逻辑控制器是吧?它里面可以写程序啊,这个程序呢就是它的固定的一个代码, 固定一个逻辑,然后一直走,一直走一直走啊,那个过程,但是它呢也相对咱们如果在上下午机里面呢,咱们也是属于是一个啊下午机的概念啊,上相对上午机来讲,如果在咱们上午机来一空的话,那这里有个图啊,我来给大家去打开给大家看一下。 嗯,好,来这里呢,就这个图呢,就是一个比较典型的啊一个架构啊,你比如说这边是空 pc 嘛,公共机是吧?那下面就是 p r c 啊,这个像这种结构之下,那它呢就是上午机,它呢就是下午机, 对吧?当然呢,这是我们比较常见说的啊,像我去开发,开发什么开发?就是在这上面写一个程序啊,然后这个程序呢去控制它,你本身来讲它自己的那个,比如操作系统也好,包括什么系统下,它不不符合啊?那种监控的这种逻辑要求, 对不对?我们需要把这个程序,你的业务的这个场景啊,就相关的相关的业务需求,是吧?通过我们自己写的软件呢表现出来啊,让它去控制我们的 plc, 自然啊,当然呢,其实说,如果说我们下面有一些,比如说数字画的设备啊,你比如说像什么直升机啊,智能仪表之类的传感器这些啊,其实呢有相应的接口啊,咱们的这个公共机呢,也可以直接去控制它 啊,也可以直接控制他啊,所以呢这个这个过程呢,这个结构呢,是我只说非常典型的一个结构啊,但是很多场景呢,可能会比较复杂啊,比较这个咱们根据实际情况来,他不管怎么说啊,不管怎么说被他控制的啊,就是下胃机,他呢就是主控的上胃机啊,这是一个基本概念啊,大家先理解一下, ok 啊,这是关于咱们上下位的一个理解,那么呃,在这个过程中啊,在这过程中呢,大家可以看到,是吧?你这个上下位,他怎么去把咱们的这个数据对接起来呢?来通信的本质啊,通信本质,那么通信的本质呢,其实就是上下位呢,他通过特定的协议和硬件接口是吧?实现双向的数据交换 是吧?就好像说咱们这个图一样,是吧?那你比如说我,我,呃,这个共享机,我想去读它里面的什么什么状态啊,什么数据啊?比如温度、湿度、压力值啊等等这些的。那你是不是给他请求一下来,你请求他啊,请求他之后呢?然后把他把是不是把数据发回来? 这个过程中啊?他肯定得必须得有一个什么,有一条路是吧?有一条线路啊,能够去接的通,是吧?那这个线路的话呢?我们可能说,比如说有特定的这个接口方式的这种电缆,是吧?来进行这个呃,串接, 所以说这中间呢需要什么?需要一个硬件接口啊,他能把线接下来啊,但中间也强调说有协议,因为呢你有了个硬件接口之后,那中间我传发什么数据过去,是吧?他能知道说他要干什么,你要干什么?那这个呢是叫协议来规定的数据格式,你要传什么数据给 他是吧?你要请求,你要请求,你要发送指令呐?这指令也是数据嘛,对吧?一个数据那种,那数据呢?每个数据什么格式呢?那就是写一首规定的 啊,这就是通信的本质。那么典型的啊场景,比如说手机上传啊,上下位机是吧?将设备状态的什么温度、压力发送给上位机啊,下发指令呢啊?上位机呢?控制咱们的这个放的控制指令是吧?下发给这个下位机,其实这中间呢, 这两个呢,其实没有什么特定的这个啊,这个这个场景要求是吧?啊?你比如说我,有时候啊,咱们的上位机要请求啊,这个这个场景要求是吧?啊?你比如说我有时候啊咱们的上位机再响应给你,是吧?这是一个啊应答过程 啊应答过程,你发送个请求我给你个响应,是吧?这个应答过程,好吧?这是关于啊这个通信这块东西好了啊,来这块东西这一块到目前位置啊,咱们的这个上文街通信的一个,呃就是他的角色是吧?在上文街通信过程中啊他这个基本角色呢?我们这些概念啊,咱们先聊聊这个 好不好啊?前面呢我们呃了解了这个上算位机的啊这个基本概念对吧?也就是知道说把它里面其实也就是,呃怎么样把这两台设备把它连起来啊,让他让他们之间呢,然后进行这个数据的互联互通 好。呃,但这个过程中呢还是肯定不是说概念上这么简单,对吧?咱们看一下,那么接下来就说如何建立起啊这个统一连接,那你这个相对来说我们要想付先修路是吧?你先得把路连起来, 两个设备之间是吧?先把路连起来,有了路之后我们才能去讲这个数据传输的事,是不是啊?那关于这个,呃这个连接通信呢啊这个通信的连接呢是吧?第一个我们从硬件接口方面来来进行处理啊,来进行区分。 呃硬件接口上面呢其实差还有很多啊,因为呢这个啊不同的设备他可能选择不同的啊这种通信方式啊,因为通信接口它的数据的,它的传输的效率啊,它是不一样的是吧?不一样的啊,你比如说比较常见的什么创口通信呢 是吧?那什么二三二四二四八五是吧?那也就是串个东西。呃,那么移动网呢?比如其实的 ip 啊,移动的 ip 啊,是吧?哎,这就是它有一些特点啊,大家可以看一下这它的框里头它的特点是吧?还有包括工业总线啊,总线的话呢?它它它处理上就是啊,就是在一个,呃,像那是高速公路一样,是吧?它的效率更高啊, 高实时性的效率更高一些,还包括无线东西。呃,无线东西之所以把它捏到这啊,其实主要的是一种,你比如说像 wifi, wifi 的 话,它其实也是以太网的一种啊,对吧?如果它是通过无线的方式去实现的啊,这个以太网的,它的,呃这个传输模式 是吧?但是呢像蓝牙啊,像 nara 啊,这是这是 nara 啊,这是那个什么?就是互联网里面的这个通讯的啊,接口的一个标准,是吧?啊?这叫硬件接口,就是说你比如说我在电脑上面是吧?你可能说有一个那个插网线的那个口啊,那个口其实就是一个接口,是吧?那就是以太网接口 是吧?你看 google 还有什么串口接口,串口接口什么样的,是吧?咱们到时候会这个,呃这个用的图片给介绍一下是吧?哎,这是他硬件接口方面的一些介绍啊,但是我们在这个通信过程中呢啊, 这个注意了啊,朋友们啊,就是说我们在通信过程中啊,要以这个设备方来为准啊,设备这边你要对接的设备,因为因为这攻击来讲它是要, 呃比较通用一些的啊,也比较通用,因为我的程序可能说我要根据我的设备来进行携带嘛,你设备这边呢采用什么样的方式啊?来进行这个通信是吧?那我公共机这边呢,或者我 pc 这边的上网机这边呢,就按照什么方式来进行通信,是吧?因为,呃,有时候呢,可能说涉及到这个一个设备上有多个接口的啊,但这个呢得约定一个 啊,约定约定个,这个具体是哪一个啊?这样的话呢?通信上好多出现不同的接口,通信上不一样的是吧?你为什么我们要单独去讲串口,单独讲网口是吧?这两个他是不一样的这个方式 啊,这是关于这个啊,所以这个关于接口方面呢,大家其实了解型啊,了解型的不一定不一定说,一定得全部得记住啊,因为这个东西其实只要是拿到这个通信的环境下面之后,是吧?咱们的设备是什么啊?一看就知道,好吧, 那么另外一个呢?你看,比如说我来给大家举个例子啊,你看这个啊,这就是台 p l c 对 吧? f s 五 u 啊,三零的 p l c, 那 这个接口是吧?你看很明显它呢就是一个网线接口是吧?那一般来讲啊,就是可能说啊,咱们大部分情况就是都是通过这个网口来进行通信的,你插网线,无线网线往上一插, ok, 咱们这个电脑就可以连上去。 就是啊,那这个连接不是说你通过物理上的连接啊,我们说除了物理之外呢,如果要通信还有在软件层面、代码层面去处理啊,这个咱们从物理层面咱们找到这个接口啊,但是这盖板下面就是盖板,盖板可以宣开,宣开里面呢还有这个这个接线端子啊,这也可以接线这个通信线的 啊?那就是这个有些设备上肯定有多种啊,但是我们要约定一种,那样说的对不对?哎,好的,这是关于咱们硬件接口方面的一个了解。 呃,往前走的话就是协议的这个呃相关的,呃协议的话呢?就说你看我们这个物理接口已经接起来了啊,就是我两个设备之间呢这个 通信的可能啊,通信的通路已经建立起来了,是吧?通过哪种方式?那建起来之后呢这些内容呢?都是可以让我们去传输啊一些数据过去的是吧?对方啊传输数据给对方的。 那这个对方的话呢?啊?我不能说啊,一般来讲这个这个传输数据,传输数据都是数字吧是吧?啊?这个具体数字多少是吧?往往这往这边传传一二三四五六这样传,但是据说你看我我你你再发个信息给我啊,我再发个信息给你啊,我我要请求一个信息。我发个给你啊发个指令给你啊,你要根据我做的指令是吧?来响应什么数据 啊?你看这个过程中想了一点,就是说我这个发送的这个数据他是不是得有一定的含义啊? 他的数据是个很含义,就是说你这个数据是什么意思是吧?他对方能不能认识,能不能知道啊?对不对?你比如说像我们现在啊做这个语音沟通是吧?我在讲那个啊,讲中文啊,那找一个外国人来这这可能有点听不懂对不对?因为我的这个语法我的这个语义他不理解 是吧?我随便说的,他可能说啊,叽叽喳的说啥不懂是吧?所以呢这个地方涉及到说传输的过程中这个数字不是随便的去啊,让他去发一个什么一二三过去 对不对啊?发四五六过去,对方呢?不知道干嘛对吧?一般来讲的话呢,这中间肯定得约定一个一个格式是吧?你比如说我定义啊,我定义你若发一 啊,你若发一,好,那我就说干什么干什么事,我就把那个所要的这个结果啊反馈给你啊,我们在约定说啊,你如果发二是吧?我这边干什么干什么的话,我把这个结果反馈给你啊,是这么一个意思 是吧?如果一旦呢把这个东西把约定起来了,好,那这个格式呢?就必须按照这个格式来,那就这双方所遵循的一个通信的协议是吧?协议是不是就两方需要啊?多或者两方或者多方需要遵循的这个标准呢? 啊?属于属于格式啊,所以呢这就是什么?就是我们要去定义的这个中间基于这个接口所传输的这个数据的它的格式啊是什么样子 啊?当然这个东西不需要自己去定义啊,有很多啊,市面上有很多这种协议,你比如说呢啊,像协议,比如说 mozart 这样 oku a 是 吧?这也是协议标准啊,像 open 啊,像 e l p 的, 像 p l c 的 各种协议。什么?呃呃,西门子的 m c 协议是吧?三年 m c 协议是吧?欧农的这个犯罪基金协议是吧?还有什么 c i p 协议等等。那这些 呢?是关于就是各个厂家或者说啊,咱们有些这个,呃啊,犯罪基金协议是吧?还有什么 c i p 协议等等,那这些呢?是关于就是各个厂家或者说啊,咱们这个,呃。啊,犯罪基金协议是吧?还有什么 c i p 协议等等,那这些呢?是关于就是各个厂家或者说我们的行业的 组织起来,是吧?咱们约定一个啊,就大行业里面的一个标准啊,比如 wordpress, 它其实一个说整个行业里面可能都比较认可啊,因为它比较简单啊,比较容易上手,是吧?大家也掌握起来比较比较容易,是吧?这样一个协议大家用的比较多啊,就是我们可以,比如我们的商务际和商务际之间,那都可以遵循一个 wordpress 啊,这么个协议 啊,这是一个协议,好吧,好,那另外一个我来跟大家强调一下啊,就是关于这个通信协议呢啊,其实,呃,一般来讲作为我们商务金融开发呢啊, 可能没有太多的选择性啊,一般的还是一样的,跟接口一样,是吧?你这个以设备为准啊,设备这边他告诉你说我这个设备呢,你可以采用什么什么协议来接通信?好,那你必须得用这个协议来接通信的,是吧?那你说我这个,呃,这个我在我写上网接的时候我只会 modus, 是 吧?啊,那你这个设备你必须得用这个 modus 来接我,我给我来对接, 那这个可能没有太多选择性啊,因为呢这个设备一般来讲都是采购过来,是吧?大批量采购过来,然后这个厂商呢,可能也不会说啊,单独给你开个版本出来啊,所以这个一般来讲啊,就设备里面是什么 用什么,好吧。哎,所以这个为什么我们要了解很多很多这个通信协议,或者了解理解通信原理啊?那就是,是吧?一一局就是吧,咱们这个,呃,这个了解这个原理之后,是吧?咱们后面其他的任何通信是不是都可以搞验, 对吧?所以这个通信协议啊,是一个啊,非常啊,非常多啊,非常非常花哨的一个东西啊,咱们可以把那个各种格式吧,把它定义定义下来啊,就 ok 了,了解这个格式,了解一个原理,行啊, 好,这是关于啊这个协议的一些基本类型,是吧?大家知道一点啊,知道一点就是你在这个接口之下传输的物理面的传输的这个东西,是吧?他其实并不是随意的传递的,这个格式呢就是以特定的协议为标准, 好吧?哎,这是咱们协议的一个基本的要求啊,这个大家了解一下,但是这个过程中啊,其实这边还有一个啊,这个东西呢,我觉得,呃,只要说这个接口啊, 只要说这个接口啊,其实我觉得都是一样的啊,都是肯定都会都会知道。你比如说像这个串口啊,他比如说你,你要去通过这个串口东西啊,串口肯定有一些参数啊, 有些什么,他你比如像什么波段率、数据位啊、基元位啥的,是吧?啊,这个啊几乎都没关系啊,这我们后面在代码里面会给大家体现出来,是吧?你当这些内容,那可以没问题,我们就只干嘛,你就是把这个你想做这样图形是吧?你设备这边怎么配置的啊?我把这个参数把它放进去,哎,就可以了,包括移动网是吧?包括工业总线啊,包括无线的这些都有相关的参数, 都是特定给他符合他的这个什么标准要求的这种参数,是吧?他的特色的这种参数啊,是吧?这呢就是关于建立通信连接的啊,这么两方面是吧?两方面,一方面准备什么?准备接口的选择,第二方面的协议的选择啊,这两个概念呢,大家先理解一下。 好,那么好啊,那么前面呢,我们,呃就是大概了解这个通信连接的这个过程,是吧?需要连接两个星期啊,一个星期呢是接口啊,一个星期是协议。呃,那么这边我们再稍微的深入一点啊,稍微深入一点, 那这个东西我们后面还会再继续给它详细详细给它介绍啊。呃,怎么说呢?哎,比如说像这个数据格式,你要传的这个数据格式,我们说是协议,对不对?你看比如说像这个字节流啊,字节流的话呢,基本上就是二阶式数据, 二进制数据。二进制数据呢,在传输的过程中啊,基本上都是什么字节的方式来进行,在代码里面都是以字节的方式来进行描述的,因为这个 c 一 项目代码,他的这个最小的单位啊,就是我们的这个数据处理最小单位就是字节啊,就是字节啊,就是字节。你说那种我想处理位啊,位的可以,位可以也是基于字节来进行处理的 啊,处理位也是通过就是每一个位一个字节就是八个位,对不对啊?八位啊,八位的话位就是二进制的值了,二进制的数据是吧?零一,零一零一这样的信息, 所以你要知道就说咱们在通经过时中啊,你说我要做传输,做那个线路啊,咱们把这个状态,把这个数据传输过去啊,这个过程中啊,其实也就是什么你在线路传输那什么电瓶的信号是吧?哎,我们要发高电频及电瓶这样的信号, 那么这个信号的话呢,其实就是零啊,也比较什么样啊?高端低啊、范啊一呢啊、比平啊什么呀?这个六都不一样的,对吧?所以呢我们在这啊,这个再进行啊,特别是一个查询信号呢,通过这样的方式来一传输是不是?好,那这个你得把每八个信号组成一个字节啊,这个代码也是这样处理啊,它实际上在线路上是零一零一这种信号,对不对?哎,好,这就咱们这个。 呃,但前面说了就是说,那我是不是随便去传?那肯定不是的啊,你看这边是吧?传一二三四五六,传个一什么意思?对方能不能知道啊?是吧?那你没跟他约定啊,是吧?哎,那肯定不知道啊,是吧?不知道。那这个那就不知道,人家不知道干嘛啊,不知道干嘛的情况下, 大部分的设备啊,那会把你这个连接给踢掉啊,就你这个连接成功之后呢,你才发现你这个随便乱传,那这个有问题啊,是吧?那把你踢掉把它重新断开了是吧?那你看,别说下面啊,这是就是 modbus 的 这个协议的一个格式, 你看,哎,这边有什么?零一零三、零零零零零零 a, 零 c 五是吧? cd, 哎,那这每一个字节上每一个字节都有它的含义 啊,每一个字节都有它的含义,就是分别,就是说你要按这样发,你要按这个格式发,那么哎,对方的设备是吧?如果支持这个啊,那么他就会怎么,他就会直摸大字,是吧?他就会把这个对应的结果呢反馈给你, 这是一个请求的啊,这个请求的请求的一个报文是吧?你像像这个下位子是吧?请求一个什么东西啊?他把这个发给你啊,就是这个,这叫,这叫,这叫协议 啊,这叫通信协议的,是吧?其实说到底啊,其实你也不要觉得说啊,这个通信协议什么,呃,这个很神秘,对吧?啊?其实你不就是我们要啊,约定一下是吧?你到底要怎么去啊?把这个表意思表达出来吗?是吧?就这么简单理解一下是吧? 当然啊,当然这个也在说,这个是不是都是这样的呀?那肯定不一定啊,不一定啊,因为有时候呢,可能有些有些通讯呢,他比较特别啊,你比如说有些呢,也可能是传输一些,比如结构化的数据,是吧?像 jason 自助餐啊,像咱们这个叉妹自助餐啊,这些东西 他的唯一的要求,唯一的这个好处就是说啊,他这个可动性比较高,是吧?哎,就是比如说互联网,还有一个就是比如说这个半导体里面的话呢,他其实也会有这个 jason 的 格式的数据的 数据的传输,但是啊,但是你不管说是接送也好,插板也好,是吧?他最终你就说我,我最容易在系统上传输都是零幺零幺吗?是吧?他不能说给你发一个什么字母串过去啊,是吧?发的还是零幺零幺,那零幺零幺啊,每八个还是一个字节 好说到底啊,说到底,其实你也不用觉得说哇,这个各种不同的格式很很神奇啊,其实最终呢还是落在字节上面的, 那还是做字节上面,只不过字节呢,他的格式要求上会比较复杂一点是吧?他就多了一层啊,多一层你必须得准备做串啊,准备做串之后呢接生做串啊,比如说接生啊,接生做串,把这接生做串再变成半数组啊,半数组呢?再通过这个什么这个接口把它发出去 是这么个意思啊,所以啊这个我们有的同学咱们会说啊,这个之前对接过什么 j s 的 叉尾的,其实核心是一样的啊,核心是一样好不好? 好,这是关于什么?就是数据的格式啊,大家强调一点。呃,那么接下来的话呢,就是这个过程中啊,就是我们的数据交换的过程呢,有这么几种啊有这么几种。第一个呢就是轮询 啊,轮询的话呢,就是你上文机啊,你比如说我们在这个环境之下是吧?你比如说我这个啊,文文机我想从它里面去拿一个什么值,比如说温度值、湿度值、压力值、流速等这些我想把它拿过来是吧?那怎么拿 啊?有几种?有这么几种方式是吧?那第一种那你你要拿是吧?那行,那你告诉我呀,你告诉告诉我给你拿是吧?我也我也反馈给你是吧?这个东西啊,你放大发送请求,请求完之后呢,他一看,哦,你要拿就好,那我把这个返给你 啊,他把这返给你。这是一个比较常见的方式啊,我很多这个上我希望就是这种方式来处理的好吗?好,那这种方式呢?这个就看你啊怎么去请求的啊?怎么去处理的是吧?好,那这种方式呢?这个就看你发请求他就响应给你,你不发呢他就不响。 对,好,那这这第一种啊,等于是第二种呢?中段啊,中段,其实这个名词写的不是很准确啊。呃,其实你可以这么理解,他其实就是你的下位机主动的把数据反馈给你 啊,主动把分出去返给你,什么意思呢?啊?我现在呢有有这种情况啊,就是说我的这个商位机以上位机为标准是吧?商位机呢?我再启动起来。启动什么啊?比如说我反正一个服务器或者叫主机吧,主机,主机呢?哎,然后呢?他在 程序啊,我打 p l c 是 吧?在启动的时候呢,它会在网络里面寻找一个主机啊,寻找着,比如说它是吧?好,那我们看这个寻找之后呢?然后它连上去,哎,连上去之后呢?然后呢?就它会主动的把数据发给他 啊,主动发给他,当然呢,你说我我我这个商务机,我公务机,我要主动连给 p l c 是 吧? p l c 连成功之后呢? p l c 呢?把这个数据自动给我发过去。那也可以啊,就看你只要是主要是说建立起连接这个过程啊,建立完之后呢,谁发是吧?你就谁发 啊?但是呢你要想啊,我们,你看我们有时候的咱们,比如说这个输输输的设备,或者咱们有些这个,呃,甚至说 p l c 是 吧?啊?你这个东西呢,相当于是增加了 p l c 里面的这个代码逻辑啊,设备里面代码逻辑 对吧?那代码呢?需要设备这边呢?需要去主动提交数据给你是吧?第一个他得检查网络,第二个呢他把数据呢发给你之后呢你得你也得去处理,是吧?那通过咱们的不是,不是通过你要自己解决是吧来进行处理的。呃这种方式呢比较少见啊,大家可以理解一下,了解一下。 往后走呢就进发布订阅啊。发布订阅的话呢这个方式呢其实比如说像 m q g g 啊,这个是在互联网里面的比较常见的情况 是吧?就是说我可能说我我我这个不管是扣单也好、商议也好,是吧?我先到某个地方去订阅一个发个订阅,这个订阅意思就是说,呃就是一个标记啊,我需要什么样的结果啊?一个中心的一个位置是吧? 中心位置啊,中心的一个,呃就是类似于这么个结构啊,比如我们这是一个啊中心位置有这么东西是吧?啊?然后所有的客户单啊,所有客户单呢都会向他去注册,找他去要啊?找他要。你说我我这个我需要什么样的数据?他需要什么样数据是吧?他需要什么样数据他需要什么样数据啊?给他告诉他啊,告诉他 一旦他拿到什么样数据的时候他就转发给你,转发给你转发给你,是吧?就这个东西呢?就什么?就像我们的在邮局啊,邮局是不是一个中心的场所是吧?邮局去什么丁包纸 啊?邮局是不是是不是一个叫做中心常常所啊?那邮邮局的话那那这个他呃我比如说我要定什么人民日报啊?我要定什么这个 呃这个什么什么学习什么那个相关报纸是吧?那这个当他这个邮局,然后,然后那个发行发行班或者咱们的集团上是吧?发布了这个什么相关的报纸过来之后,他说你看谁订阅了啊?那就发给你,那没订阅的发干嘛?那不发吧,是吧?你这个就是一个订阅的过程, 这个东西呢,其实每一个呢都是一个终端啊,每一个都终端,不管上位机啊、上下位机啊都是终端,但是我们都是基于什么?基于这个中心服务器来处理的,好吧?哎,这就是咱们的通信的一个数据格式和相关的通信模式啊,就大概的结果,大家可以理解一下啊,但后面我们可以通过代码转来更深入的去理解一下这个过程。好吧, 好,那么还有一点内容啊,就是就是关于咱们在通信过程中啊需要注意的事情啊,就是你本身来讲,你比如说你管说是数据,呃,这个什么数据格式啊,是吧?包括咱们的,呃,这叫啥?就是通信 啥的是吧?通信模式啊等等,这些包括接口处理是吧?这些东西都是需要我们通过 c 箱的代码来处理的啊,来来来搞定的是吧?啊?但是且代码不可能没有异常啊,这个大家其实不用去太多太过于去紧张啊,因为 代码有异常的很正常啊,有 bug 吧?对啊,没有,谁说一次性啊?把所有东西一次性写完,写完之后没有任何问题,那不可能的啊。 好,呃,所以说这个过程呢,我觉得大家呢还需要关注几个事情啊,比如说这个异常处理啊,异常处理代码出现异常呢,是吧?很刚刚说是吧?很正常情况,但是呢你得去预料到啊你得预料到。 呃但是这个异常呢啊?但这个不是说一次性,两次性啊,两次,一次,两次是吧?你都把所有的异常都能预料到,咱们慢慢的积累一下好吗?第一个啊超时 啊,超时呢,在个通信里面的非常常见的。这个问题啊,超时,因为这个工业现场他比较复杂啊,比较复杂,你比如说像不光是强弱电是吧?都可能说都都都都都在啊,都在一起,那这个弱电呢?他是他是非常非常脆弱的是吧?你这个如果说遇到强电的话他可能会受到干扰啊或信号的干扰,那可能会导致什么? 那这数据你前头说的吗?干扰的情况下就会导致这些数据的撬边是吧?你有些信号他就不对了,那不对啊,不对。发过去那对方能够把你能够识别吗? 识别不了是吧?那识别不了的情况下那怎么办?那是不是他就他就把你丢掉了?你这个过程就就是你请求之后啊?假如能请求吧,请求之后啊,他没法把他把你要写的结果发回来 是吧?那那你在等着,你等着之后那是不是超时了是吧?等。等多长时间?是不是要超时是吧?第一个超时。那这种情况呢?他是比较常见啊,但我们一定预料到,如果遇到这种情况怎么办 啊?得有预压,那就代码里面得有得体验出来是吧?比如说,呃手比较简单是吧?你说呃我发送过去是吧?因为咱们的同行对象呢?因为这个接口相关同行对象是吧?他一般呢都会有一个啥叫做读写或者说。 呃读或者写这个超时的时间配置是吧?那如果超这个时间好那我就直接拿不到出去。拿不出去那我继续往下走还是继续往下走是吧?还继续活呀对吧?好那这个就往下走。往下走之后我再再来请求再请求之后呢?他又拿不到是吧?或者是我这个超时多少次之后我就认为什么我认为我的通行不通 啊?通信不通啊。通信不通的情况下会提示什么?提示用户说哎你的线路有问题啊有干扰或者怎么样的啊?你要检查要物理线路啊,因为这个东西物理线路这个东西是吧。你这个软件是解决不了的你只能有用户去啊是吧现场去排查是吧?有这个意思啊。关于还包括有些什么就通信过程中是吧?你说。呃我这个 你说我请求的时候是正常的啊那他响应回来呢他也干嘛他他太烦人敲边了那烦敲边之后呢我这个数据能用吗? 用不了是吧那用不了的情况下那这个怎么判断他有没有跳变呢?是不是那是不是得去有一些错误的校验呢 啊或者硬件方面软件方面其实都可以啊加一些这个校验的信息进去是吧?加那加密吗?加密把这个并且把这个密钥带过来啊这样的话我们可以检查根据密钥是吧?检查一下每个值到底有没有动啊?有没有被动被这个改变啊?这个如果改变那行那这个可能用不了如果没改变呢那我们就正常使用就完了 啊。就是错误的交验很正常啊很正常很常见啊,这个我们后面在这个讲协议的时候呢,大家可以理解啊,就可以接触到,好吧,哎这关于咱们这个错误啊,错误交验, 呃最后呢日记记录啊,呃关于日记呢?我想说的意思就是说因为呢这个有些时候吧你的代码是吧?你已经部署到这个现场去了 啊?布置现场呢?有可能你的现场的环境呢?你肯定没有开发的环境,因为我我在办公室开发跟你在现场部署那环境肯定是不一样的,对吧?呃就像刚刚说的是吧,你的这个呃干扰问题啊,干扰问题之后呢,你导致说你这个数据不准确了, 那怎么办?那你这个你要你要抱着电脑去现场去调试,有时候这个这个信息他可能不是说一次一次两次就能搞出来的,是吧?长时间的。那这个需要干嘛?需要写的是啊,就是比如记录一些通讯失败的时间呢?错误码是吧?啊?数据内容啊,就是就是我们要排查这个异常啊,我们日制呢这个东西呢非常重要啊,这个大家在写的时候一定要考的也难 啊。呃当然呢,呃这个我们一般来讲在用左斜应用的时候是吧需要考虑这些啊,那如果我现在说没有去,呃还刚刚学啊这个基础的编程,但是我一定把思路带给大家啊,一定把这个思路带给大家是吧?一定要注意好不好?哎这是关于这个一场处理在通信里面的非常关键。 好。呃最后啊最后还有两个地方啊,还有两块啊,这两块内容的话呢还有一个后面的注意事项呢,其实都一样的啊,我这边呢我就快速给大家注意啊,快给大家介绍一下是吧?基本上像关闭连接啊,这个呃关闭呢,其实呢关闭了是吧啊?关闭的话就是说你这个如果我所有的都体验完了和采集呢,我也结束了是吧?结束完之后我们就干嘛就把它关闭掉 啊?或者说咱们有些这种异常的时候断线重连啊,断线呢我们也需要做一些这个啊这个这个断线我们也得判断一下你是物理层面断线还是说咱们有些这个代码层面断线对吧?那这个咱们需要判断一下啊,判断一下好吗? 就像刚刚说的那个什么就是通过多次的重试啊,重试完之后发现,哎,你这个数据获取不到的话,我们就看一下是不是我的连接对象断开了啊?如果连接断开之后呢,我们再重连,然后重连时候还是连不上啊还是连不上,连不上的话呢肯定就是这个物理线路断开,如果重连上了那我们继续往下走就行了,是吧?这就是通过心跳的方式来进行处理 啊。下面这边呢有一些常见的啊这个通行协议啊,呃这个大家了解也行啊,了解行这边我就不再一个给大家介绍了啊,这个东西呃因为都比较 比较多啊,比较多,这只是只是这一种,并不是说婚姻里面只有这些啊,这只是冰山的一角啊,一角都充不上啊,我这好九牛一毛是吧? 然后呢这个协议上呢非常多啊,不管说咱们交多少名交多少名的是吧?包括咱们有些私密协议,那就更多了是吧?啊这个一般来讲呢我们可以有一些对应的文档呢,可以参考的,这个不着急。好吧,不着急啊,我们这个先先捏到这啊,自己可以看一下。 嗯下面注意事项呢,其实跟前面的那个呃叫啥啊?就是呃就是异常处理呢,其实差不多,比如说实质性和性呢。嗯这个东西呢我想跟大家说一下,就是说 呃有时候我们在做数上了机台就是采集的过程啊,采集的过程中呢?嗯就是我们会做主动锦州啊,主动锦州的话呢,你的这个频率是多少 啊?频率多少或者往沙发下发指令上我多少多长时间发一次啊?发完之后他能收到对吧?这叫实时性啊,这个实时性的话呢他根据不同的场景他要求不一样是吧?有时候呢比如说啊这个像十毫米啊,像什么?这个十毫米一次是吧?十秒钟一次是吧?哎,这个按照这种要求来 啊,但是我觉得在 c 项目里面啊,其实之前有朋友问到过是吧?呃根据我们经验来讲是吧?最最最快的,最快的基本上在十毫米左右啊,最快也在十毫米左右,那再再快也也快不了了是吧?所以这个根据不同情况啊,你可以去判断一下就是相关的业务需求的 啊,还有包括贷款,贷款规划就是说你这个每一次传输的数据量有多大啊?数据量有多大?你不然的话你这个一 b 来讲就传输第一个有距离, 第二个你每一次传输的这个数据量有这个频率多少?那这个可能说啊,你得规划说我,你不能说我,我把所有的这个数据,我在我在一定的环境之下,你比如说像这种每秒钟一个传感器的四个字节数据,至少需要什么每秒四百币的贷款,呃,就是一秒钟我想传多少段数据?就简单例子啊, 你比如说我有一百一个啊,一个传感器呢四个字节的数据啊,就是至少是多少四 k 啊,一秒钟需要四 k 的 这个贷款 啊,四 k 贷款,那四 k 贷款的话就是你,你说我们现在一秒钟传四 k 的 这个数据,那我如果说我的贷款达不到那么多,我是不是得得一秒钟传不了啊?一秒传不了,一秒传不了的话,那那那我在这个如果你的持续性要求又很高,那这个肯定搞不了了,就肯定搞不了,因为你数据根本传不完,一秒钟根本传不完呢, 是吧?这么长吗?啊?所以这个如果你实心要要求更高,你贷款就要加大,是吧?传授更多的数据啊,是吧?这,这是他的一个,我们在传授时候,因为有很多小伙伴说,哎,我这个一次性传一千个,接受一千个设备啊,一万个设备我怎么规划啊?其实这个规划呢?其实就是吧,这个一般来讲怎样做做划分啊?区域划分啊,这个最后做数据会,数据会走, 这就是后话了啊。这个他们咱们先了解这么多,往后走什么数据啊?数据安全呐,加密啊啥的,什么数据的一个重连呐数据啊,叫做鲁班型,就见状型是吧?包括呢啊,像什么兼容性呐这些呢?其实, 呃,刚开始初期的话可能理解不了那么多啊,但是呢慢慢的,慢慢其实都可能会涉及到啊,但是呢首先呢你在就是大脑里面或者你的理解不了那么多啊,但是呢,慢慢的其实都可能会涉及到啊,但是呢,首先呢你在就是大脑里面呢要去考虑考虑这些东西, 但是这时候我们开始的时候不太清楚怎么考虑的话,没关系啊,没关系,慢慢去锻炼啊,慢慢练习啊,到时候咱这个写代码就知道了啊,好,往后走的话就开发调试。好,那这个地方呢有一个非常关键的信息 啊,大家知道就是在通信的过程中啊,你说我这个我们本身来讲就是一个通信的双方,对不对啊?通信的双方我要去接你去连接,那我这个没有设备怎么办?是没有设备啊,没有设备,那这个肯定是不是搞不了了 啊?但是没关系啊,这边我们可以有一些啊,比如说你在现场或者不在现场情况下,我们可以用一些这个仿真的方式,模拟的方式来进行测试啊,来进行测试,因为你要知道我们在做上门机开发的时候,他其实有关系的就是这个通行过程, 是吧?通行过程的话呢,我只要说有什么东西啊,不管什么东西能够帮我把这个过程建起来,能够把我过程呢,能够那个走走通,是不是把我逻辑往下走,那是不是就能完成我们代码的这个调试啊?是吧?至于说啊,我后面再接到这个现场去之后可能还得调试啊,是吧?至于说啊,我后面在接到这个现场可能还得调试, 但是我最起码你得先把你的最起码把基本功能开发出来吧。啊,所以这个东西咱们也是需要准备,但是没关系啊,没关系,这个我只是跟大家说一下,后面你比如现在啊后面这些我们都会有这个相关的调试的这个软件啊,给大家说,好吧,哎,这个不着急啊,好,行,那这是关于咱们第一部分啊,就是简单的了解一下关于上一期通信的相关内容。 好,大家好啊,呃,那么从这个视频开始啊,我们就正式的进入到啊这个接口通信和这个协议啊里面内容。 呃,那么目前来讲规划啊,根据规划来讲的话呢,咱们只有两个接口啊,一个是串口,一个是网口啊,咱们先呢给大家介绍一下关于串口通信和这个相关的协议,好吧, 好,那么关于串口的话呢,这个可能啊,咱们有些同学可能不太熟悉啊,不太了解啊,因为啥呢?因为现在串口其实一般的 pc 啊,一般的工业电工业,这个公控的啊,不是公控,咱们家用的一些 pc 啊,肯定看不到了是吧? 啊?你比如说这个呢,我搞了一个图片啊,这个图片呢?这是一块主板是吧?啊,大家有的同学可能连主板都没有太过的接触过啊,因为现在的很多这个电脑都是什么?就是接,就是那个品牌机是吧?啊?他们很少去打开那个主机, 呃,这个以前我们呢可能说都接触到那种兼容机啊,就是自己配电脑,自己配那个主板呢?内存呢?硬盘呢?包括啊这个,呃,还有一些电源啊这些是吧?真的这这些东西呢?可能显卡还是显卡是吧?那这些呢,我们可能去自己配啊,所以我们能看到说咱们这个主板上面有些什么,这些主板 是吧?那主板呢?这个它呢?在这个后边机箱的后半,就是一般在后面部分啊,会有这么一些叫做接口啊,接口里边像这种是吧?这个这个叫做非常常见的插,插个网线,哎,我们要上网就插它啊,你比如说我有一些现在一个像以前的啊,什么鼠标键盘啊,是这种接口的 啊,包括这种 usb 是 吧?啊,包括这种 usb 啊,就是音频线啊,什么啊?麦克风线啊,这个接口都可以插上去啊,这个呢?这就是什么?这就是串口 啊,这种串口,这叫九针串口啊,除了九针串口之后呢还有其他的一些类型啊,但是这个呢是比较我们现在呢就是接触比较多的啊这种串口,好吧,来这个来可以了解一下啊,这关于主板上面的,对吧?啊?那说话再说回来啊,这是一个比较老的啊这个主板的配置,然后现在主板基本上看不到的 啊,现在你说你要说我要去配个主板啊,然后把这个电脑配起来,哎,没有了是吧?没有这样的啊,没有这样,包括你,我们现在很多教授用的笔记本,笔记本它会有着窗口吧,好像现在基本上看不到窗口了是吧?基本看不到啊,包括你这个什么网口线都可能会把它隐藏起来网口接口都会都可能把它隐藏起来啊, usb 呢?就是那么几个, 是不是啊?但是没关系啊,你看我们也可以干嘛呢?也可以通过啊,咱们这个 usb 去转换一个窗口出来 啊,去转换一个窗口出来是吧?但是这个这个东西呢,这个其实很简单,这个也很啊,也也这样吧,也比较便宜啊,这个大家可以在网上去啊,这个自己看一下啊, u a d 转窗口是吧?啊,这个这个东西呢,咱们可以直接插到你,就比如说你插到你的 u a d 上面是吧?那就可以在电脑里面去扩展出一个窗口出来 啊,扩大为朋友圈,那后面我也通过这个窗口来进行通信啊,来进行这个啊,通信过程啊,通信处理是吧?好,那不管说哪一种啊?不管说这种还是这种,来咱们接下来的话呢,一定要注意一个检查,什么检查呢?比如说我现在啊,我这个或者说我电我,我想看一下我电台到底有没有, 或者说我电台我插了这么一个东西啊,我到时候我好像看一下我到底能不能用是吧?啊?那这个怎么建呢?作为管理器 啊,设备管理器,你就打开你的设备管理器啊,你就是遇见电脑啊,遇见遇见我的电脑是吧?此电脑啊,然后呢去里面有个设备管理器,然后这个手机里面有个设备设备管理器,设备管理器里面能看到一个端口啊, com 和 l p t 啊,这么一个节点,这个节点下面你比如说像这个是 com 一, 这个 com 机呢?就是什么呢?就是像这种默认的啊,这种窗口啊,默认窗口,它会在上面呢,写的是一个叫做 com 一 是吧?那如果你转的呢?哎,转的话就是这样的, u a b 杠 three, u a b 杠 three, 然后这边呢是 c h 三四零啊,这个是它的这个芯片的型号啊,这边是 com 四,这是它转出来的一个这个这个这个接口 啊,这个窗口是吧?但是这个不管是哪一种,如果正常的情况下我们只需要知道说,哎,我们有个 com 一, 我们有个 com 四,是吧?这两个 com 都可以用啊,这是什么?就是窗口的这个名称啊,就是窗口的 好吧。好,所以啊,这是什么?就是关于啊咱们这个窗口的一个啊,基本认识吧,好不好啊?这个窗口的基本认识啊,大家可以了解一下,好吧。 啊, ok。 啊,那接下来的话呢,如果说啊我们要基于啊这个实际的创口来进行学习啊,来进行测试啊,来进行测试学习的话啊,就是你要看一下这个理解一下这个创口的通行过程吧,是吧?我看这个发数据过去啊,然后怎么样把数据接收到 啊?单纯的是这些对象啊,这这些接口来讲,我们可以这样的是吧?我们可以呢把咱们这对应的这两个接住啊,这个针啊,对这两个针呢,把它这个短接起来 啊。短接,什么叫短接啊?就是搞一个线把它比如这个点,我搞个线把它接起来,接起来就是你这个反正往里面,呃,搞一手插一二,一手插这吧是吧?那这个呢?可能说我们这把两个用两个线,是吧?把这两个给接起来 啊,这样的话就短接上呢,就是我,但这个时实际的开发中不是这样的啊,实际的这个啊,这个现场可能不是这样的啊,现场的话他因为因为我们是要接设备的吧,你要可能说这个接口是吧,可能要接到另外设备上面,但是我们现在没有设备情况下,我们来干嘛呢?来,去通过这种方式来短接来理解啊,了解这个通信的过程。 哎,你了解的过程,我后面会通过这个相关的这个 c 向对象,是吧?来发送数据啊,接受数据是吧?就这个过程啊,就但你要自己去测试啊,你可以这样来,好吧,就是关于啊这个短接自测啊,短接测试测试啊,那但是呢,这个是关于啊这个实际接口的情况下啊,咱们是这么玩的。 哎,那如果没有呢,我又没有这个接口啊,我又没有这个转换器是吧,那我这边呢肯定是空的啊肯定是空的是吧?那这边呢当然没关系啊,这边我们可以用这个窗口的一个虚拟窗口来进行仿真 啊。进行仿真是吧?呃,但是我先强调一下啊我先强调一下啊,这边的话呢,它这种方式啊,仅仅只是能测试我们的啊,就是 c e 下的原声的这个窗口对象进行相关数据发送 啊,但是如果说我们要对接一些其他的一些啊,比如说我们啊这个 modbus 的 一些仿真啊,或者咱们其他一些什么啊协议的仿真,那可能你这个硬件接口是用不了了 啊,肯定用不了,所以呢,我们还是一样的,就是如果你没有这个硬件接口,或者说你想用软件来模拟什么什么协议通信的时候啊,我们必须得用什么用这个啊,虚拟串口来进,就接串口下面的协议是吧?同线是吧,那这个需要通过虚拟串口来进行处理 啊,所以这个也很重要啊所以这个也很重要啊,那这个这个地方的虚拟创作里面呢?我们就干嘛呢?就说啊,首先呢你安装一下吧,哎,这里有个地址啊,有个链接网站地址啊,你可以,你可以去这个呃自己下载啊,安装一下很简单啊很简单 啊。然后呢里面有一个呃就是汉化以及破解的这个呃相关的这个文件啊,你可以直接按照里面的说明是吧来进行处理操作,行了是吧?然后这个软件呢安装好之后是吧?安装好之后打开的情况就这样的啊?打开就这样的啊打开之后这样的啊,打开呢?我还是来先跟他简单说一下啊 简单说一下,如果说啊,如果你的这个物理的啊,就是物理层面上有些串口的话,来这边会就是物理串口,就你你实际上你的电脑上面,你的这个主板上面是吧?有这样的串口来就这样的 啊,包括你呢这个 u a b 转窗口它都会在这显示啊,就这十十五啊,十五窗口,那么下面这是什么?这是虚拟窗口是吧?虚拟窗口啊,那这个虚拟窗口的话怎么来呢?来这啊,你这边呢就直接干嘛呢?这成对出现了吗?成对出现啊,这边是啊六七是吧?来这样添加窗口,看到了吗?这就怪了吗? 啊?你看这个注意注意这个注意条线啊,这条线他们两个是一对,他们俩是一对,一定是成对的,为什么一对?为什么是一对?我们后面来讲啊,你看这边是吧,你看这是来了,包括下面这边是吧?这是他跟他是一对啊,那你要说觉得我这个键多是吧?没关系,把删除掉把删掉 啊,对吧?你看又回来了是吧?现在呢我只需要一对就行我只要一对就行了是吧?你比如说我如果说啊像这个呃有些什么啊?窗口的调试啊,窗口调试软件我可以接到它上面我的 cf 代码呢我可以接到它上面是吧?它两个它两个之间就是一个数据的互通的一个过程 啊,但是为什么这样做是吧?我们后面通过这个呃串口对象的时候啊,讲串口对象的时候给大家介绍好吧。啊?所以这是什么?这是虚拟串口的一个技术使用。 ok, 可以 了,没问题了啊这就是一个简单的使用没问题吧?就是点一下按钮而已就点下这个按钮而已, 好了啊,前面这些没有的话没关系啊,这个是你的物理的物理接口是吧?没有的没关系啊,我们只关什么只关注这个。好,这是关于啊咱们这个呃环境的准备是吧啊环境准备啊,好,那关于后面的话呢我们还有一些什么这个调试啥的我们再结合啊,这个咱们到代码的再给大家解释一下介绍一下啊, 好朋友们,好啊,嗯前面呢我们给大家介绍了如何让你的电脑拥有一个创口啊,是吧?啊其实这还没完啊,拥有创口我们只把它用起来对不对?嗯所以呢接下来啊我们在用之前呢还得去准备这么一个工具啊,这个工具呢叫做调试助手 啊,大家可以在这个网盘下面去下载到。呃那么这个是什么作用呢?是吧?来我来简单的给大家介绍一下, 首先明确一点啊,就是说我们在写这个程序,如果要做通信肯定是要写一个程序的,是吧?那这个程序呢要做一个事情啊,你比如说像我们之前你的电脑上面有这样的创作的时候,是吧?有这个创物理创口的时候啊,那么我们就需要把我们的对应的那个创口的名称呢给到代码 啊,给到代码,然后让代码呢去帮我们做打开动作,也就是啊,其实也就是加电啊,就是我们把那个窗口的这个认为说啊,我这个要用一个窗口啊,你这个要准备好,是吧?哎,是这么个意思啊?啊, 当然呢,哎,当然大家想想如果说我们是物理的窗口的话啊,那可能说我如果说想要我从我的代码里面从这个通过这个窗口是发送数据啊,希望我代码发出去,那发送数据去哪呢 啊?发送数据去到哪里了呢?是吧?啊?如果说你有这个串口这边接的有设备啊,如果接的有设备,那我们是不是可以直接接过去啊?直接发过去是不是 啊?那没问题,那这个咱们直接就是那个你跟设备之间做通信也完了,是吧?啊?另外一个呢,你可以那样,你可以把你的串口上面这两个针呢?哎,把它这个, 呃这个这个短接掉啊,我们之前讲过短接吗?啊?接过短接自同性测试啊,这样的话呢,就是当我们通过我们代码,或者说啊通过咱们的一样的这个这个调试的这个软件啊接到比如说我们这样啊这个这个软件是吧?我然后呢去让他去打开,比如说 com 四,或者打开 com 一 啊,那这样的话呢,我在我们的这个窗口上面把这个啊两个针呢,二三针呢?把它短接掉啊,短接完之后啊,短接完之后,然后呢当我这个程序啊去往这个接口去发消息的时候呢,那么在我这边就可以马上收到我发出去的形态回来了 啊,这叫自测试啊,自同性测试,那我发出去他也通过那两针呢回回来这个信号了啊,别忘了,那如果说你要是通过 c 加代码写的,如果是通过代码写的,那你的代码发出的东西,那么 c 加代码呢?也可以收到他所发出的东西 啊,就是自测试啊,自测试。但如果你要设备的话,那设备那边处理啊,那我们如果没有设备咱们要自测这边这样写创作这边 好了。哎,那如果说我现在呢我不是用的这个时机的啊,这种窗口啊不是用这个另外一个呢?我也想干嘛呢?我也想用我的 c 项目程序啊,发送发送出去,然后用另外一个程序来收, 用另外一个程序来收啊,就我在电脑上面吧,我一台电脑上起两个程序啊,我一个程序发一个程序收,是吧?你这样的话就相当于什么呢?相当于是我在一个电脑上面呢,是吧?我们 有需要有两个两个程序啊去进行,呃,进行这个呃测试,让两个程序之间的做一个测试,我们可以呢通过 cfo 代码向我希望 cfo 向他发 啊,这这我这这是我,我说的这种情况,这种第一种情况是我前面说这种第二种情况就是我们通过 cfo 代码是吧?往他发啊,他就收到 cfo 代码发的消息,是吧?然后呢,我们也可以通过这发,发完之后呢,然后呢 cfo 这个 cfo 程序这边呢?也可以查到。 好了。哎,那现在如果说我们需要两个程序啊,来了,是吧?如果需要这两个程序来进行对接的话,那我们需要用什么?用虚拟窗口 啊?用虚拟窗口啊,所以这个基本的环境大家一起了解一下。那这个虚拟窗口里面呢?比如说我的程序,我的 c 交互程序,我连的 com 一 啊,如果我的 c 交互程序连的 com 一 啊,这,这说怎么来的?我们上个上个视频也讲过啊,我们自己看一眼,如果连的 com 一 好,那我这个程序呢?我就连 com 二 啊,因为但这是这是一对啊,这是一对,他们俩是互通的啊,通的啊,如果说我的 c 项目程序是 com 二连 com 二,那么他呢?就连 com 一, 他们两个就可以互动起来,是吧?那为什么不能连一个呢?朋友们啊,为什么不能连一个? 因为串口呢?他有个特性啊,只能被独占,也就是说你一个程序把那个串,把那个口给占用了,把他这个给打开了,那其他程序打不开了,所以他不能同时打,连接同一个窗口。 哎,这就大家的一个一个一个这个特性,是吧?所以这是为什么?用虚拟窗口就是成对啊,是吧?一个是连我的这个一方啊,一个是连通信另一方是吧?两方之间呢?来做通信,通过他中间来做终端 啊,这是虚拟窗口的使用啊,虚拟窗口这边呢,我们可以通过他来进行调试啊,好了,那这呢就是咱们呃这个调试助手的他这个作用啊,调试,当然我们如果说啊,有的人说这个, 特别是在这个虚拟串口的情况下啊,如果说你没有这个调试助手啊,这个可能不太好测试啊可能不太好测试,所以这个大家注意一下是吧?然后呢这个拿完之后呢,把这两个软件都安装一下啊,都很简单啊,这个直接运行就行了,没有什么这个不需要安装啊,这个不需要安装, 好吧,安装好之后这哎,对,还有一点啊,这个安装好之后呢,我来跟大家说一下,呃,打开之后呢,这边有一个 word 全是英文的啊, word 英文,你把这点一下来,把这点点下,里面有个叫做 language, 是 吧?它切换英文和中文吧,切换过来就是 word 全是这样的是吧?来比如该打开,然后再点一下,哎,它就切换中文了, 就这个样子的,好吧,其他的暂时暂时先不用去研究它啊,我们后面呢在那个使用的时候我们再慢慢跟大家说,好吧,哎,这是关于这个工具啊,大家可以拿一下啊,去准备一下。 好行了啊,那就咱们前期的工作呢,关于接口的认识啊,以及呢啊你接口的准备啊以及调试工具呢,我们准备好了,那么接下来呢,我们要正式的进入到啊这个窗口对象的一个处理,是吧?写代码哎,通过 c 幺五代码了解我们的通信过程,好吧, 那么好,那么接下来的话呢,我们就正式的进入到啊代码环节了啊代码环节,通过代码去给大家介绍一下啊,如何去在 c 下方面是吧?啊?进行这个窗口的开发啊,窗口开发 啊,啊,那么 c 向代码里面呢?有一个对象啊,叫做 siri port。 啊,这个对象啊这个对象呢就是一个啊,它这个就是框架里面自带的啊,框架里面自带就我们使用这个点的框架里面就会有这个东西啊,我们这样吧啊,这会儿我们就直接来,我来创建项目啊,创建一个项目来啊。 呃那么这个创建项目呢?我创建两种啊,因为现在目前来讲大家知道就是。呃这个, 呃这个 c 销的程序呢,分为两个,两个平台,两个框架是吧?一个是 firm 的 框架的,一个是点对的框架的是吧?我们呢?哎来分别来创建一下,给大家说一下啊,那你们有点小差别啊。 呃首先呢我们创建啊,因为它就是通信啊,我这边就直接关专注这个 c 幺代码,咱们就创建控制台,这个控制台呢我们就是什么?就是点 that 环境的啊,我把这个代码呢给它这个复制过来啊,创建一下是吧?跟到咱们几个啊,朝西点 siri 啊,咱们稍微缩一点好吗?好,来下一步 啊, ok 啊,这个这块的话呢,这个呃好,我再跟大家说一下啊,之前呢前面有很多同学觉得说这个不太理解啊,这不太理解这个有些同学可能手上没有这个什么年代的酒啊?没有什么其他的,没有哪一哪一个 不要紧,不要有哪一个用哪一个,不要去迷,不要去理会这个括号里面的提示啊,这个括号里面不是给你看的 啊,不是给你看的,好吧,这边咱们就只有哪一个用哪一个啊,不影响。好吧,好,所以咱们这个啊,第一个选择的框架啊,然后接下来下面呢就是把它打勾啊,把它打上勾,不然的话你就跟我不一样啊。好,接下来这边啊大概就完成了啊,跟着一起做,咱们创建一下, 创建一下啊,好,创建完之后呢,来拿到咱们这个代码就是这样子的,是吧?代码就是,那我们要写的代码是不是在这里面写啊?也要在方法里面写啊,你不要写到方法是外面写,放外面是没有效的,用逻辑写放在外面是没有效的是吧?你写在内里面是吧?写到这个应用空间下面 啊,其实不要觉得是我说话多余啊,这个其实我们做过这么多啊,这个翻译是吧,咱们有很多小伙伴,那就不注意是吧?不注意,不注意,括号 你要干嘛?这个格式要求非常严格啊,一定要注意到花块的位置,好吧。嗯,好,那接下来的话这是属于什么呢?这是属于是咱们当前的啊,这个点内的环境下面啊,这我来说一下叫做什么点内吃九点零是吧?九点零环 境下的啊,也就是说他其实又是九点零啊,其实我们就是应该来讲是从什么五点零到九点零环境下都是一样的,哪怕是之前的酷睿这个版本是吧?版本五点零到九点零环境下都是这样的 啊,都是这样的,我们在这个环境下面呢,很简单啊很简单,两个我们都写啊,你看我们这边啊,是不是啊?你,你需要一个创作对象吗?如果要做创作东西,那你需要这个创作对象叫做 sirioreport。 好, 来我们大家写一个叫做 sirioreport 啊,一定要打完打,你不打完的话,这不出来 是吧?你看出完之后呢?报错啊,你说这个,之前那个同学不是说这个,这个对象在这个点的环境它自带的吗?是吧?那他为什么报错呢?报错是什么?报错是因为这个对象呢?我们现在默认是不加的,现在 我们需要手动把它加载一下,是吧?来,比如说你把光标放这啊,把光标放这,然后呢?点一个点一下啊,点完之后你看下面是不是安装包啊? 是不安装包,咱们直接插到最新版本就行了啊,对吧?你不要不要纠结什么版本啊,反正这边我就直接安装最新版本啊,安装好之后呢?哎,你看颜色变了,如果颜色变成这样子,你看包括这边也出现这个, ok, 搞定 啊,这个正常,咱们就可以继续往下走,是吧?好,下面呢,我们就给他一个名字啊,那我们就起视频是吧?那就看不见,看一下就用这个名字算好不好?等于又一个他对象本身的话, 是对象时的话,我们通过这对象对象时的话,之后我们才能去通过这个名称去进一进一步的操作啊,调用你们的方法呀,调用你们的手信啊,调用你们什么东西,是不是啊?调用你们事件啥的,对不对?好,这是什么?这是关于点。 net core 啊, core, 包括五二零七二零八零九二零是吧?这是之下的啊,这个东西 好不好?同学们好,行,那这是什么?这是第一步环节啊,那这样往下走,我再来一个,再创建一个, 再添加一个项目啊,再添个项目,这个项目呢我们就创建啥呢?呃,我我我这块我是在这选的,这我们之前就是一些历史的。好,这我又该解释一下啊,这个地方是我的历史使用模板啊,你说有可能咱们有可能这边还没有啊有可能这边没有,没有的话你在这搞 控制台,你在这选一下啊,你说你在这选的话,如果我刚刚我刚刚创建这个项目的,咱们就选这个 啊,咱就选这个,是吧?但是呢我接下来我要创建另外一个,这个后面有个什么点的 freecode 的 这个框架啊。所以我说现在的点的 c 项目环境有两两种吧,一个点那特一个什么点的 freecode, 对 不对啊?我们选择这个 freecode 的 啊,来下一步 啊,下一步的话还是这个位置啊。呃,这个位置的话呢,我们给他这个名字啊。呃,稍微再写一下 ctrl c 啊,这边呢我们写个啥呢?点 s w 啊 freecode 嘛,是吧? x w 啊,好,来放出来,下面呢这边是框架,是点的四点八。呃,还是一样的道理还是一样道理,你这边有什么用什么啊?不一定要跟我保持一样有什么用什么啊,你要只能创建出项目就行了啊,只要能创建项目就行啊。好,来咱们下一步创建一下, 好,测试完呢,是吧?这是什么?这是 freebase 啊,这边的话呢就是适应什么?就是叫做啊 dinet 啊, dinetframe 啊,这他以前版本啊 freebase 像咱们非常像。三点五啊,一直到多少?一直到四点八 啊,要四点八,三点五,四点零,四点五,四点六,四点。呃,四点七,四点七,四点八是吧?你像这些版本哎,就使用 框架啊,框架一下使用啊,啊,使用啊。好,所以呢啊,那这边我们是不是一样写啊?跟前面是一样,我们这边是不是这样写?好,来看一下,我们大家写拐着往下走啊,写个什么? siri, siri port, 哎,你看 这就自动提示,这个提示并不是因为我之前这边安装了,它跟这边安装没什么关系,没有任何关系,它两个是不同的项目它两个是不同的项目,你不要觉得说我前面安装了,所以这边它能生成提示,它不是的 啊,那不是的,那我现在这边啊,把它放这来展开之后呢?你看你这个时候他就直接干嘛你,你如果说你直接这样跳完之后啊,把它教练教练了,把光放这来,对吧?你看这边是不是就直接 u 的 了, 哎,为什么呢?哎,这 u 的 他不是安装啊,不是安装他直接 u 的 啊,你不要觉得说我们有很多东西这样的,是吧?你看我在,我在课堂上我是这样写的,将它点一下安装最新版本啊,咱说这个他有这个,这个老师我是这样写的,将它点一下安装对应就行了呗。 啊?这又能想这两个不同的,因为这个粉末的粉末这个框架里面它里面所包含的东西,它里面就是自动就在里面已经有了,这个是不带的, word 是 不带的,它是一个另外一个组建啊,你需要把它安装进来,那这个呢是是打包在一起的啊,它两个是不一样的啊,所以这边的和剩下的喜好都一样的来,等于什么?等于六一它 啊,这边是等于六一个啊,什么东西? ok, ok, 搞定,这就是什么?就是首先要拿到对象,你把这个环境准备好了,那我们接下来动作好处理了,这样东西都是一样的啊,胜利,后面的话呢,我就基于啊,咱们这种方式基于这块啊,在这个地方来给大家做演示。 ok, 老铁们这块儿 get 的 话啊,咱们啊就可以自己尝试一下。好,那么好啊,咱们前面知道说,哎,这个对象怎么来的是吧?我们怎么去拿到这个对象再 c 一下问卷怎么准备啊?啊?准备好之后呢,接下来咱们把那个对象呢来真实的去使用一下啊 啊?看一下,第一个啊,就是关于这个死人对象呢,这边有几个啊?你看我们这也是一样的六一个东西是吧?啊?但这个我这样吧,这个我再稍微再改一改啊,这么来写一下,不然话的越推越难,去理解一下这个什么是什么意思啊? 这个吧,其实我之前在这个零基础的这个 c 项目这个视频里面给大家简单讲过啊。好,那现在咱们创建完之后呢,你看这个创建过程,它跟我刚刚写的是不太一样,是不是 不太一样,是吧?不太一样的,来,接下来啊,我们要给大家介绍下他核心的就是 c e 交互代码,他核心的几个属性是吧?啊?这里面啊,我们先简单说一下啊,就是关于窗口飞向 啊,窗口东西啊,窗口东西里面呢,它里面做一个,呃,我们之前啊了解到是我们准备了他的这个创客之后啊,准备了创客之后啊, 呃,然后这边呢它会有什么?它就对应的这个窗口名称出来了啊,比如说像这这是 e l b 转窗口的就是啊这个名字是吧。后面有 com 四这个这个编号是随机的啊这编号不一定是 com 四啊有可能是别的别的号包括这个通讯端口是吧? com 一 这是它自带的啊像这种的它会自带的这种呃就直接就是通讯端口 啊。如果说像这种啊如果像这种虚拟的呢啊如果像这种虚拟的呢啊那我这样啊我把我的目前的啊这样一个。呃这个大家打开看一下。呃现在呢我这边就直接打开设备管理器啊 设备管理器啊然后设备管理器里面呢我们这边有一些来这个端口对不对?哎来展开你看,哎你看这是什么这是 usb 转换口的对吧?啊这是蓝牙的啊蓝牙上面带的啊然后这边呢什么这你看这就是虚拟窗口 啊这个虚拟窗口呢你看这个框里面它起的不一样是吧?啊没关系啊没关系,你其实这样的这样是一是一个道理我们只要看前面就行了是吧它代表就是 com 一 啊它呢代表是 com 二,它那 com 一 指的什么? com 一 向 com 发的啊它 com 一 向 com 发就是 com 二向 com 一 发它就不是物理的啊这种接口是吧?它是虚拟接口 啊这两个虚拟结构啊这是它的一个啊不一样啊是吧?好,也就是什么意思呢?当我们再去使用这个窗口对象要进通信之前你得去知道你要去连什么窗口啊是吧?你得去连哪个窗口?我我电脑上有很多窗口,我到底从哪个窗口来通信呢是吧? the rear port, 你 看啊, the rear port 点什么? 点 port name 啊?就等于你比如说什么,比如说从什么 com 一 看啊,进行通信可不可以?没问题啊,我要从 com 三通信,可以,你取 com 三 啊,可以写上啊, come 一 这样的,是吧?你给他写上来啊,给他们写上来。好,那么这样写上来之后啊,接下来我们看一下这个是什么意思呢?这个就是指指定啊,指定通信的这个创口名称。创口名称是吧,你到底是哪一个? 对,那当然哪一个好?当然呢,你看这个写法呢,跟我这边肯定不太一样啊,可能不太一样,是吧?我这边呢,直接写到这的 这个呢?它其实是一个啊,就是它这个量可以允许我们两种方式都可以写,您可以直接写这个对象的属性,然后给它复制,也可以呢,你把这个名称写这也行,里边写这,是吧,那比如我现在什么写个啊? com 一 com, 哎,你这样写也行,这个程序不报代码不报错啊,代码不报错是吧?那比如说啊,假如我现在这边呢,我写个 com 一, 这边呢?我写个 com 三 copy com, 那 他觉得最终他使用哪个 com 呢?肯定是最后设置那个 com 呀,对,肯定是最后设置 com。 你 要这么想啊,咱们一个对象里面,他肯定是有个地方叫存这个名称的,是不是啊?首先来讲,它里面肯定是有什么有 com 有 个这个属性名称的 啊,那你在这直线的话,无非就是通过勾的函数把这个参数传进去啊,最终它其实还是把它设置给它自己。那什么放在那个上面啊,你后面又给他设了一个 com 一 是吧?那相当于是把之前指数覆盖掉了,哎,就覆盖了,覆盖掉之后,但这个最终拿到值就是 com 一 是吧?啊?就是 com 一 啊,这是第一个是啥? 那么说到这个地方来,同学们啊,到这个地方,我们现在呢,我来稍微的给大家扩展一个知识点, 就说我们有很多程序啊,他其实并不是让你在这,是吧?你手动的去啊,填写一个什么 com 一 啊,或者咱们直接自动去设置一个什么 com 一 搜索叉放这的啊,有些呢,咱们比如说类似于这种,哎,我们下拉选择就是下拉选择啊,等一下,咱们这样不能运行啊, 啊?可以运行啊,但是运行没有效果啊,那比如说我们现在有个什么,有个下拉程序,我到这选择,我可能会把我程序下面所有的看,我都把它拿出来啊,那之后呢?然后在界面上啊,然后有个地方有个下拉框是吧?下拉列表是吧?让你去选择,选择完之后我选择哪一个,我就连用哪一个, 是不是?这是配置上的一个处理好,这里面就有一个非常关键的一个方法,关键方法,但是这个方法呢,有点特别啊,你要注意,我注意,看我怎么写啊? siri, 嗯, put 胆儿 get put names, get for the names。 好 注意啊,这个地方呢,它是一个叫做静态方法啊,我们把它转到定义啊,我们转到,比如说转到定义啊,转到定义里面,你看是不是静态方法,就是静态方法,就是这个类里面啊,这个类里面呢,提供的一个静态方法。来来,考上去 啊,你在这是吧?这样方法,这个方法呢就不需要使力化啊?对象的啊对象的静态方法啊,不需要使力化啊。直接掉,直接掉是吧?那么这样掉之后呢?他得到的结果呢?就是我们当前环境下可用的所有的结果。 这个方法反过来,比如说他返回什么什么结果啊?是个自由串数组是吧?把官位放这,你看是吧?是不是做啥数组好?死句 死菌啊,这个啊,这个叫做死菌是吧?兽族啊,这边给他一个叫一个叫做。比如说我们写个 pose 啊,就给他个名字吧,取个名字啊,你这个名字随便取啊, a a b c c 都可以是吧? pose 就 给个有含义的这个名字尽量给个含义啊,对吧? pose。 那 这个意思就是我们要取到什么?获取获取当前 当前环境下所有的是吧?有用有效啊,有效接口名称,有效接口名称 啊, ok 吧,来,这样啊,呃,几个代码就是关于啊这个专门关于这个窗口名称的一些使用啊。那这样啊,我把这个单点单点我打这啊,我们来一起来跟踪看一下啊。跟踪看一下,好,来启动起来。 呃。启动起来之后呢?然后进入单点啊,进入单点之后呢?往下走下一步。好,我们看一下啊,它里面的值,你看它里面有个有一个叫做坡的内容啊,坡的内容啊,是不是的?是不是 com 三 啊?这 com 端哪来的?这个 com 端是不是就是就是他,对吧?好,那接下来呢?比如我在下一步,下一步之后这个时候是吧?他就把什么把这个是把这个 port name 给它。复制什么呢?复制成 com 一 啊。 对啊,复制成 com 一, 那就有这种使用,就是 com 一 是吧?好,最后啊,咱们下面这个就获取所有的创口名称,我们看一下有多少,我不是 com 一, 也不是 com 三,我想连其他的可以吧,选择一下,看有什么有效的。来,三五四一二都来了 啊,这个顺序大家不用去太过于纠结啊,其实都差不多都一样的啊,反正就是一二三四五六,反正都在里面,有效的数据都在里面,对不对?选个哪个都行, ok 吧,这就是关于窗口名称的啊,一个技巧,一些操作,好吧,自己可以自己尝试一下啊, 好了啊,那么前面呢,我们使用了一个基本的啊,一个窗口的处理是吧?好,那么这接下来呢还有几个参数啊,这几个参数呢,在窗口中心里面呢,也是非常关键啊,非常重要的,是吧,称之为啊,咱们的基本参数 往下走,我来一起来跟大家说一下啊,第一个呢就是叫做波特利啊,波特利波特利啊,然后这边就可以写 sirioreport, 点 sirioreport 等于啊,比如说等于一个值九六零零。 首先我先写完啊,写完之后呢,我再跟大家说一下啊,还有啥呢,就是叫做数据位 sirioreport, 点 data base 等于就是等于八 啊,然后呢还有什么?还有这个叫做,呃,倒烟位啊,倒烟位啊,那么 siri port 啊,点这个 party 啊,这个名字等于啊,叫做 party 点啊,这个 no 啊,好,那还有一个啊,叫做什么停止位 啊,听着位啊,这样叫做时分啊,点 stop 等于啊 stop this, 点 one, ok 啊,呃,这些呢就是它的呃,这个基本的参数, 这参数的话呢,首先明确一点啊,这个不是你想怎么设置怎么设置的啊?不是你想怎么设置怎么设置啊?这个东西呢,就是当我们在给这个我们本地的啊这个窗口加电的时候,你比如说这边啊,我们的物理接口转物理接口上啊,我们商店要打开这个窗口, 然后这个窗口呢?然后这个窗口是不是连到对方,对方的这个设备上去啊?物理上来讲是吧?连对对方设备啊,测试啊,模拟情况下咱们可以不考虑,但是对方这个设备他以什么样的,就是比如说是波特率啊,波特率是指的什么呢?指的是这个接口他以什么样的频率去发送我们的信号, 是你什么频率方向。所以你要想啊,如果说我们这个我们的这一端跟设备那一端他的频率不一样,他会出现什么情况?他可能会丢失数据吗?对吧?数据,数据接不到了是吧?那数据不对了,对不对?所以这个频率啊,也是包括咱们的什么数据位这样位置,这些东西都得跟这个设备那边呢要保持一致 啊,要保持一致啊,所以这块的话呢,大家一定要注意一下啊。啊,另外一个我们之前呢有这么一个文档啊,大家可以去可以来观察一下啊,大家也不用担心说,哎,我这个记不住怎么办,是吧?你看这边我们有个文档,这这个文档是这样的啊, 这文档呢是一个叫做驱动器啊,这个文档是驱动器,它是通过这个窗口四八五来进行通信的啊,那么这边有个叫通信协议的部分来告诉你说,哎,你看 通创口通信控制方式时呢?波特率是多少多少?数据位多少多少啊?我教你,教你位都什么什么,是吧?停止位什么什么?那你看我们一般来讲在这个过程中他都会有提示啊,都会有说明的,对吧?他怎么说我们就怎么设置就完了 啊?怎么就设置完了?好,所以说这边比如说我要波特尼设置多少,你要对于这口当前的文档来讲,我们就设设置咱们九一零零,对吧?那除了这个九一零零之外呢?什么?还有一百零零都乘二嘛?二四零零是吧?乘以二是四八零零,乘以二等于九九二零零,再乘以二呢?是幺九二零零,是吧?然后幺九二零零再乘以二,是吧?三八四零零, 对吧?哎,咱们一个个这样来进行啊,来进行翻翻,翻倍上去,对不对啊?那其实这个波特尼就是说刚刚提示到啊,就说他在每一秒钟, 每一秒钟啊,他的这个接口所传输的这个零一零一的数量,为的数量就是零一零一的数量。因为因为像,比如说像四方五这边它差别信号,差别信号就是两个线之间的电频差, 那么这个电频差的话呢?零和一啊,就是我们表示说是一个啊,这个,呃,相当是你的两个信号吧,是吧?那我现在如果传一个零,传一个零,传传一个一,传一个零,再传个一,是吧?那就是几个啊?这个信号传出去了一秒钟九千六百个这样信号, 那现在这个这信号里面我们是得去区分出哪些啊?是数据,哪些是什么,他一些什么交易啊、金融这些东西,是吧?所以我们按照什么每八个位来进行什么来进行一个数据的一个。 呃,这个描述就说我们在这个信号里面,我可能说啊,哪八个位,哪哪八个信号啊?哪八个信号啊,表示我们的数据部分,对吧?那除数据部分呢,这边还有几个信号啊? 还有几个啊?那么这几个信号呢?比如说这个数据的信号前面呢还有个奇数位啊,这个奇数位是必须的,所以我们不需要设置就一个奇数位啊,奇数位之后呢?然后紧接着就是椒盐味,椒盐味这边是浪是没有啊?是没有啊,没有的话也,但是也可以加什么?也可以加一啊,基椒燕和藕椒燕的 啊,也可以加基椒燕、藕椒燕啊。呃,这个椒燕位的意思就是说我们前面的这个过程中啊,包括奇数位所有的数据,它的一的数量是基数还是偶数, 对吧?如果说我们现在这边是基调键的话,如果这样设置基调键的话,那前面的一如果是偶数,我们就加这边就是这个位,就加一,就写个一,如果前面的这个数是偶数是吧?咱们这样改啊,如果是基数是吧,咱们这样写个,那就写零 是吧?就是意思就是说他会呃配合说前面的一的数量来进行补充,是零还是一是吧?如果我这边配的是偶校验啊,偶校验,那就是前面的呃,一的数量是偶数个,那么他就这边写零,这这个位就是紧接这个数学位,这后面这个位就是零,对吧?如果前面的一的数量是基数位,那就不是,不是偶数吗?不是偶数,咱们这个位呢就补个一 啊,就写一是吧,最后停止位就相当于是我们从前面的七十位到最多的停止位,指的意思什么他的一个核心的数一部分 啊,这一部分啊,这个一般呢,其实在通行过程中啊,你只要按照咱们社会方的来进行配置就行了啊,到这边配置啊,我们一起来写一下,就是关于他这几个参数 啊,这个参数 ok 吧,朋友们啊,那这块呢,我就先啊简单了解了,因为这个这个东西啊,其实如果说咱们想去再去详细的去深入理解他中间的这个数据传输的过程的话呢, 呃,可能还得去再继续花时间去给大家讲做讲解啊,那大家可以通过这个 vip 课程呢去补充一下啊,我这边呢暂时就先了解这几个参数就行了啊,波特利数据位,占位技术位是吧?大家知道一点啊,这个东西呢就来自于我们的这个设备方的提供的参数 平方参数啊,我们就把它写这,这必须一致啊,必须一致啊,不一致的情况下咱们通信上会有问题的啊,大家想想就知道是吧,你这个东西都是都涉及到咱们数据的,他的长度啊,数据数据的信号的一个范围啊,对吧,所以如果说你要是不一样啊,那可能 这个这个传输上两两方的接口的,这对不上啊,对吧?数据有问题啊。好,行啊,那这是关于咱们这这四个参数 啊,这四个参数啊,那么这个四个参数的话呢,那同样道理啊,那你也可以在这是吧,你在这写上去,我这样换个行吧。好吧,换个行啊,这是第一个往下走啊,继续啊,这是第二个,比如说像这个呢叫做,呃,叫叫叫波特率是吧?这个这个参数叫波特率啊,你看这叫波特率啊,那你比如我们写个九六零 是吧?啊?好,然后接下来或者写个二四二四零零啊。嗯,好,再继续往下走。那下面这个值呢?它这个参数呢是啥呢?它这个参数呢?是一个叫做叫艳位啊,边边啊,做椒盐的。好,那起一个,它是个美句啊, part 点浪无胶液 啊,再继续往下走啊,这个呢是一个叫做数据位是吧?数据位咱们写个八啊,八个八个位,一个一个一个一个数据啊,一个一节数据啊,就是我们 下面对应的是这个一部分的一个方位啊。好,那再往下走,继续。还有呢是什么?就是停止位是吧?啊?停止位咱们就是 stop 必死,他一个没举啊,咱们选一个, ok 搞定啊。你看这前面这个通过 word 函数就传进去的,这个函数跟前面的 com 口是一样的,你在后面去设置的话呢,它也可以这么按一设置进去,你包括这边呢也是可以设置进去的, ok 吧?啊,这是我们现在呢,如果说你要用仿真的情况下用这个虚拟窗口的方式来进行处理的话呢,呃,可能看不到这样效果啊,你看不到实际的这个什么波特利啊,什么什么这些效果啊,因为虚拟窗口这边呢,他不不去判断啊,咱们这个东西的一个这些这些参数的一个,呃,这个对与错是吧?反正这边他都是一样的, 所以这个大家不太好测试,但实际上咱们实际的开发中呢一定要注意了啊。好了啊,这就关于咱们这几个参数的一个介绍啊,这块的话呢大家可以自己练习一下啊。在哪在在在这块。好吧 好,大家好啊,那么呃前面呢啊简单的说一下它的基本的一些参数是吧,就是我们在使用的时候可以这样来进行设置, 当然呢这个如果记不住的话没关系啊,这个我给大家做个总结啊,就是说像啊,什么 word name 叫什么叫串个号啊,比如说呢我们填个什么填个 com 三对吧?像这么来设置一下对不对啊?这个呢叫做波特律啊波特律呢,比如说九零零是吧,我们来这样来设置一下,比如说啊什么数据位是吧?这样的 啊数学位啊,比如一般来讲的话五到五到九啊,常用的就是八啊,乘以八,这个不要自己随便设啊。这边的话啊这样设置一下是吧,这是较验位对吧啊较验位啊,是不是无较验这是叫呃偶较验啊,基较验对吧,哪一个来设置一下? 嗯这是停车位啊,停车位是一个停车位还有一点五的啊一点五停车位还包括了两个停车位是吧?两个停车位数据啊,然后这边是叫这个呃这是咱们前面的啊,这么几个一共是五个嘛是吧? 好当然呢啊当然呢,这个其实他是他的基本属性了是吧,当然我们在一般的通讯过程中呢还得考虑啊,还得考虑一些情况,比如说我们的这个读啊写啊是吧,那可能这个还没这个发不出去或者接不接不回来是吧,那我们到底怎么办呢啊那怎么办?那这个可能会涉及到一个叫做超时的问题 啊,超时的问题,这个超时呢啊,他有一个读取超时和写入超时啊写入超时,来我分别给大家讲介绍一下。 呃,这个这个使用的话也很简单啊,兄弟啊,比如 siri port 叫什么 read timeout 啊? read timeout 啊,比如说等于一千一秒钟啊,这是毫秒值啊。啊? siri port 叫什么? right timeout 是 吧?这个呢是等于什么等于一秒钟 啊?然后前面呢?这边啊就是叫什么叫做呃读取啊?这个超时时间啊,然后这边呢叫做是设置啊,叫做设置 设置。就是他不是说我们刚洗完之后他就直接在超时啊,这边叫做设置写写入是吧?嗯那写的其实是发送啊,是发送啊,发送超时时间 啊,这样的话进行设置一下啊。我来简单说一下啊,他说像这个读取和抄读取和接收是个怎么回事啊? 呃你像比如说我们现在呢,在这个电脑上面啊,他是我们这写的 c 幺程序呢,他是要打开某一个接口上向外去发送消息的,对不对? 下面发送消息啊?好,那我下面发送消息的话呢,这边就有一个情况啊,就是我这个接口他一般来讲是要去接入一个什么什么样的啊?这个这个设备的,是吧?啊?那如果说我们这个,你比如我这个程序啊往这里去写, 往往这边去发发的时候呢?其实你要了解一点啊,他发的不是说马上直接让你这个接口把我所发的信息呢给他这个实时的传出去,他实际上这里面呢会有一个缓存区 啊,管还能缓存区,然后这个缓存区的话呢?那当你去把他的这个,呃,这个啊,就是往里面写,往里面写啊,写完之后呢,这个他有没有发出去呢 啊?有没发出去呢?哎,这个可能还不一定,对吧?不一定,因为有时候你这个是这样的啊,就是你如果没有去连设备你这个接口呢,你的代码也是可以把它打开的, 也是可以打开的,也是可以加电的,但是你这个信号发不出去啊,所以这边呢?他你看这个啊,这个马上超速,那就得一直进来这个缓存区, 对吧?那读一样的啊,读的话呢,比如说我现在没有接什么设备或者设备的数据,还没过来,我在那读读,读的什么?读的是他的缓冲区, 就他这返回的结果是先写了这个结果的缓冲区啊,这个缓冲区呢?哎,那接接收收读读的他就超过一定时间他还没读到啊,你这个设备还没返回过来是吧?有可能断线的啊,有可能呢,中间出现什么问题啊?这个直接给这个啊影响了是吧?啊?所以这块啊,你不能说那那等着呀。 啊,我们就直接告诉你是吧?超过多长时间我就认为啊,你这个不行了啊,咱们就要重新来重新来过,是吧?要超时时间啊,这操作的就读和写的操作超时时间,同时说到这个地方呢来,突然我们引出了两个概念,还有两个概念就这中间呢,他其实是有缓冲区的对吧? 啊?这边是有缓冲区的,所以说这中间呢,就你,你比如说我要写啊,我要读他其实不是不是直接给你发出来干嘛?他往里面缓冲区里丢啊?或者左边缓冲区里读缓冲区里读是吧?那读能不能读到呢? 读不到啊读不到。那这个可能就是超时吗?是吧?所以这是他一个箱子他是一个匹配的概念啊。所以这中间啊这个接口里面也就说这个对象的还有一个参数,还有两个参数就是读取的缓冲区和发送的缓冲区大小 啊。这个大小我也可以设置一下啊,但不能不能它它默认是有个默认的对角值的啊,这个你要设置太小的话也没有没有用啊。啊比如说这边呢我们可以怎么来呢?直接写啊叫做 serial port 啊, read 叫做 buffer, 它的缓读取缓冲区的大小啊,对比如说,呃这个我们我记得是好像是四 呃。四八四四四。它的默认值多少来呢?就来记着啊默认值?是 啊默认值四零九六啊默认值四零四零九六这个量应该是最小值了啊最小值就最小值四零九六对吧?啊四零九六啊那我们还可以继续设置啊,比如说我们 the report 是 什么? right? our size 啊它的这个最小单位默认值是二零四八 二零四八二零四八啊对吧?哎所以咱们这是什么?这是它的设置啊,叫做设置捕取缓冲区大小 接收啊叫接收啊,接收缓冲区大小是吧?啊这个呢就是设置啊,比如设置那个叫什么发送缓冲区缓冲区大小 缓冲大小,呃四个值啊,四个结果四个属性。哎开发里面呢可能会遇得到啊,就这个这个需要自己去根据实际的业务来进行调整的。 来建桥。如果说你,比如说你的这个,呃,比如说你的环境比较恶劣,充电环境比较恶劣啊,可能会导致说这个动不动超时,动不动超时了,那我接触啊,那我们可以把这个稍稍时间呢稍微拉大一点,因为有时候咱们环境呢,他干扰度比较干扰,干扰因素比较多,是吧?会导致我们的数据呢,是吧?他传输不准确, 那这个我们可以把这个超时稍微拉长一点,那如果说咱们是吧,你这个当然呢,这个超时可能不是说越长越好啊,如果咱们稍微的那个, 呃,这个本身来讲,理论环境我不能等太久时间啊,哪怕说我有问题,我也不能再等太长时间,是吧?那我就稍微稍微缩缩短一点就适合我们企业业务需要啊,来来来,设置啊,比如说经验来啊,然后包括缓存器大小也一样的,是吧?你如果咱们发送数据比较大啊,发送数据比较多,那这缓存器肯定要需要大一点你,你要及时处理啊,一会及时处理,那就缓存器爆掉了 是吧?嗯,好, ok 啊,这是关于啊,咱们的啊一个啊,这块这个东西呢,他设备这边是不管的啊,是跟设备这边没关系啊。嗯,咱们只关啊,设备这边只关心什么?只关心前面这些参数 是吧?好,所以这个参数的话根据我们实际业务来啊,你的代码准备写啊,咱们根据稍的,如果说遇到问题,咱们可以从这方面啊这几个方面去考虑一下啊,看一下是不是缓存的缓存区有问题啊,或者是不是我们的读机调试时间有问题啊,对吧?哎,可以稍微处理一下。 好,这边呢我们就有一些啊,你看这边我们有就有那个啊,就有相关的数据,比如说这什么八二大小塞大小是吧?缓存大小啊,这个是读取的这个缓存时间,这是写发送的啊,这个缓存大小啊,这个是就输出嘛?这是前面输入是吧?这是输出啊,这边是输出的啊。这个啊,这个超时时间啊,这怎么设置啊?这边都有 啊?对,按你好吧? ok 啊, ok, 行,那这是关于他的相关的属性啊,属性参数是吧,大概先介绍这么多啊,其他的基本上咱们,呃暂时还用不上啊,咱们先了解这么几个属性啊,大家可以练习一下啊。

刚刚有学员问上一期需要学什么东西,我在这里说一下啊。第一个 c 叉, c 叉或者 c 加加,现在主流是 c。 好 吧?最开始以前还用 v b 点 like 啊,现在 c 叉是主流,所以你要学一门高句语言 c 叉, 这个 c 叉的话呢?你要学习什么东西呢?第一个 c 叉的这个基础就是基础语法,比如说数据结构,然后呢控制语句,还有一些比如说对象,对象的概念啊,继承多态这些概念对不对?