|
|
|
|
@ -90,7 +90,7 @@ class rds_parser_table_qt(gr.sync_block):#START
|
|
|
|
|
self.decoder_frequencies={} |
|
|
|
|
self.decoders=[] |
|
|
|
|
for i in range(nPorts): |
|
|
|
|
self.decoders.append({'synced':False,'freq':None,'PI':"",'pilot_SNR':0}) |
|
|
|
|
self.decoders.append({'synced':False,'freq':None,'PI':"",'pilot_SNR':0,'decim_mode':0}) |
|
|
|
|
#self.decoder_synced={} |
|
|
|
|
#self.colorder=['ID','freq','name','PTY','AF','time','text','quality','buttons'] |
|
|
|
|
self.colorder=['ID','freq','name','buttons','PTY','AF','time','text','quality','pilot_SNR','RT+'] |
|
|
|
|
@ -180,12 +180,13 @@ class rds_parser_table_qt(gr.sync_block):#START
|
|
|
|
|
for num in self.decoder_frequencies: |
|
|
|
|
freq=self.decoder_frequencies[num] |
|
|
|
|
pilot_SNR=self.decoders[num]['pilot_SNR'] |
|
|
|
|
decim_mode=self.decoders[num]['decim_mode'] |
|
|
|
|
if self.decoders[num]['synced']: |
|
|
|
|
message_string+="<span style='color:green'>  %i:%0.1fM (%i dB)</span>"% (num,freq/1e6,pilot_SNR) |
|
|
|
|
message_string+="<span style='color:green'>  %i:%0.1fM (%i dB, %i)</span>"% (num,freq/1e6,pilot_SNR,decim_mode) |
|
|
|
|
#print("'color:green'>%i:%0.1fM</span>"% (num,freq/1e6)) |
|
|
|
|
else:#elif self.decoders[num]['synced']==False: |
|
|
|
|
#print("'color:red'>%i:%0.1fM</span>"% (num,freq/1e6)) |
|
|
|
|
message_string+="<span style='color:red'>  %i:%0.1fM (%i dB)</span>"% (num,freq/1e6,pilot_SNR) |
|
|
|
|
message_string+="<span style='color:red'>  %i:%0.1fM (%i dB, %i)</span>"% (num,freq/1e6,pilot_SNR,decim_mode) |
|
|
|
|
message_string+="<br>tuned frequency:%0.1fM"%(self.tuning_frequency/1e6) |
|
|
|
|
self.signals.DataUpdateEvent.emit({'decoder_frequencies':message_string}) |
|
|
|
|
#print(message_string) |
|
|
|
|
@ -239,7 +240,7 @@ class rds_parser_table_qt(gr.sync_block):#START
|
|
|
|
|
self.RDS_data[PI]["time"]={"timestring":"88:88","datestring":"00-00-0000","datetime":None} |
|
|
|
|
self.RDS_data[PI]["wrong_block_ratio"]=1#100% |
|
|
|
|
def handle_msg(self, msg, port):#port from 0 to 3 |
|
|
|
|
if pmt.to_long(pmt.car(msg))==1L: |
|
|
|
|
if pmt.to_long(pmt.car(msg))==1L:#sync/desync messages from RDS decoder |
|
|
|
|
synced=pmt.to_python(pmt.cdr(msg)) |
|
|
|
|
#print("port:%i, data: %s"%(port,data)) |
|
|
|
|
self.decoders[port]['synced']=synced |
|
|
|
|
@ -250,7 +251,7 @@ class rds_parser_table_qt(gr.sync_block):#START
|
|
|
|
|
wrong_block_ratio=1#100% |
|
|
|
|
self.RDS_data[PI]["wrong_block_ratio"]=wrong_block_ratio |
|
|
|
|
self.signals.DataUpdateEvent.emit({'PI':PI,'wrong_block_ratio':wrong_block_ratio,'dots':dots}) |
|
|
|
|
elif pmt.to_long(pmt.car(msg))==2L: |
|
|
|
|
elif pmt.to_long(pmt.car(msg))==2L:#wrong_block_ratio messages from RDS decoder |
|
|
|
|
wrong_block_ratio=pmt.to_python(pmt.cdr(msg)) |
|
|
|
|
PI=self.decoders[port]['PI'] |
|
|
|
|
if self.RDS_data.has_key(PI): |
|
|
|
|
@ -264,6 +265,10 @@ class rds_parser_table_qt(gr.sync_block):#START
|
|
|
|
|
PI=self.decoders[port]['PI'] |
|
|
|
|
if self.RDS_data.has_key(PI): |
|
|
|
|
self.signals.DataUpdateEvent.emit({'PI':PI,'pilot_SNR':pilot_SNR}) |
|
|
|
|
elif pmt.to_long(pmt.car(msg))==4L:#mode messages from RDS sync_decim |
|
|
|
|
mode=pmt.to_python(pmt.cdr(msg)) |
|
|
|
|
self.decoders[port]['decim_mode']=mode |
|
|
|
|
self.update_freq() |
|
|
|
|
else: #elif pmt.to_long(pmt.car(msg))==0L |
|
|
|
|
array=pmt.to_python(msg)[1] |
|
|
|
|
|
|
|
|
|
|