Peak Manager
- renamed ports to status[0..N] - emiut gain messages PekaDetect - emit peak messages also on peak height changes git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@499 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -45,12 +45,12 @@ class peak_manager(gr.basic_block):
|
||||
self.message_port_register_out(pmt.intern("status"))
|
||||
|
||||
if self.numPeaksMax < 2:
|
||||
out_port_name = "freq"
|
||||
out_port_name = "status"
|
||||
self.ports_avail.append(out_port_name)
|
||||
self.message_port_register_out(pmt.intern(out_port_name))
|
||||
else:
|
||||
for n in range(0, self.numPeaksMax):
|
||||
out_port_name = "freq" + str(n)
|
||||
out_port_name = "status" + str(n)
|
||||
self.ports_avail.append(out_port_name)
|
||||
self.message_port_register_out(pmt.intern(out_port_name))
|
||||
|
||||
@@ -84,7 +84,7 @@ class peak_manager(gr.basic_block):
|
||||
if pmt.is_dict(msg):
|
||||
items = pmt.dict_items(msg)
|
||||
|
||||
peak = {}
|
||||
peakMsg = {}
|
||||
for n in range(0, pmt.length(items)):
|
||||
pair = pmt.nth(n, items)
|
||||
key = pmt.car(pair)
|
||||
@@ -94,41 +94,49 @@ class peak_manager(gr.basic_block):
|
||||
|
||||
if pmt.is_integer(val):
|
||||
value = pmt.to_long(val)
|
||||
peak[key_str] = value
|
||||
peakMsg[key_str] = value
|
||||
# print("{}={}".format(key_str, value))
|
||||
elif pmt.is_real(val):
|
||||
value = pmt.to_float(val)
|
||||
peak[key_str] = value
|
||||
peakMsg[key_str] = value
|
||||
# print("{}={}".format(key_str, value))
|
||||
elif pmt.is_bool(val):
|
||||
value = pmt.to_bool(val)
|
||||
peak[key_str] = value
|
||||
peakMsg[key_str] = value
|
||||
# print("{}={}".format(key_str, value))
|
||||
|
||||
id = peak['id']
|
||||
freq_MHz = peak['freq_Hz']*1e-6
|
||||
id = peakMsg['id']
|
||||
freq_MHz = peakMsg['freq_Hz']*1e-6
|
||||
|
||||
peak_key = 'peak' + str(id)
|
||||
peak0 = self.peak_get(peak_key)
|
||||
peakEntry = self.peak_get(peak_key)
|
||||
|
||||
if peak['state'] == 1:
|
||||
if peak0 is not None:
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peak['freq_Hz']))
|
||||
portname = peak0['port_name']
|
||||
if peakMsg['state'] == 1:
|
||||
if peakEntry is not None:
|
||||
portname = peakEntry['port_name']
|
||||
print("Update " + peak_key + "(" + portname + ")")
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peakMsg['freq_Hz']))
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
pair = pmt.cons(pmt.intern("gain"), pmt.from_float(-peakMsg['height']))
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
else:
|
||||
print ("New peak #{} at {:0.2f} MHz".format(id, freq_MHz))
|
||||
peak0 = self.peak_add(peak_key, peak)
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peak['freq_Hz']))
|
||||
portname = peak0['port_name']
|
||||
print("Added " + peak_key + "(" + portname + ")")
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
peakEntry = self.peak_add(peak_key, peakMsg)
|
||||
if peakEntry is not None:
|
||||
portname = peakEntry['port_name']
|
||||
print("Added " + peak_key + "(" + portname + ")")
|
||||
pair = pmt.cons(pmt.intern("freq"), pmt.from_float(peakMsg['freq_Hz']))
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
pair = pmt.cons(pmt.intern("gain"), pmt.from_float(-peakMsg['height']))
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
else:
|
||||
print ("Lost peak #{} at {:0.2f} MHz".format(id, freq_MHz))
|
||||
portname = peak0['port_name']
|
||||
if self.peak_del(peak_key):
|
||||
print("Deleted " + peak_key + "(" + portname + ")")
|
||||
if peakEntry is not None:
|
||||
print ("Lost peak #{} at {:0.2f} MHz".format(id, freq_MHz))
|
||||
portname = peakEntry['port_name']
|
||||
pair = pmt.cons(pmt.intern("gain"), pmt.from_float(-120.0))
|
||||
self.message_port_pub(pmt.intern(portname), pair)
|
||||
if self.peak_del(peak_key):
|
||||
print("Deleted " + peak_key + "(" + portname + ")")
|
||||
|
||||
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user