frontend_tuner_status 在 Python FEI 中不起作用
frontend_tuner_status doesn't work in Python FEI
我在 Centos 6.5 中使用 Redhawk IDE 2.0.1。
如果我生成基于 Python 的 FEI,安装、运行、分配,然后尝试通过 IDE 中的属性选项卡更改 center_frequency 我得到错误:
无法更新设备属性:中心频率
执行可调用时出错。由 org.omg.CORBA.NO_IMPLEMENT 引起:服务器端异常:空 vmcid:0x41540000 次要代码:99 已完成:否
服务器端异常:null
我试过完全不同的系统,但我得到了相同的行为。
如果我对 C++ 项目做同样的事情,它工作正常。在我看来,2.0.1 中自动生成的 Python 代码被破坏了,好像它没有注册监听器?任何想法都会受到赞赏,因为这个应用程序对我来说在 Python 中更容易实施。谢谢
错误 org.omg.CORBA.NO_IMPLEMENT: Server-side Exception
是一个 CORBA 异常,表示 FEI 设备未实现 setTunerCenterFrequency
方法,尽管 FEI 设备具有 DigitalTuner 端口。 DigitalTuner IDL继承自AnalogTuner IDL,后者提供setTunerCenterFrequency
方法。 FEI DigitalTuner 端口的实现中一定存在错误。在 ${OSSIEHOME}/lib/python/frontend/input_ports.py
中,InDigitalTunerPort
没有继承自 InAnalogTunerPort
,setCenterFrequency
方法所在的位置。将其更改为以下应该可以解决此问题:
class InDigitalTunerPort(FRONTEND__POA.DigitalTuner, InAnalogTunerPort):
def __init__(self, name, parent=digital_tuner_delegation()):
InAnalogTunerPort.__init__(self, name, parent)
还有第二个问题。生成的基 class 实例化 DigitalTuner 端口而不传递对其自身(父项)的引用。您的 FEI 设备生成的基数 class 应从以下更改:
self.port_DigitalTuner_in = frontend.InDigitalTunerPort("DigitalTuner_in")
对此:
self.port_DigitalTuner_in = frontend.InDigitalTunerPort("DigitalTuner_in", self)
我在 Centos 6.5 中使用 Redhawk IDE 2.0.1。
如果我生成基于 Python 的 FEI,安装、运行、分配,然后尝试通过 IDE 中的属性选项卡更改 center_frequency 我得到错误:
无法更新设备属性:中心频率 执行可调用时出错。由 org.omg.CORBA.NO_IMPLEMENT 引起:服务器端异常:空 vmcid:0x41540000 次要代码:99 已完成:否 服务器端异常:null
我试过完全不同的系统,但我得到了相同的行为。
如果我对 C++ 项目做同样的事情,它工作正常。在我看来,2.0.1 中自动生成的 Python 代码被破坏了,好像它没有注册监听器?任何想法都会受到赞赏,因为这个应用程序对我来说在 Python 中更容易实施。谢谢
错误 org.omg.CORBA.NO_IMPLEMENT: Server-side Exception
是一个 CORBA 异常,表示 FEI 设备未实现 setTunerCenterFrequency
方法,尽管 FEI 设备具有 DigitalTuner 端口。 DigitalTuner IDL继承自AnalogTuner IDL,后者提供setTunerCenterFrequency
方法。 FEI DigitalTuner 端口的实现中一定存在错误。在 ${OSSIEHOME}/lib/python/frontend/input_ports.py
中,InDigitalTunerPort
没有继承自 InAnalogTunerPort
,setCenterFrequency
方法所在的位置。将其更改为以下应该可以解决此问题:
class InDigitalTunerPort(FRONTEND__POA.DigitalTuner, InAnalogTunerPort):
def __init__(self, name, parent=digital_tuner_delegation()):
InAnalogTunerPort.__init__(self, name, parent)
还有第二个问题。生成的基 class 实例化 DigitalTuner 端口而不传递对其自身(父项)的引用。您的 FEI 设备生成的基数 class 应从以下更改:
self.port_DigitalTuner_in = frontend.InDigitalTunerPort("DigitalTuner_in")
对此:
self.port_DigitalTuner_in = frontend.InDigitalTunerPort("DigitalTuner_in", self)