基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(一)上位机设计

news2024/11/25 4:32:44
采集仪上位机设计
本章开发了一款基于 C# 的上位机软件,用于对多类型同步信号采集仪的各项功能
进行操作。从采集仪的数据传输需求出发,上位机利用以太网 UDP 协议实现与采集仪
的数据交互,包括向采集仪发送控制信息与配置信息、接收采集仪传来的 AD 数据,然
后对数据进行解析,根据面向用户原则,开发图形用户界面 GUI ,实现性能配置、数据
可视化和本地存储的功能。
4.1 总体设计
本文开发的多类型同步信号采集仪可以根据 UDP 协议传来配置信息对 AD 芯片进
行配置,并通过 UDP 协议发送同步采集到的 AD 芯片数据,因此,用于对采集仪进行
各项功能操作的上位机软件将实现如下的功能:开发 UDP 从机与采集仪 UDP 主机建立
通信;通过 UDP 协议向采集仪发送配置信息和控制信息;通过 UDP 协议接收采集仪发
送过来的 AD 数据;开发面向用户的图形用户界面 GUI ;实现数据配置、数据可视化与
本地存储的功能。
根据上述需求分析,上位机软件模型可划分为主界面模块、数据交互模块、数据配
置模块、数据可视化模块和数据本地存储模块,利用这五个模块来实现对采集仪的各项
功能操作,功能模块结构如图 4.1 所示。
上位机的每个模块实现功能如下:
1 )主界面模块:搭建起 GUI 的整体界面,后续的子界面均在主界面中添加。
2 )数据交互模块:搭建 UDP 从机,建立起与采集仪的 UDP 通信,将数据配置
模块的配置信息通过 UDP 协议发送到采集仪,接收采集仪通过 UDP 协议发送来的 AD
数据并将其传送给数据可视化模块。
3 )数据配置模块:建立数据配置界面,用户可以对每一个通道 AD 芯片的类型
与灵敏度进行设置,类型信息发送到采集仪进行配置,灵敏度信息将用于数据可视化模
块对数据进行解析。
4 )数据可视化模块:建立数据可视化界面,根据灵敏度信息对采集仪发送来的
AD 数据处理,用户可以观察到每一个通道数据的变化曲线。
5 )数据本地存储模块:建立数据本地存储设置界面,用户可以根据监测需求对解
析后的 AD 数据进行相应的存储。
4.1.1 C#编程语言
C# 是一款由微软开发的现代通用面向对象的编程语言,凭其简洁的语法与强大的性
能得到广大程序员的青睐,在接近 C C++ 构想的同时也兼顾了 Java 的特性,并提供
了可视化工具,可以方便快捷高效地开发 GUI 界面等应用程序,因此,本文选用 C#
写采集仪的上位机,完成对采集仪的控制与配置功能。
C# 包含有如下特点:
1 )简单、安全。 C# 提供了命名空间用于管理文件,可利用 using 关键字添加命
名空间;拥有广泛的数据类型并且每个数据类型的大小是固定的;不像 C++ C 那样使
用指针,没有直接读取内存的危险操作,满足结构健康监测系统稳定监测的需求。
2 )面向对象,组件。封装、继承和多态这三个功能保证了 C# 编程语言的高速的
开发效率;大量的标准库和组件版本极大地方便了 GUI 界面的开发。
3 )支持多种类型程序。不仅可以开发 Windows 窗体 GUI 程序,同时也可以开发
Web 应用程序和手机应用程序。
4 )可在多种计算机平台编译。在 Windows Linux Mac 系统均可以使用。
5 )支持自动垃圾回收。可以节约大量系统资源。
4.1.2 文件结构
本章将上位机的所有资源、程序文件均存放在 eDAQ_Sampling_Software 工程文件
下,文件结构如图 4.2 所示。
主要程序文件的介绍如下:
1 Program.cs :上位机主程序运行入口。
2 Form_Dashboard.cs ,上位机 GUI 主界面。
3 Form_Welcome.cs UDP_Comm.cs UDP_Config.cs :数据交互模块。
4 Form_Config.cs ,数据配置模块。
5 Form_Chart.cs Channel_Parameters.cs ,数据可视化模块。
6 Form_Save.cs Form_Save_Setting.cs ,数据本地存储模块。
4.1.3 主程序入口
主程序使用了 System.Windows.Forms 命名空间,该命名空间是开发 Windows GUI
界面的基础,通过使用其包含的大量类可以方便快捷地实现丰富的用户界面功能。
Main 主函数中,首先可以利用 Application 类自带的 EnableVisualStyles
SetCompatibleTextRenderingDefault 方法完成对 GUI 界面的初始化,最后利用 Run 函数
开启 Form_Dashboar 类,即 GUI 的主界面。
4.2 主界面模块设计
通过创建 Form_Dashboard 类搭建起上位机的主界面,该类继承自 Form 类,主界面
如图 4.3 所示,包含左侧菜单栏与右侧功能栏两个部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文详解手眼标定公式推导

