2021-06-28 20:20:48
引言C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就具体看看编译器到底在背后帮我们做了哪些复杂的工作的。同步代码存在的问题对于同步的代码,大家肯定都不陌生,因为我们平常写的代码大部分都是同步的,然而同步代码却存在一个很严重的问题,例如我们向一个Web服务器发出一个请求时,如果我们发出请求的代码是同步实现的话,这时候我...
2021-06-28 19:26:05
WinForm窗体中应用异步WinForm虽然比较老,但是现在还有很多的实际生产项目再用,而且微软在新的.Net core 框架中重新重构了WinForm和WPF,就证明WinForm还是有很大的市场的,微软并没有放弃这项技术,并且将它开源了出来,推陈出新,意义可想而知。以前的WinForm项目大多数是用基础的多线程技术来实现的,或者用线程池将事件扔到并发队列中去异步执行,很少有用async/aw...
2021-06-28 15:55:45
之前做开发时,一直没注意这个东西,做了.net core之后,发现CancellationToken用的越来越平凡了。 这也难怪,原来.net framework使用异步的不是很多,而.net core首推异步编程,到处可以看到Task的影子,而CancellationToken正好是异步Task的一个控制器!所以花点时间做个笔记 CancellationToken Cancellati...
2021-06-28 13:51:26
C#4.0的并行库TPL,即Task(一)http://47.98.154.65/?id=1793C#4.0的并行库TPL,即Task(二) http://47.98.154.65/?id=1798C#4.0的并行库TPL,即Task(三) http://47.98.154.65/?id=1808C#4.0的并行库TPL,即Task(四) http://47.98.154.65/?id=1815...
2021-03-03 09:00:54
勇哥注:这是篇转自公众号“HwLib慧兰博”的文章。这个公众号貌似是一个团队在运营,都是工业自动技术相关本文介绍的是皮肤控件IrisSkin,在之前勇哥用的是DotNetBar,这个东西是好是好,只是比较慢。而IrisSkin速度如何,各位可以体验一下。 WinForms由于先天性的缘故,对于酷炫的界面实现起来比较困难。这就导致早期很多公司或者团队都在致力于开发针对WinForms的换肤控件。不...
2021-02-16 21:08:15
这一篇谈下C#调用hdvp外部函数要用到的动态修改传入参数的方法。C#调用外部函数时,由于函数参数各异,你得对每个不同的函数编制调用程序,因此C#端代码量很大。本篇讨论的办法可以实现通用的方法调用外部函数。演示程序使用了treeView控件做为参数修改控件,实现了参数实时修改生效并且参数保存到磁盘。程序可以调用任何你自定义的halcon外部函数,仅需要你自己提供一下传入的图标变量(图片)和读取和显...
2021-02-12 21:12:43
如下图所示,自定义控件的form上面从下到下依次是:treeviewtextboxtextboxtextbox当拖动fom右边界调整宽度时,会发现最后一个textbox不会适应form宽度的变化。而它上面的三个控件则可以。当勇哥把它上面的控件复制下来替换它后,就可以自动适应了。这说明有一个textbox的属性在发挥作用,但有趣的是不是dock属性。暂时找不到是什么属性在发挥作用。一直以为只有doc...
2020-12-13 20:43:29
勇哥注:在解决“文件被占用”的问题时,有时候除了即时释放资源句柄,还需要使用对象的深度复制,这样就相当于斩断了原对象的占用。==========正文开始===================MemberwiseClone 方法创建一个浅表副本,具体来说就是创建一个新对象,
然后将当前对象的非静态字段复制到该新对象。
如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,
则复制引用...
2020-11-22 09:37:32
一、相机硬件接线图2号引脚接传感器的触发信号引脚,5号与传感器共地连接。 二、pylon软件设置三、halcon软触发相机拍照Halcon采集助手设置软触发:1.set_framegrabber_param (AcqHandle, 'TriggerMode', 'On')2.set_framegrabber_param (AcqHandle, 'Trigge...
2020-10-28 22:28:56
一般我们见到的简单的图像处理都是空间域的处理。即图像是一个二维图像,每个点都有对应的坐标。图像的频域理解起来并不是那么简单,因此我在这里说一下个人理解,希望帮助到需要帮助的人。本篇博文使用Halcon软件的示例以及图像进行展示。首先需要说明的几点知识:1.如果需要看频谱图是要进行傅里叶变换的,图像的傅里叶变换其实是将图像的灰度分布函数变换为图像的频率分布函数。2.图像的频域中的高频分量对应图像的细...
2020-10-28 22:06:19
dev_close_window ()
dev_update_off ()
Path := 'lcd/mura_defects_texture_'
read_image (Image, Path + '01')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, 640, 480, ...
2020-10-28 21:37:25
1.mean_n(Image : ImageMean : : )mean_n生成所有通道的逐像素平均值。对于每个坐标点,计算该坐标上所有灰度值的和0。结果是灰度值的平均值(总和除以通道数)。输出图像有一个通道。有关平滑滤波器概念的解释,请参阅“滤波/平滑”一章的介绍。例如:read_image (Images, ['ic0','ic1','ic2',...
2020-08-29 15:57:41
海康工业相机SDK Halcon接口是比较好用, 它使得我们可以利用halcon的语法利用SDK的功能.之前勇哥写了一篇用halcon代码演示使用方法的贴子. http://47.98.154.65/?id=1427 现在写一个C#的应用类, 方便自己也方便了大家.勇哥写了个应用类, 如下:using HalconDotNet;
using MvCamCtrl.NET;
using netM...
2020-08-19 22:45:07
勇哥手上有几个案子用到了海康工业相机,为了方便自己,简单写了一个操作类。目前初步出了一个v1.0,功能围绕项目需要,因此十分简单,暂支持下面的内容:连续触发和外部信号触发外部触发时的软件触发模式枚举设备列表可以看到连断线重连都没做。先放上来吧,以后会持续完善它,并收录到netMarketing类库。对于怎么接外部触发信号,请参考下面的贴子:http://47.98.154.65/?id=1420...
2020-07-25 08:55:05
如下图所示:bundleRuntime.GetFirstOrDefaultService<>为空,因此程序直接退出。不用怀疑IMainForm有问题。勇哥2020/8/8注:这篇水贴烂尾了,因为勇哥至今仍然不知道这是为什么,只知道是跟类库引用后的冲突有关系。人家封装的东西,出问题了真不好找原因。投降了……未完待续…………--------------------- 作者:hackpig来...
2020-07-06 14:28:44
原来的工程只有解决方案Loader、MainForm、netMarketingCore。现在因为需要引入netMarketing、sharClass、UserUI。全部重新编译,发现许多报错,其中有netMarketing中的一些类报引用问题。实际上,那些报错的位置是没有问题的。因此,应该是引用混乱的原因。解决方法是勾选报错的解决方案,然后在“依赖于”下面勾选要依赖的项目,然后选中解决方案根,全部...
2020-07-04 21:14:57
命名空间:netMarketing.vision.halcon.HalconEngine功能:halcon引擎封装类功能详细说明:halcon引擎的作用是直接运行halcon的程序,包括如下:单个hdev的程序,不含外部函数和用户自定义函数。调用函数RunHdevProgram()hdvp格式的外部函数,它保存于磁盘上。调用函数RunHdvp()即有hdev程序,又包含外部函数或者用户自定义函数。...
2020-07-03 21:08:41
命名空间:netMarketing.diskFile.DirFileHelper功能:目录与文件操作类功能详细说明:这是个目录与文件操作的静态类,请使用DirFileHelper.* 的方式调用成员函数。常用函数列表:这个类比较简单,封装的方法都是经验过的、常见的需求。--------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原创文章...
2020-07-03 09:36:30
今天调试程序时,发现运行程序没问题,退出程序时出现下面这个报错。未能加载ntdll.pdb调试菜单->选项,然后选择“符号”,勾选“Microsoft符号服务器”,设置下载目录,确定。重新编译运行程序后,会从网上下载各种符号到本地。这个过程比较缓慢。然而,加载符号后,退出程序时还是报异常。跟之前的报错区别是:多了一点信息。因为网上有人发现如果程序写得有问题,也会出现这个报错信息,因此勇哥在想...
2020-06-28 14:49:27
在HDevelop中,除了tuples和iconic objects这两种变量类型之外,还有第三种变量类型:vector。注:iconic objects数据类型即图标对象,指的是 图像、区域和XLD数据的总称向量是可以容纳任意数量元素的容器,所有元素都必须具有完全相同的变量类型(即元组、图标对象或向量)。HDevelop中的向量与C++标准模板库中的向量相同。演示代码:dev_close_win...
2020-04-19 15:45:57
这个平台采用的开源的GRBL,基于单片机Arduino,三个轴的设备。支持G代码,也就是CNC上面用的G代码。这个平台如下面所示:你可以用它来写字,效果还不错。控制程序实现了基础的功能:示教点步进调试位置回原点的控制功能由于这个平台没有源点感应开关,因此它所谓的原点, 是在开机那一刻的当前位置设置为原点.因此这个机器不能中途断电, 否则你得重新设置原点.并且每次结束程序前都会自动回一次原点, 才能...
2020-04-12 06:30:08
起因先是看到git shell指向的是一个appref-ms文件。找开目录,它未显示文件后缀名,显示的是一个叫application reference 的文件类型。从来有见过这种类型,于是查了查调查它是一个叫clickonce技术的文件。ClickOnce是微软公司开发的一门用于在网络上发布应用程序的技术
ClickOnce使得用户可以从支持ClickOnce的网页中点击一个链接来运行一个程序...
2020-04-08 14:47:37
例如下面的WFDesign,它是一个接口IWFHost。 public IWFHost WFDesign = null;如果你在Run上面按F12键,只会跳到接口IWFHost的定义Run上去。这样子是不是让你很恼火呢?^_^那么如何才能跳动接口IWFHost的实现类对应的函数上去呢?如果你是vs2015以上版本,那么你可以 右键->转到实现(快捷键:Ctrl+F12)即可。勇哥用vs201...
2020-03-29 08:45:38
勇哥2021/7/21注:现在发现vs2015已经不支持手里的iOpenWorksSDK。于是在网上搜索了一下,如下:1 iOpenWorksSDK对VS2013-VS2017的支持插件https://files.cnblogs.com/files/baihmpgy/iOpenWorksSDK.vsix.zip2 iOpenWorksSDK对VS2010的支持https://files.cnblo...
2020-03-28 21:43:48
..\的写法是相对路径。“./”:代表目前所在的目录。“../”:代表上一层目录。以”/”开头:代表根目录。下图中的路径是: ..\..\bin\Plugins\DateServer\表示的是当前目录的上一级的上一级的Plugins\DateServer 目录。...
2020-03-28 10:47:01
做为学习WF的学习成果,勇哥写了这个Mtv点歌软件。在每学一门语言或者框架时,勇哥都写过类似功能的软件。浪费点文章的位置把其它版本的放这里给各位把玩一下吧:------------------------------Python版本的:《Python Tkinter 学习成果:点歌软件music》plc+单片机+c#版本:《欧姆龙cp1h常用指令学习(十四)练习篇一:红外线遥控点歌》C#版本的:《...
2020-03-27 16:45:16
勇哥今天发现一个问题,流程变量怎么由宿主程序赋值?如果像给代码活动的InArgument, OutArgument的输入输出参数变量赋值那样给活动变量赋值的话 ,你会见到下面的错误。勇哥把流程改了一下,加入两个Assign,让它用静态变量给v1,v2赋值。static是在宿主程序那边定义的。 public static class glob
{
public st...
2020-03-27 09:34:11
因为勇哥看到一份代码,作者为了方便一个类能被任何其它类随时调用,把这全部成员变与方法都定义为static。感觉很怪异,于是抽点时间仔细考虑了一下为啥这样不妥当,罗列几条如下:是否使用静态,相信大家肯定知道静态与实例方法的调用区别:一个是类型调用,一个是实例调用。个人建议更应该从OOP的角度思考这个问题:什么样的行为是需要具体的对象去执行的,什么样的行为是某一个类型/类别拥有的?举个例子:每个人都有...
2020-03-25 22:16:43
这个话题非常重要,因为代码活动是最常用的一种自定义的活动。如果勇哥把代码活动的功能用一个个的halcon算子实现某种视觉功能的话,将会有大量的不同数据类型的参数传入与输出,因为代码活动的InArgument和OutArgument只允许传入一个T,因此需要自己设计自定数据类型来解决这个问题。2020/3/26号 勇哥注:因为代码活动的InArgument和OutArgument只允许传入一个T,因...
2020-03-25 09:35:03
如下图所示:如果你引用的是System.Windows.Controls, 则box.DataSoruce会表示没有这个属性DataSource。如果你引用System.Windows.Forms,则没有问题。勇哥也是刚发现这两者的差别蛮大,又是一个知识的盲点。目前在网上搜索不到这两者的详细区别,只找到这个:暂时就理解为: 因为建立的工程是.net winform程序,所以控件要引用System....