在实际应用开发中,可能UI框架的默认控件,已经不能满足实际的应用需求,或者某些功能被大量的重复应用,如果每一个使用的地方都书写大量的重复代码,则不仅会浪费精力,且让维护变得复杂,此时就需要将包含特定功能的部分封装成控件,便于重复使用。自定义控件就像造轮子,轮子造好以后,别的地方可以一键复用。今天我们... ...
前言 以割草机器人为例:一台割草机器人正在庭院里辛勤工作,突然天降大雨,水雾弥漫。下一秒,它便像“无头苍蝇”一样开始乱撞——这正是今天许多机器人面临的真实困境。 这样的困境如何破解?单芯片8发8收(8T8R)毫米波雷达,一举突破了传统3发4收芯片点云稀疏、难以支撑精细建图与避障的行业瓶颈,让机器人在 ...
BenchmarkDotNet:.NET 性能基准测试入门 前言 一、快速上手:创建项目并安装包 二、集成与测试 1. 全新项目独立测试 2. BenchmarkSwitcher方式 基础最简代码(Program.cs) 交互模式(不传任何参数) 命令行筛选模式 常用配套参数(和 filter 一起 ...
前言 我创业的行业属于毫米波雷达行业,属于汽车,电子通信行业。我们所处的行业角色是Tier-1. Tier-1 是什么?还有哪些 Tier 等级? Tier-1(一级供应商、第一层级) 是一种常见的企业分级或供应链层级概念,主要用于汽车、电子、半导体、通信、雷达、航空航天等行业。 不过需要先明确一点 ...
前言 最近排查了一个让人抓耳挠腮的性能问题:同一个系统,内网 IP 直连飞快,外网域名访问却要 12 秒以上;更诡异的是,前端页面和 API 用不同端口就快,同端口同 origin 就慢。 排查过程从网络链路、TLS 握手、证书吊销一路摸到 ASP.NET 的 Session 会话锁,最终在浏览器 ...
前言 毫米波雷达最近在家电圈里不断地被实际应用,挂起了一阵“雷达风”,曾几何时,这项在黑科技榜单中与自动驾驶、智能汽车深度绑定的毫米波雷达技术,如今正在悄然敲开空调、燃气灶、风扇等传统家电的“大门”。 1. 智能空调:从“被动调温”到“主动懂你” 如果你还觉得空调只是个调节温度的机器,那你可能已经落 ...
前言 FMCW 雷达和 UWB 都可以用于测距与定位,但两者的设计目标和优势不太一样。 先说结论: FMCW 雷达更适合目标探测、距离与速度测量,以及配合天线阵列进行角度估计; UWB 更适合通过多个锚点实现高精度、低延迟的标签定位与实时位置跟踪。 两者都可能使用 TOF、TDOA、PDOA,但并不 ...
前言 从事雷达测试方面的开发后,跟不同客户交流中学习了一些新知识,了解了一些无线定位方面的技术,并通过多方面渠道的获取以下是一些介绍。 TOF、TDOA、PDOA 都是无线定位中常见的定位技术,主要区别在于: TOF 测量信号传播时间, TDOA 测量不同接收点的到达时间差, PDOA 测量不同天线 ...
这是一个真实的坑:dotnet test 匹配到 0 个测试,却以退出码 0、全绿收场。 一、引子:我以为跑了 12 个测试,结果跑了 0 个 某天我在测试项目里加了一个新用例文件,然后跑: dotnet test --filter "FullyQualifiedName~NativeDriverI ...
LTEF 工艺试验测控场景,涉及多种工艺设备、阀门、温控仪表、传感采集单元,设备品牌杂、通信协议异构,涉及到23类 设备或仪表,需要完成实时数据采集、工艺流程自动控制、工况监测预警、过程数据存储回溯、可视化组态展示完整测控闭环。实现50毫秒的数据采集、100毫秒反向控制。反向控制包括单点控制和工艺过... ...
本文为MQTT系列开篇,结合8年实战经验,剖析物联网接入层为何普遍选择MQTT:低功耗、发布订阅模型、QoS保障及断线恢复能力。揭示项目中高频踩坑:QoS误配、CleanSession配置错误、ClientId冲突、心跳失效等真实问题。提出从协议基础到生产落地的六阶段学习路线,聚焦.NET生态与工程... ...
一、问题背景 在 WPF 开发中,我们经常用 `window.ShowDialog()` 显示模态弹框。某天产品提了一个需求:**后台命令触发时,可能同时弹出多个对话框**。 直觉上,连续调用两次 `ShowDialog` 就行: window1.ShowDialog(); // 弹第一个 wind ...
众所周知 Satori GC 是 .NET 上兼具高吞吐、低延时和低占用的 GC。为了更方便地在项目里使用 Satori GC,我把 Satori GC 封装成了 MSBuild SDK 并传到了 nuget 上,这样就能通过仅仅一行代码在发布时启用 Satori GC 了。 https://www ...
在实际应用开发中,可能UI框架的默认控件,已经不能满足实际的应用需求,或者某些功能被大量的重复应用,如果每一个使用的地方都书写大量的重复代码,则不仅会浪费精力,且让维护变得复杂,此时就需要将包含特定功能的部分封装成控件,便于重复使用。自定义控件就像造轮子,轮子造好以后,别的地方可以一键复用。今天我们... ...
人天生有一种能力——信息过滤。只要不是废物都具备这种能力,不需要算法和数据。生物许多行为是本能反应,深深刻进潜意识里。这就是人与机器的本质区别。机器在某些方面一旦没有相关的程序和算法支持,它就是废铁。 日志消息是给人看的,所以,过滤功能必不可少。即应用程序可以根据配置记录或不记录某些日志。 日志级别 ...
一、 前言 本文讲解在C#.NET源生成器中生成类的字段、属性、方法及参数和变量标识符的命名处理方式 二、 C# 命名规则 1. CamelCase(小驼峰) 首字母小写,后续单词首字母大写 参数和变量适用 私有字段使用下划线 + 小驼峰 2. PascalCase (帕斯卡、大驼峰) 首字母大 ...
本文介绍如何用 wherewhere 大佬开源的 DotNetHost.Win32Metadata 库,在 C# 里直接调用 hostfxr 的原生 hosting API,让 .NET Framework 4.8.1 宿主和 Native AOT 宿主都能加载并运行 .NET 10 的托管组件 ...
Logging 属于 .NET 官方扩展库的一部分,因此,它不算第三方库。应某大伙伴要求,老周出一系列介绍 Logging 的水文。老周向来乐于分享技术,啥主题不重要,只要老周会的东西就行;不会的东西,老周就不误人子弟。 Logging 库嘛,当然是用来记录日志的。从功能上而言,它不会太复杂。为了照 ...
本文介绍我维护的实验性 WPF 运行时发行项目 WpfRuntime,它把一套 WPF 的参考程序集、实现程序集以及必要的运行时文件打包成 NuGet 包,让 .NET 8 及以上的 WPF 应用可以提前体验尚未发布的 WPF 新功能。有伙伴有空来帮我试验一下没 ...
一:背景 1. 讲故事 好久都没写文章了,看现在各个社区大多都是AI写的文章,劣币驱除良币,文字这块算是沦陷了,没多少 passion to continue,但遇到一些经典的还是会人肉堆一堆,这篇我们就来分析一个内存暴涨的例子,这是一个朋友在微信上找到我的,有一个linux上的.NET程序,内存在 ...