- peak manager manages more than one peak (Zwischenstand)

git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@496 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-05-29 06:41:48 +00:00
parent 5fe28b660c
commit b34dd1a3f3
2 changed files with 20 additions and 11 deletions
+5 -4
View File
@@ -4,12 +4,12 @@
<key>jay_peak_manager</key>
<category>[jay]</category>
<import>import jay</import>
<make>jay.peak_manager($test)</make>
<make>jay.peak_manager($numPeaksMax)</make>
<param>
<name>Test</name>
<key>test</key>
<value>1024</value>
<name>Num. peaks max.</name>
<key>numPeaksMax</key>
<value>1</value>
<type>int</type>
</param>
@@ -27,6 +27,7 @@
<source>
<name>freq</name>
<type>message</type>
<nports>$numPeaksMax</nports>
<optional>1</optional>
</source>
</block>
+15 -7
View File
@@ -27,30 +27,38 @@ class peak_manager(gr.basic_block):
"""
docstring for block peak_manager
"""
def __init__(self, test):
def __init__(self, numPeaksMax):
gr.basic_block.__init__(self,
name="peak_manager",
in_sig=None,
out_sig=None)
self.test = test
self.numFrequencies = 1
self.numPeaksMax = numPeaksMax
self.peak_dict = {}
print ("test : ", test)
print ("numPeaksMax : ", numPeaksMax)
# Register in / out message ports
self.message_port_register_in(pmt.intern("control"))
self.message_port_register_out(pmt.intern("status"))
self.message_port_register_out(pmt.intern("freq"))
self.out_ports = []
if self.numPeaksMax < 2:
self.out_ports.append(pmt.intern("freq"))
else:
for n in range(0, self.numPeaksMax):
self.out_ports.append(pmt.intern("freq" + str(n)))
for out_port in self.out_ports:
self.message_port_register_out(out_port)
# Register in message handler
self.set_msg_handler(pmt.intern("control"), self.msg_handler)
def peak_add(self, key, peak):
if len(self.peak_dict) < self.numFrequencies:
if len(self.peak_dict) < self.numPeaksMax:
self.peak_dict[key] = peak
return True
return False