自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 Unity3d数字化看板-多关节机器人运动控制

机械手运动控制主要是关节的旋转,通过控制多个关节的角度,实现对机械手的同步控制机械手运动控制,可以分解为多个关节的运动,下一关节是跟随在上一关节运动,在处理模型的时候将下一关节作为子物体挂在上一关节下,通过控制多个关节的角度,达到机械手的运动同步。模型示例如下(模型是从网上下载)

2023-04-24 22:51:28 7652 21

原创 ModbusTCP协议报文解析

报文格式交互(通信)标识:2个字节 为此次通信事务处理标识符,一般每次通信之后将被要求加1以区别不同的通信数据报文。协议标识:2个字节 表示该条指令遵循ModbusTCP协议,一般都为00 00报文长度:2个字节 表示后面数据的长度,有几个字节,高字节在前(前六位Modbus/TCP协议不同功能码通用)设备标识 :1个字节 设备地址,这个可以用于局域网里面的具体的地址,如果目标机器有固定ip,这个就不起作用,直接上写成 00功能码:1个字节 功能码在modbus协议用于表示信息帧的功能....

2022-11-23 20:46:12 39756 7

原创 C# Expression动态拼接的用法

Expression动态拼接的用法,手动构造表达式,用于动态条件查询,条件查询你就可以在 LINQ 查询中灵活地使用可配置的 Lambda 表达式进行查询了。,你希望根据字符串字段名动态生成。

2025-04-27 11:40:20 213

原创 C#操作PDF使用iText7报错-根据错误提示,缺少支持包,bouncy-castle-adapter或者bouncy-castle-fips-adapter

根据错误提示,缺少支持包,bouncy-castle-adapter或者bouncy-castle-fips-adapter。我们就搜索bouncy-castle-adapter或者bouncy-castle-fips-adapter,安装itext7.bouncy-castle-adapter之后,再运行代码,就不报错了。

2025-04-27 11:37:37 158

原创 Unity导出WebGL,无法显示中文

默认字体无法显示中文在编辑器中设置了中文和英文的按钮,中文按钮无法显示导出后无法显示中文。

2025-03-19 11:38:37 351

原创 Unity导出WebGL,无法加载,data文件无法找到 404(NotFound)

示例是使用IIS托管启动F12可以看到not found 的报错。

2025-03-19 11:30:04 358

原创 Unity3D导出的WebGL工程运行,解决打开报错“fail...file:// URL”

要解决的是unity3d导出的WebGL项目如何运行,也是常见的报错,就是直接点击index.html启动。Failed to download file Build/DT.data. Loading web pages via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host Unity content, or use

2025-03-17 11:07:21 618

原创 Unity导出WebGL

在Build Settings页面中平台(Platform)切换到WebGL平台如何没有安装WebGL扩展插件,点击下载(Open Download Page)下载扩展安装文件WebGL-Support-for-Editor-2023.1.0f1c1.exe下载完成进行安装注意:安装过程,要关闭unity程序,否则可能无法安装或者安装失败安装完成后,重新打开unity,打开build settings,已经有WebGL选项了。开始构建,添加场景,选择平台然后开始构建(build)

2025-03-17 10:58:53 362

原创 ASP.NET Core WebAPI中使用Jwt实现鉴权授权-System.IdentityModel.Tokens.Jwt

使用直接实现基于 JWT 的鉴权和授权,可以在Core 中手动生成、解析、验证 JWT Token。提供了 JWT 的生成和解析的 API。以下是如何使用该库实现鉴权授权的详细步骤。

2024-12-11 08:51:56 1058

原创 ASP.NET Core中配置Swagger(OpenAPI功能)

是ASP.NET Core中的一个扩展方法,用于注册API探索器,他是Swagger生成文档所必须的。启动,就可以看到Swagger了。注册Swagger服务。

2024-12-11 08:49:42 673

原创 ASP.NET Core WebAPI中使用JwtBearer实现鉴权授权-基于Microsoft.AspNetCore.Authentication.JwtBearer

