- peak detect: update of peaks without smooting
- send message of existent peak changes (frequency, pos) - peak manager: added freq message output for channelizer git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@493 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -34,17 +34,38 @@ class peak_manager(gr.basic_block):
|
||||
out_sig=None)
|
||||
|
||||
self.test = test
|
||||
self.numFrequencies = 1
|
||||
self.peak_dict = {}
|
||||
|
||||
print ("test : ", test)
|
||||
|
||||
# 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"))
|
||||
|
||||
# Register in message handler
|
||||
self.set_msg_handler(pmt.intern("control"), self.msg_handler)
|
||||
|
||||
#self.message_port_pub(pmt.intern("port name"), < pmt message >)
|
||||
|
||||
|
||||
def peak_add(self, key, peak):
|
||||
if len(self.peak_dict) < self.numFrequencies:
|
||||
self.peak_dict[key] = peak
|
||||
return True
|
||||
return False
|
||||
|
||||
def peak_del(self, key):
|
||||
if key in self.peak_dict:
|
||||
self.peak_dict.pop(key, None)
|
||||
return True
|
||||
return False
|
||||
|
||||
def peak_get(self, key):
|
||||
result = None
|
||||
if key in self.peak_dict:
|
||||
result = self.peak_dict[key]
|
||||
return result
|
||||
|
||||
def msg_handler(self, msg):
|
||||
if pmt.is_dict(msg):
|
||||
@@ -76,8 +97,24 @@ class peak_manager(gr.basic_block):
|
||||
|
||||
if peak['state'] == 1:
|
||||
print ("New peak #{} at {:0.2f} MHz".format(id, freq_MHz))
|
||||
peak_key = 'peak' + str(id)
|
||||
|
||||
peak0 = self.peak_get(peak_key)
|
||||
|
||||
if peak0 is not None:
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peak['freq_Hz']))
|
||||
print("Update " + peak_key)
|
||||
self.message_port_pub(pmt.intern("freq"), pair)
|
||||
elif self.peak_add(peak_key, peak):
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peak['freq_Hz']))
|
||||
print("Added " + peak_key)
|
||||
self.message_port_pub(pmt.intern("freq"), pair)
|
||||
else:
|
||||
print ("Lost peak #{} at {:0.2f} MHz".format(id, freq_MHz))
|
||||
peak_key = 'peak' + str(id)
|
||||
if self.peak_del(peak_key):
|
||||
print("Deleted " + peak_key)
|
||||
|
||||
|
||||
else:
|
||||
print(pmt.symbol_to_string(msg))
|
||||
|
||||
Reference in New Issue
Block a user