MATLAB APP 设计实践(一)UART通信(上篇)

news2024/12/24 22:17:22

引言

UART通信属于异步串行通信,通信速率比较低,在一些速度要求不高的场合常用来作为多设备之间的控制与被控制方式。例如以UART串口通信作为上位机侧与运行设备之间的通信形式,实现上位机对设备的操控以及检测设备运行状态等。

那么谈到了上位机了,其实可以实现上位机设计的平台有很多,有MFC的上位机、有QT的上位机,当然也有MATLAB的上位机。在我的接触中,大家似乎使用前两者多一些,对于MATLAB设计上位机好像没那么多使用。之前的MATLAB设计上位机用的是GUIDE,但是官方考虑到后续版本更新的问题,拟将删去GUIDE上位机开发环境,取而代之的是 APP Designer 。下面是官方文档给出的提示:

早前有段时间就想好好了解一下这个 APP Designer 的使用,但是时间不充裕不太允许,现在放假了有大把的时间可以来搞明白这个使用的方法。

本文就UART发送图像数据为例,利用MATLAB 的APP Designer 设计一个简单的应用APP。主要是记录一下设计的过程,供后人借鉴。

上篇先介绍MATLAB App Designer 的基本使用。下篇将介绍应用的功能开发。


设计前要知道的几点

如何进入设计环境?

方法1:

MATLAB命令窗口输入下面命令然后 按 Enter 键即可进入设计环境。

appdesigner

方法2:

在MATLAB软件主界面进行如下操作:

如何开始?

进入设计环境后,在如下界面,可以根据提示做出如下操作,如果是设计APP就选择上面一栏相关内容,如果是设计APP的组件就选择下面一栏的相关内容。

菜单栏介绍

设计工具栏

如下图所示的就是设计工具栏对应的可用功能:

其中 新建 、打开 、保存 、就不说了,这个应该都明白。

比较

比较:将两个APP之间的信息功能等,进行比较,一般在APP版本迭代显示前后版本功能差别时使用。

可选择APP代码比较或二进制执行文件比较,选择好待比较的两个APP文件后,点击 比较即可。

App 代码比较

此处我选择待比较的两个是完全相同的APP文件,所以比较的结果显示,二者相同:

点击确定后,会显示比较的代码细节:

二进制文件比较

如果选择二进制文件比较,比较的结果如下。如果二进制文件有差异,则会用下图所示左下角的颜色标识出有差异的地方。

App 详细信息

点击 App 详细信息后会弹出如下的对话框,可以根据提示进行填写,此功能主要是为了不同团队,不同个人之间的APP共享时需要告知的必要信息,因为共享的 APP 只有二进制可执行文件,不具有源码。

共享

共享:在APP功能设计完毕后,准备发布APP给用户时使用该功能,可以将APP打包成执行文件发送给用户。MATLAB提供三种途径:

MATLAB App

MATLAB App:创建一个APP的安装包,发送给用户,但是该用户必须在MATLAB环境下使用该APP,类似于MATLAB自带的 ToolBox。

选择此项后,弹出如下的界面,补充好必要的信息后,点击打包即可。

打包完成后,点击打开输出文件夹,即可看到App的安装包:

Web App

Web App:利用MATLAB创建网页 App。一般不用。

独立桌面 App

独立桌面 App:产生可执行的 .exe 文件。可以根据提示配置App启动画面和App 的logo。配置完成后点击上方菜单栏的 Package即可。

打包完成后,自动打开输出文件所在的文件夹:

for_redistribution包含用于安装应用程序和MATLAB Runtime的文件。
for_testing文件夹包含创建的所有由MCC创建的文件,二进制文件和jar,头和源文件,使用这些文件来测试安装。
for_redistribution_files_only文件夹包含应用程序的重新发布所需的文件。这些文件可以分发到那些有MATLAB或者有 MATLAB Runtime 的用户的电脑上。
PackagingLog.html是由编译器生成的日志文件。

如果发给用户使用,发for_redistribution文件夹里的exe文件 给用户进行安装使用。

安装时,有两个部分,一个是Runtime,另一个是功能软件。注意在安装时,最好以以管理员身份运行。

上面反复提到RunTime,这里简要介绍一下。
官方文档这样解释:MATLAB Runtime 是一套独立的共享库,可以执行已编译的MATLAB 应用程序或组件。当 MATLAB、MATLAB Compiler和 MATLAB Runtime 一起使用时,您可以快速、安全地创建和分布数值应用程序或软件组件。

简单地来说,就是Matlab程序的解释器,安装之后,会将matlab的程序重新编译一遍,使所在的电脑能够正确打开相关程序。runtime还有matlab的内置函数,使得程序成功运行。

运行

运行:运行调试App功能。

画布工具栏

