自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (6)
  • 收藏
  • 关注

原创 C#,JavaScript实现浮点数格式化自动保留合适的小数位数

C#, JavaScirpt 中,根据浮点数数值大小决定格式化字符串时保留小数点后几位,例如12345.62 得到"12345",0.0022124 得到"0.00221"

2024-05-30 17:12:12 265

原创 C#中用 protobuf Struct 实现弱类型的json 序列化/反序列化

用protobuf Struct来实现 C#弱类型与json的互操作,动态属性保存在一个json字符串中,巧妙设计 web api接口。

2024-05-30 09:43:58 729

原创 以Windows服务运行无法访问Sql Server 0x80004005

以Windows服务运行无法访问Sql Server 0x80004005,需在sql server中给SYSTEM账户增加 sysadmin服务器角色

2024-05-17 11:29:55 343 1

原创 C# 不用lock写一个多线程程序

bool 不需要锁,int/DateTime 用Interlocked,多用ConcurrentDictionary,ConcurrentQueue

2024-05-11 14:38:55 418 1

原创 List/ConcurrentBag Contains的效率比Dictionary/ConcurrentDictionary ContainsKey 低几千倍

50000个字符串集合包含判断,Dictionary/ConcurrentDictionary 只需1-2毫秒,List 需要3秒,ConcurrentBag需要 23秒!

2024-05-11 11:53:17 232

原创 C# 获取类型 Type.GetType()

有时候需要使用Type来进行反射、序列化、筛选等,获取Type有Type.GetType, typeof(),object.GetType() 等方法,本文重点介绍Type.GetType()。

2024-02-29 17:01:14 1629

原创 Blazor 向 ECharts 传递 option

将ECharts封装为Blazor组件,然后通过jsRuntime向ECharts传递参数,即设置option。

2024-02-29 08:51:46 593

翻译 OPC UA 会话,订阅和超时

关于OPC UA通讯中几个参数的解释,包括PublishingInterval, SamplingInterval, KeepAliveCount, LifeTimeCount等

2023-07-21 11:50:44 2313

原创 OPC UA客户端访问 OPC DA服务器

用OPC UA客户端(如UaExpert)通过OPC基金会 UA COM Server Wrapper 读取OPC DA服务器上的点。

2023-05-29 15:18:37 2102

原创 C#调用iLog Cplex 输出不收敛的约束

用C#调用 iLog Cplex 的API 求解规划问题如果模型不收敛(infeasible),可以使用本文中代码打印不收敛的约束,便于查找问题。

2023-05-20 10:21:45 437

原创 .net7 通过 JsonTranscoding 实现 gRPC 与 Web API 一鱼两吃

.net7 不仅使 gRPC性能提高了8倍,还可以通过 JsonTranscoding 实现一个项目即提供 gRPC 又提供 Web API接口

2023-05-05 17:47:31 740

原创 Dotnetty TcpClient 自动重连服务器

Dotnetty实现一个断开能够自动重连的Tcp Client,关键是解决I/O 错误问题,该问题是因为IByteBuffer被释放引起的。

2023-02-26 14:19:11 806

原创 C#实现一个可撤销出队的队列

现有的Queue Dequeue后不能在队列头部插入一条,即不能撤销出队操作,我实现了一个可撤销的队列,根据传进来的处理函数是否返回false决定是否撤销出队。

2023-02-02 17:32:49 185

原创 如何从外部灵活的给C#脚本传递参数

编辑一段C#脚本,使用Microsoft.CodeAnalysis.Scripting 解析脚本,脚本中可能出现外部变量,找到一种通行的办法传递外部参数。

2023-01-31 18:58:03 527

原创 C# 用一个文件实现对象的二进制序列化和缓存

开辟一个文件,同时支持读和写,设置大小上限,当文件达到上限时从头覆盖写入,如此往复,用作数据的持久化缓存。

2023-01-29 10:07:34 408

原创 .Net6 Blazor 制作购物车应用

