傅里叶变换红外光谱仪软件系统

基本信息

案例ID:229980

技术顾问:桔子23 - 14年经验 - 上海嘉柏利通

联系沟通

微信扫码,建群沟通

项目名称:傅里叶变换红外光谱仪软件系统

所属行业:人工智能 - 智能硬件

->查看更多案例

案例介绍

2023.08 - 2024.01 傅里叶变换红外光谱仪软件系统
责任描述: 进行项目的开发环境及技术框架的搭建;
对技术文档编写;
对组人员工作调配;
配合业务人员进行需求及可行性分析;
进行软件调优;
项目描述: 该项目为面向仪器仪表检测的功能系统,整体包含PC上位机与嵌入式下位机两部分,我主要负责上位机开发,整体技术采用QT/C++架构设计,采用USB通讯连接,进行双工交互。
主要包含以下功能:
1. 上下位机握手,下位机初始化
2. 对物体进行红外光谱检测,收集实验参数,原始数据采集采用傅里叶变换进行过滤。
3. 进行红外光谱分析,包含高斯滤波、均值滤波、中值滤波、多项式滤波、等高图、峰谷值检测等方式。
4. 对采集数据进行图形化展示,需要进行2D、3D方式的呈现。
5. 审计追踪功能,需要对软件操作的过程进行权限控制,并记录到数据库。
技术特点: 该项目交互逻辑复杂,尤其是图表的呈现具有难度。
一、在技术选型方面,考虑过QtCharts和ECharts两种方案:
1.QtCharts由C++原生开发,性能较好,但相关功能比较原始,需要自实现的内容较多;
2.ECharts由js语言开发,功能强大,类库极为丰富,但由于跨语言、且需要WebEngine作为容器辅助,实现比较复杂。
两者权衡下,最后采用ECharts的方式,为了解决3D数据的性能问题,我对其进行了压缩,在保证性能的同时,也兼顾分辨率,最后得到了很好的效果。
二、采用响应式技术,优化Qt界面的构建
传统方式的Qt,组件内各内容的呈现,需要手动用代码去绑定,数据内容修改后,需要多点维护,非常的麻烦,造成bug的几率也特别高,为了解决这个问题,我采用了发布订阅软件设计模式,重写了部分Qt UI,大大提高了开发效率。
三、采用RxCpp技术,解决上下位机通讯问题
由于本项目嵌入式数据的采集都是耗时操作,通讯并非及时返回,采用传统阻塞方式,非常容易造成程序陷入等待假死,用户体验不好。因此引入RxCpp技术,将原有的阻塞通讯改造成非阻塞通讯,大大提高了软件交互体验及运行性能。

相似案例推荐

其他人才的相似案例推荐

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服