如何允许设备支持rx_digitizer和rx_digitizer_channelizer的分配
How to allow device to support allocations for both RX_DIGITIZER and RX_DIGITIZER_CHANNELIZER?
我正在使用CentOS 6.6(64位)和RH 1.10.2
我有一个波形,它需要FRONTEND::TUNER
类型的CC_1设备。我还有一个基于1.10.2的设备,即RX_DIGITIZER_CHANNELIZER
。该设备具有波形所需的所有功能,但是波形由于具有不同的调谐器类型而不会使用它。
我看到它没有选择,因为我的设备继承的FrontendTunerDevice<TunerStatusStructType>::allocateCapacity()
(在fe_tuner_device.cpp
中)在tuner_type
上寻找了一个精确的匹配。
我没有看到任何优雅的方式。这是我可以看到的两种不优雅的方式。
我可以完全覆盖allocateCapacity
,并重复其逻辑的95%,但明确接受两种调谐器类型。
或者我可以在传递到超类方法之前覆盖allocateCapacity
并修改功能。在伪代码中:
CORBA::Boolean MyDevice::allocateCapacity(const CF::Properties & capacities)
{
if ( capacities ask for RX_DITIGIZER ) {
CF::Properties caps = capacities;
change type to RX_DITIGIZER_CHANNELIZER
return super::allocateCapacity(caps);
} else {
return super::allocateCapacity(capacities);
}
}
有更好的方法吗?
redhawk用户手册附录E中概述的前端接口规范是指南,并且已知Redhawk设备开发人员以不同的方式解释。在您的情况下,最简单的解决方案是将波形中的分配更改为rx_digitizer_channelizer并将侦听器连接到设备,假设设备具有输出宽带数据(RX_Digitizer)的能力。否则,您建议的方法是正确的,同时请记住,如果用户分配了该设备的通道器部分,则必须执行适当的簿记。
有关更多信息,请参阅前端调谐器类型的E.2节。
相关文章:
- ReactiveX (rx) - 在对象上应用可观察对象,而不是在可观察对象中创建对象
- 使用硬件 RX 引脚作为 arduino 的中断引脚
- 网卡的 TX/RX 缓冲区中的数据如何传输到 dpdk 环形缓冲区而不是内核环形缓冲区
- 在自定义 C/C++ 程序中获取 PPP0 接口 Tx/Rx 字节的最简单方法是什么?
- 我正在开发Arduino Uno。错误:开关外壳的"'RX' not declared in the scope."和"duplicate case value"
- 有没有一种干净的方法来禁用莱昂纳多的USBCore的RX控制
- 使用 std::正则表达式进行简单的 RX 是一种很好的做法
- UDP TX/RX 中的套接字错误
- Rx缓冲区Winsock套接字编程C++.如何清除RX缓冲区
- RX通道超出配置的RX前端的范围