可视化 radio button, 实现颜色选择,我们来演示一下,找到一个 radio button, 在这个地方展开,可以添加, 在 text 写上选项, 在这个地方要给他关联一个变量, 定义变亮 color select, 它是一个运腿型,同时定义一个颜色变亮,注意它是双字类型。 给他关联一个颜色,选择变量, 再放一个圆形, 找到它的 color variable 属性, 给他关联变量, 做一个 tax field 百分号 s, n, u 鞋, 然后再 textword 吧,给它关联刚才这个颜色选择颜色选择代码是这样写的,我们可以复制一份, 把它改一下 select e。 利用 case 语句,当它等于零的时候, 把颜色复制为红色。等于一的时候,把它复制为绿色。 等于二的时候,把它复制为蓝色。等于三的时候,把它复制为黄色。 这八位数代表是 r, g, b。 颜色两个为一组,分别代表透明度,红色,绿色,蓝色。登录演示一下效果, 红色,绿色,蓝色,黄色。可以看到这个数字也是在变化,分别是零,一,二,三。
粉丝3.3万获赞6.7万

可视化控件属性的变量控制,刚才演示了这些控件的效果,现在来讲解一下各个控件的变量控制。 比如说这一个是控制他的字体, 字体是通过这一个变量控制找到 find varia 吧,通过变量控制字体的大小, 再看一下颜色,颜色,它是在这个 color variable 里找到毛毛塞, 用这个 few color, 用一个变量控制它,注意它是一个双字类型, 控制不可见。 找到这个 sit wire 吧,找到 invisible, 用一个布尔亮控制不可见。还有这个动态文字串,它是通过这个 dna matex, 然后用一个变量去控制它的一个动态变化, 这个线框,它是在这个外观属性里面找到 let me with, 用一个变量控制它 to tip 它在这个 text to tip 写上文字,鼠标放上去,它就会提示了, 这一个是控制允许输入,他是用这个 safari 吧, 用一个开关量去控制它的允许输入。

要实现这种效果,我们来继续操作一下,可是画工具箱里面找到 button, 拖过来 输入文字, 当然这个文字可以改大, 然后给它关联一个变量,输入配置里面找到 tap, 我们给它关联一个启动按钮,启动我用的是 m 零, 然后复制一下, 停止给他关联,你 给它换一个颜色,这边换成绿色,找到颜色,这个地方 color 换成一个绿色, 这里换成一个红色。 然后讲一 下这个 top 和这个 top 的区别, top 就是取反一变为零,零变为一,相当于信捷触摸屏软件的这个取反, 这个 top 就是顺时按,按下去的时候它是 on 的,手一放开它就变为虎,相当于信节处摸屏软件的顺时按, 然后再做一个这个,找一个基本的一个圆, 然后给它改个颜色, 默认是白色的,当它按下去的时候会变成浅红色,给它换一个绿色。 什么时候变绿色呢?这个地方变量控制的运行的时候变成绿色运行, 然后再放一个运行中,可是画工具箱里面找到这个 lab 标签,给它写成 运行中, 给他改大一点, 这个运行当中可见,不运行的时候它是不可见的,所以说要在这个 invasable 不可见的时候,选择一个 knuckerman 变亮 brunch 反就是 not her, 然后给他移过来组合在一起, 框选组,然后他们就是一组的了。这个是系统自带的一个灯,同样也可以实现这个亮的效果。可是画工具箱里面找到这个 lamp, 放一个灯过来, 给它关联一个变量,关联运行 one ok, 登录看一下效果。 启动停止,启动停止,可以看到启动的时候它显现出来了,停止就没了, 它的颜色也变了,实现了效果。

他的思测是画演示三,这个 radio button 通过选择可以进行一些颜色选择,语言选择。这一个 fantasy 改变数值可以改变字体大小, 同样是可以改的, 可以控制显示于隐藏。 这个是动态文字串, 改变他的数值可以改变他的状态, 这个可以改变线的宽度, 这是下拉框 这种效果,电的效果 实现。 这个鼠标放到上面,它能显示一些文字提示。 这一个可以控制输入, 现在不可以输入,现在可以输入。下面将逐一进行演示。

那下边下边一部分呢,就是我们我们在前边去介绍了 cortesy 死的少爷,介绍了 cts 里边还有一部分功能,可以组台做一个用户界面。那,那这个的话其实对我们做一个测试啊什么的,其实也是也是特别有帮助的,我们可以前边的我们可以组台,哎组台的这个电器啊,或者组台其他的 l 设备便携程序 实现一定的这个这个控制功能,我们可以哎用这个 h y 的功能去组一个界面出来,去实现一个很方便的一个操作。那在这个 cotisis 里边组台 h y 的话,我们首先要添加一个仕途管理器, 添加的方法呢?也是在在这个 application 的接点下边右键,然后添加对象,也是也 添加视图管理器,添加一个视图,添加视图管理器,这里边添加完了之后,我们现在这个是有一个目标视图,有一个网络视图,他这里面的目标视图实际上是指的是运行在你的本机的电脑显示器上边的一个一个视图, 网络仕途的话,你可以通过网络,通过浏览器对他进行访问。咱们现在的两千个控制器上边是只支持网络仕途,不支持这个目标仕途的,添加为仕途管理器之后,然后 我们还需要添加一个视图,添加方法还是跟上面是一样的,选择视图就行。下边是视图视图管理器的一个设置,首先我们可以选择一个起水视图,你这个 运行起来之后,首先显示哪一个,你可以试图,你可以添加多个,试图这地方选择一个,即使试图是哪一个,选啊设置一个他的一个刷新速率,一般这个试图呢我们就是 是人是人工操作的一个东西,或者是人操作,或者是给人看了他不需要很高的这个刷新速率, 就是能够使用这个人正常的一个一个操作,一个响应,你感觉在你的这个人人为的这种使用感受上来说没有明显的滞后或者延迟,这个时候就可以了。仕途呢?不适合 设置很高的这个刷新速度啊,比如说设置五十毫秒以下的,其实这个时候他会非常耗你的这个控制器的这个充 处理资源,一般咱们就设置二百毫秒或者五百毫秒,谢谢。那下边是我们常用的一些空间,这里边可以一些个基本的通用的一个测量的一个仪表,还有一些个 这种按钮指示灯,还有我们的一个锤子。如果我们嗯后边还有一些个其他的一些个各种各样的一些个空间,那比如我们组常常见的一些界面前边的这些空间基本按钮,那么够满足我们的一个日常使用的一个要求。 下边试一下这个仕途的一个编辑,这个仕途节点上双击打开,打开之后我们可以把我们想要放的一些空间在我们的刚才刚才那个工具箱里边,仕途工具箱里边,然后找到把它拖放到 这个实图上面去,货放上来之后调整大小,摆放位置,选中这个空日空间,在属性窗口里边给他设置相应的属性。一般比如说我们这个空间 我们要显示一个变量的一个值,那我们需要设置的一些个相关的属性是什么呢?第一我们要显示这个变量,哎,他的一个显示的格式,第二呢,显示哪个变量,对吧?选择一个变量。第三,我们这个变量 需不需要修改?如果修改的话,你可以在下边的输入配置里边去配置,我去怎么去设置这个变量?像这种按钮或者指示灯也是一样,我们需要给它关联到一个变量上面去设置。好啊,这个视图设置好之后,我们的这个程序 是需要重新编译,重新下装去运行的这两个显示曲线的,就是这个这个垂死的这个空间试图编辑完了之后下装运行,运行起来之后,这个试图也就会随着你的程序去同时运行了。 如果你是目标仕途,你就会在你的电脑上会直接显示出来这个画面的。啊,如果是网页仕途的话,我们需要 打开浏览器输入这个输入地址端口号,然后回车,这个时候我们就可以在网页上去返回到这个视图了。

