summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/python
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/python')
-rw-r--r--gnuradio-core/src/python/gnuradio/gr/__init__.py63
-rw-r--r--gnuradio-core/src/python/gnuradio/gr/gateway.py3
2 files changed, 64 insertions, 2 deletions
diff --git a/gnuradio-core/src/python/gnuradio/gr/__init__.py b/gnuradio-core/src/python/gnuradio/gr/__init__.py
index 1c2c4c837..ee96f0182 100644
--- a/gnuradio-core/src/python/gnuradio/gr/__init__.py
+++ b/gnuradio-core/src/python/gnuradio/gr/__init__.py
@@ -26,11 +26,70 @@
from gnuradio_core import *
from exceptions import *
-from hier_block2 import *
-from top_block import *
+#from hier_block2 import *
+#from top_block import *
from gateway import basic_block, sync_block, decim_block, interp_block
from tag_utils import tag_to_python, tag_to_pmt
+import gras
+
+RT_OK = 0
+RT_NOT_IMPLEMENTED = 1
+RT_NO_PRIVS = 2
+RT_OTHER_ERROR = 3
+
+
+def enable_realtime_scheduling():
+ """
+ This call is for backward compat purposes.
+ See gras/thread_pool.hpp for greater options.
+ """
+
+ #any prio greater than 0 means realtime scheduling
+ prio_value = 0.5
+
+ #test that prio
+ if not gras.ThreadPool.test_thread_priority(prio_value):
+ return RT_NO_PRIVS
+
+ #create a new thread pool with thread priority set
+ config = gras.ThreadPoolConfig()
+ config.thread_priority = prio_value
+ tp = gras.ThreadPool(config)
+ tp.set_active()
+
+ return RT_OK
+
+class top_block(gras.TopBlock):
+ def __init__(self, name="Top"):
+ gras.TopBlock.__init__(self, name)
+
+ def lock(self):
+ pass
+
+ def unlock(self):
+ self.commit()
+
+class hier_block2(gras.HierBlock):
+ def __init__(self, name="Hier", in_sig=None, out_sig=None):
+ gras.HierBlock.__init__(self, name)
+
+ self.__in_sig = in_sig
+ self.__out_sig = out_sig
+
+ #backwards compatible silliness
+ import weakref
+ self._hb = weakref.proxy(self)
+
+ def lock(self):
+ pass
+
+ def unlock(self):
+ self.commit()
+
+ def input_signature(self): return self.__in_sig
+ def output_signature(self): return self.__out_sig
+
# create a couple of aliases
serial_to_parallel = stream_to_vector
parallel_to_serial = vector_to_stream
diff --git a/gnuradio-core/src/python/gnuradio/gr/gateway.py b/gnuradio-core/src/python/gnuradio/gr/gateway.py
index c25755bb5..53fda17a4 100644
--- a/gnuradio-core/src/python/gnuradio/gr/gateway.py
+++ b/gnuradio-core/src/python/gnuradio/gr/gateway.py
@@ -118,6 +118,9 @@ class gateway_block(object):
setattr(self, attr.replace(prefix, ''), getattr(self.__gateway, attr))
self.pop_msg_queue = lambda: gr_core.gr_block_gw_pop_msg_queue_safe(self.__gateway)
+ #gras version of the to_basic_block()
+ def to_element(self): return self.__gateway.to_element()
+
def to_basic_block(self):
"""
Makes this block connectable by hier/top block python