大家推荐我翻译制作的油管视频教程系列合集:Net6+Blazor Web assembly+EFCore+Web Api 购物车应用实战——油管视频翻译配音解读

2022-10-18 17:38:59 305

原创 ubuntu下找不到 libmodbus.so 错误的解决办法

libmodbus.so.5 file not found 的解决办法

2022-09-13 17:07:16 893 1

原创 AI视觉应用的4G远程测试

通过移动网络远程访问摄像头,就可以把机器视觉应用的前后端分开调试,不需要蹲现场了

2022-09-12 17:04:19 237

原创 Jetson Nano 系列之:保存整张图片

在Jetson Nano deepstream C代码中,保存完整图片,包括设置图片的宽高、文件路径和文件名,以及避免obj_meta为NULL。

2022-08-26 15:37:56 865 5

原创 Jetson Nano 系列之:C通过内存映射操作GPIO

Jetson Nano GPIO的内存映射地址和设备地址,以及用C语言通过内存映射操作GPIO的步骤。

2022-08-18 14:07:45 872

原创 Jetson Nano 系列之:25FPS性能优化之路

将训练好的模型放到jetson nano上抛出25FPS实时检测需要C+Deepstream,并在必要时减小输入视频的尺寸

2022-08-13 13:15:43 2041 2

原创 Jetson Nano 系列之:刷机、瘦身、部署应用

在jetson nano b01的16G emmc里部署deepstream和跑模型,经过刷机->安装SDK->瘦身->装deepstream->部署应用 5步,省去TF卡。

2022-08-13 12:50:51 2370 6

原创 如何快速为YOLO准备标注好的图像样本库

用视频自动生成YOLOv5标注格式的样本库

2022-06-09 09:21:28 1021

原创 写一个强化学习训练的gym环境

需求 要用强化学习(Reinforcement Learning)算法解决问题,需要百千万次的训练,真实环境一般不允许这么多次训练(时间太长、试错代价太大),需要开发仿真环境。OpenAI的gym环境是目前的标准,遵守其API写一个自定义的环境可以被各种强化学习算法无码调用。gym API要求 分析gym的代码和文档,可以看出,一个环境至少应该包含动作空间(action space)、状态空间(observation space)定义,以及reset()、step()、rende...

2022-05-09 14:07:09 3383 2

原创 alibabaprotect 是危险的有害的顽固的病毒般的存在

昨天电脑蓝屏,SSD系统盘C在,机械硬盘D和E不见了,重启后还是没有,关机一会再开好了,吓得我一激灵,数据都在机械盘里。开机后打开任务管理器,半天没反应,风扇呜呜转,ctrl+alt+del发现alibabaprotect进程占cpu靠前,以前用过阿里旺旺,已经卸载了,电脑里没有阿里的软件了啊?!然后alibabaprotect既不能杀掉,也不能停止服务,也不允许卸载,通过一个伪装成驱动的alipaladin64,赖着不走了。用了彻底删除AlibabaProtect 和 AliPal...

2022-04-02 09:57:17 2832

原创 C# 调用 Matlab 函数

类型对应关系 Matlab中一切皆矩阵,只不过维度不同,标量维度1,1 向量维度n,1 矩阵维度 m,nC# Matlab MWArray.Dimensions[0] MWArray.Dimensions[1] int / double MWNumericArray 1 1 int[n] / double[n] MWNumericArray n 1 int[m,n]/double[m,n] MWNumeric...

2022-03-07 11:22:23 2516

原创 用 Ant Blazor 实现 PropertyGrid

目标 做一个类似 vs2019 属性的 PropertyGrid,支持对各种属性的编辑,省去为各种类型制作编辑表单的工作。 PropertyGrid的主要特性:支持bool, int, double, string, object, 集合 属性的编辑; int double 类型可设定最大值、最小值、默认值,可以给定单位; string 类型可指定编辑器为颜色; string类型可从下来列表框中选择; object, 集合 按照父子行显示,父行只读; 可以设定属性不可编辑...

2021-12-29 10:58:48 973

