diff options
author | Max <ikj1234i@yahoo.com> | 2017-04-29 12:32:47 -0400 |
---|---|---|
committer | Max <ikj1234i@yahoo.com> | 2017-04-29 12:32:47 -0400 |
commit | e6deba2cd56d8261e779d939054e260404684f5a (patch) | |
tree | e274bad333b7cd7bc540b1b05ba9b65b58e2c3d6 /op25/gr-op25_repeater | |
parent | 59a78e36711e24a20f40800e63eaf51fcd236bcf (diff) |
frame assembler sink-only mode
Diffstat (limited to 'op25/gr-op25_repeater')
-rw-r--r-- | op25/gr-op25_repeater/apps/p25_decoder.py | 13 | ||||
-rw-r--r-- | op25/gr-op25_repeater/lib/p25_frame_assembler_impl.cc | 4 | ||||
-rw-r--r-- | op25/gr-op25_repeater/lib/p25p1_fdma.cc | 14 |
3 files changed, 14 insertions, 17 deletions
diff --git a/op25/gr-op25_repeater/apps/p25_decoder.py b/op25/gr-op25_repeater/apps/p25_decoder.py index 700f184..bb7dc51 100644 --- a/op25/gr-op25_repeater/apps/p25_decoder.py +++ b/op25/gr-op25_repeater/apps/p25_decoder.py @@ -76,7 +76,9 @@ class p25_decoder_sink_b(gr.hier_block2): self.debug = debug self.dest = dest - do_output = True + do_output = False + if dest == 'wav': + do_output = True do_audio_output = True if msgq is None: @@ -94,8 +96,6 @@ class p25_decoder_sink_b(gr.hier_block2): self.p25_decoders.append(op25_repeater.p25_frame_assembler(wireshark_host, udp_port, debug, do_imbe, do_output, do_msgq, msgq, do_audio_output, True)) self.p25_decoders[slot].set_slotid(slot) - self.audio_s2f.append(blocks.short_to_float()) # another ridiculous conversion - self.scaler.append(blocks.multiply_const_ff(1 / 32768.0)) self.xorhash.append('') if dest == 'wav': @@ -103,11 +103,12 @@ class p25_decoder_sink_b(gr.hier_block2): n_channels = 1 sample_rate = 8000 bits_per_sample = 16 + self.audio_s2f.append(blocks.short_to_float()) # another ridiculous conversion + self.scaler.append(blocks.multiply_const_ff(1 / 32768.0)) self.audio_sink.append(blocks.wavfile_sink(filename, n_channels, sample_rate, bits_per_sample)) + self.connect(self, self.p25_decoders[slot], self.audio_s2f[slot], self.scaler[slot], self.audio_sink[slot]) elif dest == 'audio': - self.audio_sink.append(audio.sink(_def_audio_rate, audio_output, True)) - - self.connect(self, self.p25_decoders[slot], self.audio_s2f[slot], self.scaler[slot], self.audio_sink[slot]) + self.connect(self, self.p25_decoders[slot]) def close_file(self, index=0): if self.dest != 'wav': diff --git a/op25/gr-op25_repeater/lib/p25_frame_assembler_impl.cc b/op25/gr-op25_repeater/lib/p25_frame_assembler_impl.cc index 7f64f39..18a3dff 100644 --- a/op25/gr-op25_repeater/lib/p25_frame_assembler_impl.cc +++ b/op25/gr-op25_repeater/lib/p25_frame_assembler_impl.cc @@ -83,7 +83,7 @@ static const int MAX_IN = 1; // maximum number of input streams p25_frame_assembler_impl::p25_frame_assembler_impl(const char* udp_host, int port, int debug, bool do_imbe, bool do_output, bool do_msgq, gr::msg_queue::sptr queue, bool do_audio_output, bool do_phase2_tdma) : gr::block("p25_frame_assembler", gr::io_signature::make (MIN_IN, MAX_IN, sizeof (char)), - gr::io_signature::make ((do_output || do_audio_output) ? 1 : 0, (do_output || do_audio_output) ? 1 : 0, (do_audio_output) ? sizeof(int16_t) : ((do_output) ? sizeof(char) : 0 ))), + gr::io_signature::make ((do_output) ? 1 : 0, (do_output) ? 1 : 0, (do_audio_output && do_output) ? sizeof(int16_t) : ((do_output) ? sizeof(char) : 0 ))), d_do_imbe(do_imbe), d_do_output(do_output), output_queue(), @@ -94,8 +94,6 @@ static const int MAX_IN = 1; // maximum number of input streams d_do_msgq(do_msgq), d_msg_queue(queue) { - if (d_do_audio_output && !d_do_output) - fprintf(stderr, "p25_frame_assembler: error: do_output must be enabled if do_audio_output is enabled\n"); if (d_do_audio_output && !d_do_imbe) fprintf(stderr, "p25_frame_assembler: error: do_imbe must be enabled if do_audio_output is enabled\n"); if (d_do_phase2_tdma && !d_do_audio_output) diff --git a/op25/gr-op25_repeater/lib/p25p1_fdma.cc b/op25/gr-op25_repeater/lib/p25p1_fdma.cc index d317912..51ce715 100644 --- a/op25/gr-op25_repeater/lib/p25p1_fdma.cc +++ b/op25/gr-op25_repeater/lib/p25p1_fdma.cc @@ -314,16 +314,14 @@ p25p1_fdma::rx_sym (const uint8_t *syms, int nsyms) // output one 32-byte msg per 0.020 sec. // also, 32*9 = 288 byte pkts (for use via UDP) sprintf(s, "%03x %03x %03x %03x %03x %03x %03x %03x\n", u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7]); - if (d_do_output) { - if (d_do_audio_output) { - p1voice_decode.rxframe(u); - } else { - for (size_t j=0; j < strlen(s); j++) { - output_queue.push_back(s[j]); - } + if (d_do_audio_output) + p1voice_decode.rxframe(u); + if (d_do_output && !d_do_audio_output) { + for (size_t j=0; j < strlen(s); j++) { + output_queue.push_back(s[j]); } } - if (write_sock > 0) { + if (d_do_output && write_sock > 0) { memcpy(&write_buf[write_bufp], s, strlen(s)); write_bufp += strlen(s); if (write_bufp >= 288) { // 9 * 32 = 288 |