从今天开始我们学习第六章系统库的应用,我们今天所要讲的内容是定时器及边缘处理功能快的用法, 那定时器跟边缘功能快是在哪里呢?他是在这个 steno 库里面, steno 库在我们新建完工程的时候会默认加载到我们的项目中,现在我们打开这个, 打开这个程序,我们看一下,我们首先点到库管理器,来到 steam 这个库,然后在参谋的这个文件下面可以找到三种电视器, 分别是 t o off, 但 t o off 是关闭延时, t o n 是开启延时, pp 是一个开启脉冲,这是定制器的功能快,那么边缘功能快是在这里, f 是 falling 下降眼, r trig 是上升眼。 我们先看电视器,我们点到 ton, 在输入输出这边可以发现他其实是一个方式 block, 所以说所有的电视器他都是一个功能块。 那由前面的章节我们知道,我们在使用功能快的时候,首先是要吊用,首先是要声明, 那我们已经声明好了这三种定时器的这么一个实力,声明完第二步就是要调用起来,下面我们登录他这个控制器, 我们先看这个推温 tv 是开启延时,就是我们开启这个音角 ton 在图形中可以看有两个角,两个输入,两个输出输入,英语 是开启定时器, pt 是一个定时的时间,那 q 是定时器到达一 t 是时时时的一个计时的一个时间。我们看一下, 我们首先给一个定时时间,就是两秒给音写个处可能出 q 写入值,那定时就开始计时, 计时到两秒 q 量。当我们富裕到阴角的时候,那么 q 跟一体同时复位,那再次出发,再次计时时间到达,那这个就是一个开启延时,也是我们最常用的, 我们下面看第二个 tf 是关闭延时。首先我们先开启, 开启后你会发现 et 的值会变成零, q 的值会直接有处了, 然后当我们关闭音角的时候,那这个时间就开始计时,接到两秒,然后 q 就放肆掉,所以说它是一个关闭延时,在我们开启的那一刻 开始计时,此刻 q 一直在亮,那计时到达可以灭掉,所以 t o 是一个关闭延时。但对于 tp, 我们再看一下,同样是定时两秒,我们开启,此刻 q 字一亮起来, 那定时时间到 qq 就自动关掉,他就像一个脉冲一样,那你设定多少时间,他就会亮多少时间,这就是一个脉冲开启脉冲 第十七,这三种电池器理解起来并不复杂,那需要我们呃十电话,然后运行起来,这么测试一下,你就能很能明白它大概的功能。在这里我们使用最多的就是一个 to 开启一个延时,同时还要注意的问题 就是这个叉 m 这个电视是类型,这个类型呢其实是一个三十二位的一个数据类型,让我们找到当前的这个 time, 就是在 操作数数据类型这边参谋产量。在某可以看到有几种 定时的时机, m 是什么呢? m 就是分钟, h 是小时, d 日航秒, s 跟 ms 是平常用的比较多的。 让我们知道开幕他其实最终一个单位,他是一个好秒单位,他是一个三十二位的一个好秒单位,那么他最大的一个定时时间是多少?在这里我们可以通过这个计算器, 三十二位,我们切了这边三十二位对石榴进来演戏,就是八个 f, 八个 f 的最大值就是四十二亿左右,我们可能是 c 复制一下再回到这边来, 四十二亿,先除以一千换成秒,再除以三千六换成小时, 再除以二十四换成天,那就是四十九点七天。所以说胎木最大的定时时间是四十九点七天,我们定个四十九点七, 四九点七 看已经超过了 井号四十八,四十九点,四十九点七 d 是可以的哦,当我们第四十五十 d, 那有个报错,就是五十 d 已经超过三十二位,差那么一个时间, 就是开幕数据类型,我们在这里要清楚,那当然了,我们基本上是不会用到这种以天为计时的这种单位,基本上那平常我们用的就是好秒的这么一个计时单位,但是我要知道他们的最大定时时间他是有点限制的, 那这个就是我们讲的三种电视器,那下面我们再看看这个边缘,那边缘其实我们可以发现他也是一个方式 blog, 对于我们先看上一上眼, 上升眼的话,它是有一个银角 clk, 一个输入银角,一个 q 的一个输出银角,那么根据这个 clk 从 force 到处的时候呢? q, 然后存在一个周期,那这个就是上升眼的概念。下面我们也同样定义 nice trick 功能快的使用方法,先声明再调用, 由于这个这个相声因他只会运行一个周期,我们在这里要加一个计数器, 去比较明显的看出我们上升前的出发这么一个过程,这个比较简单,要 f r trig, 上升前出发的时候,我们让这个阿一加一, 然后下降盐出发的时候让这个二加二,加一。 好,我们再次登录到控制器 archig, 我们触发的 clk, 仔细观察阿姨, 他就直接加了个一,但是 q 你是看不出来明显的一个变化了,因为他只遇见一个周期,那我们如果想 想要很明确的看到这个 q 的一个变化,我们可以看怎么办呢?把断点加到这里来,我们再出发 cok, 你就会发现 此刻 qq 是处的如初八商业,我们二加三跳过,你怎么还走 前面那些不管?当我们再次运行完第六行,这个 q 就会变 false, 也就是说第二个周期再扫到这个啊,这个的沟通快,那他是就会变 false, 所以他就是一个上升研的这么一个出发,只运行一个周,只保持一个周期。 我们再看 foxy fox 下降音,下降音,下降音就是 clk 从数到 false, 然后会触发走 q, 那也就是说 从 fas 到处他应该是没有反应的。我们在这边加个断点, ctrl qq 写入,没有触发任何, 也就是说 siri k 必须从数到 fast 才叫下降言,我们在 ctrlq 写入字,那此刻就会触发下降言。问,同样加一在词性观第七行,它也会变成 fast, 所以这就是上上下下下下的感觉,也比较好理解。但是有时候我们在做程序的时候,项目中 会对某一个信号,比如说一个传感器的信号,我们既要他的下降,也要他的下降,那么每一个我们都要定义两个功能款,那就比较 繁琐一点,那我们能不能自己做一个功能快,然后同时实行两种功能?下面我们试着写一写,同样 clk, 我们也定义一个输入边料, 既然是有两种输出,那我们在第二的铺子的时候有一个 be our trick, 上升眼,下降眼 be four trick。 在这里我们需要定一个什么呢?需要定一个中间变量,八伏的一个中间变量。那这个程序其实 我想一想,上升研是一个什么样的概念?上升研就是等于前面是一个 fauce, 然后跟上一个处,他就会是一个上升研, 前面是一个 fauce, 所以说他应该我们直接可以这样写, buff and b clk b f trig 就等于前面是一个处, 然后按上一个 foss, 他就这个下。 当然了,我们可以不用这个 buff, 然后直接在面色定义的这两个直接拿过来用就可以了。那就更简单一点的,其实 我们只要知晓这个上上下下下这个圆脸其实可以自己自己这样写,那这个八幅等于什么呢?就等于 bclk, 我们声明一下,吃一个,然后测试一下这个, 同样跟这边一样,说明玩具吊,用起来 shake all fb tricks didn't be on trip all s b。 我们点开这个,这边加个断点,在这边也加个断点, 在这里我们先统第九行,我们先加断点,先看,先进入到这个功能框里面看一下, 当前是 not above, 那么 not above 是一个 true and 是一个 false, 所以说他也是一个 false, 也就是说当往外面 be style 开为 chew 的时候,那这个啊 trigger 它就会变成 true, 我们再看第二行,因为 b buff 是一个 false, 所以第二行肯定是一个 false, 然后我们再看第三行,第三行是把你的 bclk 的直,假如说我们 bclk 他是一个处, 我们右键再设置下条鱼,再再回到第一行,我们可是 qq 写入,写入这个值,这个我们可以看一看。 br trigger 有个输出 f, trig 没有这个它是有个输出,当下一个周期再进来, 当下一个周期再进来,我们在右键是指微下调以及下一个周期,我们认为下一个都已经进来了,然后再来,你看啊,这个就变成了 boss, 对,然后 f 这个它已经像是一个原理是一样的, bbof 一直保持一个 cl, 开始处理这么一个状态,那这这个是一个上升员,这么一个处理,这么一个效果,我们在此还得把它弄成 好,下面我们都把它清成泥, 直接触发 bclk, 上升沿触发加一 f 五运行, 比赛还可以变成 false, 那下降言出发,那么到这个时候呢, 我们就完成了这么一个,把上升跟下降也然后合并到一起。那在这里我们要把这个稍微改一下,变成一个 input, 否则你在这边的眼角比 clk 他就显示不出来,那么也就相当于这个视物眼角没有开放出来的话,那别人是没有没有办法去用你这个上身下降眼的。 那我们再总结一下今天的内容,今天内容主要是其中在这个 stand 这个库里面,那有个 time 三种电视器开启延时,关闭延时,关闭延时,关闭延时就是你触发这个音角的时候, 触发这个音的时候 q 即刻会变成触,那这个自己可以 新建一个空白的一个功能程序去演示一下。那另外一个就是边缘上十年跟下半年,那我们也可以自己做一个同时支持两种边缘的这么一个功能的话, 那就是在项目中如果你当前的一个需求只是一个上升研的话,我们就直接用这个啊吹,如果只是需要下降研呢?你就用这个,如果同时需要两个,那你就可以声明自己做的这么一个功能。那行,我们今天的内容就到讲到这里。

