我正在从编译的C代码构建我的第一个s功能块。一切都很顺利,除了s-功能块要求其接口变量是double
类型,即使底层的C接口变量不是。如果我将布尔信号连接到输入并尝试运行,该块会引发错误。
我通过调用 ssGetInputPortSignal
和 ssGetOutputPortSignal
来获取代码中的变量,并将它们返回的 void 指针转换为正确的指针类型。
如何在 Simulink 中配置 s 功能块参数的类型?
看看ssSetInputPortDataType。 需要在 S 函数mdlInitializeSizes
函数中调用。 在您的情况下,您需要以下内容:
ssSetInputPortDataType(S, 0, SS_BOOLEAN);
假设输入端口是第一个,并且您不关心返回值。
输出的函数是ssSetOutputPortDataType,用途相同。