文章目录 一、坐标系运算规则1、坐标系运算规则一(点)2、坐标系运算规则二(坐标系)3、齐次变换二、手眼标定公式推导1、眼在手外2、眼在手上3、解方程AX = XB后记假设手眼标定坐标系表示如下: 机械臂基底坐标系 – base机械臂末端坐标系 – end相机坐标系 – camera标定板坐…

最新PHP号卡商城V1.31 号卡推广管理系统源码/手机卡流量卡推广网站源码

源码简介: 最近看卡号推广比较火,但是苦于不能综合起来供客户选择,于是找了一套源码分享给大家。最新PHP号卡商城V1.31 号卡推广管理系统源码,它为手机卡流量卡推广网站源码。 更新日志: v1.31 1.修复自助开通分站时,低版本数据…

如何在用pip配置文件设置HTTP爬虫IP

首先,定义问题:在 Pip 中设置HTTP爬虫IP服务器,以便在网络上进行访问和下载。 亲身经验:我曾经遇到过类似问题,通过设置HTTP爬虫IP服务器成功解决了网络访问问题。 数据和引证:根据 pip 官方文档&#xff…

界面控件DevExtreme v23.1 - UI组件 UI模板库增强

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

分享8款人声分离的软件,总有一款你喜欢的

随着音乐制作技术的不断发展,人声分离软件成为了音乐制作过程中不可或缺的工具之一。人声分离软件可以帮助音乐制作者将多个人声部分分离出来,以便单独进行编辑和处理。 以下是一些人声分离软件的信息介绍: 1、音分轨人声分离软件&#xff1…

【AICFD案例操作】汽车外气动分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件,用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程,帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

UWB常规TOF、TDOA、AOA算法

UWB定位的最基础技术是TOF测距、TDOA到达时间差、AOA到达角度测量: 定位算法:TOF、TDOA、AOA/PDOA UWB定位算法 (1) TOF(Time of Flight飞行时间): 以基站为圆心,以标签和基站距离为半径画圆…

Camtasia2023屏幕录制和视频剪辑标杆软件,制作微课/游戏视频必备工具

Camtasia可不是一款简单的屏幕录制软件,这可是集合了屏幕录制和视频剪辑于一体的全能软件。 大多数用户都是使用Windows自带的录频方式进行屏幕录制,使用这种方法录制屏幕很“鸡肋”,比如说:无法区域录制、无法更改鼠标样式、无法…

专业的图片校正修复软件DxO ViewPoint简体中文安装

DxO ViewPoint是一款专业的图像校正软件,旨在帮助摄影师和图像设计师解决各种图像处理难题,并创造出理想的画面效果。该软件结合了最新的图像处理技术和精确的镜头校正方法,可以修复图像中的透视、畸变、色差、暗角等问题,同时对图…

