Hi,
I'm trying to do everything in c++ instead of using python. I've got it
working. Mostly. Well, sort of. I have a couple of questions about what
to do with the frequency correction messages coming from the fsk4demod
block.
I'm seeing a constant stream of frequency correction messages when there
is no signal present. They quickly cause the channel selection filter
I'm using to tune way off frequency.
If I don't process those messages I get voice output so I know
everything else is working. Some channels I tune to seem to work just
fine with out needing any tuning. But other times I see transmissions
where I don't get any voice output. I'm wondering if in those cases the
tuning is needed ?
In looking at the grc file it just subtracts the correction. When I look
at the uhd_p25_rx_gl.py file it's doing a calculation with the
correction and limiting it. Does one method work better than the other?
So, does anyone have any suggestions or any idea why I would be getting
a constant stream of the messages?
thanks,
Stephen
Hi,
Is it possible to use the op25 block from c++? I have it built and
working with GRC but now I would like to use it from a c++ program. I
looked but I could not find a library anywhere?
stephen
I was getting segmentation faults whenever starting to decode a P25 signal. (A stack trace is at the bottom of my message.) After a bit of investigating, I found that the value of the OldL variable in software_imbe_decoder was getting used before it was initialized. Adding OldL = 0 to the constructor got rid of the segfaults, but I don't understand the code well enough to know whether it's the correct fix.
Regards,
Clayton
----------
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `python ./top_block.py'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f6e2bcb15a3 in software_imbe_decoder::decode_spectral_amplitudes (this=0x39fa940,
Start3=<optimized out>, Start8=<optimized out>) at software_imbe_decoder.cc:1006
1006 for(ell = OldL + 1; ell <= L + 1; ell++) { log2Mu[ell][ Old] = log2Mu[OldL][ Old]; }
(gdb) i stack
#0 0x00007f6e2bcb15a3 in software_imbe_decoder::decode_spectral_amplitudes (this=0x39fa940,
Start3=<optimized out>, Start8=<optimized out>) at software_imbe_decoder.cc:1006
#1 0x00007f6e2bcb305d in software_imbe_decoder::decode_audio (this=0x39fa940, A=<optimized out>)
at software_imbe_decoder.cc:913
#2 0x00007f6e2bcb3747 in software_imbe_decoder::decode (this=0x39fa940, cw=...)
at software_imbe_decoder.cc:810
#3 0x00007f6e2bc9ea7b in voice_data_unit::do_decode_audio (this=<optimized out>, frame_body=...,
imbe=...) at voice_data_unit.cc:50
#4 0x00007f6e2bc98b01 in abstract_data_unit::decode_audio (this=0x7f6dc8000e10, imbe=...)
at abstract_data_unit.cc:61
#5 0x00007f6e2bc9ec0a in voice_du_handler::handle (this=0x39fdee0, du=...)
at voice_du_handler.cc:45
#6 0x00007f6e2bcad4f8 in op25_decoder_bf::receive_symbol (this=0x39fa4f0, d=2 '\002')
at op25_decoder_bf.cc:214
#7 0x00007f6e2bcad980 in op25_decoder_bf::general_work (this=0x39fa4f0, nof_output_items=16,
nof_input_items=..., input_items=..., output_items=...) at op25_decoder_bf.cc:86
#8 0x00007f6e31d09ae3 in gr_block_executor::run_one_iteration() ()
from /usr/local/lib/libgnuradio-core-3.6.1git.so.0.0.0
#9 0x00007f6e31d28d5d in gr_tpb_thread_body::gr_tpb_thread_body(boost::shared_ptr<gr_block>, int)
() from /usr/local/lib/libgnuradio-core-3.6.1git.so.0.0.0
#10 0x00007f6e31d23996 in boost::detail::function::void_function_obj_invoker0<gruel::thread_body_wrapper<tpb_container>, void>::invoke(boost::detail::function::function_buffer&) ()
from /usr/local/lib/libgnuradio-core-3.6.1git.so.0.0.0
#11 0x00007f6e31548a9e in boost::detail::thread_data<boost::function0<void> >::run() ()
from /usr/local/lib/libgruel-3.6.1git.so.0.0.0
#12 0x00007f6e30eebce9 in thread_proxy () from /usr/lib/libboost_thread.so.1.46.1
#13 0x00007f6e340e2e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#14 0x00007f6e32ed44bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#15 0x0000000000000000 in ?? ()