Задайте типы портов в s-функциональных блоках

Я создаю свой первый s-функциональный блок из скомпилированного кода C. Все идет хорошо, за исключением того, что s-функциональный блок требует, чтобы его интерфейсные переменные имели тип double, хотя лежащие в основе переменные интерфейса C не являются таковыми. Блок выдает ошибку, если я подаю логический сигнал на вход и пытаюсь запустить.

Я получаю переменные в коде, вызывая ssGetInputPortSignal и ssGetOutputPortSignal, и привожу возвращаемые ими пустые указатели к правильным типам указателей.

Как настроить типы параметров S-функционального блока в Simulink?


person Emilio M Bumachar    schedule 18.12.2014    source источник


Ответы (1)


Взгляните на ssSetInputPortDataType. Необходимо вызывать в функции S-Function mdlInitializeSizes. В вашем случае вам понадобится что-то вроде:

ssSetInputPortDataType(S, 0, SS_BOOLEAN);

Предполагая, что входной порт является первым, и вас не беспокоит возвращаемое значение.

Для выходных данных используется функция ssSetOutputPortDataType с идентичным использованием.

person macduff    schedule 18.12.2014