- 博客(35)
- 资源 (9)
- 问答 (2)
- 收藏
- 关注
原创 【网络通讯】【SuperSocket实现(三)】
介绍使用SuperSocket实现网络通讯(作为客户端,使用FixedHeaderReceiveFilter协议实现)。
2024-07-15 10:40:57 946
原创 【网络通讯】【通讯协议(一)】
这里协定通讯协议。在自动化设备开发的场景下,因为项目时间紧,很多时候我们都是随便列一些字符串表示不同意思,就当是通讯协议了,但其实这样不好,一个是后期不好维护、后人不好接手,在开发过程中的变化不好追溯,同事也增加了莫名其妙BUG出现的概率,提高调试、维护成本。后面章节我们从代码上具体实现。
2024-07-11 10:11:27 998
原创 通过委托执行多个函数
但好处还不止这个,我们再发散下思维,每一步都可能错误,假设是通讯丢包出错,那我们再执行一次是不是就可能成功了?其中每一个的执行都有可能是失败的(比如真空表值异常、通讯失败等原因),失败后就要报警等待人工检查处理而不应该继续往下执行。关闭破真空-关闭吸真空-打开吸真空-延时200ms-处理其他逻辑-关闭吸真空-打开破真空-延时200ms-关闭破真空。好了,本文章就到这里了,具体区别,需要自己细细体悟,具体用法,需要举一反三。这样看,很明显,结构化的代码可读性是不是更加强了。
2024-07-10 15:29:28 376
原创 Git提交权限不足
Git使用的经验。通过使用SourceTree进行Git提交远程,失败提示权限不足原因,是因为有两个文件记录的还是上任已离职同事的账号密码,不匹配新开的Git库权限,然后可能由于电脑加域,文件加密等原因(未证明的猜测),无法通过Sourcetree自身软件去成功修改(多次尝试均无效),只能使用蠢办法手动删除(成功生效)
2024-07-04 11:04:20 455
原创 【WPF系列】【MVVM】Prism开源框架学习(一)
这里先简单介绍下Prism是什么,怎么去学习,资料怎么获取。Prism是一个用于构建WPF、UWP和Xamarin应用程序的开源框架,它提供了一套MVVM(Model-View-ViewModel)的架构模式,以及一组工具和库,帮助开发人员更容易地创建可扩展、可维护和可测试的应用程序。事件聚合器:Prism提供了一个事件聚合器,可以使不同的ViewModel之间通信变得更加简单。开发人员可以使用该聚合器来订阅和发布事件,以便在应用程序中传递信息和执行操作。
2023-04-04 16:28:02 2657
原创 C#调用C++的方法
供应商提供的SDK可能就是C++的库,因为效率问题需要在C++中处理数据(C++运行效率更高),在实际的工作中,总有这样的场景出现,那么如何在C#中调用C++的接口呢?
2023-03-22 15:52:59 858
原创 【C#进阶系列】【MEF框架(四)】
在(一)已经对MEF作了基本的介绍,这里针对MEF的延迟加载、元数据作介绍。依赖倒置原则:高层模板不应该依赖于底层模板,两者应该依赖于抽象,而抽象不应该依赖于细节。
2023-02-18 17:51:40 609
原创 【C#进阶系列】【MEF框架(三)】
在(一)已经对MEF作了基本的介绍,前面都是介绍如何导出类,这里针对MEF如何导出方法、属性作一些补充。依赖倒置原则:高层模板不应该依赖于底层模板,两者应该依赖于抽象,而抽象不应该依赖于细节。
2023-02-18 14:14:18 633
原创 【C#进阶系列】【MEF框架(一)】
这里对MEF作了基本的介绍,包括使用了一个特定场景(搞自动化运控上位机开发的应该更容易代入场景了),一步一步地介绍了如果从常用的编程过渡到框架性的编程开发。MEF,全称Managed Extensibility Framework(托管可扩展框架)。MEF是专门致力于解决扩展性问题的框架。MSDN:Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。应用程序开发人员可利用该库发现并使用扩展,而无需进行配置。
2023-02-17 17:26:05 5283 1
原创 【WPF系列】【Adorner】
关于WPF系列Adorner的学习笔记。Adorner在WPF中的界面设计中很常见,它可以用来实现更加美观的界面视觉效果,也可以设计事件动态效果等等。Adorner,抽象基类,所有具有装饰器的实现都从该类继承;Adorner,是一种特殊类型的FrameworkElement,用于向用户提供可视化提示;Adorner,简单地说,就是WPF装饰器,作用是给WPF的控件上一层装饰效果;Adorner,是WPF窗口中独立的一层,支持在界面元素之上执行独立的绘制及用户交互;
2023-02-13 16:48:44 2174
原创 WPF父容器根据內部控件的拖拽自动扩展大小
我们写运动控制上位机程序的时候,经常是要考虑如何实现一个流程,我们要考虑,完成当前步骤后,下一个步骤要实现什么,判断条件,满足后的步骤是什么,不满足条件的步骤又是什么,或者需要一直等待条件满足才开始下一个步骤,也要考虑超时都不满足条件需要走另一个步骤,根据条件也有可能会跳转回原来的步骤,这些逻辑通常都是很繁琐的(使用if-elseif、switch-case),而且写好后再次修改时,容易漏改忘改等造成逻辑不稳定问题;这里,我们介绍一种全新的实现逻辑的方式:通过流程图的原理去实现这些业务性的繁琐的逻辑,实现。
2023-02-02 17:06:19 793
原创 【WPF属性笔记】【DataTrigger】
关于WPF属性DataTrigger的学习笔记。WPF中,根据数据的值不同,UI的界面随之改变(显示控件、隐藏控件以及改变控件的其他属性),这时我们可以用DataTrigger。
2023-01-30 15:00:56 3978
原创 【WPF属性笔记】【IsHitTestVisible】
关于WPF属性IsHitTestVisible的学习笔记。UIElement.IsHitTestVisble属性:获取或设置一个值,该值声明此元素是否可以作为其呈现内容的某部分的命中测试结果返回。这是一个依赖属性。通过设置HitTestVisble属性值为false,可以使界面元素不响应鼠标,鼠标事件也不会被触发通过设置HitTestVisble属性值为false,可以禁止所有的鼠标交互,包括控件的点击、通过鼠标点击给控件设置输入焦点等等,都是不起作用的。
2023-01-29 16:30:59 2090
原创 【C#学习笔记】【Abstract】
关于C#中抽象类(abstract)详解。abstract修饰符可用于类、方法、属性、索引和事件。abstract修饰符用于简单地概括一个不完整的内容(摘要)。常用于基类,由派生类来继承实现基类的抽象属性和方法。抽象类是对具有相同行为和特征的抽象,抽象类中的成员不会指定具体细节,一般再其派生类中去实现具体内容。在普通类前加上abstract修饰符即可标注为抽象类。如果一个普通类中对其成员使用了abstract修饰符,则该类必须修饰为抽象类。
2023-01-18 21:18:15 713
原创 【C#学习笔记】【Virtual】
关于C#中虚方法(virtual)详解,与之关联的接口(interface)已经有介绍了,还有抽象类(abstract)和多态我们将在后面的文章中再作详细讲解。当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法(virtual);
2023-01-18 15:00:27 451
原创 【C#学习笔记】【GUID】
关于GUID的介绍。GUID(全局同意标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳米级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。一个GUID为一个128位的整数(16字节),总数量达2^128 (3.4X10^38)个,在使用唯一标识符的情况下,你可以在所有计算机和网咯之间使用这一整数。
2023-01-18 14:21:12 3658
原创 【C#学习笔记】【Interface】
在C#的编程中,类是我们每天都会接触到的,但是对于初学者来说,接口就比较陌生了,也许入门学习时有学过,但是经过工作实践,部分新人就会发现,基本不会去用到接口,但是看大神源码,又是处处都有影踪,那么接口到底是什么呢?接下来学习接口(Interface)的概念,接口是什么,怎么使用接口,重点是为什么要使用接口。
2023-01-17 23:54:16 306
原创 【C#学习笔记】【Attribute】
学习特性的使用,包括对.Net自带的三种预定义特性:Obsolete、Conditional、AttributeUsag的详细讲解,也列举了常用的特性,其中包括控件设计时要用到的一系列特性,最后介绍了如何进行自定义特性(仅以枚举作为示例)。
2023-01-16 15:50:48 274
原创 WPF下实现控件的拖拽功能
我们写运动控制上位机程序的时候,经常是要考虑如何实现一个流程,我们要考虑,完成当前步骤后,下一个步骤要实现什么,判断条件,满足后的步骤是什么,不满足条件的步骤又是什么,或者需要一直等待条件满足才开始下一个步骤,也要考虑超时都不满足条件需要走另一个步骤,根据条件也有可能会跳转回原来的步骤,这些逻辑通常都是很繁琐的(使用if-elseif、switch-case),而且写好后再次修改时,容易漏改忘改等造成逻辑不稳定问题;这里,我们介绍一种全新的实现逻辑的方式:通过流程图的原理去实现这些业务性的繁琐的逻辑。
2023-01-12 11:05:37 6704 2
原创 让工控机通过笔记本的Wifi实现上网
让工控机通过笔记本的Wifi实现上网在工业自动化行业中,设备中的工控机基本都是不配置无线网卡的,且设备放在车间,远离网络端口无法实现有线上网,这时候就需要通过笔记本的Wifi实现上网操作,当然实际应用场景不至于此,接下来本文就介绍了如何让工控机通过笔记本的Wifi实现上网的攻略,简单有用。
2022-12-20 18:05:29 5948 4
原创 Synergy配置说明
Synergy 这是一款能够让使用者仅用一套键盘鼠标,就同时操控多部计算机的免费工具软件。使用者能够在包括 Windows 、 Linux 、 Mac OS 等不同的系统上安装它,并且在设定好主从关系后,就能够通过一套键盘鼠标来进行多部计算机的操控
2022-12-18 14:55:29 2652 1
原创 Markdown编辑器使用示例
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I
2020-03-18 09:17:54 169 1
原创 Java学习笔记(一)安装JDK及第一个Java程序
Java学习笔记(一)安装JDK及第一个Java程序1.JDK的全称是Java Development Kit,即Java标准版开发包,其中包括Java编译器、Java运行环境(JRE)、Java类库等。JDK上网百度可找到。开始安装,进入如图所示窗口其中,开发工具包括编译Java程序必须的命令工具;源代码会安装Java所以核心类库的源代码;公共JRE无须安装,因为
2015-09-05 22:40:52 492
MEF插件框架学习展示(源代码)(一)
2023-02-17
WPF中Adorner的各种应用实例
2023-02-13
基于流程图实现无代码编程业务逻辑(2)
2023-02-02
基于流程图实现无代码编程业务逻辑(1)
2023-01-12
Synergy:在多台计算机上实现键盘鼠标共享
2022-12-18
软件工程(原书第9版)高清完整PDF版
2016-03-21
新学C#问一简单问题,关于C# App.config
2017-07-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人