From 27bb1ccf849c8d0fdd65ee1811f145e14a06dc2d Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 11:04:24 +0200 Subject: [PATCH 1/6] debug print ; length=0 for mgm --- python/tmc_classes.py | 2 ++ python/tmc_parser.py | 1 + 2 files changed, 3 insertions(+) diff --git a/python/tmc_classes.py b/python/tmc_classes.py index fc9a8b4..e59ff3f 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -884,6 +884,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) self.is_single=(tmc_F==1) self.is_multi=(tmc_F==0) + #check LTN try: msg_ltn=ltn#tableobj.RDS_data[PI]["AID_list"][52550]["LTN"] @@ -912,6 +913,7 @@ class tmc_message: self.ci=int(tmc_x&0x7) #continuity index self.data_arr=BitArray() self.mgm_list=[] + self.length=0 self.location=tmc_location(tmc_z,tableobj) #self.event=int(tmc_y&0x7ff) #Y10-Y0 self.event=tmc_event(int(tmc_y&0x7ff),self.tableobj) #Y10-Y0 diff --git a/python/tmc_parser.py b/python/tmc_parser.py index 503723f..df733e3 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -202,6 +202,7 @@ class tmc_parser(gr.sync_block): if tmc_msg.is_complete: self.print_tmc_msg(tmc_msg)#print message self.dataLock.acquire(1)#wait for print before delete + print_dbg("deleted finished message") del self.unfinished_messages[PI][tmc_msg.ci]#delete finished message self.dataLock.release(1) else: From 2b343fea5975936af3143c7e9cb68b0150b0d80b Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 11:57:35 +0200 Subject: [PATCH 2/6] rudementary consolidation of messages in log --- python/tmc_classes.py | 8 ++++++-- python/tmc_parser.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/python/tmc_classes.py b/python/tmc_classes.py index e59ff3f..617eaa1 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -614,7 +614,11 @@ class tmc_dict: return True def add(self,message): self.list_lock.acquire() - self.message_list.append(message) + #check if duplicate of last message in list + if len(self.message_list)>=1 and self.message_list[-1].tmc_hash==message.tmc_hash: + self.message_list[-1].add_confirmation(message) + else: + self.message_list.append(message) self.list_lock.release() self.dict_lock.acquire() try: @@ -789,7 +793,7 @@ class tmc_message: def log_string(self): retstr="" 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: print e code.interact(local=locals()) diff --git a/python/tmc_parser.py b/python/tmc_parser.py index 058a02a..d000236 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -202,7 +202,7 @@ class tmc_parser(gr.sync_block): if tmc_msg.is_complete: self.print_tmc_msg(tmc_msg)#print message self.dataLock.acquire(1)#wait for print before delete - print_dbg("deleted finished message") + print_dbg("deleted finished (multi-group) message") del self.unfinished_messages[PI][tmc_msg.ci]#delete finished message self.dataLock.release(1) else: From 56cc1bf624a542c9785ac72fa99ce2ddbdeb1ade Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 12:13:40 +0200 Subject: [PATCH 3/6] improved messge consolidation in log --- python/tmc_classes.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/python/tmc_classes.py b/python/tmc_classes.py index 617eaa1..5db19c6 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -613,13 +613,7 @@ class tmc_dict: return False return True def add(self,message): - self.list_lock.acquire() - #check if duplicate of last message in list - if len(self.message_list)>=1 and self.message_list[-1].tmc_hash==message.tmc_hash: - self.message_list[-1].add_confirmation(message) - else: - self.message_list.append(message) - self.list_lock.release() + message_is_repeat=False self.dict_lock.acquire() try: lcn=message.location.lcn @@ -635,13 +629,19 @@ class tmc_dict: else: 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) + message_is_repeat=True else:#(over)write message self.messages[lcn][updateClass]=message #print("added message: "+str(message)) + if not message_is_repeat: + self.list_lock.acquire() + self.message_list.append(message) + self.list_lock.release() except AttributeError: print("ERROR, not adding: "+str(message)) finally: self.dict_lock.release() + return message_is_repeat def getLogString(self,showInvalid,filters): self.list_lock.acquire() retStr="" From d4620e2bfe043e02841e124d781291fb4623dec0 Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 12:49:13 +0200 Subject: [PATCH 4/6] fixed error in handling of duplicate MGM heads --- python/tmc_classes.py | 2 +- python/tmc_parser.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/python/tmc_classes.py b/python/tmc_classes.py index 5db19c6..1b1ef11 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -917,7 +917,7 @@ class tmc_message: self.ci=int(tmc_x&0x7) #continuity index self.data_arr=BitArray() self.mgm_list=[] - self.length=0 + #self.length=0# attribute error is catched and signals incomplete mgm self.location=tmc_location(tmc_z,tableobj) #self.event=int(tmc_y&0x7ff) #Y10-Y0 self.event=tmc_event(int(tmc_y&0x7ff),self.tableobj) #Y10-Y0 diff --git a/python/tmc_parser.py b/python/tmc_parser.py index d000236..da90022 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -183,11 +183,12 @@ class tmc_parser(gr.sync_block): ci=int(tmc_x&0x7) tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self) self.dataLock.acquire(1) - self.tmc_messages.add(tmc_msg) + message_is_repeat=self.tmc_messages.add(tmc_msg) self.dataLock.release(1) #if self.RDS_data[PI]["internals"]["unfinished_TMC"].has_key(ci): #print("overwriting parital message") - self.unfinished_messages[PI][ci]={"msg":tmc_msg,"time":time.time()} + if not message_is_repeat:#save unfinished message only once (dont overwrite collected additional groups) + self.unfinished_messages[PI][ci]={"msg":tmc_msg,"time":time.time()} else: ci=int(tmc_x&0x7) if self.unfinished_messages[PI].has_key(ci): From 824d2c62d488482b2501ed1c42f5af47f2e01548 Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 13:12:46 +0200 Subject: [PATCH 5/6] dont print cancellations in log + refactor --- python/tmc_classes.py | 9 +++++---- python/tmc_parser.py | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/python/tmc_classes.py b/python/tmc_classes.py index 1b1ef11..ce95280 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -613,7 +613,7 @@ class tmc_dict: return False return True def add(self,message): - message_is_repeat=False + print_message=True self.dict_lock.acquire() try: lcn=message.location.lcn @@ -623,17 +623,18 @@ class tmc_dict: if message.event.is_cancellation: try: 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 message.event.name="no message to cancel" self.messages[lcn][updateClass]=message else: 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) - message_is_repeat=True + print_message=False#dont print repeats else:#(over)write message self.messages[lcn][updateClass]=message #print("added message: "+str(message)) - if not message_is_repeat: + if print_message: self.list_lock.acquire() self.message_list.append(message) self.list_lock.release() @@ -641,7 +642,7 @@ class tmc_dict: print("ERROR, not adding: "+str(message)) finally: self.dict_lock.release() - return message_is_repeat + return print_message def getLogString(self,showInvalid,filters): self.list_lock.acquire() retStr="" diff --git a/python/tmc_parser.py b/python/tmc_parser.py index da90022..c934e39 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -176,18 +176,19 @@ class tmc_parser(gr.sync_block): if tmc_F==1:#single group tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self) self.dataLock.acquire(1) - self.tmc_messages.add(tmc_msg) + print_message=self.tmc_messages.add(tmc_msg) self.dataLock.release(1) - self.print_tmc_msg(tmc_msg) + if print_message:#ignore duplicates + self.print_tmc_msg(tmc_msg) elif tmc_F==0 and Y15==1:#1st group of multigroup ci=int(tmc_x&0x7) tmc_msg=tmc_message(PI,psn,ltn,tmc_x,tmc_y,tmc_z,datetime_received,self) self.dataLock.acquire(1) - message_is_repeat=self.tmc_messages.add(tmc_msg) + print_message=self.tmc_messages.add(tmc_msg) self.dataLock.release(1) #if self.RDS_data[PI]["internals"]["unfinished_TMC"].has_key(ci): #print("overwriting parital message") - if not message_is_repeat:#save unfinished message only once (dont overwrite collected additional groups) + if print_message:#save unfinished message only once (dont overwrite collected additional groups) self.unfinished_messages[PI][ci]={"msg":tmc_msg,"time":time.time()} else: ci=int(tmc_x&0x7) From 8520589ba929bf208aa9e7bd213bcc352f5b6ac4 Mon Sep 17 00:00:00 2001 From: csrichter Date: Fri, 19 May 2017 13:13:05 +0200 Subject: [PATCH 6/6] flowgraph updates --- apps/fft-multi-decoder_fixed_hackrf.grc | 2 +- apps/read_sync_decim.grc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/fft-multi-decoder_fixed_hackrf.grc b/apps/fft-multi-decoder_fixed_hackrf.grc index 6f15ef8..877d4c1 100644 --- a/apps/fft-multi-decoder_fixed_hackrf.grc +++ b/apps/fft-multi-decoder_fixed_hackrf.grc @@ -1217,7 +1217,7 @@ gui_hint - + tabs@0 _rotation diff --git a/apps/read_sync_decim.grc b/apps/read_sync_decim.grc index c8b4e2c..a160c7b 100644 --- a/apps/read_sync_decim.grc +++ b/apps/read_sync_decim.grc @@ -344,7 +344,7 @@ file - /tmp/cr/sync_decim_out_11221 + /user/wire2/richter/abgabe/crash-examples/tmc decoder crash/sync_decim_out_11221 _coordinate @@ -777,7 +777,7 @@ class blk(gr.sync_block): # other base classes are basic_block, decim_block, in writeDB - True + False