在Core 中,使用 JWT (JSON Web Token) 实现鉴权和授权是一种常见的方式。JWT 允许在不同系统之间安全地传输用户信息,并且信息是自包含的。下面是如何在Core 中实现 JWT 鉴权和授权的步骤。

2024-12-10 10:49:23 13276

原创 ASP.NET Core实现鉴权授权的几个库

System.IdentityModel.Tokens.Jwt 和 Microsoft.AspNetCore.Authentication.JwtBearer 是两个常用的库,分别用于处理 JWT(JSON Web Token)相关的任务。它们在功能上有一定重叠,但侧重点和使用场景有所不同。

2024-12-10 10:48:26 1179

原创 C#实现一个HttpClient集成通义千问-多轮对话功能实现

多轮对话的token是持续累加的,第二次发送的时候相当于第一次发送和返回的消息也发送了,都算在第二次发送的token中。增加一个result,获取流式输出的content完整内容,返回完整的助手消息内容,用于后续添加到messages中。模型以 JSON 格式生成的函数调用参数。模型生成的工具调用列表(例如函数调用)。模型生成的工具调用列表(例如函数调用)。用于区分相同角色参与者的可选名称。用于区分相同角色参与者的可选名称。用于区分相同角色参与者的可选名称。与助手之前的音频响应相关的数据。

2024-12-09 09:46:55 1351

原创 C#实现一个HttpClient集成通义千问-流式输出内容提取

根据流式返回的数据处理内容对象最后一条显示token的内容将上面两个json内容合并生成一个对象类,主要就是choices字段和usage字段合并两个类就行了具体操作就是复制json内容,切换到一个空的类文件中,然后在“编辑”→“选择性粘贴”→“将JSON 粘贴为类”操作,自动生产类,将上面两个json都生成一遍,合并主类为,得到json类如下。

2024-12-09 09:42:20 969

原创 C#中的string操作详解-截取、分割、连接、替换等

在C#中,string类提供了许多用于操作字符串的方法,包括截取、分隔和连接等。以下是一些常用字符串操作的介绍和实例

2024-12-08 17:01:31 1905

原创 前端路径“@/“的使用和配置

环境:vite+ts。配置好之后就可以在vue中使用“@/”了,不会再报错

2024-12-08 16:14:21 399

原创 C#开发-集合使用和技巧(十)Union用法-并集

如果你有一个自定义类型,你可以通过重写 Equals 和 GetHashCode 方法来确保 Union 方法正确地识别重复元素。定义一个Person类,有ID和Name,我们定义只有Id和Name都相同才表示是相同set;set;在这个示例中,我们使用了一个自定义的 PersonComparer 来比较 Person 对象,确保 Union 方法根据 Id 进行比较。使用自定义比较器进行 Union,创建一个自定义比较器来比较,里面以Id为基准} }然后使用Union进行比较。

2024-12-07 16:07:44 664

原创 C#开发-集合使用和技巧(九)Join的用法

在C#中,IEnumerable 的 Join 方法用于根据键将两个序列中的元素进行关联。Join 方法通常用于执行类似于 SQL 中的内连接操作。以下是 Join 方法的基本用法:在存储数据时,都是通过ID来确定唯一性,不会重复存储Name之类的,而在使用的时候,显示在界面上,用户不知道ID的意义,则需要显示Name。

2024-12-07 15:48:50 678

原创 C#实现一个HttpClient集成通义千问-测试代码入手学习参数配置

我们学习从测试代码开始,选择一个模型选择的大模型:通义千问2-VL-开源版-7B然后再API示例中,找到C#的示例代码修改代码中apikey为自己的key,也可以改成自己配置在环境变量中的key。 接着修改请求体jsonContent字符串里面的json对象了,修改`model`为我们用的这个大模型代码,模型下面有个模型的代码就是他请求的`model`,可以点击复制一下

2024-12-06 20:11:29 1485

原创 C#实现一个HttpClient集成通义千问-开发前准备

集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的。

2024-12-06 20:08:26 573

