自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 模拟BACnet设备(八)

前面一到七篇,从理论,工具到实践介绍了BACnet,今天这一篇我们来模拟一下BACnet设备。我们模拟来写一个有关于电梯呼梯的BACnet设备.效果图如下:这个呼梯设备呢,比较简单只有三个参数,最低楼层,最高楼层和当前楼层,会变化的是当前楼层,随着上行或下行的时候当前楼层就会变化,下面是这个Demo的UI。实现的功能有:1 能在Yabe中查找到这个设备,以及显示这个设备的所有对象;2 实现基本的读写功能;3 能够实现订阅属性值变化的功能;作为一个BACnet模拟设备,需要有一个xml文件,

2024-04-23 13:38:03 1156

原创 BACnet的订阅 (七)

现在有一个需求就是我只关注温度的变化,当BACnet设备(Bacnet.Room.Simulator以这个为例)的温度有变化时就直接推送给我,而不是我一直在实时监控这个温度值,如何实现呢?答案就是预订“属性值改变”,请求当BACnet设备的温度对象的温度属性值改变时,要告知我。回调中收到这个属性被订阅的消息,在这个回调中,它先记录下来这个订阅,并发送。值变化: 一个主动发送属性值变化,另外一个接收到值变化的通知。中将订阅属性值发生变化的数值发送,即主动推送属性值变化。,订阅某个对象的属性值变化。

2024-04-23 13:33:16 322

原创 BACnet的读写服务 (六)

介绍了Bacnet设备的读和写, 读整个设备的对象列表, 读单个对象的某个属性, 读单个对象的所有属性 `ReadPropertyRequest`;写某个对象的当前值`WritePropertyRequest`。

2024-04-22 13:33:54 712

原创 BACnet 发现设备和面向对象结构 (五)

前面学了BACnet面向对象的模型以及提供的服务,现在来研究一下如何简单使用WhoIs和Iam服务。Object类这个Object类所在的命名空间在下,不是微软定义的object类哈。看一下这个类的字段也很简单,一共三个字段:Bacnet对象类型,是一个枚举类型;Bacnet对象实例号;对象实例号与前面的对象类型一起就能确定是哪一个对象。属性列表, 说明一个对象可以包含多个属性。[Systemget;set;get;set;get;set;} }get;set;get;

2024-04-22 08:42:07 1071

原创 了解BACnet服务(四)

在面向对象技术中,与对象相关联的是属性和方法,属性用来说明对象,而方法是外界用来访问或作用于对象的手段。在BACnet 中,把对象的方法称为服务(Service)。服务就是一个BACnet 设备可以用来向其它BACnet 设备请求获得信息,命令其它设备执行某种操作或者通知其它设备有某事件发生的方法。下图:BACnet设备接收服务请求和进行服务应答的示意图。BACnet 定义了35 个服务,并且将这35 个服务划分为6 个类别。

2024-04-19 13:40:55 580

原创 了解BACnet的对象模型 (三)

[OTC]在楼宇自控网络中,各种设备之间要进行数据交换,为了能够实现设备的互操作,所交换的数据必须使用一种所有设备都能够理解的“共同语言”。BACnet 的最成功之处就在于采用了面向对象的技术,定义了一组具有属性的对象(Object)来表示任意的楼宇自控设备的功能,从而提供了一种标准的表示楼宇自控设备的方式。*在BACnet 中,所谓对象就是在网络设备之间传输的一组数据结构,对象的属性就是数据结构中的信息,设备可以从数据结构中读取信息,可以向数据结构写入信息,这些就是对对象属性的操作。*BACne

2024-04-19 13:00:00 850 1

原创 BACnet调试工具的使用 (二)

在SetupYabe_v1.3.2.exe安装完成之后,我们在电脑的开始菜单栏可以看到Yabe文件夹下有好几个应用程序,今天我们使用Bacnet.Room.Simulator (一个BACnet设备模拟器,模拟温度和湿度)和Yabe(Bacnet设备点的扫描器)来进行简单操作。接着我们可以订阅户外温度的值,当温度变化时就通知Yabe, Yabe中也能实时看到温度的变化,并且用折现图绘制出来。改变属性值,先看看Out of Service(脱离服务)的值是不是true, 只有当。2.4 订阅属性值变化。

2024-04-18 16:17:19 219

原创 Bacnet 入门参考资料 (一)