原创 C# 静态扩展类不具有多态性质

假设类型 ClassA 有子类 ClassB,用静态类分别给ClassA 和 ClassB 加上同名的扩展方法,然后创建对象 ClassA obj = new ClassB(),实例调用 obj 扩展方法时,只会调用其声明类型(ClassA)对应的扩展方法,而不会像普通子类 override 父类 virtual/abstract 方法那样去调用子类的同名扩展方法,即不具有多态性质。 代码验证:namespace TestExtensions{ internal clas...

2021-12-28 14:52:49 173

原创 blazor webassembly 导出csv文件

目标将blazor webassembly中的数据打包成字符串,导出csv文件,浏览器自动下载csv文件(其他文件格式思路类似)。通过Server web api方式行不通在server上创建controller, 返回 IActionResult 或者 FileResult public async Task<IActionResult> Download(string id) { Stream stream = await {{__get_stream

2021-10-28 12:08:58 645

原创 理化计算程序必备:CoolProp+UnitsNet

物理化学计算 这类计算往往涉及到单位及单位换算,并且要用到物性参数。 例如:0℃=273.15K 质量流量 kg/h = 体积流量 m3/h * 密度 kg/m3 密度就是物性参数,随压力、温度变化。常规做法 只有Frink 、F#、Modelica 少数语言变量是自带单位的,大部分语言变量仅包含数值,单位转换需要在变量进行公式计算之前(预处理)完成,计算后再把结果单位转换为输出单位,单位转换主要通过若干常数实现。...

2021-10-09 09:29:27 1116

原创 将 blazor webassembly 部署到 iis 10 上

第一步 发布blazor wasm在工程上右键选择 发布,发布到文件夹,默认到 bin/debug/release/publish 下,然后点 【发布】按钮,发布成功后,在 publish 文件夹内能看到 wwwroot和 web.config。第二步 将发布的文件夹拷贝到服务器上,编辑绑定要求服务器上安装相应的.net 运行时,我的是.net core 3.1第三步 解决跨域问题blazor wasm 需要通过 HttpClient 跟其他 web server 进行 GET POS.

2021-09-07 15:34:24 2736 2

原创 子类型JSON序列化 mscorlib vs System.Private.CoreLib

问题 如果你需要支持子类反序列化,那么需要用到Newtonsoft.json,并设置 JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }此时,所生成的 json 字符串在 .net framework(或mono) 与 .net core 之间不能通用。反...

2021-08-23 16:44:37 941

原创 asp.net mvc 到 asp.net core3.1 mvc 迁移

目标把以前的asp.net web api网站迁移到asp.net core3.1,过程很不平滑,磕磕绊绊。HttpContent.Current 找不到了core里面需要先在 Startup.cs 的 ConfigureServices 方法里加一句services.AddHttpContextAccessor(),再通过HttpContextAccessor.HttpContext 获得这个HttpContent.Current,参考这篇文章。调用不了 gRPC http 服务g..

2021-08-06 14:38:06 472

原创 Dotnetty ClosedChannelException I/O error occurred 异常原因

症状 折磨了我一整天,在单独的console application下好好的,集成到一块就在 bootstrap.BindAsync()处抛出ClosedChannelException “I/O error occurred" 异常,也没有其他有价值的信息了。集成环境与console app的区别有3处:集成环境是在asp.net core3.1中; 集成环境是通过反射加载的; 集成环境中,还有一个地方用到了Dotnetty。分析是不是 asp.net core 不支持udp ...

2021-07-30 13:56:11 966

原创 .net gRPC Client 集中配置、反射加载

目标 在调用 gRPC 服务时,避免重复写FromAddress(url)代码,而是通过配置文件反射加载 gRPC 服务。硬编码写法 假设我们在 proto 文件中定义了叫ServiceRPC 的 service,.net gRPC 会自动创建一个 ServiceRPCClient 类型,该类的构造函数中需要一个 channel,如下代码所示。using Grpc.Net.Client;namespace XXX{ public class Program ...

2021-07-22 10:55:30 985

原创 decimal 在数采中的用途

浮点数精度损失问题无论是 float 还是 double,都是不能精确进行二进制编码的,CPU计算时会产生浮点数偏移。例子1 0.7/0.025 =27.999999999999996在计算机中, double 0.7和0.025 实际分别为:0.69999999999999995559107901499373838305473327636718750.025000000000000001387778780781445675529539585113525390625因此,他们相除..

2021-07-19 10:45:10 97

原创 NB-IOT UDP透传测试

目标具备NB-IOT的仪表通过UDP将数据上传到非电信、华为、移动等云平台的公网服务器,服务器收到报文与仪表发送报文一致,即透传。电信NB-IOT 乱码电信最早搞NB-IOT,可惜走上了邪路,非要经过电信AEP云平台,或者华为的OC云平台,对NB-IOT 与 公网服务器 这种直接透传做了限制。本测试中,仪表发送报文为:C04134018012972304020000000000000062001300030000000099AAD25543AA00000000000000000000B404

2021-07-13 10:31:10 886 1

原创 Blazor Webassembly、Blazor 组件库 之初体验

目标 用 C# 代替 javascript 做前端开发。Hello World项目 选了 Blazor.Diagrams作为上手程序,这是一个小巧但例子很丰富的流程图绘制库,内核设计比较清晰,扩展性强。Blazor 组件库(Component Library) 前端开发的趋势是组件化,可以创建 .net standard 类库(对应vs2019模板类型:Razor类库),把Blazor组件包装起来,然后在Blazor Server或者Blazor Webasse...

2021-05-20 17:10:55 1271 2

原创 .net gRPC CRUD 实战

目标 通过.net gRPC实现对数据库的增删改查。解决方案结构Protos 文件夹 存放 proto 文件,分为两组,一组定义message,一组定义rpc; Models .net standard 2.1 项目,导入message.proto,并通过 public partial class 扩展实体; Contract.net standard 2.1 项目,导入rpc.proto,引用Models项目,提供服务端和客户端调用; Service gRPC asp.n...

2021-04-15 16:17:50 348

原创 .net gRPC 初步上手

1. gRPC gRPC是谷歌推出的语言无关、平台无关的高性能RPC库,现已成为微服务集成的主要通讯手段,微软从.net core3.0开始将gRPC作为首选,系统学习可以看微软的文档。关于proto3的语法,这篇写的不错。2. 编辑proto文件 注意:proto文件应保存到解决方案中(例如Protos文件夹),而不是某项目下面,否则编译时生成的cs文件位置不对。 根据proto3的语法,把原来的业务实体定义为message,远程接口定义为service。 用...

2021-04-12 13:56:52 483

Mqtt.Client.rar

C# dotnetty mqtt client,支持自动重连和自动重传。

2021-03-12

Sparkplug规范2.2翻译.pdf

对Eclipse基金会Sparkplug 规范V2.2 的翻译,英文原文: https://www.eclipse.org/tahu/spec/Sparkplug%20Topic%20Namespace%20and%20State%20ManagementV2.2-with%20appendix%20B%20format%20-%20Eclipse.pdf

2021-03-02

h5无插件 RTSP 摄像头在线播放代码2

参考博客https://blog.csdn.net/xhydongda/article/details/81208192#commentsedit

2018-11-03

h5无插件 RTSP 摄像头在线播放代码

详见博客“h5无插件 RTSP 摄像头在线播放(用海康摄像头测试)”

2018-07-25

Unfold 作者 Francois Vanderseypen 公司 Orbifold 时间:2007

开源项目Netron 作者 Francois Vanderseypen 在2007年随Netron V3一同发布的WPF版本Diagram,满世界难找了。

2014-08-22

Bryntum scheduler-2.2.10.js 代码

去掉了 Bryntum scheduler-2.2.10 trial 中的时间限制,恢复了代码,仅供学习使用。

2013-11-05

空空如也

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

TA关注的人

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