原创 Visual studio的AI插件-通义灵码

打开通义灵码问答,就可以像ChatGPT一样问答,并且可以带上打开的代码文件和选择的代码块。使用技巧:写一行注释,然后让他自动生成代码,注释越详细,生成的代码越详细。打开扩展管理器,搜送“TONGYI Lingma”,进行安装。打开行间自动补全,就可以在写代码的时候自动提示代码块。在菜单栏“工具”中可以看到通义灵码。

2024-12-05 23:12:52 1570

原创 WPF+LibVLC开发播放器-音量控制和倍速控制

界面上增加音量的控件和倍速控制控件。主要也是一个`Slider`进度条控件来实现音量调节我们这里设置默认的最大值为100,默认Value值也为100,默认声音开到最大这里目前完全由前端控制音量调节,可以直接使用`ValueChanged`事件实现

2024-12-05 15:49:32 745

原创 WPF+LibVLC开发播放器-进度条显示和拖动控制

PlaySlider_DragStarted:拖动开始,设置拖动标识为true,然后暂停播放。PlaySlider_DragCompleted:拖动结束,标识改为false,然后继续播放。事件,因为在播放时间更新的时候一直在更新Value值,再拖动就会变成一直闪烁。PlaySlider_DragDelta:拖动过程中,实时更新播放器的进度。然后修改时间变化事件,增加判断,让拖动开始时,不再更新,防止拖动异常。实现进度条跟随播放,拖动更新进度。中实现实时更新进度条,在。然后实现拖动的三个方法,

2024-12-04 10:42:33 1159

原创 WPF+LibVLC开发播放器-播放时间显示

Time属性,获取当前播放时间类型:long单位:ms设置Time属性可以修改当前播放进度Length属性,当前视频总的时长类型:long单位:ms只读。

2024-12-04 10:38:20 669

原创 WPF+LibVLC开发播放器-LibVLC播放控制

在button事件中实现播放控制,根据当前状态来暂停和播放。WPF+LibVLC开发播放器-LibVLC播放控制。界面上添加一个Button按钮用于控制播放。播放器里的MediaPlayer进行控制。停止播放,是视频完全停止,进度回到一开始。Pause和SetPause都能实现暂停。前面已有初始化加载播放的代码。停止之后再播放就从头开始播放。属性获取当前播放状态。

2024-12-03 15:50:08 988

原创 WPF+LibVLC开发播放器-LibVLC在C#中的使用

使用WPF+LibVLC快速开发一个播放器。安装下面两个包,**必须安装两个**一个是相关框架对应的包,Winform就安装LibVLCSharp.Winform;WPF就安装LibVLCSharp.WPF,以此类推,他们都默认依赖LibVLCSharp,不需要例外安装一个是对应系统运行的必要的包,windows系统就安装VideoLAN.LibVLC.Windows;其他系统以此类推

2024-12-03 15:25:58 892

原创 C#开发问题-剪贴板操作异常System.Runtime.InteropServices.COMException:“OpenClipboard 失败 (异常来自HRESULT:0x800401D0

使用Clipboard.SetText(xxx);引发下面的异常:System.Runtime.InteropServices.COMException:"OpenClipboard 失败 (异常来自HRESULT:0x800401D0(CLPBRD E CANT OPEN))”此时甚至vs的复制也失效了

2024-11-20 17:44:01 722

原创 C#实现数据采集系统-分组查询

单点查询:1000个点,10000个点,就要查询一千次,一万次如果50个一组,100个一组,1千个点就减少到20次,10次,大大提供了通信效率ModbusTcp查询报文。

2024-11-17 21:01:02 843

原创 Web前端开发工具和依赖安装

Web前端开发工具和依赖安装 node.js+vue

2024-10-29 14:19:18 710

原创 C#多线程数据同步的几种方式(不同的锁)

C#多线程数据同步的几种方式(不同的锁)多个关联数据无法完整获取修改

2024-09-29 16:38:08 560