OTC]在网上整理的一些BACnet的相关资料,在这里作一个整理,方便自己食用。

2024-04-18 15:45:00 382

原创 ManualResetEvent 在线程中的使用C#

ManualResetEvent 用于表示线程同步事件,可以使得线程等待信号发射之后才继续执行下一步,否则一直处于等待状态中。

2024-03-07 14:53:15 442

原创 C#和低功耗蓝牙BLE通讯

以前都是用手机APP和蓝牙设备通信,现在在一个项目中需要更改为用电脑端上位机与蓝牙通讯的需求,在此记录自己走过的坑和积攒的经验。

2024-03-07 14:15:05 1740 11

原创 身份证、社保卡、居住证的照片数码回执级教程

以上就是我自己在深圳制作证件回执的过程,很有意思。1 在深圳公安先预约2 在证件数码相片质量检测中心注册账号3 使用证照之星一键完成,生成合格的照片。上传照片,等待检验合格就可以了,若不合格,自己再微调即可。

2023-12-20 14:11:14 686

原创 检验Pdfsharp.dll 支持的语言及对应的字体

PdfSharp 语言和字体的支持有限,有时候再本地电脑上能正常显示文本,但在其它电脑上就显示乱码或一个正方体,或?不同操作系统可能自带的字体本身就不一样,可能中文系统有的,英文系统没有,这就导致文本显示有问题。现在我们在PdfSharp.Drawing XFont 类增加一个IsSupport的方法,判断该字体是否支持字符串的绘制。在确保字体可以使用时,使用该字体绘制文本并显示出来看看效果。可使用的字体会显示Ok, 不支持该语言文本的字体则显示NG。这篇文章,修改源码,做的一个小工具。

2023-11-16 10:47:21 544

原创 PdfSharp 对中文字体显示乱码的问题

如果您将字符串反转,并且确保为开始、结束、中间或独立显示选择正确的Unicode字符,则阿拉伯文本可以工作。只支持简单的语言,如英语或德语,字符和字形之间具有简单的一对一关系。华文隶书, 华文宋体, 华文细黑, 华文新魏, 华文行楷, 华文中宋, 华文彩云, 华文仿宋, 华文琥珀。对PDFsharp的源码进行修改,使其支持对TTC字体文件的支持。,通过输入的字体名称检测能否在PdfSharp上正常使用,也涉及源代码的更改。在官网对此有回应,PdfSharp是不支持的。

2023-11-16 08:44:46 986

原创 Modbus-RTU 数据帧格式 、报文解析

后来Modicon被施耐德(Schneider)收购,Modbus协议广泛应用在工业控制器、HMI和传感器上,逐渐被其他厂商接受,成为一种主流的通讯协议,用于和外围设备进行通讯。输出27~20的状态表示为十六进制字节值CD,或二进制1100 1101.输出27是这个字节的MSB(最高有效位),输出20是LSB(最低有效位)在最后的数据字节中,将输出38~36的状态表示为十六进制字节值05,或二进制 0000 0101。类似,总线就意味着有主机,有从机,这些设备在同一条总线上。公司的PLC控制器,这也是。

2023-11-14 16:36:49 2759 2

原创 汇川(Inovance) PLC——H2u 和H3u:编程口通讯协议

通讯采用ASCII码,校验方式采用和校验。H2u系列和H3u系列PLC。

2023-11-14 09:16:13 1129

原创 康耐视VisionPro 9.0 R2破解安装教程

VisionPro和Visual Studion都安装完成之后,可以将VisionPro的控件添加到VS工具箱中。,它会检测电脑安装到的VS版本,如果没有检测到说明VS版本与该版本VisionPro不兼容,需要重新安装VS。以上便是VisionPro下载、安装、破解的过程啦,记录一下以防忘记。到此安装过程结束,环境搭建完成,可以开始建立工程啦,搓搓机动的小手手。我这里选择默认安装,安装路径可自行修改,我习惯安装在D盘,点击下一步。后面会安装一些其它插件,等待继续安装即可。等待安装完成,点击完成。

2023-11-09 11:47:17 8745 6

原创 维控PLC——LX2N :编程口通讯协议

可以发现在写X Y等单线圈的时候,写的地址是高低字节互换的;读的时候是没有这个现象的,在字的读写中地址也是按照正常顺序的。LX2N系列PLC,关于维控 LX1S的协议在另一篇文章中描述。通讯采用ASCII码,校验方式采用和校验。可以看到返回的数据是高低字节互换的。

