plantUML学习与实战

背景

在日常工作或者生活中,使用交互图来描述想法,往往相对于文字来说,可读性更高,同时一定程度上可以提高沟通效率,但是苦于,不想对一堆控件拖拖拉拉,本人就是一个很讨厌画图,但是又不得不画图来节约沟通效率,降低沟通的人。
plantUML很好的满足了这种日常需求,可以通过代码的形式来画图

自主入门资料

一小时实践入门 PlantUML

这里推荐一个在线编辑工具
planttext
方便操作,不需要额外再下载软件

示例

@startuml
title 主任务执行流程图
start
:main;
:main_systask(systask_Obj);
:sysytaskInit;
:打开总中断Gsp_Hal_Rcc_Enable_irq();
:系统运行变量初始化;
:SP_T议栈初始化;
:SP_T对象回调函数初始化;
:向系统注册10ms定时器用于main_task使用;
if (APP_BMS)
:注册1ms定时器-用于bms中ccs和cst的快速发送;
else
endif
if (GSP_FMU_SUPPORT)
:falsh存储初始化smu_Obj.init();
else
endif
:系统运行环境初始化①;
:关闭总中断;
if(GSP_FMU_SUPPORT)
:SCU存储运行环境初始化(主要读取驱动板卡配置用于初始化外设);
endif
:硬件资源外设初始化;
if(GSP_FMU_SUPPORT)
:更新软件版本信息内容;
else if(FOR_SGCC)
:针对国网更新部分信息;
else
:记录程序启动日志(日志中会先记录启动-后记录配置异常信息);
:系统配置初始化;
endif
:喂狗Gsp_Hal_Sys_WatchDog();
if(GSP_FMU_SUPPORT)
:底层驱动管理单元DMU初始化(方式1);
else
:底层驱动管理单元DMU初始化(方式2);
endif
if(GSP_FMU_SUPPORT)
:设置波特率sysDevParaSetByCfg();
else
endif
:喂狗Gsp_Hal_Sys_WatchDog();
:imu层初始化imu_Obj.init();
:gsp自身任务初始化GspRun_Obj.init();
:APP数据初始化appFunc_Obj.init();
:打开总中断Gsp_Hal_Rcc_Enable_irq();
if(UPDATE_BOOT_ENABLE)
:UpdateBootloader()(条件选配);
else
endif
while(systaskMain主任务)
:HAL_GetTick();
:driver固定任务Gsp_Hal_Sys_Main();
if(systimer_10ms>0)
:计数清零;
:喂狗;
else if(支持工装模式并且置位)
:轮询工装任务;
else if(正常模式)
:dmu调度任务;
:imu数据映射;
:执行app主程序;
:母联自动测试条件执行;
else
endif
:SMU存储任务执行;
:gsp_run;
:时钟处理;
endwhile
  -[hidden]->
  detach
@enduml

在这里插入图片描述

可以将上述代码粘贴到推荐的在线planttext试试看效果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谈思生物医疗直播 | 利用类器官模型研究肺的发育与稳态

类器官是一种三维细胞培养物,其在细胞类型,空间结构及生理功能上能够模拟对应器官,从而提供一个高度生理相关的系统。自2009年小肠类器官首次建立至今,类器官研究已经延伸到多个组织系统,并成为当下生命科学领域最热门…

改善钢棒直线度检测可靠性 在线直线度测量仪替代人工检测

根据GB/T908-2019标准规定,钢棒的尺寸包括直径或边长、长度、弯曲度等。因此钢棒在生产中进行尺寸检测,保证成品符合规格,是降低废品率的重要一环。 有些钢棒的弯曲很明显,肉眼可看,但更有很多不明显的需要借助工具检测…

亿级流量架构服务降级

什么是服务降级 如果看过我前面对服务限流的分析,理解服务降级就很容易了,对于一个景区,平时随便进出,但是一到春节或者十一国庆这种情况客流量激增,那么景区会限制同时进去的人数,这叫限流,那么什么是服务降级呢? 简单来说就是,将一些不太重要的景区项目砍掉,平时就那么三五…

[PTQ]均匀量化和非均匀量化

均匀量化和非均匀量化 基本概念 量化出发点:使用整型数据类型代替浮点数据,从而节省存储空间同时加快推理速度。量化基本形式 均匀量化:浮点线性映射到定点整型上,可以根据scale/offset完成量化/反量化操作。非均匀量化 PowersO…

CentOS 7 使用cJSON 库

什么是JSON JSON是一种轻量级的数据交换格式,可读性强、编写简单。键值对组合编写规则,键名使用双引号包裹,冒号:分隔符后面紧跟着数值,有两种常用的数据类型是对象和数组。 对象:使用花括号{}包裹起来的…

