2015-08-10 6 views
1

У меня есть модель, которая принимает два ввода & умножает их & дает выход.
OUTPUT_1 = INPUT_1 * INPUT_2simulink - GetSet Custom Storage Class

Я объявил мои 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

Я знаю, что вы, вероятно, уже решили эту проблему, но я также видел это поведение раньше.

Иногда MATLAB не обновляет файлы заголовков правильно. Если вы установили другую конфигурацию для своей переменной и затем внесли изменения, связанные с файлами заголовков, я бы рекомендовал удалить папки * _ert_rtw и slprj (они появятся снова). Это похоже на выполнение операции «Очистить», чтобы все было совершенно новым.