保存按钮和运行按钮就不多说了。

转换

转换:可以将现有App的布局转化为可自动调整布局的两栏、三栏式App。具体过程不在赘述,自行尝试即可。

Tab 键切换顺序

可以使用 Tab 按键切换到App中的组件,不再赘述,自行尝试即可。一般没啥用。

重新排序

在多层的应用中,可以改变控件/组件所在的画层。

视图工具栏

此工具栏的功能自己尝试即可,不赘述。

编辑器工具栏

此工具栏在代码试图下可用:

此工具栏中的 保存、比较、打印、转至、查找、书签、注释、缩进、运行、步进、停止等按钮自行尝试,此处不再赘述。主要介绍以下几个功能:

回调

回调:点击此按钮可以添加一个回调函数,回调函数类似于一个中断处理程序。比如按下按键、下拉框数据更新。

函数

函数:App处理函数,包括了私有函数和公共函数。一般都选用私有。

属性

属性:即数据,包括私有属性、共有属性。一般都选用私有。

App输入参数

见官方解释:App 设计工具中的启动任务和输入参数

App帮助文本

点击后弹出如下界面,编写帮助内容分即可。

视图工具栏

前面那个视图工具栏是在设计视图下的,其实代码视图下也有一个视图的工具栏:

这里面的功能相对容易理解,自行尝试即可。

组件库是什么?

根据设计需要将组件库中的组件拖入画布中,放置好位置即可


建议

初期学习多看看官方给的设计实例,进行研习,可以做个性化的修改。

上篇就介绍到这里,下篇将结合具体应用场景给出实际设计过程。

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

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

相关文章

PyTorch实战1

传送门:蓝桥云课实验 目录1. 实验环境2. 实验目的3. 相关原理4. 实验步骤4.1 数据预处理4.1.1 对于类型变量的处理4.1.2 对于数值类型变量进行标准化4.1.3 数据集分割4.2 创建模型手写用Tensor运算的人工神经网络4.3 训练模型4.3.1 数据的分批次处理4.4 测试模型1. …

逆向-还原代码之eth (Arm 64)

// 源程序 #include <stdio.h> #define HIETH_SYSREG_BASE (0x101e0000) #define REG_RESET 0x01C // 外设控制寄存器(IP软复位控制) #define RESET_SHIFT 12 static void hieth_set_regbit(unsigned long addr, int bit, int shift) { unsigned long …

Practise test day16

一.单选 1.在关系型是数据库中&#xff0c;有两个不同的事务同时操作数据库中同一表的同一行&#xff0c;不会引起冲突的是&#xff1a;&#xff08;F&#xff09; A. 其中一个DELETE操作&#xff0c;一个是SELECT操作 B. 其中两个都是UPDATE C. 其中一个是SELECT&#xff…

ruoyi通过oauth对接pig实现sso流程讲解

1、时序图 2、流程解析 本流程是以使用Ruoyi对接Pig授权中心为例&#xff0c;进行讲解&#xff0c;其他网站的的oauth的原理都和这个一样&#xff0c;所以只要把这个流程搞懂了即可&#xff0c;接下来就按照真实的流程进行逐步解析。 2.1 第1步 用户还未登录&#xff0c;访问r…

浏览器Performance性能监控使用详解

文章目录1.Performance2.测试性能操作流程3.Performance检测结果详解区域1&#xff1a;controls【控制栏】区域2&#xff1a;overview【网页性能总览图】区域3&#xff1a;火焰图【各项指标的堆叠追踪可视化】区域4&#xff1a;统计汇总【以图表的形式汇总数据】4 其他监控性能…

BGP在数据中心的应用6——BGP在服务器上的应用

注&#xff1a; 本文根据《BGP in the Datacenter》整理&#xff0c;有兴趣和英文阅读能力的朋友可以直接看原文&#xff1a;https://www.oreilly.com/library/view/bgp-in-the/9781491983416/上一部分笔记请参考&#xff1a;https://blog.csdn.net/tushanpeipei/article/deta…

视频如何在线生成二维码?视频转二维码的2种方法

现在很多小伙伴都喜欢将视频转二维码&#xff0c;通过这种方式来分享传递内容&#xff0c;那么如何将视频生成二维码更加的简单快捷呢&#xff1f;大家可以用一下小编分享的这款在线二维码生成工具来制作二维码&#xff0c;通过浏览器在线生成二维码&#xff0c;更加的简单快捷…

设计模式——迭代器模式

迭代器模式一、基本思想二、结构图三、代码一、基本思想 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。迭代器模式是一种对象行为型模式&#xff0c;其主要优点如下&#xff1a; 访问一个聚合对象的内容而无须暴露它的内部表示。遍…