cut 四次编写 t 型图上一个视频,咱们建立了新工程,现在来编写 t 型图。 cut 四次编写 t 型图需要定义变量,在这个地方 b 二和 a 就 b 二之间定义变量。 我要编写一个自锁程序,比如说按铃冒号,它是一个布尔亮分号 m 一冒号,布尔亮分号 m 二,同样是冒号,写一个 b, 然后快捷键 c t r r 加 enter, 可以实现快捷输入。好,现在我定义好了,可以编写梯形图了。 编写梯形图它与信捷 x d 的不一样,它的四次指令是不能直接敲打的,在这个地方可以输入这个指令,常开常闭线圈输出,并连一个触点 插入并联触点相像,然后写入 emmy m m。 现在梯形图就编写好了,可以点击这个按钮,或者说点击 at f 八,登录, 先扫描设备, 点击扫描网络,扫出来以后选择这个设备,点击确定 要等这个绿色,这个绿色都有才可以连上。现在可以登录了,点击这个登录, 再点击这个启动,相当于运行。 brc, 现在这个梯形图已经下载进去了, 这个地方显示绿色,运行这两边也都是绿色的,现在运行它, 双击这个地方会显示一个 to, 然后写入, 现在已经导通了, 在双击贪绘取反变成 forth, 再写入它还是倒通的,所以说实现了自锁的功能,现在把它断开,写入就断开了。

