FYI, some versions of libboost cause bugs/crashes in the valve. Specifically (the last time I checked) the versions that come packaged with ubuntu. Compiling from latest source does not have any issues (that I've seen). Also, Stream-selector in place of a valve I've had less issues with.
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@2bn.net>
To: qaghqga@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@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