我有一个需要两个输入和模型的模型。乘以它们&给出输出。
output_1 = input_1 * input_2
我已将我的simulink信号声明为CustomStorageClass = GetSet
input_1 = Simulink.Signal;
input_1.CoderInfo.StorageClass = 'Custom';
input_1.CoderInfo.CustomStorageClass = 'GetSet';
input_1.CoderInfo.CustomAttributes.GetFunction = 'Get_input_1';
input_1.CoderInfo.CustomAttributes.SetFunction = 'Set_input_1';
input_1.CoderInfo.CustomAttributes.HeaderFile = 'signals.h';
input_2 = Simulink.Signal;
input_2.CoderInfo.StorageClass = 'Custom';
input_2.CoderInfo.CustomStorageClass = 'GetSet';
input_2.CoderInfo.CustomAttributes.GetFunction = 'Get_input_2';
input_2.CoderInfo.CustomAttributes.SetFunction = 'Set_input_2';
input_2.CoderInfo.CustomAttributes.HeaderFile = 'signals.h';
output_1 = Simulink.Signal;
output_1.CoderInfo.StorageClass = 'Custom';
output_1.CoderInfo.CustomStorageClass = 'GetSet';
output_1.CoderInfo.CustomAttributes.GetFunction = 'Get_output_1';
output_1.CoderInfo.CustomAttributes.SetFunction = 'Set_output_1';
output_1.CoderInfo.CustomAttributes.HeaderFile = 'signals.h';
现在我正在尝试使用simulink编码器将我的模型转换为代码
在模型的代码生成设置中,我在系统目标文件设置中选择了ert.tlc
文件。
但是生成的代码没有像此链接中所示的Get_input_1()或Get_input_2()调用。 http://www.mathworks.com/help/ecoder/ug/getset-custom-storage-classes.html
我在设置中错过了什么。请建议
答案 0 :(得分:0)
我知道你可能已经解决了这个问题,但我之前也看到过这种行为。
有时MATLAB不会正确更新头文件。如果您为变量设置了不同的配置,然后进行了涉及头文件的更改,我建议删除* _ert_rtw和slprj文件夹(它们将再次出现)。它类似于做一个" Make clean"操作,确保一切都是全新的。