背景

设计目标为与外购设备协同作业,完成传感器灌胶操作。涉及到的部分包括,一次点胶,一次旋转固化,点催化剂,点灭火剂这些步骤,上位机控制部分实现比较简单, 作为控制的中转核心,与各个控制执行器交互通信,实时监测各部分状态。

主要实现 读取控制执行器状态信号,向控制执行器下发程控电源控制配方方案。

上位机实现电源控制,与执行器之间,PC作为主站,电源控制执行器作为从站,两者之间通过modbus进行通信,物理接口为RS485。

界面

整体界面布局比较简单,主监控界面分为三部分,

第一部分为控制部分,监控开始,结束,下发控制命令及配方设置

第二部分是点胶步骤5个流程的实时监控状态

第三部分是实时日志显示

上位机部分实现了控制台命令下发,读取等原始数据监控,异常监控,支持实时日志及文本日志记录

主界面:

下发控制命令界面:

配方详情及设置界面:

整体技术方案:

由于生产部门电脑统一采购的是基于ubuntu的Linux工控电脑,采用了跨平台的技术avalonia UI实现在Linux运行,可打包成deb安装包,用到了

跨平台界面方案:avalonia ui

依赖注入框架:Microsoft.Extensions.DependencyInjection

日志:Serilog,Serilog.Sinks.Console,Serilog.Sinks.File

配置系统:Microsoft.Extensions.Configuration 、 Microsoft.Extensions.Configuration.Json

MVVM框架:CommunityToolkit.Mvvm

Modbus:System.IO.Ports,NModbus4.NetCore

总结

C# Avalonia UI 作为一款强大的跨平台 UI 框架,在技术层面展现出多方面显著优势,使其成为开发者构建跨平台应用的优质选择。​
首先,卓越的跨平台覆盖能力是其核心优势之一。Avalonia UI 能够稳定运行于 Windows、macOS、Linux 等主流桌面操作系统,同时还支持 Android、iOS 等移动平台,甚至可以通过 WebAssembly 实现 Web 端部署,真正实现了 “一次开发,多端运行” 的目标,极大地降低了跨平台应用的开发和维护成本。​
其次,在开发体验与兼容性方面表现突出。它与 WPF(Windows Presentation Foundation)有着高度相似的 API 设计和 XAML 语法,对于熟悉 WPF 的开发者而言,几乎可以无缝迁移到 Avalonia UI 的开发中,显著减少了学习成本。同时,它基于.NET 平台,完美支持 C# 等.NET 生态语言,开发者可以充分利用.NET 丰富的类库和工具链,提升开发效率。​
再者,强大的自定义与灵活性为界面设计提供了广阔空间。Avalonia UI 采用了全新的渲染引擎,不依赖于特定平台的原生控件,而是通过自绘实现 UI 元素,这使得开发者能够轻松创建具有独特风格的界面,且在不同平台上保持一致的视觉效果。此外,其完善的样式系统和主题支持,让应用的外观定制变得简单高效。​
另外,性能表现优异也是不容忽视的优势。凭借高效的渲染机制和对硬件加速的支持,Avalonia UI 能够确保应用在各种设备上都拥有流畅的运行体验,即使是复杂的界面交互也能保持良好的响应速度,满足用户对应用性能的高要求。​
最后,活跃的社区与持续的发展为其提供了坚实的支撑。开源的特性吸引了众多开发者参与贡献,社区中不断涌现出丰富的第三方组件和解决方案,帮助开发者快速解决开发过程中遇到的问题。同时,开发团队持续迭代更新,不断优化框架性能、增加新功能,确保 Avalonia UI 能够紧跟技术发展趋势,适应不断变化的跨平台开发需求。

