我正在浏览Redhawk SDR框架的源代码,并希望将其升级以支持SCA 4.1规范。它已经部分符合SCA 2.2.2版本。
i具有SCA 4.1接口的IDL说明,并使用具有C 映射的OmniorB IDL编译器编译它们。骨骼和存根代码适当生成。现在我想了解如何做以下操作:
-
将这些生成的骨骼和存根代码放在哪里redhawk源代码。
-
根据这些骨架放置服务器和客户端代码的位置Redhawk源代码中的存根代码
-
我还想按照SCA 4.1中指定的升级升级,并在链接https://www.omg.org/spec/spec/ltlog/1.1.1/pdf上找到。在这里,我再次生成了骨架和存根代码,但不知道如何进一步进行。
-
我缺少某些东西(或很多(。
任何指针都会有所帮助。请要求我在学习阶段所没有包含的任何信息。
redhawk是SCA 2.2.2的扩展,而不是其实现。因此,IDL并不是行为的完整映射,因此,即使切换接口,您也会遇到基础行为不匹配的问题。另外,Redhawk将XML配置文件扩展到包括复杂的基本类型和序列作为结构的成员之类的东西,这些内容不是SCA 4.1的一部分。
您还建议您将日志记录从log4cxx/log4j切换到cos轻量级记录。伐木嵌入了几乎整个代码库的基础类别,并替换它将是一个重大的挑战
作为您正在考虑的努力水平的指南,请查看:https://github.com/geontech/sca-jtnc。该项目修改了Redhawk,以实现Python Sandbox,代码生成器,设备/组件基类的子集以及转换器的SCA 4.1规格,以将Redhawk项目转换为SCA 4.1项目。它必须从Redhawk导入多个接口,并且不包括任何系统服务(例如域管理器(或IDE的任何更新。该项目可以为您提供一个工作的起点,以使您朝着正确的方向前进,并且还应该为您提供一些洞察变更所需的努力水平。
编写非常最小的coslwlogservice实现非常容易,该实现支持仅支持write_records,write_record。我选择将其写为log4cxx的前端。这允许应用程序进行标准的coslwlog调用,以及要打印到Redhawk Core Framework使用的相同日志文件的条目(或重定向为Log4CXX允许(。我直接在平台设备和服务中使用Log4CXX调用,但这允许SCA应用程序仅使用标准Coslwlog调用。当然,支持Coslwlog的更复杂功能是更多的工作,但是SCA应用程序通常不需要这些功能。