Hi group im trying to compile wireshark from the files section but i keep getting errors. My system is Ubuntu 11.10 and the error i get is after the "make" cmd.
--------------------
wiretap/.libs/libwiretap.so: undefined reference to `g_list_foreach'
collect2: ld returned 1 exit status
make[2]: *** [randpkt] Error 1
make[2]: Leaving directory `/home/allan/wireshark/1.0.2-patched'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/allan/wireshark/1.0.2-patched'
make: *** [all] Error 2
allan@gnuradio:~/wireshark/1.0.2-patched$
-----------------
And on a side not once i have wireshark installed and running if i just run the sample p25 flowchart in gr-baz should that pipe the date to wireshark?
Thanks
Al
Recently did a clean install from source and had a few minor issues which I thought I'd write up here. Machine is a 32 bit Ubuntu 11.04 install (and yes, the "unity" UI is truly as bad as they said)...
First, the following packages need to be included in the list of pre-req stuff installed via apt-get :
libpcap0.8-dev
cmake
Second apparently the newer versions of GR or SWIG have a new gruel library, causing a compile time error which I fixed by appending the path to this new library (file Makefile.common) as follows
SWIGGRFLAGS = -I$(GNURADIO_CORE_INCLUDEDIR)/swig -I$(GNURADIO_CORE_INCLUDEDIR) -I/usr/local/include/gruel/swig
This addition was needed for both the repeater and gr-fsk4 projects.
Third (for those of us dinosaurs still using the original gr-fsk4 sources) there were a few source modules that were failing on a missing printf definition, I fixed by adding
#include <stdio.h>
as necessary...
Best
Max
Yes, valve is the block I was looking for. But, first try did not turn well: it works for a while, turning channels on and off, but after 10-100 switches something goes wrong and I get OOOOO. Experiments with dynamic reconfiguration gave me the same results (+memory leak, is there way to tell from python to release block memory after disconnect?). Maybe it's related to threading, as I turn valves on/off from separate thread. I'll try this again in some days.
Regarding the code: right not it's no more than a heap of proof-of-concept python code not tightly connected to gnuradio. Gnuradio part consists of application with multiple channels. Each channel is xlating fir -> quadrature demod -> symbol filter -> fsk4_demod -> slicer -> frame assembler --msg queue--> custom UDP sender (it adds frequency id to udp packet).
And there are standalone python program which receives UDP frames and stores it in db-like format. Further programs work on this files in pure python.
I'll release code in some days after I clean it up a little.
Best regards,
Dmitry
________________________________
From: Matt Mills <mmills(a)2bn.net>
To: qaghqga(a)yahoo.com
Sent: Tuesday, July 31, 2012 2:20 PM
Subject: Re: [op25-dev] Control channel decoding
Dmitry,
I'd suggest using a valve or stream selector for that. Do you have any interest in sharing your source code?
Thanks,
Matt.
On Tue, Jul 31, 2012 at 2:09 AM, Dmitry Medvedev <qaghqga(a)yahoo.com> wrote:
>
>I'm writing multichannel p25 recorder. It mostly works (thanks to op25 team and other contributors). Is there any open documentation on control channel messages, especially TSBK frames? I did trellis
decoding and CRC algorithm (reverse engineered the later, as I couldn't
find parameters). I understand structure of some messages, for example
"Group Voice Channel Grant Update" (opcode 02, manufacturer id 00), but
many opcodes remain unknown. Do you have any leads on this?
>
>Also, I'm
not very familiar with gnuradio, is there way to place some kind of
"gate" in flowgraph so some parts of it can be switched on/off by
external event? I want to use such feature to gate voice channels on/off and do not waste processor cycles on filtering channels that do not
carry traffic at the moment.
>
>
>Best regards,
>Dmitry
>
>
I'm writing multichannel p25 recorder. It mostly works (thanks to op25 team and other contributors). Is there any open documentation on control channel messages, especially TSBK frames? I did trellis
decoding and CRC algorithm (reverse engineered the later, as I couldn't
find parameters). I understand structure of some messages, for example
"Group Voice Channel Grant Update" (opcode 02, manufacturer id 00), but
many opcodes remain unknown. Do you have any leads on this?
Also, I'm
not very familiar with gnuradio, is there way to place some kind of
"gate" in flowgraph so some parts of it can be switched on/off by
external event? I want to use such feature to gate voice channels on/off and do not waste processor cycles on filtering channels that do not
carry traffic at the moment.
Best regards,
Dmitry
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 ?? ()
Hi,
I'm having a problem running usrp_p25_rx.py. I've never done anything with op25 before. I followed the build instructions on the wiki at op25.osmocom.org/wiki. I had the same issue that I saw a couple other people post about with adding an include of stddef.h to op25.cc. After that everything built as far as I can tell.
I'm using ubuntu 12.04 x64 and gnuradio 3.6
If anyone has any idea what to look at it would be appreciated.
thanks,
When I try to run usrp_p25_rx.py I get the following error:
Traceback (most recent call last):
File "./usrp_p25_rx.py", line 727, in <module>
app = stdgui2.stdapp(p25_rx_block, "APCO P25 Receiver", 3)
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 38, in __init__
wx.App.__init__ (self, redirect=False)
File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7981, in __init__
self._BootstrapApp()
File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7555, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 42, in OnInit
self._max_noutput_items)
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 64, in __init__
self.panel = stdpanel (self, self, top_block_maker, max_nouts)
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 86, in __init__
self.top_block = top_block_maker (frame, self, vbox, sys.argv)
File "./usrp_p25_rx.py", line 75, in __init__
self.__init_gui(frame, panel, vbox)
File "./usrp_p25_rx.py", line 252, in __init_gui
self.spectrum_plotter = self.spectrum.win.plot
AttributeError: 'fft_window' object has no attribute 'plot'
P25 signals modulated using the CQPSK format throw off a loud tone at 4,800 Hz, as shown by a plot of the power spectrum of the signal's magnitude.
C4FM-modulated P25 signals do not appear to possess this interesting property. The file in samples 'prwn-d256.dat' appears to be a CQPSK signal with distinctive LSM characteristics.
I've uploaded a simple python app which can be used to plot a complex capture sample file - magsq-psd.py. The one non-obvious arg (--calibration) must be used if/as necessary to bring the signal to near zero IF.
Note that hardware FM discriminator-tapped receivers cannot be used here since a copy of the signal prior to demodulation is required.
A receiver software implementation using the tone detection method can be done using a low-complexity setup such as a DSP CIC filter. Another nice thing is that a tone detection loop works well even when there is some frequency mismatch...
Max
I have the OP25 GRC demo that Balint provided up and running.
Everything seems to working except I'm not getting any audio out of
the OP25 block. I'm getting the "four line" output from the dibit
output port when there is traffic on the channel, and the autotune
output is outputting data. However, no audio. I put a scope on the
audio output and it's a flat line at zero, even when the dibit output
is "four lines". Any tips on how to further troubleshoot?
Thanks,
Andy