【Kotlin】函数 ④ ( 匿名函数参数 | 匿名函数 it 关键字 )

文章目录一、匿名函数参数二、匿名函数 it 关键字一、匿名函数参数 匿名函数 可以不带参数 , 也可以带多个参数 ; 不带参数的匿名函数 : // 声明 函数类型 变量, 并为其赋值 匿名函数val helloFun: ()->String {"Hello World"}带参数的匿名函数 : 匿名函数 的 参…

安装一个Excel插件,轻松网罗50+主流数据库

电子表格软件&#xff08;Smartbi Spreadsheet&#xff09;是思迈特软件推出的企业报表产品&#xff0c;产品以“真Excel”为特色&#xff0c;只需要安装一个小小插件&#xff0c;就能解决Excel最头疼的数据连接和性能问题。电子表格软件的数据源范围涵盖了本地数据库、关系型数…

如何学习虚幻引擎的Blueprint?

&#xff08;虚幻学习路线-方法概括版&#xff09; 【写在前面】&#xff1a;本篇内容颇多&#xff0c;并不是一大堆全学&#xff0c;把这篇当成一个字典&#xff0c;选择性学习&#xff0c;缺哪学哪~ 一、Blueprint &#xff08;一&#xff09;什么是虚幻引擎的Blueprint&…

C++STL之list容器

一&#xff1a;list特性list为带哨兵位双向循环链表&#xff0c;支持任意位置的插入和删除。与&#xff08;array&#xff0c;vector&#xff0c;deque&#xff09;相比&#xff0c;list的移除元素效率更高。最大缺陷是不支持[]重载&#xff0c;不支持随机访问&#xff0c;只能…

基于 EventBridge API Destination 构建 SaaS 集成实践方案

作者&#xff1a;赵海 引言 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务&#xff0c;支持阿里云服务、自定义应用、SaaS 应用以标准化、中心化的方式接入&#xff0c;并能够以标准化的 CloudEvents 1.0 协议在这些应用之间路由事件&#xff0c;帮助您轻松构…

Mockjs入门基础概念与使用

文章目录Mockjs入门使用1、概述2、安装引入3、语法规范3.1 数据模板定义规范&#xff08;DTD)3.1.1 DTD介绍3.1.2 规范实例演示字符串String数字Number布尔Boolean对象Object数组Array函数Function正则表达式RegExp3.2 数据占位符定义规范DPD4、关于Mock.mock()方法4.1 参数介绍…

RabbitMQ 常见面试题

RabbitMQ 常见面试题 1.为什么要用消息队列? (消息队列的应用场景?) 2.各种消息队列产品的比较? 3.消息队列的优点和缺点? 4.如何保证消息队列的高可用? 5.如何保证消息不丢失? 6.如何保证消息不被重复消费?(如何保证消息消费的幂等性&#xff09; 7.如何保证消息消费的…

PMP证书好考吗?

PMP 还是很好考的&#xff0c;各大机构 3A 的人也很多&#xff0c;我的备考经验分享给大家参考下&#xff0c;大家可以取长补短&#xff0c;找到适合自己的备考方法&#xff1a;一、复习计划的制定根据之前在培训班共同奋斗的小伙伴学习时间统计&#xff0c;平均每天的学习时间…

我的第一门编程语言

元旦节在家重温了一遍《三体》&#xff0c;看到下面一段描写&#xff1a;监听部的计算机系统也远比发射部庞大复杂&#xff0c;叶文洁第一次走进主机房时&#xff0c;看到一排阴极射线管显示屏&#xff0c;她惊奇地发现&#xff0c;屏幕上竟滚动着一排排程序代码&#xff0c;可…

KITTI评价指标学习

在pointpillars完成训练后,可以看到对于目标检测的评估,据了解,这是kitti的标准目标检测格式,所以了解了一下. 在generate label finished后,可以看到类别Car对应的AP(Average precision)有3个0.70,分别对应的是Kitti object detection中,被分为Easy, Moderate,和Hard三种级别物…

算法训练 —— 哈希

目录 1. LeetCode242. 有效字母的异位词 2. LeetCode349. 两个数组的交集 3. LeetCode350. 两个数组的交集II 4. LeetCode202. 快乐数 5. LeetCode1. 两数之和 1. LeetCode242. 有效字母的异位词 有效字母的异位词 本题的含义就是判断两个字符串是否相同&#xff1b; 我们…

文档管理降低运营成本的 5 大方法

文档管理降低运营成本的 5 大方法 正在寻找降低成本和最大化生产力的方法的首席财务官和首席信息官已经知道&#xff0c;良好的文档管理可以在几个月内收回成本。数字文档管理&#xff08;有时称为“企业内容管理”或 ECM&#xff09;通过自动化工作流程和消除耗时的手动任务来…