- 博客(262)
- 资源 (20)
- 收藏
- 关注
原创 c# 全网最稳定 企业级 以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发。
【代码】c# 全网最稳定 实现以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发。
2023-08-10 19:24:03 413
原创 C# 线性插值
传感器数据处理:在传感器数据处理中,可能会出现数据点不连续或不均匀的情况。使用线性插值可以根据已知的数据点来估算在两个数据点之间的数值,从而填补数据中的缺失或不连续之处。运动学模型:在线性运动学模型中,可能需要根据已知的位置数据来估算物体在不同时间点的轨迹或位置信息,线性插值可以帮助实现这一目标。信号处理:在数字信号处理中,线性插值可以用来估算信号在离散时间点之间的数值,从而平滑信号或填充信号中的缺失值。数值模拟:在线性数值模拟中,线性插值可以用来逼近复杂函数的数值输出,从而简化数学模型的计算过程。
2024-03-01 11:05:06 415
原创 WPF 解决TabControl选项卡过多导致无法一次完全显示在屏幕上问题
【代码】WPF 解决TabControl选项卡过多导致无法一次完全显示在屏幕上问题。
2024-02-28 16:13:38 178
原创 关于电量计里的IATA的理解
Ti 芯片的电量计(Fuel Gauge)是用来估算电池的剩余容量和电池状态的。IATA 是一种用于电量计算法的术语,它指的是通过内部累积和基于时间的老化模型来计算电池的剩余容量。该模型考虑了电池在使用过程中的老化效应,使得电量计可以更准确地估算电池的剩余容量。在 Ti 芯片中,“IATA” 可能指的是 “Internal Accumulation and Time-based Aging”(内部累积和基于时间的老化)。
2024-02-16 11:08:46 446
原创 关于 TI Bq40Z551 Cell Swelling Protection的理解
如果CSP功能配置为使用TIMER_A,无论如何设置CSP Configuration 1寄存器中的配置位(CSP_TEMP1、CSP_TEMP2、CSP_TRT),所有三个子计时器(TMP1、TMP2和运行时间)都会适当地递增。当设置了[CSP_IGNORE_SLEEP]位时,在计量器处于SLEEP模式时,总运行时间、Temp1_Time和Temp2_Time的累积将被禁用。当设置了[CSP_RSOC]位时,在RSOC超过阈值温度时,将启用总运行时间、Temp1_Time和Temp2_Time的累积。
2024-02-16 11:07:42 443
原创 关于 Ti 电量计中常见名词的含义
电量计中的 cycle count(循环次数)指的是电池已经经历的充放电周期的次数。每个可充电电池都有一个额定的循环次数,一旦超过这个次数,电池的性能可能会下降。因此,了解电池的 cycle count 对于评估电池的健康程度很重要。“Cycle count” 是一个用来计算可充电电池充放电次数的术语。每次将电池从 0% 充满到 100% 算作一个充电周期,而将电池从 100% 使用完毕算作一个放电周期。
2024-02-16 11:05:38 236
原创 C# 判断某个数/某组数,是否在一定的(某组)范围内,适配多种类型
然后使用 LINQ 方法 All() 遍历 range 中的每个元素 x,检查其是否在阈值范围内,即是否满足 (x.CompareTo((T)(dynamic)(threshold + offset)) = 0) 的条件。将两个列表进行逐对组合,然后对每对数据进行判断是否在对应的阈值范围内。这两个方法可以用于校验给定数据列表中的数据是否满足指定的阈值要求,并通过提供的委托进行结果处理。
2024-01-29 18:53:21 515
原创 c# 派生类没加 : base报错原因
这是因为在派生类的构造函数中,基类的构造函数必须首先被调用,以便初始化基类的部分。如果派生类没有显式地调用基类的构造函数,编译器会尝试插入一个无参数的 base() 调用。然而,如果基类不具有无参数的构造函数,那么编译器将无法找到匹配的构造函数,从而导致编译错误。在 C# 中,如果派生类的构造函数没有显式地调用基类的构造函数(使用 base 关键字),而基类又没有定义无参数的构造函数,则会导致编译错误。
2024-01-15 19:24:03 393
原创 c# _表示未使用的变量引用
为了解决这个问题,C# 8.0 引入了一个新的功能,可以使用下划线 _ 来表示一个未使用的变量。这样,你可以明确地告诉编译器,该变量是有意为之未使用的,从而避免生成警告。在以前的 C# 版本中,如果你声明了一个变量但没有使用它,编译器会生成一个警告,提示该变量未使用。这可能会导致代码中出现不必要的警告。在 C# 8.0 中,下划线 _ 还引入了新的用途,用于表示未使用的变量引用。需要注意的是,这种用法主要适用于在某些情况下确实需要声明一个变量,但实际上不需要使用它的情况,例如在模式匹配时声明临时变量。
2024-01-12 14:57:51 489
原创 C# 当应用程序路径下(不同文件夹)存在多个同名dll,运行时它会引用哪一个呢?
这个加载顺序通常是基于操作系统和 .NET Framework 的规范,但一般来说,首先搜索会先找到的 DLL 文件,然后是子目录中的 DLL 文件。如果希望明确指定应用程序加载哪个具体的 DLL 文件,可以使用 AssemblyResolve 事件来进行自定义程序集解析逻辑,从而控制应用程序加载 DLL 的行为。最终,程序集加载器会根据搜索的顺序尝试加载 DLL 文件,通常会选择第一个匹配到的 DLL 文件来进行加载。首先,程序集加载器会搜索应用程序的当前工作目录,其中包括应用程序本身所在的目录。
2024-01-12 14:36:08 388
原创 C# Guid生成唯一值用例
在 C# 中,可以使用 Guid 结构来为每个对象生成唯一的标识符。你可以在对象的构造函数中为其生成一个唯一的 Guid,并将其作为对象的属性存储在对象中。Guid 结构体的未初始化时,默认值是 Guid.Empty,这个属性表示一个空的 Guid,其值为全零(即所有位都为零)
2024-01-12 11:06:15 534
原创 C# 关于当ObservableCollection增删查改元素时,触发事件用例
ObservableCollection 类提供了一种实时监测集合变化的机制,可以通过订阅 CollectionChanged 事件来响应集合的添加、移除和重置等变化。在 ObservableCollection 中,如果你更改了集合中的元素,例如修改了元素的属性,这将会触发 CollectionChanged 事件。但是如果你只是替换了集合中的元素(即通过索引直接赋值),这将不会触发 CollectionChanged 事件。
2024-01-12 11:04:00 774
原创 WPF Converter转换器
在 WPF 中,Converter 通常用于在数据绑定过程中执行值的转换。你可以创建自定义的 Converter 类来实现数据的转换逻辑,然后在 XAML 中使用这个转换器。数据绑定时,值会先经过 Converter 的转换逻辑,然后再显示在 TextBlock。在 XAML 中,声明 Converter,并将它应用到数据绑定中。接口的转换器类,实现。
2024-01-12 09:07:55 794
原创 全网最简单 关于C盘扩容\清理\空间不足的解决方法(docker镜像文件过大需要迁移也可以看这里!)
以管理员身份,运行命令行,输入命令。创建软连接,相当于一个快捷方式。
2024-01-08 01:42:07 722 4
原创 Halcon机器视觉和运动控制软件通用框架,24年1月最新版新增UI设计器,插件式开发,开箱即用 仅供学习!
此版本已经添加ui设计器。具体功能如上所示,可以自定义变量,写c#脚本,自定义流程,包含了halcon脚本和封装的算子,可自定义ui,通过插件形式开发很方便拓展自己的功能。
2024-01-07 23:49:51 602
原创 WPF RelativeSource
RelativeSource FindAncestor:指定在祖先元素中进行查找。可以指定 AncestorType 来指示查找的具体类型,在找到匹配的第一个祖先后进行绑定。RelativeSource PreviousData:在绑定集合数据时,绑定到前一个数据项的属性。RelativeSource TemplatedParent:指定模板的父级元素作为相对源。在自定义控件模板中使用,绑定到模板的父级元素的属性。可以在当前元素的属性中绑定到自身的属性。
2023-12-26 18:02:57 912
原创 WPF Binding Mode
当目标 UI 元素的值更改时,数据源将自动更新。但是,当数据源的值更改时,不会反映在目标 UI 元素上。一旦数据传递完成并应用到目标 UI 元素,后续对数据源的更改不会反映在目标 UI 元素上,也不会更新数据源。当数据源的值更改时,目标 UI 元素将自动更新;当目标 UI 元素的值更改时,也会自动更新数据源。OneWay(单向绑定,默认值):数据从数据源传递到目标 UI 元素。当数据源的值更改时,目标 UI 元素将自动更新。但是,当目标 UI 元素的值更改时,不会影响数据源。
2023-12-26 15:26:00 475
原创 WPF 已有资源字典文件,在xaml 里面引用
如果已经有一个资源字典文件(通常具有 .xaml 或 .resx 扩展名),您可以在 XAML 中通过 MergedDictionaries 属性引用它。MergedDictionaries 属性允许您将多个资源字典文件合并到一个资源字典中,以便在 XAML 中使用。将资源字典文件添加到您的项目中,并确保将其设置为 “嵌入资源”。这样可以确保文件在编译时包含在生成的程序集中。在 XAML 文件的根元素上,使用 MergedDictionaries 属性引用资源字典文件。打开需要使用资源的 XAML 文件。
2023-12-26 14:49:04 646
原创 WPF Grid
在这个示例中,“ButtonStyle” 样式被应用于按钮,并且 “PersonTemplate” 数据模板被应用于 ContentControl 控件来显示通过数据绑定绑定的 Person 对象。在 WPF 中,“Grid” 是一种用于布局的面板控件,而 “Resource” 是一种用于定义可重用对象的机制。您可以将资源定义为 Grid 控件的一部分,以便在整个应用程序中共享和重用。在上面的示例中,“ButtonStyle” 是一个样式资源,“PersonTemplate” 是一个数据模板资源。
2023-12-26 14:29:12 552
原创 WPF DataGrid
在 WPF 的 DataGrid 控件中,“HeaderVisibility” 是一个用于控制列头(Header)可见性的属性。DataGrid 控件的 SelectionMode 属性定义了用户可以如何选择 DataGrid 中的行。通过按住 Ctrl 键并单击行来选择多个非连续行,或按住 Shift 键并单击行来选择多个连续的行。在 WPF 中,“BorderBrush” 是一个控件的属性,用于指定边框的画刷颜色。它可以是预定义的或自定义的画刷颜色。通过单击行来选择,如果点击已选择的行,则会取消选择。
2023-12-26 14:07:15 869
原创 WPF FrameworkElement 和Control区别,元素和控件的区别
总之,元素是构建用户界面的基本构建块,提供了基础的布局和呈现功能,而控件是具有可视化外观和交互行为的可重用元素。元素更加灵活,可以用于创建自定义的界面元素或容器,而控件具有内置的交互行为和预定义的外观样式。此外,Control 还支持控件的模板化(Template)和样式化(Style),这些功能能够让开发人员自定义控件的外观和行为,从而满足特定的用户需求。FrameworkElement 是 WPF 元素的基类,提供了基础的布局和呈现功能,所有控件都是 FrameworkElement 的子类。
2023-12-26 13:45:56 682
原创 WPF Border
除了 BorderBrush、BorderThickness 和 Background 属性之外,Border 还提供其他属性,例如 CornerRadius(用于指定边框的圆角半径)和 Padding(指定边框内边距)。在上述代码中,Border 的内容将与边框之间有 10 像素宽度的空白区域,使内容在控件内部有一定的间距,同时也可以使内容不与边框重合。属性用于指定控件内容和控件边框之间的空白区域大小。在 WPF 中,Border 是一种常用的控件,用于给其他控件提供边框和背景效果。
2023-12-24 09:24:09 828
原创 WPF StackPanel
StackPanel是一个控件容器,它按照一个方向(水平或垂直)堆叠子元素,使得它们沿一个轴线对齐。在WPF中,StackPanel通常用作布局的容器控件,用于将其他控件组织成一列或一行。除了方向之外,StackPanel还支持其他一些属性,如水平/垂直对齐方式、子元素间的间距和子元素的拉伸行为等。这将创建一个垂直的StackPanel,其中包含三个文本框,它们将按顺序列成一列。这将创建一个水平的StackPanel,其中包含两个按钮,它们将在中心对齐,并在它们之间留出10像素的外边距。
2023-12-23 08:27:35 738
原创 WPF Halcon机器视觉和运动控制软件通用框架,插件式开发,开箱即用 仅供学习!
参考easyvision开发,集成几十个软件算子此版本以添加ui设计器。具体功能如上所示,可以自定义变量,写c#脚本,自定义流程,包含了halcon脚本和封装的算子,可自定义ui,通过插件形式开发很方便拓展自己的功能。
2023-12-20 08:03:04 664
原创 Halcon threshold_sub_pix (Operator)
Image是输入的原始图像,Threshold是设定的阈值,Width和Height是像素值计算区域的大小,ThresholdedRegion是经过分割后得到的二值化结果。在对图像进行二值化处理时,threshold_sub_pix函数会对每个像素的值进行比较,并根据设定的阈值将其划分为前景或背景。像素值大于或等于阈值,则该像素被视为前景像素(彩色区域)如果像素值小于阈值,则该像素被视为背景像素。
2023-12-07 21:53:36 496
原创 Halcon reduce_domain和scale_image的作用
min_max_gray创建输入图像图像区域内灰度值绝对值的直方图(参见gray_histo),并计算与输入图像区域相对应的像素百分比。其中,Image是输入的原始图像,Region是指定的感兴趣区域,ReducedImage是经过裁剪或缩小后得到的图像结果。缩小图像:通过指定感兴趣区域的大小,可以将图像缩小到只包含指定区域的大小,从而得到一个更小的图像。裁剪图像:通过指定感兴趣区域,可以将图像中不需要的部分裁剪掉,从而获取一个新的裁剪后的图像。
2023-12-07 20:58:19 981
原创 Halcon 机械视觉 使用仿射变换 机械手实现孔位定位
选择一个公共的参考点,比如某个标志物,假设在坐标系A中的坐标为(Ax, Ay),在坐标系B中的坐标为(Bx, By)。||A1|| = √(A1x^2 + A1y^2) : 根号((rx2-rx1)的平方+(ry2-ry1)的平方))||B1|| = √(B1x^2 + B1y^2) : 根号((cx2-cx1)的平方+(cy2-cy1)的平方))要推算机械手平面坐标系A与相机平面坐标系B的关系,我们可以首先找到两个平面坐标系之间的平移量和旋转量。向量|c|:( (cx2-cx1),(cy2-cy1))
2023-12-07 15:22:24 522
原创 Halcon 螺丝孔位定位
要输出的偏移量:工具末端世界坐标-目标坐标。相对偏移: 孔位世界坐标 - 标定坐标。目标坐标:圆心世界坐标+相对偏移。
2023-12-01 19:35:33 408
原创 Halcon (基于镜头中心)协同机械手进行自动标定
编写Halcon脚本,获取9幅图像中点位中心的像素坐标,以及对应算出的机械手世界坐标,导入标定demo获取换算关系。此时得到的为以相机为中心的标定关系,后续需要根据每个孔位(工具末端)的世界坐标来确定偏移关系。在机器人示教器上基于基准点位进行其余8个点位设置,每次x轴偏移+4 或 Y轴偏移+4。使用相机捕捉初始标定点位,记录世界坐标。在图像中模拟位置进行验证,对每个点位进行图像获取。
2023-11-30 09:55:17 482
原创 c# 责任链模式
在这个示例中,请求从 handlerA 开始,如果 handlerA 能够处理请求,则处理请求并结束。否则,请求会传递给下一个处理者 handlerB,如果 handlerB 能够处理请求,则继续处理请求并结束。通过责任链模式,可以动态地构建处理请求的链,使得请求的发送者和接收者之间解耦,提高代码的灵活性和可维护性。请注意,在实际应用中,需要根据具体情况设计和组织责任链,确保每个处理者尽量只处理自己负责的请求。责任链模式是一种行为型设计模式,它允许多个对象按照链式结构处理请求,直到有对象能够处理请求为止。
2023-11-28 11:00:19 542
原创 C# 适配器模式
在这个示例中,适配器 CircleAdapter 继承了 Adaptee 类,同时实现了目标接口 ICircle。这样一来,客户端就可以使用目标接口 ICircle 来调用适配器的方法 Draw(),适配器再调用 Adaptee 类的方法 DrawCircle() 来实现绘制圆形的功能。适配器模式将已有的类和接口适配到了客户端所期望的接口,并实现了代码的重用和扩展。适配器模式是一种结构型设计模式,它可以将一个或多个不兼容的接口适配成客户端期望的接口。
2023-11-28 09:19:02 544
原创 Halcon 5分钟学会9点标定 带图片示例、示例源码
结果,红色大圆圈为像素坐标,红色小圆圈为机械坐标位置,绿色为目标实际机械坐标位置。前置条件,相机焦距,视野固定高度和角度,光源光强度固定。
2023-11-27 11:51:44 1902 1
原创 Halon 模板匹配流程
形状匹配模型匹配结果的最大重叠率指的是,在进行形状匹配后,如果多个匹配结果之间的重叠率超过了设置的最大重叠率,则只选择其中一个结果作为最终的匹配结果,其他重叠率较高的结果将被舍弃。例如,如果设置MaxOverlap为0.5,则表示只有当两个匹配结果之间的重叠率小于等于50%时,才会将其都作为有效的匹配结果返回,否则只选择其中一个作为最终的匹配结果。在形状匹配中,重叠率是指待匹配的模板和匹配目标之间的重叠面积与它们各自的面积之比。MaxOverlap是用于设置形状匹配模型匹配结果的最大重叠率的参数。
2023-11-20 19:57:11 69
原创 数据库事务的作用
当一个事务成功提交后,数据库中的数据应该保持一致性状态,反之如果事务执行出错或中断,则要回滚事务,使数据库回到操作之前的状态。隔离性(Isolation):事务的执行过程中对其他事务是隔离的,事务之间不会互相干扰。也就是说,事务的执行不会导致数据的不一致或冲突。原子性(Atomicity):事务中的所有操作要么全部成功执行,要么全部失败回滚,不会出现部分操作成功而部分操作失败的情况。持久性(Durability):一旦事务提交成功,对数据的修改是永久性的,即使在系统发生故障的情况下,数据也能得到恢复。
2023-10-24 09:30:20 137
原创 依赖注入容器 perRequest(Transient)和Singleton区别
在CM框架中,"perRequest"和"Singleton"都是生命周期配置选项,用于指示对象的创建和共享方式。它们之间的区别在于对象实例的生命周期和共享方式。对象的实例在整个应用程序的生命周期内只创建一次,并在整个应用程序范围内共享。对象的实例在每个请求处理期间只创建一次,并在同一个请求内共享。每个请求都有自己的对象实例,不同的请求之间不会共享同一个实例。在请求处理期间不同的组件或对象可以访问同一个实例。具有全局性质,适合在整个应用程序中共享状态和数据。所有的请求和组件都共享同一个对象实例。
2023-10-23 21:50:48 58
24年最新版:WPFhalcon源码vm视觉和运动控制软件框架源码,全网最新(带ui设计器和轴卡运控),WPF MVVM开发模式
2024-01-07
WPF Halcon机器视觉和运动控制软件框架 基于原有框架上二次开发
2023-12-20
c# 全网最稳定 企业级 以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发
2023-08-10
基于NPOI封装的ExcelHelper操作类,简单易用,具体流程详见博客
2023-05-22
C# wpf 根据数据库一键生成大量模型类(支持sqllite、Access、Sqlserver)源码
2023-03-19
C# wpf 根据数据库一键生成大量模型类(支持sqllite、Access、Sqlserver)全网独家 可使用软件不带源码
2023-03-19
C# 实现模拟PID调试(无硬件下进行数据模拟调试)
2022-12-07
Python 将文件夹内所有pdf转换为图片输出到指定文件夹中的小软件
2021-11-12
Python 一键生成exe文件
2021-04-28
Python 批量复制文件夹,不复制里面的内容
2021-04-28
统计文件夹内所有pdf页数的小工具.exe
2021-03-03
C语言链表例子(自己写的)
2020-12-01
C# winform串口助手(自己写的)
2020-12-01
C# 二分法例子(自己写的)
2020-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人