[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r9125 - in gnuradio/branches/releases/3.1: gnuradio-co
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r9125 - in gnuradio/branches/releases/3.1: gnuradio-core/src/lib/runtime gr-gpio/src/python gr-utils/src/python |
Date: |
Fri, 1 Aug 2008 11:32:14 -0600 (MDT) |
Author: jcorgan
Date: 2008-08-01 11:32:14 -0600 (Fri, 01 Aug 2008)
New Revision: 9125
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
Log:
Applied changeset r8689 on trunk to release branch.
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
===================================================================
---
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
2008-08-01 17:13:39 UTC (rev 9124)
+++
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
2008-08-01 17:32:14 UTC (rev 9125)
@@ -95,9 +95,3 @@
{
d_impl->dump();
}
-
-bool
-gr_top_block::is_running()
-{
- return d_impl->is_running();
-}
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
===================================================================
--- gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
2008-08-01 17:32:14 UTC (rev 9125)
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2007 Free Software Foundation, Inc.
+ * Copyright 2007,2008 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -103,11 +103,6 @@
* Displays flattened flowgraph edges and block connectivity
*/
void dump();
-
- /*!
- * Returns true if flowgraph is running
- */
- bool is_running();
};
#endif /* INCLUDED_GR_TOP_BLOCK_H */
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
===================================================================
--- gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
2008-08-01 17:32:14 UTC (rev 9125)
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2007 Free Software Foundation, Inc.
+ * Copyright 2007,2008 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -46,7 +46,6 @@
void run();
void lock();
void unlock() throw (std::runtime_error);
- bool is_running();
void dump();
};
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
===================================================================
---
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
2008-08-01 17:13:39 UTC (rev 9124)
+++
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
2008-08-01 17:32:14 UTC (rev 9125)
@@ -96,8 +96,11 @@
std::cout << "start: entered" << std::endl;
if (d_running)
- throw std::runtime_error("top block already running or wait() not called
after previous stop()");
+ throw std::runtime_error("top_block::start: top block already running or
wait() not called after previous stop()");
+ if (d_lock_count > 0)
+ throw std::runtime_error("top_block::start: can't call start with flow
graph locked");
+
// Create new flat flow graph by flattening hierarchy
d_ffg = d_owner->flatten();
@@ -107,6 +110,7 @@
// Execute scheduler threads
start_threads();
+ d_running = true;
}
void
@@ -183,8 +187,10 @@
gr_top_block_impl::unlock()
{
omni_mutex_lock lock(d_reconf);
- if (d_lock_count <= 0)
+ if (d_lock_count <= 0){
+ d_lock_count = 0; // fix it, then complain
throw std::runtime_error("unpaired unlock() call");
+ }
d_lock_count--;
if (GR_TOP_BLOCK_IMPL_DEBUG)
@@ -204,7 +210,7 @@
std::cout << "restart: entered" << std::endl;
if (!d_running)
- throw std::runtime_error("top block is not running");
+ return; // nothing to do
// Stop scheduler threads and wait for completion
stop();
@@ -230,6 +236,7 @@
d_ffg = new_ffg;
start_threads();
+ d_running = true;
}
void
Modified:
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
===================================================================
---
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
2008-08-01 17:13:39 UTC (rev 9124)
+++
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
2008-08-01 17:32:14 UTC (rev 9125)
@@ -56,9 +56,6 @@
// Dump the flowgraph to stdout
void dump();
-
- // Return true if flowgraph is running
- bool is_running() const { return d_running; }
private:
@@ -72,6 +69,8 @@
std::vector<gr_basic_block_vector_t> d_graphs;
void start_threads();
+
+private:
void restart();
};
Modified: gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
===================================================================
--- gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
2008-08-01 17:32:14 UTC (rev 9125)
@@ -90,26 +90,25 @@
# self.file_sink = gr.file_sink (gr.sizeof_gr_complex, "siggen.dat")
def _configure_graph (self, type):
- was_running = self.is_running ()
- if was_running:
- self.stop ()
- self.disconnect_all ()
- if type == gr.GR_SIN_WAVE:
- self.connect (self.siggen, self.u)
- # self.connect (self.siggen, self.file_sink)
- self.siggen.set_waveform (type)
- self.src = self.siggen
- elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
- self.connect (self.noisegen, self.u)
- self.noisegen.set_type (type)
- self.src = self.noisegen
- elif type == gr.GR_CONST_WAVE:
- self.connect (self.vecgen, self.u)
- self.src = self.vecgen
- else:
- raise ValueError, type
- if was_running:
- self.start ()
+ try:
+ self.lock()
+ self.disconnect_all ()
+ if type == gr.GR_SIN_WAVE:
+ self.connect (self.siggen, self.u)
+ # self.connect (self.siggen, self.file_sink)
+ self.siggen.set_waveform (type)
+ self.src = self.siggen
+ elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
+ self.connect (self.noisegen, self.u)
+ self.noisegen.set_type (type)
+ self.src = self.noisegen
+ elif type == gr.GR_CONST_WAVE:
+ self.connect (self.vecgen, self.u)
+ self.src = self.vecgen
+ else:
+ raise ValueError, type
+ finally:
+ self.unlock()
def set_freq(self, target_freq):
"""
Modified: gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
===================================================================
--- gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
2008-08-01 17:32:14 UTC (rev 9125)
@@ -69,23 +69,22 @@
# self.file_sink = gr.file_sink (gr.sizeof_gr_complex, "siggen.dat")
def _configure_graph (self, type):
- was_running = self.is_running ()
- if was_running:
- self.stop ()
- self.disconnect_all ()
- if type == gr.GR_SIN_WAVE or type == gr.GR_CONST_WAVE:
- self.connect (self.siggen, self.u)
- # self.connect (self.siggen, self.file_sink)
- self.siggen.set_waveform (type)
- self.src = self.siggen
- elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
- self.connect (self.noisegen, self.u)
- self.noisegen.set_type (type)
- self.src = self.noisegen
- else:
- raise ValueError, type
- if was_running:
- self.start ()
+ try:
+ self.lock()
+ self.disconnect_all ()
+ if type == gr.GR_SIN_WAVE or type == gr.GR_CONST_WAVE:
+ self.connect (self.siggen, self.u)
+ # self.connect (self.siggen, self.file_sink)
+ self.siggen.set_waveform (type)
+ self.src = self.siggen
+ elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
+ self.connect (self.noisegen, self.u)
+ self.noisegen.set_type (type)
+ self.src = self.noisegen
+ else:
+ raise ValueError, type
+ finally:
+ self.unlock()
def set_freq(self, target_freq):
"""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r9125 - in gnuradio/branches/releases/3.1: gnuradio-core/src/lib/runtime gr-gpio/src/python gr-utils/src/python,
jcorgan <=