原创 C#实现数据采集系统-数据反写(3)ModbusTcp写入数据模块开发

线圈基本都是单个写入,这里就使用05功能码寄存器写入可能多个同时写入,如int32,float等,需要四个字节,则需要2个寄存器,并且数据的两个寄存器是连续的,,其他的如Int64,double,则需要4个寄存器,我们可以一起写入调高效率。跟读报文一样,定义一个写入报文的头,前10个报文,再接收到写入数据是再在后面接上对应的数据字段然后再初始化的时候修改从站地址。

2024-08-23 11:02:44 1437

原创 C#实现数据采集系统-数据反写(2)消息内容处理和写入通信类队列

在ModbusTcp通信类中,添加一个写入队列和写入方法,写入点位先添加在队列中,然后再读数据间隙中,实现写入。处理消息,将消息转换成对应点位和值,然后调用modbustcp的写入方法。然后在启动的时候,订阅各个设备ID的写入主题,添加控制方法。用于存储每个设备的通信类,使用键值对。存储设备ID和通信类,用于快速查找。实现消息订阅方法-设备控制。

2024-08-22 23:04:57 550

原创 C#实现数据采集系统-数据反写(1)MQTT订阅接收消息

订阅方法实现:订阅主题,添加到_topicActions,如果已经连接,则直接订阅,没有连接,则等待连上的时候自动订阅,增加锁来确保订阅成功。然后需要一个键值对用于存储这个关系。在连接方法中,添加订阅。

2024-08-22 22:51:37 965

原创 C#实现数据采集系统-系列总览

基于C# +Net 6.0开发数据采集系统ModbusTcp实现plc数据采集Mqtt实现数据发送

2024-08-21 22:17:52 708 1

原创 C#实现数据采集系统-多设备采集

数据采集系统在网络环境下,性能足够,可以实现1对多采集,需要支持多个设备进行同时采集功能,现在就开发多设备采集功能。

2024-08-21 17:46:00 1104

原创 C#实现数据采集系统-周期配置、功能配置

之前采集、推送周期都是写死的现在就是新增一个需求,需要能够配置采集时间,比如我想1s采集一次,5s采集一次或者1分钟采集一次,然后定时推送也是,如此,我想设置推送的时间;还有定时推送和变化推送功能我可以配置是否开启关闭,有时候我只需要一种推送功能即可这样我们就可以在配置中增加这几个个参数。

2024-08-20 08:47:04 898

原创 C#实现数据采集系统-实现变化推送

现在每采集一次都会推送数据,消息量就会比较大,而且点位状态不变化,也会一直推送,会占用消耗大量资源。

2024-08-20 08:43:27 788

原创 visual studio使用技巧:快速生成Json、XML对应类

在项目中经常用到json或者xml作为配置文件,进行序列化和反序列化就需要有对应的类,重新写一遍类就比较麻烦,这里就讲一下通过visual studio快速生成json或者xml对应类型的方法。

2024-08-19 10:39:39 1352

原创 C#实现数据采集系统-系统优化服务封装

现在我们调用modbustcp和mqtt都直接在Program,所有加载和功能都混合在一起,比较难以维护类似asp.net core项目的Program.cs代码如下,构建服务配置和启动要实现的效果,Main方法中就是一个服务启动,只需要几行代码。

2024-08-02 10:14:58 661

原创 C#实现数据采集系统-配置文件化

配置信息ip端口,还有点位信息,什么的都是直接在代码里直接写死,添加点位,修改配置,比较麻烦,每次修改都需要重新生成打包。所以将这些配置都改成配置文件,这样只需要修改配置文件,程序无须修改,即可更新。配置代码:如果我们有100个采集,一个个去添加就很累,或者ip地址改了,都要重新改了打包发布再部署所以将这些属性和信息都改成配置文件。

2024-08-02 09:43:48 1188

120个微信小程序源码.zip

120个微信小程序源码.zip

2024-10-28

20条设备故障报警记录sql

20条设备故障报警记录 - 告警代码 - 告警名称 - 告警等级 - 状态 - 告警时间 - 处理人 - 处理时间

