2016-06-15 4 views
0

Я использую Redhawk 2.0.1 на системе centos6.5 x64. Я могу запустить компонент rh.SinkVITA49 просто отлично с:Redhawk rh.sourceVITA49 использование компонента

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 (проверен с помощью wirehark), но я не могу получить никаких данных. Установка:

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 

Я предполагаю, что этот вопрос он ждет контекстных пакетов, прежде чем начать Получать? Мой поток не имеет пакетов контекста, поэтому мне придется заставить это, если есть способ. Спасибо

+0

Оказалось, что основная проблема заключалась в том, что заголовки vita-49 в моем источнике поменялись байтами относительно того, что ожидает код. Я добавил свойство верхнего уровня, чтобы указать endianess заголовков, чтобы я мог по желанию восстановить исходное поведение. –

ответ

0

Я не очень хорошо знаком с этим компонентом, но считаю, что вы правы в своем предположении, что он ждет пакет контекста. Просматривая код он появляется, как будто существует метод canProcessDataPacket here

Без внутренне установленного receivedContextPacket булева значения ИСТИНЫ, ваш другой вариант установить свойство VITA49Processing_override.enable истину и обеспечить компонент с действительным SRI От себя. Вы можете создать фиктивный компонент, который ничего не делает, кроме как нажать соответствующий SRI на компонент VITA49 или сделать это через службу REDHAWK или через песочницу.

+0

Да, SRI тоже был частью ответа. Компонент не начнет обработку данных до тех пор, пока не будет получен SRI. Я думаю, что автор предполагает, что пакет контекста прибудет для создания этого SRI. Поскольку у моего источника нет пакетов контекста, мне приходилось принудительно вводить SRI. Но моя основная проблема заключается в том, что мои заголовки vita-49 байтов заменены по сравнению с тем, что ожидает компонент, поэтому он не смог их декодировать. –

Смежные вопросы