今天我们继续学习 crosses 入门篇第四章常用开发环境调试技巧。我们今天学习监控如何使用监控页面,监控我们的程序变量。 监控页面的用法,在仕途菜单有个监视,这里提供了监控一二三次单机对应的就可以调出四个监控画面。 那我们现在下面打开一个程序,当前已经开启仿真,我们 ctrl 一登录到这个程序, 当前程序其实 over 已经开启了四个监控画面,我们一个个把它擦掉, 或者可能你们的相关的配置有可能是 this is 这个样子,那就是说我希望在当前 prc prg 这个功能块的页面,我是可以监控他内部的所有的一些变量的,那我希望停留在这个页面的同时,可以看到另外一个功能块里面的这么一个程序变量,那可能就需要用到我们这个监控页面, 点开试图监视监控一他 more 可能会插入当前的这个位置,这个时候 我们单击这个三角,选择浮动,然后会变成这个样子,当你按住左键拖动的时候,你会发现 如果往拖在中间的话,比如说拖在中间的话,上面他就会跟我们的这个窗口键放到一起,就相当于是这个样子, 我们再次单击浮动,我们拖动他跟右侧的这个 三角,然后放到一起,他就会像图是这个样子,我们松开左键,然后又可以把这个监控放到左侧,同时我们可以再点开第二个监控,重复同样的一个操, 这次操作的话,他就移到右侧这个区域的时候,他又同时又多了一个中间的这个这个地方,也就是说如果我们还要拖到这边的话,他是并排的,那对于比如说你的笔记本可能尺寸也比较小,那这样的话你的编程区域基本就看不见了, 那此刻我们选择浮动移动这个来到这个上下箭头的中心,把它放到中间的地方, 也就是相当这两个监控他就放到了发套利器,我们希望监控一排到左边的话,也很简单,按住监控一往左拖松开,他就会到了左边那一次完成 其他的一些监控画面,当然如果你只需要一个或者两个的话,其他的也可以不用操作。那么如何监视我们的其他功能框的画面吗?画面呢?就是在这个表达室这边直接输入 p l c 那杠 p r g 杠一, 那在这边就会你可以看页看到拖动当前的这个到大概的合适的位置, 你可以同时观察 p l p l c p r g 的这个功能块相关的变量,也可以看到这边的 c 类似的变量。比如说我们给他一个二, 那我启动这个程序,那这个灯就会做一个闪烁 的一个动作,我们改一个时间,比如说一秒 切到这个画面,我们同时使它也闪烁起来, ctrl q 调试写入是 ctrl q, 可以看到 杠一是使用一秒延时一秒的这么一个灯闪烁,那 p r g 是零点五秒的这么一个闪烁,那这个就是我们今天所讲的这个叫 试图监控页面的这么一个使用, 下面我们再讲一下。另外一个在 在编程用的也比较多了,就是编辑里面有一个查找跟替换,查找替换,比如说我现在当前程序写的是一个控制红灯, 如果我还有一个绿灯需要做同样的这么一个控制, 我可以怎么办呢?可以把程序像类似于这样同时复制两遍,然后按住 control f 或者单击编辑中的替换 control h, 我需要查找 i stitch read, 然后把它替换成,比如说 green, 绿灯 在这边有几个选项,匹配的意思是说我是查找内容是一个完整的,而不是一个部分的 意思就是说如果你希望只是把这个 red 替换成 green, 嗯,那此刻如果这样单击的话,我们单击下查找 这边切先切的活动的编辑器,我们单机查找,发现他是找不到的。有时候 red 没有一个叫 red, 这么一个,这个这么一个整体这么一个变量,咱们把这个匹配勾掉,匹配取消掉,就是我们去寻找的 内容是变量的全称,或者是变量的这么一部分都是可以的。我们再次单击查找。再次单击查找 啊,刚刚,嗯,说的有问题啊,这个匹配第一个匹配是大小写的意思,那我们还是勾选第二个才是。呃,所说的就是 是变量的部分还是全体,不勾选的话,你查找的内容是变量的部分或者整体都可以,我们单击查找,这样的话就会找到这个 red, 我们把这个勾点上去以后, 你就会发现找不到,那此刻我们需要 g r 再次单击就可以插到整体的这个 red, 这就是匹配这个匹,第一个匹配是大小写的意思,第二个匹配是部分跟整体的意思相变,比如说如果 把这个改成消息,我们再次单击找不到,取消这个匹配,就是不分大消息,那就找到了这个 red 下面这个搜索的区域,我们单击下拉框以后会出现几个选项。活动的编辑器,简单来说就是你当前激活那个,就在当前的这个页面就叫活动的编辑器, 如果全部打开了编辑器也很好理解,就是你全部打开了这个编辑器, 比如说这边有一个叫我们使用右键重命名这个 red, 我们把它定成 yellow。 使用重命名的话,也就是说所有使用 red 这个地方都会被替换成 yellow, 我把这个关掉,那比如我现在要查找这个 yellow, 我单机全部打开的编辑器,理论上应该是找不到,单机没有,我把这个打开 切页面切到这里来,再次单击,他就会找到这个,这就叫全部打开的编辑器。那全部工程更好理解了,所有在你 app 开启下面所有的功能块,他会在这里面全部去找所有 项目。原库,那就包含了些原代码的库。下面这两个我们用的平常用的不多,按照字面的理解就只选择选定的部分,选定的部分比如说在这个区域我们做一个查找, 因为这边是没有不包含页录的,那我单选第一行单击查找,他是可以找到的,这个叫自选择。嗯,这个就是查找跟替换的一些功能,我们把继续把这个功能完成。 没有搜索 red 活动的变频器搜索 right, 第一个我们不替换,不想替换的话,你可以继续单击查找下一个啊,这个我要需要替换,单击替换啊,这个我也不替换,单击下一个,这个也要替换单击,那也就是说所有的 idis red 已经替换完毕, 那像这个下面我们就希望替换 t red, 希望替换,那你可以不需要在这输,就是双击选中它以后直接 ctrl h, 那这边的值就会直接跑过来。我们选一个 t green, 单击查找下一个,再次下一个替换,下一个,再次下一个替换,替换,替换。 light, 同样 查找下一个替换,下一个 替换替换替换替换,那这样的话我们就完成了 红灯变绿灯的这么一个一模一样的控制,那对于全部替换也很好。也比如说我当前希望把这个 yellow 或者 t red 全部替换成 t yellow, 选中活动编辑器使用全部替换的时候一定要非常的仔细, 你最好选用这个活动编辑器,如果单机全部工程的话,那么他会把你所有的编量全部替换掉。对于海量的大型的应用项目来讲,有时候可能会造成一些非常麻烦的这么一个后果。 这是我们单击活动的编辑器,也就是说全部替换,除非你非常缺席,没有问题,最好使用全部替换的时候在活动的编辑器,避免扩大替换的这个影响。 单击全部替换,可以看到 t e l 全部被替换掉,那这个同样 全部替换啊。 今天的内容我们就缺少到这里,就是有关监控变亮了这么一个页面的一个用法,我们注意两点,第一,在哪里找到这个监控页面, 如果监控页面处于下面的这么一个位置的话,我们希望调整它,可以单机浮动,然后任意拖到我们想要的这么一个位置, 我们今天就到这样。

