2013-05-15 3 views
1

Я успешно установил устройство UHD вместе с REDHAWK версии 1.8.3. Для меня не очевидно, как подключить компонент в форме волны к устройству, управляемому диспетчером устройств. Я также не понимаю, как взаимодействовать между интерфейсами IDL и портами данных на устройстве USRP.Использование устройства UHD REDHAWK

Мне не удалось найти тривиальный пример для отправки и получения сигнала, который использует устройство USRP (например, компонент генератора сигналов, отправляющий синусоидальную волну в USRP). У кого-нибудь есть опыт с этим или любыми предложениями?

ответ

5

Один из способов подключения компонента к устройству в рабочей среде - через модуль python REDHAWK. Он может подключаться к рабочему домену, запрашивать любые запущенные приложения и подключать порты от компонентов к устройствам. Ниже приведен пример питон скрипт (Обратите внимание на порты оба должны быть того же типа для того, чтобы соединение, чтобы преуспеть):

from ossie.utils import redhawk 
from ossie.cf import CF 

# Connect to the running domain 
domain = redhawk.attach("REDHAWK_DEV") 

# Gets a reference to the running application 
for app in domain.apps: 
    # Find desired application 
    if app.name == 'desired_name': 
     application = app 

# Gets the component from the application 
for comp in application.comps: 
    # Find desired component 
    if comp.name == 'desired_name': 
     component = comp 

# Gets the device to connect 
for devMgr in domain.devMgrs: 
    for dev in devMgr.devs: 
     # Find desired device 
     if dev.name = 'desired_name': 
      device = dev 

# Gets the references to the input and output ports 
comp_port = component.getPort('port_name')._narrow(CF.Port) 
dev_port = device.getPort('port_name') 

# Makes the actual connection 
comp_port.connectPort(dev_port, 'ConnectionID') 

# Make sure device is started 
device.start() 

# Start application 
application.start() 

# To disconnect: 
# Stop device and application 
application.stop() 
device.stop() 
comp_port.disconnectPort('ConnectionID') 
3

Есть несколько способов сделать это в зависимости от ситуации. Вот некоторые из них:

A.) Проблема: отладка проблемы в IDE и хотят быстро подключить порт устройства к компонентному порту

Решения: С помощью компонента и устройства и работает в любой области или в песочнице, разверните компонент и устройство в представлении Проводника SCA, чтобы открыть порты. Нажмите на выходной порт, затем нажмите Ctrl + щелкнуть на входном порту, к которому вы хотите подключиться. Выделив оба порта, вы можете щелкнуть правой кнопкой мыши и выбрать «Подключиться».

B.) Проблема. Вам необходим общий способ подключения входного порта компонентов, независимо от языка реализации, к выходному порту определенного типа устройств, независимо от реализации языка.

Решение: Это многоступенчатый процесс и не является интуитивным в первую очередь. Я рекомендую вам взглянуть на страницу спецификации SCA D-43 для получения дополнительной информации для шага 10 и далее ниже.

1.) Откройте компонент в редакторе и перейдите на вкладку «Реализации».

2.) Щелкните правой кнопкой мыши по реализации вы хотели бы использовать для этого соединения (напр., Питон)

3.) Выберите New-> Использование Device

4.) Создание (или введите) уникальный АКД ID для связи

5.) введите тип «usesDevice», хотя я не на 100% уверен, что если вопросы, типа, я использовал usesDevice

6.) щелкните правой кнопкой мыши на устройстве используется выберите новый Property Ref. Вы не будете напрямую подключать компонент X к устройству Y. Вместо этого вы подключаете компонент X к устройству, которое соответствует установленным здесь ограничениям свойств. то есть. модель, тип и т. д.

7.) На своем устройстве на вкладке свойств установите для свойства, например device_kind или device_model, имя, к которому вы хотите соответствовать. Скажем, XYZ123 для примера. Сохраните и разверните его в SDR ROOT

8.) В компоненте, где мы устанавливали свойство Ref, выберите пункт «Просмотр» и выберите свойство на устройстве, которое вы только что установили в качестве подходящего свойства.

9.) Установите значение в значение, которое вы установили для него XYZ123.Сохранить и развернуть Compnent

10.) Теперь в осциллограмме, вам нужно сдать редактировать SAD файл и добавить что-то вроде этого, где [[Текст]] указывает на что-то для вас, чтобы изменить:

<connections> 
<connectinterface id="[[Connection_Name]]"> 
    <usesport> 
    <usesidentifier>[[Output Port Name]]</usesidentifier> 
    <deviceusedbythiscomponentref refid="[[DCE matching the componentinstantiationID]]" usesrefid="[[DCE matching the generated ID from step 4]]"/> 
    </usesport> 
    <providesport> 
    <providesidentifier>[[Input Port Name]]</providesidentifier> 
    <componentinstantiationref refid="[[DCE matching the componentinstantiationID]]"/> 
    </providesport> 
</connectinterface> 

Я рекомендую вам добавить фиктивный компонент к вашей SAD редактору и подключить фиктивный компонент к реальному Compnent только поэтому ваш SAD файл заполняется с блоком connectinterface, и вы можете увидеть пример подключения.

После внесения этих изменений среда IDE может сообщить вам о наличии ошибки в вашем SAD-файле, сохранить в любом случае, закрыть редактор SAD и снова открыть его. Если ошибка не отображается, ваш синтаксис прекрасен. Разверните форму волны и начните, как обычно.

C.) Проблема: вы хотите подключиться к устройству через скрипт python вне REDHAWK, службы python в REDHAWK или через компонент python в вашей форме сигнала.

Решение: См. Решение Адама.

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