2024-08-02

C# WPF MVVM的Stylet框架使用示例

C# WPF MVVM的Stylet框架使用示例 Stylet 是一个极简但功能强大的 MVVM 框架,灵感来自Caliburn.Micro。它的目的是进一步减少复杂性和魔力,让不熟悉任何 MVVM 框架的人(同事)能够更快地上手。 它还提供了 Caliburn.Micro 中没有的功能,包括它自己的 IoC 容器、简单的 ViewModel 验证,甚至还有与 MVVM 兼容的 MessageBox。 较低的 LOC 数量和非常全面的测试套件使其成为使用和验证/确认 SOUP 开销较高的项目的一个有吸引力的选择,其模块化工具包启发式架构意味着您可以轻松地只使用您喜欢的部分,或替换您不喜欢的部分。

2024-07-21

widnows自动关机工具.exe

自己写的自动关机工具:可以设置关机或者重启;定时 关或者倒计时关

2024-07-09

海康工业相机软件 MVS-STD-4.0.1-230303

海康机器人 相机调试软件MVS MVS客户端 MVS_STD_4.0.1_230303

2024-07-09

c#操作excel NPOI使用手册

c#操作excel NPOI使用手册 NPOI,顾名思义,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。在本文发布时,POI的最新版本是3.5 beta 6。 NPOI 1.x是基于POI 3.x版本开发的,与poi 3.2对应的版本是NPOI 1.2,目前最新发布的版本是1.2.1,在该版本中仅支持读写Excel文件和Drawing格式,其他文件格式将在以后的版本中得到支持。

2024-07-09

windows下软件的运行常用依赖

windows下软件的运行常用依赖,包括:微软常用运行库合集,各个版本vc,dotNet

2024-07-09

stylet中文文档翻译

stylet中文文档翻译 Stylet 是受Caliburn.Micro启发的最小但功能强大的 MVVM 框架。它的目的是进一步降低复杂性和魔力,让不熟悉任何 MVVM 框架的人(同事)更快地上手。 它还提供了 Caliburn.Micro 中没有的功能,包括它自己的 IoC 容器、简单的 ViewModel 验证,甚至是兼容 MVVM 的 MessageBox。 低 LOC 数量和非常全面的测试套件使其成为使用和验证/验证 SOUP 带来高开销的项目的一个有吸引力的选择,其模块化工具包启发的架构意味着它很容易只使用您喜欢的部分,或替换你不知道的位。

2024-07-09

隐藏窗口的powershell脚本

是哦用powershell脚本控制窗口的隐藏和显示

2024-07-09

Everything-1.4.1.1024的32位

"Everything" 是 Windows 上一款搜索引擎,它能够基于文件名快速定文件和文件夹位置。 不像 Windows 内置搜索,"Everything" 默认显示电脑上每个文件和文件夹 (就如其名 "Everything")。 您在搜索框输入的关键词将会筛选显示的文件和文件夹。

2024-07-09

SwitchyOmega代理配置文件备份

SwitchyOmega代理配置文件备份,配置常用规则

2024-07-09

FSCapture抓屏工具-免安装版

FSCapture抓屏工具 截屏 包括了全屏截取,当前活动窗口截取,截取选定区域,多边形截取和截取滚动页面等,基本上常用的都有了。特别是滚动截取,许多朋友为了这个功能,不惜安装各种重量级的截屏软件,甚至四处下载各种软件的破解补丁。 图像浏览 / 编辑 FS Capture还包括快速(浏览/编辑图像)的功能,可以点击主窗口的“打开”图标快速打开一幅图片,进行简单的缩放、裁切、旋转、加文字等轻量级的操作。把网页中图片拖到 FS Capture 的窗口上,会快速打开图像浏览窗口。 视频录制 7.0 版本开始具备的功能,只需点击“视频录制”按钮,即可选择一个录制范围,可以选择“Window/Object”(窗口或对象)、“Rectangular Area”(矩形区域)、“Full Screen Without Taskbar”(任务栏的全屏)、“Full Screen”(全屏)等范围。选择范围后,即可点击 Record 按钮,非全屏范围,还需要选择好一个区域,然后在弹出的窗口点,击“Start”按钮,即可开始录制了,最后可以按F11键停止。

