Coder Social home page Coder Social logo

harkeryx / simulink_model_tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shibojiang/simulink_model_tools

1.0 0.0 0.0 19.91 MB

A tool for helping model within MAAB/JMAAB spec. And auto set the 'Model Configuration Parameters' to ERT/AutoSAR target, which can meet MISRA C 2012/JMAAB/MAAB.

License: Other

Python 4.00% MATLAB 96.00%

simulink_model_tools's Introduction

toto 工具箱

toto pro 工具在本项目 toto_pro 分支上 ,该工具为商业版

版本 内容 修改时间 修改人
0.1 创建文档 2017/9/12 姜世博
0.2 适配toto 0.2,增加自动修改stateflow中,变量数据类型功能 2017/9/18 姜世博
0.3 适配toto 0.3,修改模型配置,ERT和AutoSAR配置脚本升级为v0.9 2017/9/23 姜世博
0.4 适配toto 0.4,增加 修改端口属性 和 恢复端口属性两个功能 2017/9/25 姜世博
0.5 ERT和AutoSAR配置脚本升级为v0.9.3 2017/10/10 姜世博
0.6 适配ERT和AutoSAR配置脚本 v0.9.4,更改修改端口属性恢复端口属性两个按钮的策略,具体查看2.15 修改端口属性 2017/10/16 姜世博
0.7 适配ERT和AutoSAR配置脚本 v0.9.5; 修复修改端口属性功能bug,在检测到模型配置中采样模式设为连续时,将端口采样时间时间设为默认的-1; 增加信号线重命名功能,此功能会将端口的名字命名到连接端口的信号线上,具体查看2.17 信号线重命名 2017/10/25 姜世博
0.8 适配ERT和AutoSAR配置脚本 v0.9.6; 修复修改端口属性功能bug,当模型设为非连续采样,但采样时间设为auto时,此功能将端口采样时间设为默认的-1 2017/11/2 姜世博
0.9 增加变量列表,和修改变量两个功能,可以对模型关联的数据字典和 信号线、端口、Constant模块、查表模块进行批量式名称修改;还可以将当前模型关联的数据字典,相关变量数值和数据类型列到excel中进行管理和修改,当前版本仅支持普通一维变量和 最高2维的查表数据变量。具体功能描述查看本文相应章节 2017/11/21 姜世博
0.9.1 修改变量列表修改变量两个功能,适用于一个模型挂载多个数据字典的情况;增加SF变量类型自动功能,该功能将stateflow中的变量,数据类型设为[Inherit: Same as Simulink],即可以使用数据字典中的定义控制state flow中的变量 2017/11/24 姜世博
0.9.2 适配ERT和AutoSAR配置脚本 v0.9.7; 修改SF变量类型定义,修改为将所有state flow 中变量进行数据类型自动定义,原策略为不包括输入输出变量;修改变量列表修改变量两个功能,增加MyPkg类变量识别和修改,增加State flow 中变量识别和修改 2017/11/28 姜世博
0.9.3 适配AutoSAR配置 v0.9.7.1脚本 2017/12/1 姜世博
0.9.4 适配ERT和AutoSAR配置脚本 v0.9.8; 修改变量列表功能一些情况下出现的bug 2017/12/8 姜世博
0.9.5 适配ERT和AutoSAR配置脚本 v0.9.9 2017/12/19 姜世博
0.9.6 增加 修改变量信号线重命名端口重命名,三个功能 对Goto 和From模块的支持 2017/12/20 姜世博
0.9.7 适配ERT和AutoSAR配置脚本 V1.3 2018/11/3 姜世博

1. 安装说明

  1. 按照下图指示进行安装

输入图片说明

  1. 安装完成后出现如下图标,点开即可使用

输入图片说明

2. 使用说明

toto工具需要在打开模型时才能作为辅助工具进行使用,下图为工具界面概览

输入图片说明

2.1 ERT

将所打开的模型配置设为适合生成ERT(Embedded Coder)。

2.2 AutoSAR

将所打开的模型配置设为适合生成AutoSAR。

2.3 隐藏模块名称

隐藏如下模块的名称: MinMax,UnitDelay,Sqrt,Merge,Product,Logic,RelationalOperator,Switch,MultiPortSwitch,Goto,From,Terminator,ModelReference

2.4 隐藏端口名称

隐藏inport和outport输入输出模块的名称。