怎么用 AI 来智能审核 PDF合同?5步搞定!

大家都知道审合同是一个比较耗费精力的过程,有没有更好的办法来智能审核PDF合同呢,今天就教大家一招,用AI来智能审核PDF合同。 在开始之前呢,我们要找到一款带AI功能的工具,我试用过擎盾智能合同审查、幂律智能等工具,感觉都不太理想,经过一段时间的摸索,我找到了一款比较适合…

【Linux】关系运算符、shell判断脚本执行时是否有传参、判断文件/文件夹是否存在、判断字符串是否相等、判断上个命令执行是否正常、判断字符串是否为空

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

无损压缩技巧:减小PDF文件尺寸的有效方法

我们在制作pdf文档的时候,会加入许多内容,文字、图片等等,素材添加的过多之后就会导致pdf文档特别大,在上传或者储存时,就会特别不方便,所以今天就告诉大家一个pdf压缩的方法,使用pdf在线压缩工…

【C++】:STL中的string类的增删查改的底层模拟实现

本篇博客仅仅实现存储字符(串)的string 同时由于Cstring库设计的不合理,我仅实现一些最常见的增删查改接口 接下来给出的接口都是基于以下框架: private:char* _str;//思考如何不用constsize_t _size;size_t _capacity;//这样写可以const static size_t…

csdn最新最全的Selenium教程:定位frame框架中的元素

定位frame框架中的元素 在web应用中经常会出现frame嵌套的应用,假设页面上有A,B两个frame,其中B在A内,那么定位B中的内容则需要先到A,再到B。 switch_to.frame方法可以把当前定位的主题切换到frame里,在frame里实际是嵌套了另外一…

Android Studio xml文件id爆红但是项目可以运行

这种原因是你的R文件太大了(超过了Android Studio的上限25.6M了) 解决办法如下: Help -> Edit Custom Properties -> create custom properties?(yes) ->添加 idea.max.intellisense.filesize5000 最后需要重启Android Studio

【double check 读写锁】

使用double check 读写锁 读多写少场景 记录下 //来源 jdbc 中的查询连接信息 //public abstract class ConnectionUrl implements DatabaseUrlContainer public static ConnectionUrl getConnectionUrlInstance(String connString, Properties info) {if (connString null…

算法刷题-动态规划2(继续)

算法刷题-动态规划2 珠宝的最高价值下降路径最小和 珠宝的最高价值 题目 大佬思路 多开一行使得代码更加的简洁 移动到右侧和下侧 dp[ i ][ j ]有两种情况: 第一种是从上面来的礼物最大价值:dp[ i ][ j ] dp[ i - 1 ][ j ] g[ i ][ j ] 第二种是从左…

【MySQL】宝塔面板结合内网穿透实现公网远程访问

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cpo…

Course1-Week2-多输入变量的回归问题

Course1-Week2-多输入变量的回归问题 文章目录 Course1-Week2-多输入变量的回归问题1. 向量化和多元线性回归1.1 多维特征1.2 向量化1.3 用于多元线性回归的梯度下降法 2. 使梯度下降法更快收敛的技巧2.1 特征缩放2.2 判断梯度下降是否收敛2.3 如何设置学习率 3. 特征工程3.1 选…

react中的state

没想到hooks中也有state这一说法 看下面的两个案例 1、无state变化不会执行父子函数 2、有state更改执行父子函数

竞赛选题 车道线检测(自动驾驶 机器视觉)

0 前言 无人驾驶技术是机器学习为主的一门前沿领域,在无人驾驶领域中机器学习的各种算法随处可见,今天学长给大家介绍无人驾驶技术中的车道线检测。 1 车道线检测 在无人驾驶领域每一个任务都是相当复杂,看上去无从下手。那么面对这样极其…

数据提取PDF SDK的对比推荐

PDF 已迅速成为跨各种平台共享和分发文档的首选格式,它作为一种数据来源,常见于公司的各种报告和报表中。为了能更好地分析、处理这些数据信息,我们需要检测和提取 PDF 中的数据,并将其转换为可用且有意义的格式。而数据提取的 PD…

【Spring进阶系列丨第四篇】Spring的Bean管理(基于xml的配置)

前言 我们知道,容器是一个空间的概念,一般理解为可盛放物体的地方。在Spring容器通常理解为BeanFactory或者ApplicationContext。我们知道spring的IOC容器能够帮我们创建对象,对象交给spring管理之后我们就不用手动去new对象。 那么Spring是如…

服务号可以迁移到订阅号吗

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?首先我们要看一下服务号和订阅号的主要区别。1、服务号推送的消息没有折叠,消息出现在聊天列表中,会像收到消息一样有提醒。而订阅号推送的消息是折叠的,“订阅号…