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