前言
关于simulink数据存储类有多种类型,常用的就是Exported Global、Imported Extern这一类的,其中GetSet运行的不是特别多,今天给大家讲解下GetSet类型如何使用
GetSet的使用类型
代码会生成一个函数来获取输入值或者设置输出值
在设置GetSet类型后,会弹出HeaderFile、GetFunction和SetFunction三个填选框,其中HeaderFile用来定义头文件,同时默认GetFunction和SetFunction,在实际操作中我们只需要GetFunction和SetFunction填写对应函数即可
GetFunction
GetFunction函数填写就是将我们的调用这个函数的结果来供给我们使用,如下图
这里作者要填写一个叫“intTEST”的函数名称下面我们生成代码来看一下
这里大家会发现一个问题,就是我们被调到用的函数时没有return回调的,这个时候的值是传递不进来的,这个时候我们可以选择设置他的Funtions;具体如下:
可以参考这篇文章Simulink代码生成: 自定义Storage Class配置来实现自定义的类型设置,去添加return回调值
内存段设置
这个地方目前还存在有疑问的地方,有知情的童鞋还麻烦告知下
SetFunction
SetFunction函数填写就是将我们的输出结果传递到SetFunction的函数中,如下图:
这里作者要填写一个叫“TEST”的函数名称下面我们生成代码来看一下
上图是一个swich模块,这里通过代码可以看出在不同条件满足下,分别将两个不同的数值传递到TEST这个函数中
注意事项
GetSet类型会影响其他信号存储类型的名称更变,比如下图这个,
如果是多个swc在编译时会找不到信号而报错,因为会将信号添加前缀Get;这个时候就需要做信号隔离,作者在这里使用好多模块,都不能讲讲所有的信号隔离开,最后只能使用状态机;具体如下:
了解getset函数的伙伴还请留言告诉作者有更好的隔离方法,谢谢