我已經成功安裝了REDHAWK 1.8.3版本的UHD設備。我不清楚如何將波形中的組件連接到設備管理器管理的設備。我還不清楚USRP設備上的IDL接口和數據端口之間的相互影響。REDHAWK UHD設備使用情況
我找不到一個簡單的例子來發送和接收使用USRP設備的波形(例如發送正弦波到USRP的信號發生器組件)。有沒有人有這方面的經驗或任何建議?
我已經成功安裝了REDHAWK 1.8.3版本的UHD設備。我不清楚如何將波形中的組件連接到設備管理器管理的設備。我還不清楚USRP設備上的IDL接口和數據端口之間的相互影響。REDHAWK UHD設備使用情況
我找不到一個簡單的例子來發送和接收使用USRP設備的波形(例如發送正弦波到USRP的信號發生器組件)。有沒有人有這方面的經驗或任何建議?
在運行環境中將組件連接到設備的一種方法是通過REDHAWK python模塊。它可以連接到正在運行的域,查詢任何啓動的應用程序,並將組件端口連接到設備。下面是一個例子Python腳本(請注意端口必須都爲了同類型的連接成功):
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')
有多種方式來完成這個取決於你的情況。這裏有幾個:
A.)問題:您在IDE中調試的問題並迅速要在設備端口連接到分量端口
解決方案:通過該組件和設備無論在任何域中運行或在沙箱中,在SCA資源管理器視圖中展開組件和設備以顯示端口。點擊輸出端口,然後按住Ctrl並點擊您想要連接的輸入端口。突出顯示兩個端口後,您現在可以右鍵單擊並選擇連接。
B.)問題:無論語言實現如何,您都需要一種將組件輸入端口連接到特定類型的設備輸出端口的通用方法,無論實現語言如何。
解決方案:這是一個多步驟的過程,起初並不那麼直觀。我建議您查看SCA規範頁面D-43,瞭解更多關於步驟10和更高版本的詳細信息。
1.)在您的編輯器中打開組件並導航到實現選項卡。
2)上執行右鍵單擊您想使用此連接(例如:Python)的
3)選擇新建 - >使用設備
4)生成(或進入)一個唯一的ID DCE此連接
5)輸入型「usesDevice」雖然我不是100%肯定,如果該類型的問題,我用usesDevice
6)在使用設備右鍵選擇新物業參考。您不會直接將組件X連接到設備Y,而是將組件X連接到符合此處設置的屬性限制的設備。即。型號,類型等
7.)在您的設備的屬性選項卡中,將device_kind或device_model的名稱字段等屬性設置爲您要匹配的內容。我們將以XYZ123爲例。保存並將其部署到SDR ROOT
8.)回到我們設置屬性Ref的組件中,選擇瀏覽並選擇您剛設置爲匹配屬性的設備上的屬性。
9.)將值設置爲您設置爲XYZ123的值。保存在您的波形現在部署構成元素
10),你需要手動編輯SAD文件並添加這樣的事情,在那裏[TEXT]]表示東西給你改變:
<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編輯器和虛擬組件連接到真正的構成元素只是讓您的SAD文件填入connectinterface塊,你可以看到一個連接的例子。
做出這些更改後,IDE可能會告訴您SAD文件中存在錯誤,無論如何保存,關閉SAD編輯器並重新打開。如果沒有顯示錯誤,那麼你的語法沒問題。部署波形並像往常一樣啓動。
C.)問題:您想通過REDHAWK之外的python腳本,REDHAWK中的python服務或通過波形中的python組件連接到設備。
解決方案:請參閱Adam的解決方案。