矢量图形编辑软件Illustrator 2023 mac中文版软件特点(ai2023) v27.9

illustrator 2023 mac是一款矢量图形编辑软件,用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator 2023 mac软件特点 矢量图形:illustrator创建的图形是矢量图形,可以无限放大而不失真,这与像素图形编辑软…

易基因: WGBS等从DNA甲基化揭示杀鲑气单胞菌灭活疫苗对大菱鲆的免疫力:抗性育种

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 DNA甲基化是表观遗传学中最重要的修饰之一,在免疫应答中发挥着重要作用。自引进大菱鲆(Scophthalmus maximus,商品名:多宝鱼)以…

面试必考精华版Leetcode1926. 迷宫中离入口最近的出口

题目&#xff1a; 代码&#xff08;2023年10月26日 首刷看解析&#xff09;&#xff1a; class Solution { public:int nearestExit(vector<vector<char>>& maze, vector<int>& entrance) {int m maze.size();int n maze[0].size();vector<int…

男怕入错行!程序员千万别选错赛道

不知道有没有小伙伴和我一样&#xff0c;上大学报软件工程是奔着开发游戏去的 进去之后发现和自己想的完全不一样 不仅学的东西和游戏开发没啥关系&#xff0c;关系是导师基本是摸鱼的 而且全要靠自学&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 本人当年…

AGI超级互联启动会落幕,UCC启动城市节点,促算力普及千家万户

10月24日&#xff0c;由中关村超互联新基建产业创新联盟、中国智能计算产业联盟主办&#xff0c;互联科技、鼎好DH3联合承办的“AGI超级互联启动会&#xff08;AGI Ultra Cross Connects Kick-off Convention&#xff09;”在北京鼎好DH3圆满举行。 本次活动汇聚众多行业专家、…

遍历树形结构记录

例如: 这是递归对树形结构的遍历 findMatchingValue(json1,json2){ if(json1.defaultLabel&&json2.some(item>item.titlejson1.defaultLabel)){ //将匹配的值保存起来 this.matchedValue.push(json1.defaultLabel) } if(json1.childrens&&json1.childrens.…

【C++项目】高并发内存池第四讲 申请内存过程介绍流程介绍

申请内存过程介绍 1.主函数执行2.ThreadCache3.CentralCache4.PageCache 1.主函数执行 先从内存池申请内存 获取ThreadCache对象&#xff0c;然后去ThreadCache对象的Allocate申请&#xff01; 2.ThreadCache 这里要计算对齐函数和相应的桶的下标&#xff0c;这个之前介绍T…

JavaScript事件处理:探索DOM事件和事件监听器

目录 DOM事件简介 什么是事件&#xff1f; 事件处理程序 在HTML中添加事件处理程序 事件类型 事件对象 事件监听器 事件冒泡与事件捕获 常见的事件类型和用法 总结 在Web开发中&#xff0c;JavaScript事件处理是一个重要的概念。通过事件处理&#xff0c;我们可以对用…

【linux】倒计时小程序

倒计时小程序 第一步&#xff08;创建一个目录&#xff09;mkdir processbar&#xff1a; 进入目录cd processbar&#xff1a; 第二步&#xff08;创建一个.h文件【声明】&#xff0c;两个.c文件【实现】和【函数调用】的文件&#xff09;touch processBar.h touch processB…

谷歌计划从Chrome119起测试IP隐私保护功能

目前&#xff0c;谷歌正为Chrome浏览器测试一项新的“IP保护”功能。因为该公司认为用户IP地址一旦被黑客滥用或秘密跟踪&#xff0c;都可能导致用户隐私信息泄露。 而这项功能可通过代理服务器屏蔽用户的IP地址&#xff0c;以增强用户的隐私性&#xff0c;这样就可以尽量在确…

centos7安装mysql8.0

mysql官网地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 1.上传到 /usr/local 路径下 2.解压 tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz3.重命名 mv mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz mysql 4.创建mysql用户组和用…