2.5 显示模块名称

显示可隐藏名称的模块的名字。

2.6 显示端口名称

显示inport和outport输入输出模块的名称。

2.7 SF变量类型定义

查找stateflow中所有定义的变量,如果为input/output,数据类型就设置为与simulink保持一致;如果为其它形式的变量,则会读取变量名字的末尾,并根据末尾定义成相应的数据类型,如果没有按照命名规范,则会定义成uint8的数据类型。

2.8 添加信号线变量

会根据信号线上的名字,在matlab workspace中添加相应数据类型的信号变量,自动添加的变量储存类型为Auto,如下为示例,需要注意信号线命名需要符合命名规范,末尾为数据类型简写才能实现此功能。

  1. 原模型

输入图片说明

  1. 点击添加信号线变量后

输入图片说明

命名规范表格:

后缀 数据类型
_u8 uint8
_u16 uint16
_u32 uint32
_f32 single
_f64 double
_s8 int8
_s16 int16
_s32 int32
_bl boolean

2.9 勾选resolve

在有名字的信号线上勾选Signal name must resolve to Simulink signal object选项。

2.10 勾选信号广播

勾选信号线Show propagated signals选项。

2.11 端口重命名

对于inport和outport模块,如果连接的信号线上定义了名字,则将这个端口模块重命名成信号线上定义的名字。

2.12 清除resolve

信号线上清除Signal name must resolve to Simulink signal object选项的勾选。

2.13 清除信号广播

清除信号线Show propagated signals选项的勾选。

2.14 p文件生成

将当前工作目录下(不包括子目录),所有.m的脚本文件生成一份.p文件的副本。

2.15 修改端口属性

根据端口所连接的信号线上,定义的信号名称,读取该名称末尾数据类型的定义,并根据所读到的数据类型,将inport 和outport端口的 数据维度,数据类型,数据范围,采样时间属性进行修改。仅更改模型root层的输入和输出端口属性,不对子系统进行修改,在遇到线上没有数据类型端口,不进行数据类型改写,当线上没有数据类型时,检测端口是否已经定义数据类型,如定义则根据所 定义的数据类型自动补全数据范围等其它属性

2.16 恢复端口属性

将inport和outport端口的数据维度,数据类型,数据范围,采样时间属性设置为默认选项。

2.17 信号线重命名

将连接输入输出端口的信号线,重命名成端口的名称,忽略掉已经勾选了信号广播的信号线。

2.18 变量列表

把数据字典和模型一些信息转成Excel表格,创建[model name]_list.xlsx的表格

  • 将当前模型所关联的数据字典中,所有变量名称 和 所关联的数据字典名称,写入名为dict的工作表中。
  • 将当前模型信号线上定义的名字,且该名字没有在数据字典中进行定义,写入only_line工作表中。
  • 将当前模型所有普通一维变量的名称,源数据字典,数据类型,数值,放入simu_parameter工作表中。
  • 将当前模型所有查表变量(最高2维)的名称,源数据字典,数据类型,表格维度,数值,放入simu_table工作表中。
  • 将当前模型所有state flow 变量 名称,范围,数据类型,放入sf_parameter工作表中。

自动生成的Excel如下图所示: 2_18_001.jpg

注意,如果使用WPS,则需要开启wps表格的宏定义,并将matlab中的Excel link添加到宏定义中,相关教程如下:

2.19 修改变量

根据Excel表格中的信息对模型和数据字典进行修改

  • 读取当前工作目录下[model name]_list.xlsx文件
  • 并读取其中dict、only_line、simu_parameter、simu_table、sf_parameter 五个工作表,并根据表中的命名情况和数据赋值情况 进行对模型中相应的名称进行修改。
  • 需注意,修改支持 重命名 和 新添加变量,为了进行保护,不支持删除原数据字典中的变量,如若删除需要到数据字典界面进行操作。
  • 模型中可进行修改的模块包括:数据字典,信号线,输入输出端口,Constant模块,查表模块。
  • 注意,如果当前工作目录下没有[model name]_list.xlsx这个文件,或格式不正确,则运行此条命令会报错,此时需要使用变量列表按钮生成一份标准的变量列表后,才能使用此按键。

2.20 SF变量类型自动

读取当前模型state flow中变量,并将这些变量数据类型设为 [Inherit: Same as Simulink]


simulink_model_tools's People

Contributors

shibojiang avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.