我正在使用Redhawk 1.9。我创建了一个由虚拟组件使用的虚拟设备。我有一个包含虚拟设备的虚拟节点。具有虚拟分量的虚拟波形。我有两个问题:
信息:DeviceManager - 使用/nodes/DummyNode/DeviceManager.dcd.xml启动设备管理器 信息:DeviceManager_impl - 连接到域管理器REDHAWK_DEV / REDHAWK_DEV 信息:DeviceManager - 启动ORB! 警告:Device_impl - 无法连接到IDM通道 信息:DeviceManager_impl - 在设备管理器DummyNode上注册设备DummyDevice_1 信息:DeviceManager_impl - 在设备管理器DummyNode上初始化设备DummyDevice_1 信息:DeviceManager_impl - 在域管理器上注册设备DummyDevice_1
当我从IDE启动虚拟波形时,我收到invalidCapacity错误消息。虚拟组件使用虚拟设备。它查找属性device_kind = dummy_device_kind。我重写了DummyDevice中的allocateCapacity方法以返回true。我在python命令行中检查dummyDevice,并且allocateCapacity返回true。
错误讯息:
NFO:DomainManager_impl - Installing application /waveforms/DummyWaveform/DummyWaveform.sad.xml
DEBUG:ComponentInfo - Loading component properties from /components/DummyComponent/DummyComponent.prf.xml
DEBUG:ComponentInfo - Parsing component properties
DEBUG:ApplicationFactory_impl - UsesDevice Impl Vec of length 1
DEBUG:ComponentImplementationInfo - Attempting to match allocation properties
DEBUG:ComponentImplementationInfo - Trying to match for property id DCE:cdc5ee18-7ceb-4ae6-bf4c-31f983179b4d
DEBUG:ComponentImplementationInfo - It's a matching prop
DEBUG:ApplicationFactory_impl - Trying to find the device
DEBUG:ApplicationFactory_impl - Device Allocation Failed.. need to clean up
DEBUG:ApplicationFactory_impl - --FAILED-- Allocation of component's implementation cpp of DummyComponent_1. Undoing allocate devices
ERROR:ApplicationFactory_impl - The following CORBA exception occurred: InvalidCapacity while creating the application
INFO:DomainManager_impl - Uninstalling application DCE:8d0a6e63-24f6-4766-9a3f-7db7fd516078
答案 0 :(得分:0)
就您的活动频道问题而言,请仔细检查您的域管理员的启动消息。例如,当我在没有运行omniEvents的情况下启动域管理器时,我看到:
$ nodeBooter -D
INFO:DomainManager - Starting Domain Manager
WARN:EventChannelSupport - Event channel REDHAWK_DEV.ODM_Channel not created
WARN:EventChannelSupport - Event channel REDHAWK_DEV.IDM_Channel not created
INFO:DomainManager - Starting ORB!
如果omniEvents出现,但域似乎仍然无法创建事件通道,您可以尝试重置omniEvents。请参阅文档的Appendix H, Section 6。
如果您没有看到来自域管理员的警告消息,那么我将使用nameclt来验证您的域中是否显示了事件渠道,例如:
$ nameclt list REDHAWK_DEV
ODM_Channel
IDM_Channel
REDHAWK_DEV
您还可以使用eventviewer来帮助调试/查看事件。根据事件通道是否已注册,您可以看到:
$ eventviewer REDHAWK_DEV IDM_Channel
Receiving events. Press 'enter' key to exit
如果事情有效,或者如果没有:
$ eventviewer REDHAWK_DEV IDM_Channel
No such channel exists