Browse Source

Merge branch 'dev' of ssh://git.csrichter.com:2222/~/git/gr-multirds into dev

dev
Clemens Richter 9 years ago
parent
commit
00e3c12755
  1. 2
      apps/fft-multi-decoder_fixed_hackrf.grc
  2. 4
      apps/read_sync_decim.grc
  3. 15
      python/tmc_classes.py
  4. 7
      python/tmc_parser.py

2
apps/fft-multi-decoder_fixed_hackrf.grc

@ -1217,7 +1217,7 @@
</param> </param>
<param> <param>
<key>gui_hint</key> <key>gui_hint</key>
<value></value> <value>tabs@0</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>

4
apps/read_sync_decim.grc

@ -344,7 +344,7 @@
</param> </param>
<param> <param>
<key>file</key> <key>file</key>
<value>/tmp/cr/sync_decim_out_11221</value> <value>/user/wire2/richter/abgabe/crash-examples/tmc decoder crash/sync_decim_out_11221</value>
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
@ -777,7 +777,7 @@ class blk(gr.sync_block): # other base classes are basic_block, decim_block, in
</param> </param>
<param> <param>
<key>writeDB</key> <key>writeDB</key>
<value>True</value> <value>False</value>
</param> </param>
</block> </block>
<block> <block>

15
python/tmc_classes.py

@ -613,9 +613,7 @@ class tmc_dict:
return False return False
return True return True
def add(self,message): def add(self,message):
self.list_lock.acquire() print_message=True
self.message_list.append(message)
self.list_lock.release()
self.dict_lock.acquire() self.dict_lock.acquire()
try: try:
lcn=message.location.lcn lcn=message.location.lcn
@ -625,19 +623,26 @@ class tmc_dict:
if message.event.is_cancellation: if message.event.is_cancellation:
try: try:
self.messages[lcn][updateClass].cancellation_time=message.getTime()#cancellation_time = rx time of cancellation message self.messages[lcn][updateClass].cancellation_time=message.getTime()#cancellation_time = rx time of cancellation message
print_message=False#dont print cancellation messages
except KeyError:#no message to cancel except KeyError:#no message to cancel
message.event.name="no message to cancel" message.event.name="no message to cancel"
self.messages[lcn][updateClass]=message self.messages[lcn][updateClass]=message
else: else:
if self.messages[lcn].has_key(updateClass) and self.messages[lcn][updateClass].tmc_hash ==message.tmc_hash:#if same message -> add confirmation if self.messages[lcn].has_key(updateClass) and self.messages[lcn][updateClass].tmc_hash ==message.tmc_hash:#if same message -> add confirmation
self.messages[lcn][updateClass].add_confirmation(message) self.messages[lcn][updateClass].add_confirmation(message)
print_message=False#dont print repeats
else:#(over)write message else:#(over)write message
self.messages[lcn][updateClass]=message self.messages[lcn][updateClass]=message
#print("added message: "+str(message)) #print("added message: "+str(message))
if print_message:
self.list_lock.acquire()
self.message_list.append(message)
self.list_lock.release()
except AttributeError: except AttributeError:
print("ERROR, not adding: "+str(message)) print("ERROR, not adding: "+str(message))
finally: finally:
self.dict_lock.release() self.dict_lock.release()
return print_message
def getLogString(self,showInvalid,filters): def getLogString(self,showInvalid,filters):
self.list_lock.acquire() self.list_lock.acquire()
retStr="" retStr=""
@ -790,7 +795,7 @@ class tmc_message:
def log_string(self): def log_string(self):
retstr="" retstr=""
try: try:
retstr=str(self.event.updateClass)+": "+self.getTime()+": "+self.location_text()+": "+self.events_string()+"; "+self.info_str()+"; "+self.psn retstr=str(self.event.updateClass)+": "+self.getTime()+": "+self.location_text()+": "+self.events_string()+"; "+self.info_str()+"; "+str(list(self.psns))+"x%i"%self.confirmations
except UnicodeDecodeError as e: except UnicodeDecodeError as e:
print e print e
code.interact(local=locals()) code.interact(local=locals())
@ -885,6 +890,7 @@ class tmc_message:
tmc_F=int((tmc_x>>3)&0x1) #identifies the message as a Single Group (F = 1) or Multi Group (F = 0) tmc_F=int((tmc_x>>3)&0x1) #identifies the message as a Single Group (F = 1) or Multi Group (F = 0)
self.is_single=(tmc_F==1) self.is_single=(tmc_F==1)
self.is_multi=(tmc_F==0) self.is_multi=(tmc_F==0)
#check LTN #check LTN
try: try:
msg_ltn=ltn#tableobj.RDS_data[PI]["AID_list"][52550]["LTN"] msg_ltn=ltn#tableobj.RDS_data[PI]["AID_list"][52550]["LTN"]
@ -913,6 +919,7 @@ class tmc_message:
self.ci=int(tmc_x&0x7) #continuity index self.ci=int(tmc_x&0x7) #continuity index
self.data_arr=BitArray() self.data_arr=BitArray()
self.mgm_list=[] self.mgm_list=[]
#self.length=0# attribute error is catched and signals incomplete mgm
self.location=tmc_location(tmc_z,tableobj) self.location=tmc_location(tmc_z,tableobj)
#self.event=int(tmc_y&0x7ff) #Y10-Y0 #self.event=int(tmc_y&0x7ff) #Y10-Y0
self.event=tmc_event(int(tmc_y&0x7ff),self.tableobj) #Y10-Y0 self.event=tmc_event(int(tmc_y&0x7ff),self.tableobj) #Y10-Y0

