SDK案例记录

news2024/11/26 4:34:44

目前的极简配置

注意事项

默认的属性配置中,大多采用环境变量的形式,方便不同设备通用
比如“常规”->“输出目录”为

$(SolutionDir)..\bin\win_msvc2017$(Platform)\$(Configuration)\

案例运行前的配置(除MwBatchSimPlugin)

设为release版本(节省内存,debug一般较大)

在这里插入图片描述

链接器->附加库目录

在这里插入图片描述

->添加如下路径->应用

E:\SDK\MWORKS SDK 2023a(vs2017)1\bin\win_msvc2017x64\lib

在这里插入图片描述

调试模式运行(直接点击绿色箭头)

在这里插入图片描述

以后可以直接点击"开始执行(不调试)"

在这里插入图片描述

MwBatchSimPlugin的额外配置

项目->属性->调试->命令、命令参数

E:\SDK\MWORKS SDK 2023a(vs2017)1\bin\win_msvc2017x64\Release\mworks.exe

在这里插入图片描述

MassSpringDamperApp代码解析

代码逻辑综述

main_window.h

InitUi()函数负责初始化用户界面。
LoadModelLibrary()函数用于加载模型库。
OpenModelFile()函数用于打开一个模型文件。
GetMwStrList()函数根据给定的名称检索一个字符串列表。
公共槽部分声明了两个槽: SlotStartSim() 和 SlotSimFinished()。
这些槽用于处理由用户操作或模拟完成所触发的事件。
私有部分包含了该类中使用的成员变量。
classMgr 指针用于管理应用程序中的类。
simCtrl指针指的是仿真控制对象。
forcePlotWin、sPlotWin和vPlotWin指针分别代表力、s - plot和v - plot的不同绘图窗口。

main.cpp

LoadChineseTranslateFile()函数用于加载应用程序的中文翻译文件。
在LoadChineseTranslateFile()里面,该函数根据应用程序的路径和翻译目录的位置来构建翻译文件的路径。
如果翻译目录不存在,该函数会提前返回。
然后,该函数过滤该目录中的文件,只包括.qm文件。
它遍历翻译文件的列表,为每个文件创建一个QTranslator对象。
每个翻译器都与它各自的翻译文件一起被加载,并使用qApp->installTranslator()安装在应用程序中。

在main()函数中,一个QApplication对象被创建,以处理程序输入和事件处理。
一个MwClassManager类的实例被创建以管理SDK内核,Initialize()函数被调用以初始化SDK内核。
LoadChineseTranslateFile()函数被调用来加载中文翻译文件。
创建MainWindow类的一个实例,并将classMgr对象作为参数。
show()函数被调用以显示主窗口。
最后,app.exec()启动应用程序的事件循环,当应用程序退出时,app.exec()的返回值被作为退出代码返回。

main_window.cpp

首先,在构造函数 MainWindow::MainWindow(MwClassManager* class_mgr, QWidget* parent) 中,
通过传入一个指向 MwClassManager 类对象的指针 class_mgr 和一个父窗口对象的指针 parent,初始化了主窗口。
然后调用了 InitUi() 方法,该方法用于初始化用户界面和添加模拟图像。
接着创建了一个 MwSimControl 类对象 simCtrl,用于控制仿真过程。
最后,通过信号与槽的连接,将按钮的点击信号与 SlotStartSim() 槽函数关联,
将 simCtrl 的 SigSimStopped 信号与 SlotSimFinshed() 槽函数关联。

接下来,通过 InitUi() 方法,对用户界面进行初始化。该方法完成了以下任务:

设置主窗口的标题为 “弹簧阻尼模型”。 添加曲线界面,并将其显示在主窗口中。 隐藏曲线界面的菜单栏和状态栏。 初始化原理图和模型图的显示。
在 LoadModelLibrary() 方法中,加载模型库,并根据加载是否成功在状态栏上显示相应的消息。

