我有一个Simulink模型通过嵌入式编码器(RTW)编译成可执行文件,并且我知道在输入和输出之间没有连接的SFunction,所以想要在其输入端口上关闭直接馈通。实际上我可以用两个SFunction代替它,一个带输入,一个带输出,唯一的复杂是我正在寻址的外部系统在单个函数调用中进行双向通信。
我们目前使用旧版代码工具来编译所有的SFunction,但是我已经阅读并验证了强制所有输入都是直接馈通,无论它们是否存在(没有解释原因。)我看了一下但是,它不会引用直接馈通输入。我还查看了msfuntmpl_basic.m模板构建器脚本,但它似乎仅限于具有原始数据类型的输入和输出(通过DatatypeID。)
答案 0 :(得分:2)
你的问题是关于将C代码集成到S-Function中,但是你说你正在查看 msfuntmpl_basic.m 这是m代码模板。您应该查看C模板: sfuntmpl_basic.c 。
在其中,查看第75行,它使用宏ssSetInputPortDirectFeedThrough
来设置每个端口的馈通特性,这是唯一的方法。
由于传统代码工具明确地不生成使用该宏的代码,因此您将不得不编写自己的S-Function,或者编辑自动生成的代码。