7
python/tmc_parser.py

@ -176,17 +176,19 @@ class tmc_parser(gr.sync_block):
if tmc_F==1:#single group if tmc_F==1:#single group
tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self) tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self)
self.dataLock.acquire(1) self.dataLock.acquire(1)
self.tmc_messages.add(tmc_msg) print_message=self.tmc_messages.add(tmc_msg)
self.dataLock.release(1) self.dataLock.release(1)
if print_message:#ignore duplicates
self.print_tmc_msg(tmc_msg) self.print_tmc_msg(tmc_msg)
elif tmc_F==0 and Y15==1:#1st group of multigroup elif tmc_F==0 and Y15==1:#1st group of multigroup
ci=int(tmc_x&0x7) ci=int(tmc_x&0x7)
tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self) tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self)
self.dataLock.acquire(1) self.dataLock.acquire(1)
self.tmc_messages.add(tmc_msg) print_message=self.tmc_messages.add(tmc_msg)
self.dataLock.release(1) self.dataLock.release(1)
#if self.RDS_data[PI]["internals"]["unfinished_TMC"].has_key(ci): #if self.RDS_data[PI]["internals"]["unfinished_TMC"].has_key(ci):
#print("overwriting parital message") #print("overwriting parital message")
if print_message:#save unfinished message only once (dont overwrite collected additional groups)
self.unfinished_messages[PI][ci]={"msg":tmc_msg,"time":time.time()} self.unfinished_messages[PI][ci]={"msg":tmc_msg,"time":time.time()}
else: else:
ci=int(tmc_x&0x7) ci=int(tmc_x&0x7)
@ -202,6 +204,7 @@ class tmc_parser(gr.sync_block):
if tmc_msg.is_complete: if tmc_msg.is_complete:
self.print_tmc_msg(tmc_msg)#print message self.print_tmc_msg(tmc_msg)#print message
self.dataLock.acquire(1)#wait for print before delete self.dataLock.acquire(1)#wait for print before delete
print_dbg("deleted finished (multi-group) message")
del self.unfinished_messages[PI][tmc_msg.ci]#delete finished message del self.unfinished_messages[PI][tmc_msg.ci]#delete finished message
self.dataLock.release(1) self.dataLock.release(1)
else: else:

Loading…
Cancel
Save