| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -317,19 +317,18 @@ class Controls: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # generic catch-all. ideally, a more specific event should be added above instead | 
					 | 
					 | 
					 | 
					    # generic catch-all. ideally, a more specific event should be added above instead | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    has_disable_events = self.events.contains(ET.NO_ENTRY) and (self.events.contains(ET.SOFT_DISABLE) or self.events.contains(ET.IMMEDIATE_DISABLE)) | 
					 | 
					 | 
					 | 
					    has_disable_events = self.events.contains(ET.NO_ENTRY) and (self.events.contains(ET.SOFT_DISABLE) or self.events.contains(ET.IMMEDIATE_DISABLE)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    no_system_errors = (not has_disable_events) or (len(self.events) == num_events) | 
					 | 
					 | 
					 | 
					    no_system_errors = (not has_disable_events) or (len(self.events) == num_events) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (not self.sm.all_checks() or CS.canRcvTimeout) and no_system_errors: | 
					 | 
					 | 
					 | 
					    if not self.sm.all_checks() and no_system_errors: | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if not self.sm.all_alive(): | 
					 | 
					 | 
					 | 
					      if not self.sm.all_alive(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssue) | 
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssue) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      elif not self.sm.all_freq_ok(): | 
					 | 
					 | 
					 | 
					      elif not self.sm.all_freq_ok(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssueAvgFreq) | 
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssueAvgFreq) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      else:  # invalid or can_rcv_timeout. | 
					 | 
					 | 
					 | 
					      else: | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssue) | 
					 | 
					 | 
					 | 
					        self.events.add(EventName.commIssue) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      logs = { | 
					 | 
					 | 
					 | 
					      logs = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        'invalid': [s for s, valid in self.sm.valid.items() if not valid], | 
					 | 
					 | 
					 | 
					        'invalid': [s for s, valid in self.sm.valid.items() if not valid], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        'not_alive': [s for s, alive in self.sm.alive.items() if not alive], | 
					 | 
					 | 
					 | 
					        'not_alive': [s for s, alive in self.sm.alive.items() if not alive], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        'not_freq_ok': [s for s, freq_ok in self.sm.freq_ok.items() if not freq_ok], | 
					 | 
					 | 
					 | 
					        'not_freq_ok': [s for s, freq_ok in self.sm.freq_ok.items() if not freq_ok], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        'can_rcv_timeout': CS.canRcvTimeout, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      } | 
					 | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if logs != self.logged_comm_issue: | 
					 | 
					 | 
					 | 
					      if logs != self.logged_comm_issue: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        cloudlog.event("commIssue", error=True, **logs) | 
					 | 
					 | 
					 | 
					        cloudlog.event("commIssue", error=True, **logs) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |