Fix for ticket:104, huge initial value plotted.
authoreb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 19 Dec 2006 19:45:52 +0000 (19:45 +0000)
committereb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 19 Dec 2006 19:45:52 +0000 (19:45 +0000)
Problem was due to uninitialized internal buffer, combined with
incorrect initial state.  Thanks for the patch, Don.

git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4149 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/lib/io/gr_oscope_guts.cc

index 2a152b95a20d402d2279234faeb1a0ee3dfdffa9..83b5232541df87124ce64fa23a7b34381b0a36e9 100644 (file)
@@ -60,11 +60,11 @@ gr_oscope_guts::gr_oscope_guts (int nchannels, double sample_rate, gr_msg_queue_
     d_update_rate (20),
     d_trigger_level (0),
     d_obi (0),
-    d_state (LOOK_FOR_TRIGGER),
+    d_state (HOLD_OFF),
     d_decimator_count (0),
     d_decimator_count_init (1),
     d_hold_off_count (0),
-    d_hold_off_count_init (0),
+    d_hold_off_count_init (OUTPUT_RECORD_SIZE/2),
     d_post_trigger_count (0),
     d_post_trigger_count_init (OUTPUT_RECORD_SIZE/2),
     d_prev_sample (0)
@@ -77,11 +77,14 @@ gr_oscope_guts::gr_oscope_guts (int nchannels, double sample_rate, gr_msg_queue_
   for (int i = 0; i < MAX_CHANNELS; i++)
     d_buffer[i] = 0;
 
-  for (int i = 0; i < d_nchannels; i++)
+  for (int i = 0; i < d_nchannels; i++){
     d_buffer[i] = new float [OUTPUT_RECORD_SIZE];
+    for (int j = 0; j < OUTPUT_RECORD_SIZE; j++)
+      d_buffer[i][j] = 0.0;
+  }
 
+  enter_hold_off ();
   update_rate_or_decimation_changed ();
-  enter_look_for_trigger ();
 }
 
 gr_oscope_guts::~gr_oscope_guts ()