他的四,从绿灯程序的演示看一下效果。绿灯,绿灯闪烁,黄灯,红灯 有循环,这是东西方向,南北方向也是一样的, 他为绿灯,他就红灯,黄灯也是红灯,可以停止,可以启动,当然可以更改他的参数,改成三秒, 绿灯闪烁,黄灯红灯。 这个程序涉及到多个知识点,包括 全局变量、变量映射的两种方法功能快的鉴定和使用。 然后这个程序在题型图里面签透 dec 语言,具体我将拆分成几个视频。

今天我们继续讲解第六章系统库的运用。我们今天所要讲的内容是字符串的处理学方法, 在我们平常的项目中,特别是牵扯到通讯的时候,基本上会牵扯到对发送或者接收的一些数据的字幕上做一些处理。 那处理这些支付站所用到的一些函数,就是在系统库的 standard 这个里面。 像我们切到这个程序,点开库管类器 dna, 下面有一个均方形,提供了这么多有关连接,删除、查找、插入以及相关的一些 pou, 我们可以看到 他所有的都是一个方形,就是所有提供了速算处理的这些方法都是一个函数,那我已经在 may 函数中把所有的方形的函数是组串的一些函数都写到这边来了, 那采用的就是我们之前讲到的那个调试调试函数的这个模板程序。首先是一个 kiss, 下面是一个取反的一个动作,保证我们只会执行一次。下面我们直接登录到这个程序, 因为测试这些方形的时候,它会有很多很多对应的支付商或者接口,所以我们在待测试这个 man 函数中 定义的定义一些 inter 型的, string 型的,或者是 word 型的,或者是 real 型的一些变量,然后供我们在测试这些 p u u 的时候去使用。 首先测试,测试第一个就是这个 can cat, 我们可以通过拖动这个放到右边这个摇,然后实现一个双屏的这么操作,右边 位置稍稍动一下光标放在这里,你就可以大概看出一些简单的一个英文的这么一个函数的说明, 这个其实就是一个连接,连接两个字串中间,那下面我们直接运行一百 s e 就得到一个 hello word, 这个比较简单。然后这个删除,删除,我们看一下 delight 这边,它是删除 link correct, 就是删除 lin, 连是在这边是,也就是这个 r 一表示就连还有个 pose, pose 代表的是 从哪地方删除,他说零到一都是指向第一个组成,那么我们先从零开始,我们删除大概两个字符, 理论上来讲,我们触发幺零幺的话,他会把 h e 删掉,还有只剩下 l l o, 我们验证一下,触发 幺零幺发现它并它只删除了一个 h, 所以说它这个注数讲的 pose 等于零,也就是对应这个 i r 的这个虚音 pro 的这个变量 input 型的这个边呢?呃, 在实际我们操作起来发现好像不是这样子,就是零,他指向的零跟一的返回其实不一样,我们看一下把这个 ir 也就这个 pose, 我们从第几个字母开始删,我们来改成一, 同样出发幺零幺,那当前返回就是 l l o, 跟我们设想的是一样的,也就是这个 i 二等于一,表示从第一个字母开始删,就是从 h 开始删,删两个,把 h e 删掉,刚好剩下 l l o, 这才是对的。那如果改成零, 那他这个返回值就跟我们想象中的不一样,实际他只删掉了一个字符。 所以对于系统提示说的这个 pose 等于零或者一,都代表第一个主串,其实可能在是运行或者说你发现是有问题的。所以我们在使用 delight 这个方形的时候,一定要把这个 pose 从一开始,也就是说,呃,所有的 in function 我们后面也会看到有关有关字幕上所引的,它不是像我们的数组一样都是从零开 开始,他是从从一开始,也就是说第一个字符就是一,第二个字符就是二,那下面我们把这个 ir 改成二,那第二个字符是 h e e 开开始,也就是删除两个字符,就是把 e l 删掉,还剩下 h l o, 那我们再出发幺零幺, 那还是用 h l 没有问题,那这个就是 delet, 那 find find 就是查找,指不出来,那从 hello 里面去查找,比如说我们查找一个 l l, 输入幺零二,返回,这是一个三,那 l l 第一个 l, 也就是它的访问,这个三,我们可以看到这个三代表的是第三,第一个 h 是一, 意义是二, l 杠是三,所以说他返回值的这个 find 这么一个,所以呢值三的技术也是从一开始的,他跟我们大部分有一些总串了,这么所以呢返回值从零开始不一样,这就是我们 那在处理一些,在处理一些查找缩影的时候一定要注意,就是 find, 它的返回值的缩影是从一开始的,不是从零。那 insert, 然后我们也可以点一下这个 insert, 点到这个图形发现,也就是说它指的就是把 string 二的插入到 string 一,然后插到什么位置呢?这个位置是用 pose 来指示的,也就是说比如说我们插入一个一二三,从第三号开始插入,从第三呢就是 l h e l, 那也就是说插入完了一个字不算,应该就是 h h e l, 然后加上一二三,然后再 l o, 应该就是类似于这么一个总称,我们验证一下,那出发幺零三, 那 h e l。 跟我们刚刚讲的这个是一样的,所以这些自助串啊,就是单个的方形,看上去并不是特别复杂,我们如果对它的注视 呃,不是特别理解的话,你就可以直接就是实际呃运行起来测试一下,那你对他的这么一个,整个整个方形的一个理解就会更深入一些, 那紧接着就是 left, 那这个应该比较简单,就是截取自助串左边的三个,那幺零四触发应该就会返回 h e l h e l 那这个是计算字,不算长度的,那等于,应该是等于五幺零五,返回去等于五,没问题。 mind, 这个就是结局,这部串你可以看一看这个 mind 的函数 lan r e 就是截取五个字母串,那从哪里开始?从从第二个字母串开始,第二个在这里代表的是 e, 那截取五个,那我总共珠串长度才是五个,所以说他应该是会把所有的全部截取掉, 也就是说幺零六 s 一的返回值应该是 e l l o。 我们出发一下幺零六,那 e l l l o 没有错,也就是说如果你的 r 一的长度超过了它走向这么一个数量, 那也就会把剩下的全部截截取掉啊。如果我们从一开始截取两个,那应该是从应该返回的是 h e, 你再触发幺零六 h e, 没错。 replace 替换来替换,我们再点开这个,一个 d l r e 代表是一个长度, 然后一个 p 代表的是一个位置,从哪里替换? 对,这个不是理解,没有不是特别理解,没关系,那我们就直接验验证一下。比如触发幺零七, 我们看看幺零七,它就等于幺二三 l l o, 那大概就是什么意思呢? i r 代表的是就是这个 p p 的位置,是一个位置从哪里开始替换? 从一的话就从 h 第一个字符 h e 开始开始替换,那我替换几个字符,替换两个字符,把 h e 替换掉,用什么东西用 s 四去替换,所以这个就比较清楚了。那我们在一二三四五六七八九 换成 this is 这样子,我们假设把这个五六七换掉,那五六七应该是第五号开始 把五六换掉,呃,把五六,把五六换掉,五六换成 q w e, 然后就应会应该会变成一二三四 q w e 七八九,我们触发一下幺零七 q w e 七八九 问题就五六没有了。所以说再次就是对于这个他的解释,不明白的话你就去测试一下就可以了。 right 应该是比较简单,就是右侧去这三个,直接触发幺零八 啊,去两个口就八九。那刚刚所进行的就是所有的单个功能,我们都 去那个计算了一下,那下面我们自己做一些小的功能,比如说像我们比较比较硬的,比较经常的就是比如说合成字不串,那相比于系统提供了这种字不串的合成,我们可能会两个字不串,中间会加一个分割 的这种方式,那我们实现这个,所以有个分割服务,那可以两个两个字不串,那如何去使用我们的提供的这些个方形,然后去做一个我们自己想要的一个功能,那这个 这个也就是说实际上就是先把菌一跟这个分割符先做一个连接,然后把连接的结果再跟这个菌二再做一个连接,那就完成了。我们添加一个分割符的这么一个,组成连接的这么一个方法, 那 as comp cat 二,等于 string 一分割符 这样一个结果给到他,然后再去连接上你的 contact 二,那实际上这样的话,那也就完成了, 下面我们直接试一下幺零九幺零九 s e 等于 s concate 分割符,我们使用逗号 第一个 s 三,第二个 s 四,直接 ctrl 一登录, 直接运行幺零九,应该会变成一二三四五六七八九,逗号 q w e, 那结果就如 我们所料,那如果,嗯,如果我们需要连接三个呢?就三个字母串 c 一二三,怎么办呢?再创建一个, 再加一个三, 然后像这样子再写,继续往下写也是没有问题,但是会特别复杂,嗯,会写的特别多的。行, 我们其实还有另外一个办法,就是说我们可以先使用已有的这两个,已有的连接两个组成的这么一个方法,那我们先使用它,使用 你已经有的这两个,嗯, steam 一, spin 二,那这个就已经完成 spin 一二的这么一个,下面再怎么办呢? 那还是在用它。那把之前的这个结果放在这里,来,这边连上数据三,这样不就可以了? 就是可以利用已已有的,那下面我们再测试一下 幺幺零三, s r ctrl 一 给一个 l k, 触发幺幺零,可以看到 l k 逗号一二三四,然后也能达到我们的一个要求,那有人说我可能需要四个,以此类推,你再写一个,写四的时候记得 这边用什么呢?这边用三,先用一个三,再用一个,再用一个二,然后就完成了, 他们这个四五也是同样写法。那如果我要连十个,那是不是说那是不是我要一直从二一直做到十?那也不需要, 也就是说大部分的我们的一个使用场景可能二到五就足够了。哎,就如果是五的话,如果是你真的是要连十个字不算的话,那我们可以 在我们的程序中直接使用两个五连的,然后去组成一个十连这么一个速算就可以了。呃,也就说没有必要你要去从二做到十,如果他需要有连接二十个速算,那也要一直做到二十,这也不太现实, 那这个就是支付串连接的。然后我们就讲到这里,那既然有支付串连接,那肯定有支付串切割,下面我们做 一个把我们输入的主串按照我们指定的分割服务切割开来。那这边 首先首先我们先考虑下这个算法,那就是我们首先要找到这个分割符所在的一个珠串,然后再使用一个什么呢? left, 比如这个这这个方向的反应位置在哪里?然后我们使用一个 left, 所以把左边的这个给它切回来就可以了。 那我们先看 find 的返回词, find 的返回词是是什么呢? 拖到这边呢?发的反而是一个 inter 型,我先定一个 inter 型的变量, 使用 i index 等于 fight, 从哪里找?从这个 s input, 我们输入了这么一个参数里面去找, 找什么?找这个分割符,返回了一个返回了一个方案的这么一个缩影值。由刚刚我们测试知道他这个值是从从一开始的,也就是说 假设我们是一个一二三逗号,假设是一个一二三逗号四五六,那么你这个 对这个子弹进行一个查找,这个逗号他返回的是应该是一个四,但我们其实只需要前面三个,所以说对当 选的这个算法,那么直接第二步,利用这个 left, 利用这个 left 并联 as input, 根据这个的返回值 index 减一其实就可以了。像我们测试一下 幺幺幺 s cut left, ok, 看一下我们接口,第一个是输入助算,第二个是分割符,这个顺序一定不要搞错, 我们要切割的是 l k, 不对,我们就输入刚刚所说的一二三逗号四五六,然后我们可以在这加个断点, 直接幺幺幺滚出 qq 进去 alt 加二进入,加入先查找,刚好等于四四减一三 left 去三刚好帮我返回一二三,没有问题 啊,这个就是使用就是 dana 助战库提供的这些最基本的方形,然后我们再去实现我们程序功能中所需要的这么一些常用的这么些方形函数。 那有关这个 standa 的这个字母串的处理,我们今天的内容就讲到这里。





