2016-06-15 2 views
0

저는 RedHawk 2.0.1을 centos6.5 x64 시스템에서 사용하고 있습니다.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() 

내가 와이어 샤크에서 패킷을 검사하여 유효성을 검사 할 수 있습니다 : 나는 그냥 벌금 rh.SinkVITA49 구성 요소를 불 수 있습니다. 그러나 수신기 rh.SourceVITA49에 대해 wireshark로 확인 된 포트 41001에 vita-49 (w VRL) 데이터 소스가 있지만 데이터를받을 수 없습니다. 설정은 다음과 같습니다

실행하는 것처럼 보이지만 거기에 데이터 흐름이없고 상태가
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 헤더가 코드에서 예상하는 바이트와 반대로되어 있다는 것이 었습니다. 헤더의 엔디안을 지정하는 최상위 속성을 추가하여 원래 동작을 선택적으로 복구 할 수 있습니다. –

답변

0

나는 그 구성 요소에 익숙하지 않지만 컨텍스트 패킷을 기다리고 있다고 가정 할 때 당신이 맞다고 생각합니다. true로 설정 내부적으로 설정 receivedContextPacket 부울없이 canProcessDataPacket 방법 here

가있는 것처럼 나타납니다 코드를 찾고, 다른 옵션은 true로 속성 VITA49Processing_override.enable을 설정하고 유효한 SRI와 구성 요소를 제공하는 것입니다 푸시. VITA49 구성 요소에 적절한 SRI를 보내거나 REDHAWK 서비스 나 샌드 박스를 통해 수행하는 더미 구성 요소를 만들 수 있습니다.

+0

그래, SRI도 대답의 일부였습니다. 구성 요소는 SRI가 수신 될 때까지 데이터 처리를 시작하지 않습니다. 저자는 컨텍스트 패킷이 SRI를 생성하기 위해 도착할 것이라고 가정합니다. 내 원본에는 컨텍스트 패킷이 없으므로 SRI를 강제 적용해야했습니다. 하지만 내 주요 문제는 내 vita - 49 소스 헤더가 구성 요소가 기대하는 바이트 스왑 그래서 그들은 그것을 해독 할 수없는 것입니다. –