- 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> <key>jay_peak_manager</key>
<category>[jay]</category> <category>[jay]</category>
<import>import jay</import> <import>import jay</import>
<make>jay.peak_manager($test)</make> <make>jay.peak_manager($numPeaksMax)</make>
<param> <param>
<name>Test</name> <name>Num. peaks max.</name>
<key>test</key> <key>numPeaksMax</key>
<value>1024</value> <value>1</value>
<type>int</type> <type>int</type>
</param> </param>
@@ -27,6 +27,7 @@
<source> <source>
<name>freq</name> <name>freq</name>
<type>message</type> <type>message</type>
<nports>$numPeaksMax</nports>
<optional>1</optional> <optional>1</optional>
</source> </source>
</block> </block>
+15 -7
View File
@@ -27,30 +27,38 @@ class peak_manager(gr.basic_block):
""" """
docstring for block peak_manager docstring for block peak_manager
""" """
def __init__(self, test): def __init__(self, numPeaksMax):
gr.basic_block.__init__(self, gr.basic_block.__init__(self,
name="peak_manager", name="peak_manager",
in_sig=None, in_sig=None,
out_sig=None) out_sig=None)
self.test = test self.numPeaksMax = numPeaksMax
self.numFrequencies = 1
self.peak_dict = {} self.peak_dict = {}
print ("test : ", test) print ("numPeaksMax : ", numPeaksMax)
# Register in / out message ports # Register in / out message ports
self.message_port_register_in(pmt.intern("control")) self.message_port_register_in(pmt.intern("control"))
self.message_port_register_out(pmt.intern("status")) 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 # Register in message handler
self.set_msg_handler(pmt.intern("control"), self.msg_handler) self.set_msg_handler(pmt.intern("control"), self.msg_handler)
def peak_add(self, key, peak): 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 self.peak_dict[key] = peak
return True return True
return False return False