专栏
标签
CCaller模块输入变量数据类型可以修改吗
一般问题
发布于 2025-11-10 15:22:40
查看 10过去230天

在使用CCaller模块调用外部C函数时,遇到一个问题,如下图所示。
image.png
所调用的函数声明如下所示
image.png
图中所调用C函数的msg在原C文件中类型为void*,CCaller识别为void类型,在对话框中无法修改。实际模型中需要传入一组数据,报错为 错误(205): 模块canWrite端口msg类型为Double, 相连模块busCreator端口y类型为msg_send, 不匹配。
想知道如何修改CCaller对话框中识别到的数据类型,如果CCaller对话框中无法修改数据类型的话,该如何解决该报错。

所属专栏:Sysblock基础平台
产品信息:Sysplorer系统建模仿真环境
系统建模

全部回答 1

发布于 2025-11-10 17:14:14

void在Sysblock中没有对应的类型,因此无法直接使用void类型。
若是想要使用结构体类型,则需要在C文件中使用确定的结构体类型作为函数形参,并用总线绑定该结构体。

CCaller中使用结构体目前有所限制,且需要一些额外的配置才可以使用
(1)结构体需要定义在头文件中,以便和总线关联;
(2)头文件需要防卫式声明,避免重复包含,导致报错;
(3)C函数中的形参需要时指针类型的参数,不支持非指针类型;
(4)使用结构体,要在数据管理器中声明同名Bus,并且需要元素一致,并且在代码生成页面绑定头文件
(5)结构体需要定义在头文件中,不不支持结构体放置在C文件中

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天