今天我们继续讲解第四章常用开发环境的调试技巧。我们今天的内容是讲一下如何使用仿真, 因为我们在做项目之前,特别做一些新项目,可能会有一些设计的,设计的功能快或者是方形,然后先要做一些测试啊,测试没有问题才可以在我们的项目中使用。 那么在测试这些功能的时候,如果你又没有 plc, 那我们就可以使用 ctc 带着这个仿真的功能。 那第一种仿真呢?比较简单,在在线菜单中我们勾选这个仿真,然后你就可以直接登录控制器了,那当前的这种模式适合大部测试大部分的算法,甚至做运动控制,使用虚轴运动控制也是没有问题的。但是比如说像文 的处理文件,文件夹以及通信,那他是没有办法响应的。那我们先从程序看看第一种仿真模式,在线勾选仿真,然后直接登录 啊,当选这种模式我们就可以运行大部分这么一个,大部分这么一个测试的功能,包括使用断点一起相关的都是没有问题。 亮点进入,嗯,下面我们想做一个文件夹的这么一个创建的一个 功能,我们这样在库文件中引入这么一个,添加这么一个库,这个库如果添加,那就是直接 svstr, 然后会吹这个,这个把他的裤加进来就可以了,有时候你会发现你没有找到结果是因为你没有勾选这个,莫乱扣的是刚刚装完的时候,他是不不会勾选这个高级裤,把这高级裤点一下就可以了,还需要一个数据类型, 因为我们使用到的创建目录了这个这个方形的,就这个选有一个路径的名称,然后一个是否全部创建了个 boss 变量,反为之是一个阿 ts 的,怎么就是 result? 那这个数据类型是在这里面有的啊?相当当前 这两库我们已经都加入完毕,代码在第六行,第七行我们使用 s 一之为路径,第一是否启用写入全路径这么一个标志,下面我们直接登录, 比如说我们打在地盘写入创建一个木路一在一下面再创建一个二, 全部录创建。就是说那如果你这个第一, 第一为什么一直是 falls 啊?第一在这边,在这边有备用,我们换个边 b 二为处的话,就是说我们可以直接创建先创业一号文件夹,然后在一号里面创建二号文件夹。如果是放肆的话, 也就是说你希望创建的是二号文件夹,但是如果目录中一号文件没有,那他就创建不了。那一般情况下我们都是选用把它开起来,小门断断点加到两百, qq 写入值进来二十加三,直接跳过,你发现他反问之是零,反问之带的零代表他这个函数运行是没有问题。理论上来讲这个 这个新的路径应该是已经创建好了,但是在地盘并没有啊。这个也就是说当前的这种仿真模式不太适合操作文件夹一些处理, 那使用我们可以使用第二种,嗯,第二种仿真的模式就是在 当你装 ctc 右下角他会有这么六十四位的这么一个引擎,他其实就可以把你的当前的电脑作为 ctc 的控制器,也就是说你的笔记本他就是一台 ctcc 的控制器,那只不过这台控制器只能做一些大部分 那个功能的一些测试,他没有办法去挂在你伊斯开的总线的这些外部这些存在。 那我们可以使用当前的这个 wrong time, 然后呃去比如说你启用以后,它其实就是一个真实的 pic 控制器,那么对于文件,然后通讯测试来讲都是没有问题。那我们下面刚刚已 啊,现在这个已经开起来了,如果你是灰色的,那你直接点这个 stat 就可以了,有时候启动的时候他可能会报错,那就是你可能装了,装了多个版本的可能性的控制器可能中产生了一些冲突。 在这里需要注意的一点就是我们光标放在这里,发现它是一个肯出问的这么一个类型,也就是说你要连上这个,连上这个控制器,那你的 device 的类型,那当前是 m 四零一,你肯定是搜不到这个控制器,那我们直接把这个仿真关掉,我们扫描网络, 扫描网络他是可以可以扫了的,但是连不上就是因为,因为什么呢?就是你的控制器类型不对,那么要把当前的这个目录更新成这个 去问啊,这个肯去问是我刚刚从和尚那边转过来的,但是双肩发现他这个汇川他做了一些系列,他不让你更新,那也就是说第二种仿真功能在汇川这当前的这个状态,这是没法做的。 嗯,我装的是一个幺七三的版本,我记得老早幺五二等于一些早期的版本,他是没有把这个功能删掉的,那下面当前的这个功能,我们使用 合川这个去做一个演示,我担心默认已经更新到这个肯出问题六十四位, 因为他装的就是六十四位。那我们直接扫遍网络,你就可以看到本期的这个可乐 cc 空气已经有了,下面我们把那边的会上这边的这个程序,这三个群, 嗯,这一个吧,两个 美颜,还是我拖到了 task 里面,加酷 svsdl, 再加一个 its 跟 ic result, 我们需要的数据类型 have the context, 下面我们直接登录控制器 运行给处地盘 一二 qq, 先把参数写好,断点加进来两百 cooqq 运行奥特加三啊,返回去是零。这时候我们再去地盘看看 啊,就会发现有一个一号文件夹,二号文,二号文件夹啊,这个就是我们讲的第二种仿真的类型, 就是直接把你当前的笔记本当成一个 cotacsronton, 就是一个 cutcase 控制器,那么他除了不能真实的连接一次开的存在,那大部分相关的所有的功能跟 给你买购买那个科的鞋子控制器是一样的。那我们今天的两种仿真的那个功能演示就到这里。

