Redhawk rh.sourceVITA49组件使用
Redhawk rh.sourceVITA49 component usage
我在 centos6.5 x64 系统上使用 Redhawk 2.0.1。我可以通过以下方式启动 rh.SinkVITA49 组件:
from ossie.utils import sb
dst= sb.launch("rh.SinkVITA49",execparams={"DEBUG_LEVEL":4} )
dst.api()
dst.network_settings.interface="eth3"
dst.network_settings.enable=True
dst.network_settings.ip_address="192.168.0.3"
dst.advanced_configuration.force_transmit=True
siggen = sb.launch("rh.SigGen")
siggen.api()
siggen.connect(dst,usesPortName="dataShort_out")
sb.start()
我可以通过检查 wireshark 中的数据包来验证。但是,对于接收器 rh.SourceVITA49,我有一个 vita-49 (w VRL) 数据源在端口 41001 上(使用 wireshark 验证),但我无法接收任何数据。设置是:
from ossie.utils import sb
src = sb.launch("rh.SourceVITA49",execparams={"DEBUG_LEVEL":4})
src.api()
src.attachment_override.enabled=True
src.interface="eth0"
src.interface="eth1"
src.attachment_override.ip_address="192.168.2.10"
src.attachment_override.port=41001
src.VITA49Processing_override.enable=True
src.VITA49Processing_override.VRL_frames=True
src.VITA49Processing_override.vector_size=1024
src.advanced_configuration.vita49_packet_size=4136
sb.IDELocation("/usr/local/redhawk/ide/2.0.1/")
plot=sb.Plot()
src.connect(plot,usesPortName="dataShort_out")
sb.start()
src.api()
出现在运行但没有数据流,状态为:
>>> src.api()
Component [rh.SourceVITA49]:
Provides (Input) Ports ==============
Port Name Port Interface
--------- --------------
dataVITA49_in IDL:BULKIO/dataVITA49:1.0
Uses (Output) Ports ==============
Port Name Port Interface
--------- --------------
dataUshort_out IDL:BULKIO/dataUshort:1.0
dataChar_out IDL:BULKIO/dataChar:1.0
dataDouble_out IDL:BULKIO/dataDouble:1.0
dataFloat_out IDL:BULKIO/dataFloat:1.0
dataOctet_out IDL:BULKIO/dataOctet:1.0
dataShort_out IDL:BULKIO/dataShort:1.0
Properties ==============
Property Name (Data Type) [Default Value] Current Value
------------- ----------- --------------- -------------
interface (string) eth1 eth1
attachment_override (struct)
enabled (boolean) False True
ip_address (string) 127.0.0.1 192.168.2.10
vlan (ushort) 0 0
use_udp_protocol (boolean) True True
port (long/SL/32t) 12344 41001
connection_status (struct)
input_enabled (boolean) None True
data_throughput (double/SD/64f) None 0.0
input_sample_rate (double/SD/64f) None 0.0
input_port (ushort) None 41001
packets_missing (ulong) None 0
waiting_for_context_packet (boolean) None True
input_ip_address (string) None 192.168.2.10
input_vlan (ushort) None 0
VITA49Processing_override (struct)
VRL_frames (boolean) False True
repeating (ulong) 1 1
event_tag_size (ulong) 0 0
channel_tag_size (ulong) 0 0
data_item_format (longlong) 3 3 (enum=DataType_int16)
vector_size (ulong) 1 1024
processing_efficient (boolean) True True (enum=processing_efficient)
enable (boolean) False True
real_complex_type (long/SL/32t) 1 1 (enum=complexCartesian)
advanced_configuration (struct)
vita49_packet_size (ulong) 1500 4136
buffer_size (long/SL/32t) 4096000 4096000
poll_in_time (ulong) 100 100
corba_transfersize (ulong) 0 0
我猜问题是在开始接收之前等待上下文数据包?我的流没有上下文数据包,所以如果有办法,我将不得不强制执行。谢谢
我不太熟悉该组件,但我相信您关于它正在等待上下文数据包的假设是正确的。查看代码似乎有一个 canProcessDataPacket 方法 here
如果没有将内部设置的 receivedContextPacket 布尔值设置为 true,您的另一个选择是将 属性 VITA49Processing_override.enable 设置为 true 并为组件提供有效的 SRI 推送。您可以创建一个虚拟组件,它除了将正确的 SRI 推送到 VITA49 组件之外什么都不做,或者通过 REDHAWK 服务或沙箱来执行此操作。
我在 centos6.5 x64 系统上使用 Redhawk 2.0.1。我可以通过以下方式启动 rh.SinkVITA49 组件:
from ossie.utils import sb
dst= sb.launch("rh.SinkVITA49",execparams={"DEBUG_LEVEL":4} )
dst.api()
dst.network_settings.interface="eth3"
dst.network_settings.enable=True
dst.network_settings.ip_address="192.168.0.3"
dst.advanced_configuration.force_transmit=True
siggen = sb.launch("rh.SigGen")
siggen.api()
siggen.connect(dst,usesPortName="dataShort_out")
sb.start()
我可以通过检查 wireshark 中的数据包来验证。但是,对于接收器 rh.SourceVITA49,我有一个 vita-49 (w VRL) 数据源在端口 41001 上(使用 wireshark 验证),但我无法接收任何数据。设置是:
from ossie.utils import sb
src = sb.launch("rh.SourceVITA49",execparams={"DEBUG_LEVEL":4})
src.api()
src.attachment_override.enabled=True
src.interface="eth0"
src.interface="eth1"
src.attachment_override.ip_address="192.168.2.10"
src.attachment_override.port=41001
src.VITA49Processing_override.enable=True
src.VITA49Processing_override.VRL_frames=True
src.VITA49Processing_override.vector_size=1024
src.advanced_configuration.vita49_packet_size=4136
sb.IDELocation("/usr/local/redhawk/ide/2.0.1/")
plot=sb.Plot()
src.connect(plot,usesPortName="dataShort_out")
sb.start()
src.api()
出现在运行但没有数据流,状态为:
>>> src.api()
Component [rh.SourceVITA49]:
Provides (Input) Ports ==============
Port Name Port Interface
--------- --------------
dataVITA49_in IDL:BULKIO/dataVITA49:1.0
Uses (Output) Ports ==============
Port Name Port Interface
--------- --------------
dataUshort_out IDL:BULKIO/dataUshort:1.0
dataChar_out IDL:BULKIO/dataChar:1.0
dataDouble_out IDL:BULKIO/dataDouble:1.0
dataFloat_out IDL:BULKIO/dataFloat:1.0
dataOctet_out IDL:BULKIO/dataOctet:1.0
dataShort_out IDL:BULKIO/dataShort:1.0
Properties ==============
Property Name (Data Type) [Default Value] Current Value
------------- ----------- --------------- -------------
interface (string) eth1 eth1
attachment_override (struct)
enabled (boolean) False True
ip_address (string) 127.0.0.1 192.168.2.10
vlan (ushort) 0 0
use_udp_protocol (boolean) True True
port (long/SL/32t) 12344 41001
connection_status (struct)
input_enabled (boolean) None True
data_throughput (double/SD/64f) None 0.0
input_sample_rate (double/SD/64f) None 0.0
input_port (ushort) None 41001
packets_missing (ulong) None 0
waiting_for_context_packet (boolean) None True
input_ip_address (string) None 192.168.2.10
input_vlan (ushort) None 0
VITA49Processing_override (struct)
VRL_frames (boolean) False True
repeating (ulong) 1 1
event_tag_size (ulong) 0 0
channel_tag_size (ulong) 0 0
data_item_format (longlong) 3 3 (enum=DataType_int16)
vector_size (ulong) 1 1024
processing_efficient (boolean) True True (enum=processing_efficient)
enable (boolean) False True
real_complex_type (long/SL/32t) 1 1 (enum=complexCartesian)
advanced_configuration (struct)
vita49_packet_size (ulong) 1500 4136
buffer_size (long/SL/32t) 4096000 4096000
poll_in_time (ulong) 100 100
corba_transfersize (ulong) 0 0
我猜问题是在开始接收之前等待上下文数据包?我的流没有上下文数据包,所以如果有办法,我将不得不强制执行。谢谢
我不太熟悉该组件,但我相信您关于它正在等待上下文数据包的假设是正确的。查看代码似乎有一个 canProcessDataPacket 方法 here
如果没有将内部设置的 receivedContextPacket 布尔值设置为 true,您的另一个选择是将 属性 VITA49Processing_override.enable 设置为 true 并为组件提供有效的 SRI 推送。您可以创建一个虚拟组件,它除了将正确的 SRI 推送到 VITA49 组件之外什么都不做,或者通过 REDHAWK 服务或沙箱来执行此操作。