因此,我構建了一個redhawk模塊,並試圖通過它傳遞數據作爲測試。將他們的輸入和輸出端口如何使用到serviceFunction()中後,我能夠無誤地構建模塊(我更改了變量名稱以匹配我的端口)。當我將模塊放在白板上並將其連接起來時,它很好,但是一旦我啓動模塊,它就會崩潰。我添加了一行將輸入的流ID寫入控制檯,並且在崩潰之前將控制檯命中10到20次(它正確地寫入了提供信號的信號發生器的ID)。如果我繪製輸出端口,在崩潰之前沒有繪製任何內容(當我說崩潰時,我的意思是模塊剛剛從白板上消失,ide仍然在運行)。redhawk模塊服務功能使用示例崩潰
的服務功能是:
int freqModFrTest_i::serviceFunction()
{
bulkio::InFloatPort::dataTransfer *tmp = dataFloatIn->getPacket(bulkio::Const::BLOCKING);
if (not tmp) { // No data is available
return NOOP;
}
else
{
std::cout<<tmp->streamID<<std::endl;
std::vector<float> outputData;
outputData.resize(tmp->dataBuffer.size());
for (unsigned int i=0; i<tmp->dataBuffer.size(); i++) {
outputData[i] = (float)tmp->dataBuffer[i];
}
// NOTE: You must make at least one valid pushSRI call
if (tmp->sriChanged) {
ComplexOut->pushSRI(tmp->SRI);
}
ComplexOut->pushPacket(outputData, tmp->T, tmp->EOS, tmp->streamID);
delete tmp; // IMPORTANT: MUST RELEASE THE RECEIVED DATA BLOCK
return NORMAL;
}
}
有沒有人也有類似的問題,或者什麼會導致此任何想法?
附加信息:
繼pwolfram對策的探討我建了一個簽名發生器和該組件爲波形。當從一個域啓動它,我得到了錯誤:
2016-01-14 07:41:50,430 ERROR DCE:aa1a189e-0b5b-4968-9150-5fc3d501dadc{1}:1030 -
Child process 3772 terminated with signal 11
嘗試重新啓動組件(因爲它只是採空而不是disapering)我收到以下錯誤時:
Error while executing callable. Caused by org.omg.CORBA.TRANSIENT:
Retries exceeded, couldn't reconnect to 10.62.7.21:56857
Retries exceeded, couldn't reconnect to 10.62.7.21:56857
您是否嘗試過使用相同的設置,但使用波形而不是黑板? – pwolfram
另外,您正在使用哪個版本的REDHAWK? – pwolfram
不,我沒有嘗試過使用波形,但我會看看是否有所作爲(如果它確實不是一個好的解決方案,因爲它會爲模塊開發增加很多時間),現在我們只是試圖獲得我們需要構建的所有模塊。 REDHAWK的版本是1.10上6.7 – James