我正在尝试在 REDHAWK 1.9 中创建具有单个 Java 实现的可执行设备。
在 REDHAWK IDE 中,我使用File > New > SCA Device Project,然后在 Device 下拉列表中选择Executable。对于语言,我选择Java和使用模板Pull Port Data的生成器Java Code Generator。
当我在 IDE 中创建设备并生成代码时,它只会扩展Device
,而后者又只实现CF.DeviceOperations
. 我本来期望一个可执行设备来扩展实现的东西CF.ExecutableDeviceOperations
。查看github上的源代码,似乎没有 Java Executable 实现。
我可以在设备管理器中运行 Java 设备,但是当我尝试启动波形时,域管理器会打印错误:
Device <id> is not loadable
查看源代码,这似乎发生在应用程序工厂中,当它试图将设备缩小到可加载设备时。我的理解是,为了运行组件,设备必须是可加载和可执行的,所以如果实现实际上没有实现这些方法,那么它在这里失败是有道理的。
如果我将实现更改为 C++,生成的代码会扩展一个ExecutableDevice_impl
实现这些功能的代码,我可以使用它从波形中成功加载和执行组件。
所有这一切让我相信,REDHAWK 1.9 没有提供可执行设备的 Java 实现。这个对吗?目前正在开发中吗?我不需要自定义 GPP 为我们的硬件提供的任何方法,因此理想情况下,如果存在这样的实现,我会重用它。