基于Blazor实现的光伏设备调试软件

基于Blazor实现的光伏设备调试软件
技术架构2.1 整体栈层级技术运行时.NET 10 (net10.0)前端框架Blazor WebAssemblyUI 组件纯 CSS 自定义组件无第三方 UI 库设备通信Web Bluetooth (navigator.bluetooth)应用协议Modbus RTU存储localStorage主题偏好、语言偏好打包PWA Service Worker2.2 项目结构Pages/Index.razor —— 产品选择首页NCU / TCU1 / TCU2NCU.razor —— NCU 单页应用TCU1.razor —— 单轴 TCU 单页应用TCU2.razor —— 双轴 TCU 单页应用NotFound.razor —— 404Components/BaseComponent.cs —— 公共基类注入 LocalizationService、自动订阅语言切换事件T1Home.razor —— 通用首页组件蓝牙连接 Modbus 地址配置T1Operation.razor —— 通用操作页实时参数、状态、控制命令T1Settings.razor —— 通用设置页运行参数配置T1SubControl.razor —— 分控设备管理Profile.razor —— 个人设置语言、主题、关于Services/WebBluetoothService.cs —— Web Bluetooth 封装扫描、连接、收发ModbusService.cs —— Modbus RTU 帧构建与 CRC16 计算DeviceConnectionService —— 连接管理蓝牙 设备验证DeviceProtocolService —— 协议封装参数读取、控制命令DeviceStateService —— 全局设备状态连接状态、地址、连接类型ProductContextService —— 产品上下文当前选中产品ThemeService —— 双色主题持久化LocalizationService —— 多语言中文 / English / PortuguêsSocketConnector —— TCP Socket浏览器环境禁用标记2.3 单页应用架构每种产品NCU / 单轴 TCU / 双轴 TCU视为独立的单页应用通过DynamicComponent动态切换子页面组件。底部导航栏包含首页、操作、设置、分控、我的五个 Tab全部在同一产品页面内通过组件切换无需页面级路由跳转。产品上下文通过ProductContextService维护进入任意产品页时设置当前产品顶部 Header 显示产品名称点击可返回产品选择页。三、设备连接与通信3.1 Web Bluetooth 连接设备侧使用 BLEBluetooth Low EnergyService UUID 为0000fff0-0000-1000-8000-00805f9b34fb。软件采用浏览器原生的navigator.bluetooth.requestDevice()调起系统蓝牙设备选择器用户选择名称以SZRT开头的设备即可完成配对。连接链路浏览器 → navigator.bluetooth.requestDevice() → 系统蓝牙选择器 → GATT 连接→ 发现 FFF0 服务 → 自动匹配可写特征值与可通知特征值 → 通信就绪前端 JavaScript 桥接层wwwroot/js/bluetooth.js负责调用 Web Bluetooth API自动查找服务下的 write / notify / read 特征值实现基于通知Notification的超时接收逻辑模拟串口请求-响应模式3.2 Modbus RTU 协议应用层采用标准的 Modbus RTU命令帧格式为[设备地址] [功能码] [数据域] [CRC16 低字节] [CRC16 高字节]读取寄存器功能码0x03读取设备运行参数角度、电流、电压等写入寄存器功能码0x06写入运行模式自动/手动/停止、设置参数值软件内置 CRC16-Modbus 校验算法自动为每条指令追加校验字节。