在 OpenModelFile() 方法中,打开模型文件,并获取模型数据。 首先构建模型文件的路径, 然后通过
classMgr->GetMoHandler()->OpenFile() 方法打开模型文件。 如果打开成功,将在状态栏上显示
“弹簧阻尼模型加载成功” 的消息,并获取模型数据的键值 key。 接着,通过
classMgr->GetMoHandler()->GetParamValue() 方法检索参数值,并将其更新到相应的 UI 元素上。

GetMwStrList() 方法用于将输入的字符串按照 “.” 进行分割,并返回分割后的字符串列表。

SlotStartSim() 方法是仿真开始的槽函数。 在仿真开始之前,先禁用窗口。 然后根据用户在界面上输入的参数值,修改模型的参数。
接着进行模型的编译和仿真设置的应用。 最后通过 simCtrl->StartSimulate()
方法开始仿真过程,并根据仿真是否成功在状态栏上显示相应的消息。

SlotSimFinshed() 方法是仿真完成的槽函数。 在仿真完成后,启用窗口,并将仿真数据添加到曲线界面中显示。

整体逻辑为:用户打开主窗口,加载模型文件和模型库,设置模型参数,然后点击开始仿真按钮进行仿真。 仿真过程中,更新仿真数据并在曲线界面显示。
仿真完成后,允许用户再次修改参数并进行下一次仿真。

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

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

相关文章

华丽家族股东大会21项议案全被否

5月17日晚间,A股上市公司华丽家族发布关于收到上海证券交易所监管工作函的公告,交易所对相关事项提出监管要求。 在此之前,华丽家族当天召开股东大会,21项股东大会议案全部未通过。历史上,股东大会议案全部被否的情形…

『python爬虫』24. selenium之无头浏览器-后台静默运行(保姆级图文)

目录 1. 无头浏览器2. 分析被爬取数据的网页结构3. 完整代码总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 无头浏览器 一般性的selenium会打开浏览器页面,展示图形化页面给我们看,我…

Spring Boot注入Servlet、Filter、Listener 注解方式和使用RegistrationBean二种方式 加源码分析

目录 Spring Boot 注入Servlet、Filter、Listener 官方文档 基本介绍 应用实例1-使用注解方式注入 创建/Servlet_.java 修改Application.java , 加入ServletComponentScan 完成测试 创建Filter_.java 创建static/css/t.css, 作为测试文件 完成测试, 注意观察后台 注…

【数据结构】--- 博主拍了拍你并向你扔了一“棵”二叉树(概念+结构)

文章目录 前言🌟一、树概念及结构:🌏1.1树的概念:🌏1.2树的相关概念:🌏1.3树的表示:💫1.3.1左孩子右兄弟表示法:💫1.3.2双亲表示法: &…

Golang每日一练(leetDay0069) 数字范围按位与、快乐数

目录 201. 数字范围按位与 Bitwise-and-of-numbers-range 🌟🌟 202. 快乐数 Happy Number 🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每…

美团前高级测试工程师教你如何使用web自动化测试

一、自动化测试基本介绍 1 自动化测试概述: 什么是自动化测试?一般说来所有能替代人工测试的方式都属于自动化测试,即通过工具和脚本来模拟人执行用例的过程。 2 自动化测试的作用 减少软件测试时间与成本改进软件质量 通过扩大测试覆盖率…

python随机生成数据并用双y轴绘制两条带误差棒的折线图

python绘图系列文章目录 往期python绘图合集: python绘制简单的折线图 python读取excel中数据并绘制多子图多组图在一张画布上 python绘制带误差棒的柱状图 python绘制多子图并单独显示 python读取excel数据并绘制多y轴图像 python绘制柱状图并美化|不同颜色填充柱子 Python绘制…

IC验证学习笔记(AHB-RAM)08addr、bsize都随机,主要做地址偏移操作

rkv_ahbram_haddr_word_unaligned_virt_seq: 对addr和bsize都随机化操作 ifndef RKV_AHBRAM_HADDR_WORD_UNALIGNED_VIRT_SEQ_SV define RKV_AHBRAM_HADDR_WORD_UNALIGNED_VIRT_SEQ_SVclass rkv_ahbram_haddr_word_unaligned_virt_seq extends rkv_ahbram_base_virtual_sequenc…

