我正在研究REDHAWK SDR框架的源代码,并希望对其进行升级以支持SCA 4.1规范。它已经部分兼容SCA 2.2.2版本。
我具有SCA 4.1接口的IDL描述,并使用具有C ++映射的omniORB IDL编译器对其进行了编译。框架代码和存根代码已正确生成。现在,我想了解如何执行以下操作:
将这些生成的框架代码和存根代码放在哪里 REDHAWK源代码。
根据这些框架在哪里放置服务器和客户端代码 和代码段在redhawk源代码中
我还想升级到SCA 4.1中指定的日志记录,该记录可以在链接https://www.omg.org/spec/LtLOG/1.1/PDF上获得。在这里,我再次生成了框架代码和存根代码,但不知道如何继续。
我错过了什么(或很多)。
任何指针都将对您有所帮助。请问我是否还在学习阶段,请提供我没有提供的任何信息。
答案 0 :(得分:0)
REDHAWK是SCA 2.2.2的扩展,而不是其实现。因此,IDL并不是行为的完整一对一映射,因此,即使在切换接口时,也会遇到基本行为不匹配的问题。此外,REDHAWK扩展了XML概要文件,以将诸如复杂的基本类型和序列之类的内容作为结构的成员包括在内,这不是SCA 4.1的一部分。
您还建议将日志记录从log4cxx / log4j切换到cos轻量级日志记录。日志记录几乎嵌入了整个代码库的基类中,而将其替换将是一个巨大的挑战
作为正在考虑的工作水平的指南,请查看:https://github.com/Geontech/sca-jtnc。该项目修改了REDHAWK,以针对Python沙箱,代码生成器,设备/组件基类的子集以及将REDHAWK项目转换为SCA 4.1项目的转换器来实现SCA 4.1规范。它必须从REDHAWK导入多个接口,并且不包括任何系统服务(例如Domain Manager)或对IDE的任何更新。该项目可以为您提供一个正确的起点,使您朝正确的方向前进,并且还应该使您对更改所需的工作水平有一些了解。
答案 1 :(得分:0)
编写非常小的CosLwLogService实现非常容易,该实现仅支持write_records和write_record。我选择写一个作为log4cxx的前端。这允许应用程序进行标准的CosLwLog调用,并使条目打印到redhawk核心框架使用的相同日志文件(或在log4cxx允许的情况下重定向)。我直接在平台设备和服务中使用log4cxx调用,但这使SCA应用程序只能使用标准的CosLwLog调用。当然,要支持CosLwLog的更复杂的功能还需要做很多工作,但是SCA应用程序并不需要这些功能。