2024-07-09

chrome插件 OneTabV1.33

节省高达95%的内存,并减轻标签页混乱现象 当您发现自己有太多的标签页时,单击OneTab图标,将所有标签页转换成一个列表。当您需要再次访问这些标签页时,可以单独或全部恢复它们。

2024-07-09

C# 集合一系列扩展方法使用示例

C# 集合一系列扩展方法 Enumerable 使用示例Select、 Where、ToList、ToArray、FirstOrDefault、All、Any等等和应用场景

2024-06-17

WPF mvvm框架Stylet使用教程-窗体交互用法

WPF mvvm框架Stylet使用教程-窗体交互用法,打开窗体、关闭窗体

2023-04-16

Wpf mvvm的Stylet框架特殊用法示例

Wpf mvvm的Stylet框架特殊用法示例,事件绑定、控制按钮是否启用、跨ViewModel进行绑定事件方法

2023-04-15

Wpf mvvm的Stylet框架基础用法示例

Wpf mvvm的Stylet框架基础用法示例:使用绑定、属性绑定、命令绑定、ViewModel和View绑定、多种方式注入等

2023-04-12

WPF的MVVM模式下的命令绑定示例

WPF的MVVM模式下的命令绑定示例,包括普通的Command绑定,和CommandParameter参数传入,还有其他命令通过System.Windows.Interactivity.WPF实现绑定和参数传入

2023-02-23

WPF的MVVM模式各种基础的绑定的示例

MVVM各种基础的绑定:视图View跟ViewModel绑定,将ViewModel对象赋值给DataContext;普通属性绑定;集合绑定ItemsSource,数量不变和数量变化ObservableCollection

2023-02-22

WPF的MVVM简单使用-绑定和命令示例

MVVM是Model-View-ViewModel的简写,分为视图(View)、视图模型(ViewModel)、模型(Model)三部分。MVVM 模式就是将其中的View 的状态和行为抽象化,形成数据绑定和命令,将视图 UI 和业务逻辑分开。由ViewModel处理相关的业务逻辑,与View对应,负责获取和更新Model的数据。 绑定和命令示例工程

2023-02-21

Modbustcp通信接口文档模板

Modbustcp通信接口文档模板(文档内表格),整理modbustcp接口文档形成模板,包括基本配置、点位配置表、协议说明、错误响应说明等等

2023-02-15

net framework从4.6到4.8.1不同版本的开发者工具包和简体中文语言包

net framework从4.6到4.8.1不同版本的开发者工具包和简体中文语言包,可以按需下载。同一版本有enu和chs两个包,enu是开发包本体,chs简体中文语言包,先安装enu,再安装chs

2023-01-24

net framework4.0和4.5开发包(用于visual studio 2022 安装net旧版本)

visual studio 2022 安装net旧版本(net framework4.0和4.5),Visual Studio 2022安装程序中单个组件中没有 .net framework4.0或者.net framework4.5的问题。该资源包从通过nuget 下载 4.0 和4.5安装包,打包有效部分,只需要将里面的v4.0和v4.5文件夹放到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework路径下面,重启vs2022即可。具体流程可见:https://blog.csdn.net/qq_39427511/article/details/128071790

2023-01-10

自己搭建IOC容器(C#)

实现IOC容器一些复杂功能 (1)加入生命周期,单例和多例模式 (2)增加服务描述类 (3)实现一对多添加标志注册 (4)实现容器构建和使用分离 实现基本的注册和服务获取

2022-12-01

WPF使用外部字体文件

WPF导入使用外部字体文件,使用FontFamily加载字体,在App.xaml或者资源字典中定义,引用字体样式,设置字体为全局的默认字体

2022-11-27

空空如也

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

TA关注的人

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