深入探讨桥梁建筑中地质工程与仪器仪表应用

近期,随着桥梁建筑行业的不断发展,地质工程与仪器仪表应用成为了热议的话题。在桥梁、建筑、水利工程等领域,渗压计、MCU自动化测量单元、应变计、测缝计、固定测斜仪等各种先进的仪器仪表技术正在广泛应用,为工程施工和监测提供了…

什么是pytest自动化测试框架?如何安装和使用呢?赶快收藏起来

一、pytest是什么? pytest是一款强大的Python测试工具,可以胜任各种类型或级别的软件测试工作。实际上,越来越多的项目在使用pytest。因为pytest会提供更丰富的功能,包括assert重写、第三方插件,以及其他测试工具无法比…

116.【SpringBoot和Vue结合-图书馆管理系统】

前后端分离 (一)、SpringBootVue概述1.基本概述2.实现技术 (二)、Vue3.x搭建 (SpringBootVue)1.搭建Vue基本环境(1).搭建Vue项目框架(2).介绍Vue项目内容 2.搭建SpringBoot基本环境(1).创建SpringBootTest项目(2).初始化项目(3).测试SpringBoot的控制层 3.通过路由跳转访问组件…

Python+selenium自动化元素定位防踩坑

在自动化UI测试过程中常常会在元素定位阶段就踩坑,碰到困扰已久的问题。 以下是个人整理元素定位报错原因和解决方法。 踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element re…

JavaScrip 中的 this, bind, call apply 简述

JavaScrip 中的 this, bind, call & apply 简述 this 是一个比较特殊的东西,基本上可以理解成 this 的指向是就近调用的指向,因此 this 在 JS 中也是一个比较令人困惑的知识点。 之前绕过 this 的方法基本上采用 arrow function,因为 a…

35、Adaptive Forms(3)Data Model

文章目录 35、Adaptive Forms(3)Data Model配置JDBC安装mysql-connector-j.jar在数据库中创建数据创建Data Model 35、Adaptive Forms(3)Data Model 在使用Mysql数据之前还需要在AEM中创建DataModel映射数据库的数据结构。也需要…

07-架构2023版-centos+docker部署nacos

1、创建nacos的数据库配置 1.1、创建数据库 1.2、创建用户nacos并授权数据库 参考 06 mysql 创建账户部分内容 1.3、执行数据库脚本 导入官方nacos sql语句。如果是历史有历史数据, 从历史数据sql导入 2、创建 bridge 网络并指定 IP 区间 2.1、创建自定义网络…

选择排序:20年前在谭浩强《c语言程序设计上》学习过(43)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日主题 什么是选择排序? 用Python写段代码,实现插入排序。 选择排序 选择排序是一种简单的排序算…

Contrastive Learning

https://towardsdatascience.com/understanding-contrastive-learning-d5b19fd96607 The Beginner’s Guide to Contrastive Learning Contrastive Representation Learning | LilLog

Visual Studio 怎样设置断点并调试

1-普通断点 设置普通断点的方法很简单,就是在代码行的左边栏灰色区域点击或者把光标放在某代码行,按下 F9。 2-调试 按F5开始调试,按F11是逐行调试,F10是逐过程调试,shiftF5是停止调试。 3-高级调试 见链接&#x…

学系统集成项目管理工程师(中项)系列22b_信息化知识(中)

1. 信息化 1.1. 产品信息化 1.1.1. 信息化的基础 1.2. 企业信息化 1.2.1. 国民经济信息化的基础 1.3. 产业信息化 1.3.1. 【21下选08】 1.4. 国民经济信息化 1.5. 社会生活信息化 1.6. 【22上选08】 1.7. 基本内涵 1.7.1. 信息化的主体是全体社会成员,包…

日语文法PPT截图16-30

16句子的构成 单句 谓语只出现了一次 重句 两个谓语 并且两个谓语是对应的关系 由多个在意义上有差距的小句共同构成的句子 叫复文 用一个句子去修饰一个名词 也是个很典型的复文 被名词化了的句子充当小句,这也是复文的一种情况 引用形式的复文 对于这种复文的…