【发布时间】:2016-01-14 22:22:08
【问题描述】:
所以我正在构建一个 redhawk 模块,并试图通过它传递数据作为测试。在将他们关于如何使用输入和输出端口的示例放入 serviceFunction() 之后,我能够毫无错误地构建模块(我更改了变量名称以匹配我的端口)。当我将模块放在白板上并将其链接起来时,它很好,但是一旦我启动模块,它就会崩溃。我添加了一行将传入的流 id 写入控制台,这将在崩溃前击中控制台 10 到 20 次(它正确地写入了提供信号的信号发生器的 id)。如果我绘制输出端口,则在崩溃之前没有绘制任何内容(当我说崩溃时,我的意思是模块刚刚从白板上消失,ide 仍然启动并运行)。
服务功能是:
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 的建议,我构建了一个 sig 生成器,并将这个组件构建成一个波形。从域启动它时出现错误:
2016-01-14 07:41:50,430 ERROR DCE:aa1a189e-0b5b-4968-9150-5fc3d501dadc{1}:1030 -
Child process 3772 terminated with signal 11
当试图重新启动组件时(因为它只是停止而不是消失)我收到以下错误:
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
【问题讨论】:
-
您是否尝试过进行相同的设置,但使用波形而不是黑板?
-
另外,您使用的是哪个版本的 REDHAWK?
-
不,我没有尝试过使用波形,但我会看看这是否会有所不同(如果确实如此,虽然它不是一个好的解决方案,因为它会增加模块开发的大量时间),目前我们只是在尝试构建我们需要的所有模块。 REDHAWK 的版本是 1.10 on cent os 6.7
标签: c++ redhawksdr