它的四线力功能快 f b, 这是刚才演示的功能快,它有输入参数 input 有输出参数 app, 它有中间变量, 就是说在外面调用的时候是看不到的,他只是在功能快内部执行会用到。建立功能快,点击 application 右键添加对象 p u u 给他另一个名 flow, 当然可以命名其他的。选择功能快,选择访问说明服 public, 选择梯形图,打开,这是输入, 这个地方是输出,这个地方是中间变量,这个地方是给他付出值, 这个地方也是辅助值。就是说我在调用的时候 像这样,我没有给他写参数,他就是用的他默认的五百毫秒 调用。功能快其实也很简单,在下方再插入一个, 直接在这个 pous 里面把它给拖过来算数,把它拖过来确定 这地方可以不填,就是用的刚才默认的参数,给它起个名字, led 死, 可以不填, 登录看一下效果,一秒钟为周期闪烁。



我们今天继续讲解科的这次入门篇第四章常用开发环境的调试技巧。我们今天讲一下测试功能的模板程序。 测试功能的模板程序就是我们平常在做项目之前可能会需要一些,需要一些特殊的算法,但是 coluses 提问库的里面他又没有,还需要我们自己去实现,那我们实现了某一个功能函数的时候,需要 在项目应应用之前需要提前做一个测试,那么有些功能是需要啊触发一次,然后根据对应的一个结果,那有些功能可能需要一直是呃连续的这么一个运行,循环运行才可以达到这样的一个结果。那么我们 设计了这么一个 case, 选择于这么一个功能快核心的区域,就是呃上面这上面这一段有第二行到十三行这么一个 case, 就是只负责执行一次的这么一个功能,还受这么一个验证。那么十五到二十一行呢?这一段就是 呃跳入对应的分支,他是会做一个一直持续执行的这么一个操作。 下面我们写了一个一五一句,就是当零到一万的时候,他会做一个曲反的动作啊,这个曲反的动作就是对应于我们第一个 case, 也就说你如果你的希望你的功能块只调用一次的话, 那么你就在零到一万之间的这个分支去执行它。下面我们开一个程序, 从这边有个 man 函数,我们已经事先定好了一个 inter, 你把这边程序删掉。如果你还没有想好写什么样的程序,我们可以先放到这里来 kiss 一万,我们再加一个定时器, 在此外我们再加对应的一些皮肤变量, 比如说我们可能会测试用到了一用到了一些变量,我们事先先可以类似于这样定义,先把它定义好, 我们今天就希望做一个功能函数,下面衣服, 哎,刚刚这个点完他会有这个一幅赞的话,那这个是幺七三版本汇川,他提供这么一个智能输入这么一个方式,但是其实上 很傻,大部分有时候我们是不需要 is 的,所以但如果你不希望的话,你在这里不要直接按空格光标往上移一下,按一下这个 if i step 大于零 and i step 小于一万,这个时候我们把 isi 做一个区分,下面我们做一个方法,添加个对象, puu 函数返回之。我们是想做一个次不创连接的这么一个函数 f c, 我们再连接两个边量,这个还是比较简单,就是连接两个边量, jer 返回词直接等于 这个出现了另外一个比较智能的一个方式,在此刻我们直接按 tv 键的话,他会出现是出现类似于这个样子,这也是在幺七三版本会上额外提供了一个智能输入的功能,但是 在我看来这个玩意非常的非常的难受,我必须要按一个按一下空格,然后再按 table 才可以来到这个位置。 我们使用系统自带的字母窗连接的这个指定 contacts string 一 在这里啊,就是说当你在这个,在某一个函数里面去输入这个边缘的时候,你会发现他这个智能提示的功能就没有了, 如果我在外面直接按按按一下两个,他就这个就一会自动跳出来,但是还说在你把光标放在这里面的时候,你发现 st 一二的话,他就没有, 那下面我们做好了这么一个方法,就是说我希望在我们的,在我的这个呃去验证一下他的功能,那我们就可以来到这个一百。比如说我们使用 s 三, i sent them in the fc context 这样 s 二,当然了 s 一 s 二这样是没有问题,或者幺零幺,我们写一个 等于 f c contact, 或者你可以使用 s trane string e, 他等于 s 一, string r 等于 s 二,这样也是可以的,只要我们如果希望省略前面这个变量名称的话,只要保证你的变量的顺序跟你定义这个方法这个顺序是一样的,他就不会报错。 下面我们 ctrl 加一登录了一下这个程序, 那我们给 se 做一个复制, hello i forgot what? 需要把它喝成一个 hello what。 这个时候我们使用我们之前学过的中断 art 加一,开启中断 i state 等于一百, controque 会来到这个断点,我们使用 art 加二跳入 调试奥特加二跳入会跳入这个功能块,然后我们再继续,在此刻就不要跳入奥特加三,因为你跳入的话会跳入这个 contact, contact 是系统的这么一个东西, 他是没有办法跳进去的。嗯,那我们测试一下,可能奥特加二跳入会报错,那么这个时候 fccon text 就直接做完那个合成字不穿了这么一个动作,那么在奥特加二返回,在奥特加二返回时给到 s 三, 在奥特加尔继续执行一百是在这个范围之内的,那我们就会取反再回来,那大家是已经是负一百了,那么他就不会再继续跳入到这本一百的这么一个分支中,就完成了我们刚刚讲的 只执行一次。那像有些功能的话,比如说我们现在要测一个下降盐 trick f gun trick, 这也是系统自带的这么一个功能块,那这个下降音可能是需要一直执行的。 clk 等于如果我们希望这个 s 三 等于 hollywood 的时候, 同时我们对他做一个按 if f trick 点 q 下键沿触发的时候, 我们把这个吸水器加一,再次啃出加一, 我们知道当前 s s 等于 helloward 触发下降言句下降言,也就是当前是 hello ward, hello ward, 当前这个字写多了一个 hello, what double o r l d? 下面我们 切到这个一万的分支,滚出 qq 斜入就一万。当年记录器没有加下降员的意思,是当这个 clk 由初变 fast 的时候, 那比如说我们手动直接把这个字改掉,哈喽,然后我们再再试一行加一个断点,看看他是不是触发了我们这个下降言。 control q 写入,也就是说 hello 是 等于哈喽我的,他的只是一个 false, 不等于不等于,也就是说这个 clcl 开会变成 false, 那么这个下降炎的菱角 cla 从出变成 false boss 的时候,他就会这个 q 接点就会出发,这就是下降眼,那我们 ctrls 加二跳入就是一加一, 此刻他会再回到,再回到一万的节点,我们二十加一加个断点,可以看到他就是进入到这个里面去了。 那当前演示的就是简单的这么一个测试,测试一些功能的一些模板程序,就当我们某些指令只想跑这么一次,你就可以这样子,谢谢。因为 有了这个模板程序的话,你就不会像可能就会不会像其他的这样子操作,比如说如果没有这个 这个 case 一句的话,我们怎么去测试这个 fc contact 的函数呢?你可能会这样写,你可能会定一些 boss 的变量,然后第一,第一,第二,第三,第四, 你可能会使用这样的方向,比如 if b 一, then s 三等于叉,然后 b 一等于 four, 这样也是可以的。但是当你有大量的方法去测试的话,你在函数里面会写很多, b 一, b 二, b 三, b 四, b 五,那我们 kiss i stand 零到九九九,那大概是有接近一万种状态,那这样的话你可能会新建一万个比比一,类似这么这么一个变量,所以说这就是测试所用模板的这么一个好处。 我们再看一遍这个今天所讲的这个测试功能的模板程序。测试功能的模板程序的用途是什么?就是当你需要 编写验证一些理功能算法的时候,我们需要提前先把它测试好,否则在工在项目进行中的时候, 万一这个方法有有一些什么样的问题,那就会导致导致你花很多的时间在调节这个底层算法,所以说 我们项目就用到了所有的算法,都需要在项目开始之前把它完整的验证测试好,那这就是今天这个测试功能的模板程序的内容。