Redhawk rh.sourceVITA49组件用法

时间:2016-06-15 19:05:22

标签: redhawksdr

我在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

我猜测问题是在开始接收之前是否在等待上下文数据包?我的流没有上下文数据包所以如果有办法,我将不得不强迫它。感谢

1 个答案:

答案 0 :(得分:0)

我对该组件不是很熟悉,但我相信你假设它正在等待上下文数据包是正确的。查看代码时,似乎有一个canProcessDataPacket方法here

如果没有将内部设置的receivedContextPacket布尔值设置为true,则另一个选项是将属性VITA49Processing_override.enable设置为true并为组件提供有效的SRI推送。您可以创建一个虚拟组件,除了将正确的SRI推送到VITA49组件或通过REDHAWK服务或通过沙箱执行此操作之外什么都不做。