1

我正在浏览 REDHAWK SDR 框架的源代码,并希望对其进行升级以支持 SCA 4.1 规范。它已经部分符合 SCA 2.2.2 版本。

我有 SCA 4.1 接口的 IDL 描述,并使用带有 C++ 映射的omniORB IDL 编译器编译它们。骨架和存根代码已正确生成。现在我想了解如何执行以下操作:

  1. 这些生成的骨架和存根代码在 REDHAWK 源代码中的位置。

  2. 基于这些骨架和存根代码的服务器和客户端代码在redhawk源代码中的放置位置

  3. 我还想升级到 SCA 4.1 中指定的日志记录,可从链接https://www.omg.org/spec/LtLOG/1.1/PDF获得。在这里,我再次生成了骨架和存根代码,但不知道如何进一步进行。

  4. 我错过了什么(或很多)。

任何指示都会有所帮助。请询问我未包含的任何信息,因为我也处于学习阶段。

4

2 回答 2

0

编写一个仅支持 write_records、write_record 的极小化 CosLwLogService 实现相当容易。我选择写一个作为 log4cxx 的前端。这允许应用程序进行标准 CosLwLog 调用,并将条目打印到 redhawk 核心框架使用的相同日志文件(或在 log4cxx 允许的情况下重定向)。我直接在我的平台设备和服务中使用 log4cxx 调用,但这允许 SCA 应用程序仅使用标准 CosLwLog 调用。当然,支持 CosLwLog 更复杂的功能需要做更多的工作,但 SCA 应用程序并不经常需要这些功能。

于 2019-12-18T17:16:22.057 回答
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 导入多个接口,并且不包括任何系统服务(如域管理器)或对 IDE 的任何更新。该项目可以为您提供一个工作起点,让您朝着正确的方向前进,它还应该让您对变革所需的努力程度有所了解。

于 2019-08-01T18:50:01.503 回答