提交 714499a7 编写于 作者: M manjaro-xfce

UHD IO Burst Emit Test

上级 c97ae140
......@@ -530,6 +530,7 @@ int do_iio(const cmdlineParser & args)
tag_tx_plain * plan = (tag_tx_plain *) (packagedta.data());
if (total_points_left==-1)
total_points_left = plan->length_left;
//fprintf(stderr,"plan %d points\n",plan->length_left);
mtx_plan.lock();
tx_plan.push_back(*plan);
mtx_plan.unlock();
......@@ -541,6 +542,7 @@ int do_iio(const cmdlineParser & args)
}
else
{
//fprintf(stderr,"recv %d points\n",packagedta.size()/2/sizeof(SPTYPE));
for (int ch = 0; ch < tx_channel_count;++ch)
{
if (header.subject_id == i_wav_tx[ch])
......@@ -600,10 +602,11 @@ int do_iio(const cmdlineParser & args)
continue;
}
//突发模式数据不够
if (total_points_left >0 && tx_pos[ch] + (long long) (tx_sps_buff ) >= stdin_pos[ch]
&& tx_pos[ch] + (long long) (total_points_left ) >= stdin_pos[ch]
if (total_points_left >0 && tx_pos[ch] + (long long) (tx_sps_buff ) > stdin_pos[ch]
&& tx_pos[ch] + (long long) (total_points_left ) > stdin_pos[ch]
)
{
//fprintf(stderr,"total_points LESS! for %d points\n",total_points_left);
can_send = false;
continue;
}
......@@ -641,6 +644,7 @@ int do_iio(const cmdlineParser & args)
//First pack
if (plan->length_left==total_points_left)
{
//fprintf(stderr,"total_points start for %d points\n",total_points_left);
if (total_points_left <= (qint64)tx_sps_buff)
{
UHD_DO(uhd_tx_metadata_make(&tx_meta_burst,
......@@ -657,11 +661,15 @@ int do_iio(const cmdlineParser & args)
//Last pack
else if (total_points_left <= (qint64)tx_sps_buff)
{
//fprintf(stderr,"total_points end for %d points\n",total_points_left);
emit_points = total_points_left;
UHD_DO(uhd_tx_metadata_make(&tx_meta_burst,false,0,0,false,true));
}
else
{
//fprintf(stderr,"total_points middle for %d points\n",total_points_left);
UHD_DO(uhd_tx_metadata_make(&tx_meta_burst,false,0,0,false,false));
}
UHD_DO(uhd_tx_streamer_send(tx_streamer,
(const void **)tx_buff_ptr.data(),
......@@ -673,14 +681,18 @@ int do_iio(const cmdlineParser & args)
assert(total_points_left>=0);
if(total_points_left==0)
{
//fprintf(stderr,"total_points over\n");
mtx_plan.lock();
assert(tx_plan.size());
tx_plan.pop_front();
if (tx_plan.size())
total_points_left = tx_plan.front().length_left;
else
total_points_left = -1;
mtx_plan.unlock();
}
UHD_DO(uhd_tx_metadata_free(&tx_meta_burst));
//fprintf(stderr,"total_points left %d points\n",total_points_left);
}//end else if (total_points_left>0)
}//end while (!stop_signal_called)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册