2023-11-09 08:31:54 257

原创 维控PLC——LX1S :编程口通讯协议

以下是从维控HMI和维控PLC–LX1S抓取到的数据帧,请注意在数据帧中。时位地址寄存器的高低位变化。在操作字地址时,读写寄存器地址高低位不变。LX1S系列PLC,关于维控LX2N的协议将在后面描述。通讯采用ASCII码,校验方式采用和校验。

2023-11-08 17:24:57 208

原创 永宏(FATEK)PLC通讯协议

FBs-PLC型号进行测试验证的。参考手册名称是《永宏使用手册Ⅱ进阶应用篇.pdf》,里面有详细的PLC通讯协议介绍,以及通讯案例。下文的介绍大部分都是从手册中截取出来的,仅作学习记录。[在这里插入图片描述](https://img-blog.csdnimg.cn/eef2c5a20d9444b686de753617600af4.png)通讯均采用ASC码,校验方式采用和校验,现在发现最大帧长521。A到Z分别是65到90,16进制则是0x41到0x5A.

2023-11-01 19:58:39 684

原创 C# 对文件进行排序 (按时间或名称)

对文件进行排序,可以是按时间或按名称正序或倒叙去排。同理,如果需要正序排序,只需要将X和Y的比较位置互换一下就可以了。,也可以去其它时间,按需要使用即可。

2023-10-31 17:33:56 962

原创 台达PLC通讯协议 Modbus ASCII协议格式说明

该协议是根据台达研发的基于CANopen现场总线的多轴运动控制器DVP10MC11T,其内部包含标准PLC模块和MC运动控制模块两大模块。参考手册名称是《DELTA_IA-PLC_DVP-MC_OM_SC_20151026.pdf》

2023-10-31 14:34:06 862

原创 C# 如何将使用的Dll嵌入到.exe应用程序中?

有没有想自己开发的exe保留一点神秘,不想让他人知道软件使用了哪些dll;又或许是客户觉得一个软件里面的dll文件太多了,能不能简单一点,直接双击.exe就可以直接运行了,别搞那么多乱七八糟的。无论是主动还是被动,这就产生了一个需求,如何将软件调用的dll嵌入到exe中呢?

2023-08-30 16:30:00 2249

原创 C# 添加现有的窗体的时候,为何窗体的控件不显示了?

将Form1.cs Form1.resx Form1.Designer 三个文件直接复制到新项目的目录下,然后直接在新项目上选择添加现有项,添加完之后,你会发现它们是各自分离的(如右边展示的状态),是不是懵逼了?添加完之后,打开的窗体发现没有显示任何控件,窗体的大小还变小了?4 注意如果有多个现有项.cs需要添加,请单独的一个一个的添加,先添加完Form1.cs ,再重复以上步骤添加Form2.cs.保存后重新打开项目*.Designer.cs文件和*.resx文件就在.cs文件下了。

2023-08-29 17:15:00 1435

原创 使用VS2019如何创建Win32的项目?

闲来无事,想学习一下Win32的开发,使用VS2019如何创建Win32的项目?费了老大的劲儿,终于捣鼓出来,现在记录一下。在弹出来的对话框中选择**“桌面应用程序(.exe)一个空的Win32项目就创建完成了。2、配置新项目,填写好项目名称和路径,点击“两个入口作用都是一样的。如果找不到这个选项的话,就得启用“”安装相关的开发插件了。1 创建新项目,在筛选栏选择。,如下图,选择第一个“

2023-06-03 14:17:03 1851

原创 C# XML的节点遍历、定位、编辑和删除(三)

在项目的实际应用中,有很多数据都会保存为XML配置文件。使用率比较高的操作有加载文档, 读取文档,读取XML的某个节点或属性值,增加或插入一个节点,遍历节点信息等。

2023-05-15 14:30:00 3114

原创 winform窗体大小不能通过鼠标拖拽调整大小,窗体上的控件也无法调整大小和移动?

记录一下自己给自己的挖的坑: winform窗体大小不能通过鼠标拖拽调整大小了,窗体上的控件也无法调整大小和移动?将窗体(或控件)的MaxinumSize 和 MinimumSize设置为(0,0),即可随意拖拉窗体(或控件)的大小了设置成一样的大小,导致窗体无法使用鼠标拖拽改变大小。如果其中某一个属性设置了固定大小,那么使用鼠标拖拉的时候也会有一定的限制的。,导致窗体(或控件)无法使用鼠标拖拽改变大小, 此时控件的位置也无法移动了。即可随意拖拉窗体(或控件)的大小和位置了。

2023-05-11 17:54:51 4420 1

原创 创建XML的三种方式(二)

本文介绍了在winform中使用C#开发语言来创建XML文档的三种方式,并介绍了各自的优缺点。方法1是使用`XmlDocument`创建XML文档,方法2是使用`XmlTextWriter`编写XML文档,方法3是使用`LINQ to XML`的Document类生成XML文档。

2023-05-11 15:00:00 3880

原创 了解 XML结构(一)

XML(XmlDocument)结构特点1 有且仅有一个根节点2 以开头3 XML类似一个树形结构,结点之间关系可以是父子关系或兄弟同级关系4 每个节点有自己的文本和属性,对应的属性也有属性值。5 每个节点和属性都是我们自定义语言去描述的

2023-05-10 17:12:40 747

原创 C# 对PdfiumViewer工具栏进行自定义,实现放大缩小,首页, 尾页,上一页等功能。

关于PdfiumViewer的介绍 C# 使用PdfiumViewer实现对PDF文档打印预览(二),可以查看上一篇的文章。因为控件在工具栏展现的功能只有 保存、打印、放大、缩小这四个,现在想加上首页、尾页、上一页(下一页)的功能,以及显示当前页码,扩展一下功能。改造成下面这个样子。

2023-05-09 16:00:00 2915

原创 C# 使用PdfiumViewer实现对PDF文档打印预览(二)

想要对PDF文档进行预览和打印,实际上这个文档可以是存在的,也可以是一个PDF文件流(本地并没有PDF文件),找了一段时间发现有个特牛逼的开源组件,满足我这一切的需求,还可以自定义缩放,翻页的按钮。但是这个组件需要和pdfium.dll配合使用,放在同一个路径下,运行在X86平台下。

2023-05-08 14:00:00 6857

原创 C# 使用自带的组件PrintPreviewDialog 和 PrintDocument实现打印预览(一)

有这么个需求:DataTable中有一些数据是需要给显示或直接可以连接打印机进行打印的, 查阅了一下资料,发现官方就有组件PrintPreviewDialog和PrintDocument能实现这个功能。

2023-05-07 12:00:00 4952

原创 C# 介绍三种不同组件创建PDF文档的方式

介绍三种不同的方式创建PDF文档,有些组件功能比较强悍,支持PDF、WORD、PPT、HTML、TXT还有邮件等功能。如使用Grid或Table存放内容,比较简单容易上手。但是是收费组件,如果商用会涉及版权问题哦。功能仅专注于PDF,但生成速度快,还可以存储为数据流,可以以打印预览的形式展现。需要注意一点,该控件支持的字体。该组件是开源的,可免费使用。可按具体需求选择组件。

2023-05-06 16:00:00 2530

原创 c# 数据保存为PDF(三) (PdfSharp篇)

因为项目需求需要将数据导出存为PDF文档,方便客户使用。相比于TXT ,EXCEL等格式,导出PDF时可以减少字体乱码,文体格式不一样的痛点。在前面试用了Spire.PDF和Aspose.Pdf都可以导出我想要的格式的PDF,但这两个没有开源,正版都是要收费的,只好另寻他欢罢了。之后,寻寻觅觅,终于遇见PdfSharp,相处一段时间后,那便是日久生情了,陷进去了,从此就是它啦。

2023-05-05 17:14:10 9640 9

原创 c# 数据保存为PDF(二) (Aspose pdf篇)

项目中需要将数据导出存为PDF格式,试了一下Aspose组件,仅以此记录一下使用感受。与前面使用的Spire.PDF进行了简单对比,两个组件各有优缺点

2023-05-04 17:30:00 3685

原创 c# 数据保存为PDF(一) (spire pdf篇)

项目中需要将一些数据转存为PDF ,打开时不会乱码也不可编辑,方便用户使用和查阅。然后在网上找了一些资料,发现一个国产开发的组件那就是Spire,功能挺丰富的,可以保存为Excel、PDF、图片、PPT、二维码还带有邮件发送功能。

2023-04-28 18:00:00 3285

转载 C# 解决 使用Spire生成的pdf 头部有警告Evaluation Warning : The document was created with Spire.PDF for .NET.

spire帮助类: 修改Spire.License.dll中的秘钥,在转换之前先调用一下就可以了,这样生成的PDF的头部不会有警告。C# 解决 Spire生成的pdf 头部有警告。Excel 转成PDF。

2023-04-27 15:37:07 2985 3

原创 使用NPOI做Excel简单报表

前面介绍了NPOI单元格样式的使用、单元格合并,以及NPOI提供的颜色。现在用上前面的一些知识点,做一个测试结果表格。1、 介绍NPOI 的颜色卡、名称以及索引2、 NPOI的CellStyle单元格样式3、 将DataTable中的数据保存到Excel (二) 使用NPOI。

2023-04-22 17:00:00 933

原创 将DataTable中的数据保存到Excel (二) 使用NPOI

NPOI是一个开源的.NET组件,可以读写Excel文件,支持Office97-2007格式,功能强大。下面介绍NPOI写数据到Excel,以及读取Excel数据存储到DataTable中

2023-04-21 17:00:00 1745

原创 介绍NPOI 的颜色卡、名称以及索引

使用NPOI的颜色时,一些颜色类的名称很难想象出具体对应的颜色,所以有了下面的对照表,方便使用。NPOI 颜色的索引范围是 8~64,超出范围无效。 红色对应的Index是 10, 亮绿色对应的Index是 11, 黄色对应的Index是 13, 粉色对应的Index是 14

2023-04-20 16:07:29 1252

原创 LiveCharts2 初步认识

LiveCharts2 是一个简单、灵活、交互式以及功能强大的跨平台图表库。LiveCharts2 现在几乎可以运行在任何平台,支持Maui,Uno Platform、Avalonia、Etoforms、Xamarin、Blazor-wasm、WPF、Winforms、WinUI、UWP等。LiveCharts2 是LiveCharts(0)的升级,它修复了前身的主要设计问题,专注于在任何地方运行,在不丢失V0中已有的特性情况下提高了灵活性。

2023-04-19 18:00:00 5748 9

BACnet模拟设备,模拟电梯功能,简单的楼层设置,呼梯功能,用于学习BACnet协议

BACnet模拟设备,模拟电梯功能,简单的楼层设置,呼梯功能,用于学习BACnet协议。适合小白,代码有注释,大佬请忽略,在博文 “模拟BACnet设备(八) “有相关介绍,也有完整代码。

2024-04-18

BACnet 楼宇自动控制技术,设备的基本读写和订阅属性值变化功能,对学习Bacnet有一定的帮助

BACnet 楼宇自动控制技术,设备的基本读写和订阅属性值变化功能,对学习Bacnet有一定的帮助。可以结合我的博文一起看,里面有详细的解说。https://blog.csdn.net/weixin_40314351?spm=1010.2135.3001.5343

2024-04-17

检验Pdfsharp.dll 支持的语言及对应的字体

修改源码之后的Pdfsharp.dll,可以检测该语言的文本是否可以使用某个字体来绘制,避免出现??或方块的情况

2023-11-16

C#-Winform-将Dll嵌入到exe软件中

使用代码动态加载dll,将dll内嵌在exe软件当中,防止缺失以及可以直接给到客户使用,无需放在某个文件夹下。详情描述参见博文:https://blog.csdn.net/weixin_40314351/article/details/132557524?spm=1001.2014.3001.5502

2023-08-31

C# 使用PrintDocument 和 PrintPreviewDialog 实现打印预览功能

C# 使用PrintDocument 和 PrintPreviewDialog 实现打印预览功能。页面包含三个部分有页眉 、页脚和内容。还有美化设计,代码都有注释,简单易懂。详情介绍可以看 https://blog.csdn.net/weixin_40314351/article/details/130525301?spm=1001.2014.3001.5501

2023-05-08

Winform + ZedGraph + 显示坐标点和绘制游标

介绍了三种方法如何显示ZedGraph中曲线上的点坐标,并使用游标定位

2022-11-04

C# 调用Everything查找文件

C# 调用Everything查找文件,可带条件搜索,也可以根据文件后缀或者文件的关键词进行搜索,最后将查找到的路径输出显示

2022-08-13

qt_zh_CN.rar

文件包含qt_zh_CN.qm和qt_zh_CN.ts两个文件。实现了对QMessageBox、QFontDialog、QColorDialog的中文翻译

2020-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除