基于.net8+avalonia ui实现的点胶机给传感器灌胶操作的上位机控制软件,使用RS485 Modbus通讯,跨平台可运行在Linux系统及windows系统的更多相关文章

  1. .NET跨平台框架选择之一 - Avalonia UI

    本文阅读目录 1. Avalonia UI简介 Avalonia UI文档教程:https://docs.avaloniaui.net/docs/getting-started 随着跨平台越来越流行, ...

  2. 《软件测试自动化之道》读书笔记 之 基于反射的UI测试

    <软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  ...

  3. 前端基于jquery的UI框架

    正在做的一个项目选择jquery作为前端js核心库.然后就想选一个基于jquery的ui库,然后悲催的事情发生了. 至于为什么使用jquery,一是因为不想为授权费用,而又不想引起可能法律纠纷:另一方 ...

  4. 基于jquery的ui选择之路

    选定: 主框架:jqueryUi tree:ztree grid:jqGrid layout:jquery.layout 原由: 还有其他demo,ajax实现等参看连接: 正在做的一个项目选择jqu ...

  5. 基于Vue的Ui框架

    基于Vue的Ui框架 饿了么公司基于vue开的的vue的Ui组件库 Element Ui 基于vue pc端的UI框架 http://element.eleme.io/ MintUi 基于vue 移动 ...

  6. 软件测试自动化之- 基于反射的UI自动化测试框架 - UI Automation Test Framework

    测试自动化程序的任务 基于反射的ui测试自动化程序,要完成的6项任务: 通过某种方式从测试套件程序中运行待测程序(AUT: Applicaton Under Test),以便于两个程序之间进行通信 操 ...

  7. element-ui iview-admin 都是基于vue的ui框架

    element-ui iview-admin 都是基于vue的ui框架

  8. 树莓派 Raspberry Pi 4,.net core 3.0 ,Avalonia UI 开发

    虽说.net core3.0已经可以用于开发wpf和winform程序,可是遗憾的时目前这core下的wpf还是只能运行在windows下,想要在linux下运行wpf估计还要等一段时间. Avalo ...

  9. .NET 跨平台框架Avalonia UI: 填坑指北(二):在Linux上跑起来了

    上一章回顾:  .NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作 本篇将要阐述 包括但不仅限于Avalonia及所有Windows到Linux跨平台开发 的一些注意事项: 一 ...

  10. 基于vue(element ui) + ssm + shiro 的权限框架

    zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...

随机推荐

  1. VsCode+DeepSeek的AI编程助手初体验

    前言 最近随着AI编程助手的兴起,我这个重度码农也想试着尝下鲜,看看他究竟有多厉害,会不会把我们都给取代了.Github Copilot大名鼎鼎,和微软全家桶重度绑定,但是使用价格不菲,并且使用它有一 ...

  2. K8s新手系列之探针

    概述 官方文档: https://kubernetes.io/zh-cn/docs/concepts/configuration/liveness-readiness-startup-probes/ ...

  3. K&R 语法 vs. ANSI C 语法

    由于项目中使用了Bison,看到有个奇怪的C语言的语法,查了一下居然是要兼容早期的C标准 Bison 是什么? Bison 是一个 语法分析器生成器(parser generator),它用于根据 上 ...

  4. DeepSeek-V3

    一.与DeepSeek-v2比较 1. 架构和参数(Architecture and Parameters) DeepSeek-V3采用 Mixture-of-Experts (MoE) 架构,共有6 ...

  5. 数栈大数据组件:Hive优化之配置参数的优化

    Hive是大数据领域常用的组件之一,主要用于大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能.影响Hive效率的主要因素有 ...

  6. 袋鼠云:基于Flink构建实时计算平台的总体架构和关键技术点

    数栈是云原生-站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变 ...

  7. 【nonebot2】QQ适配器websocket连接报错

    1. 报错详细 05-27 14:54:21 [ERROR] nonebot | QQ | Error while setup websocket to wss://api.sgroup.qq.com ...

  8. Exceptionless 5.x 无法正常发送邮件的问题解决

    你有碰到过通过docker部署Exceptionless无法发送邮件的问题吗?此解决办法适用于Exceptionless 5.x版本(如果你不想升级6.x的话). 1.问题起因 去年这个时候,得知Ex ...

  9. 你必须知道的容器日志 (2) 开源日志管理方案 ELK/EFK

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇<你必须知道的容器日志(1)>中介绍了Docker自带的log ...

  10. AB Test基础与Python实战(一):AB test介绍与原理

    目录 AB testing介绍 基本原理 大数定理 中心极限定理 假设检验 零假设与备选假设 显著性水平 拒绝域与单侧双侧检验 单侧检验与双侧检验 P-Value(P值) 样本量的确定 AB test ...