@@ -65,7 +65,8 @@ def clone(self):
6565 self .bytes ,
6666 self .decode ,
6767 self .ecu ,
68- self .fast )
68+ self .fast ,
69+ self .header )
6970
7071 @property
7172 def mode (self ):
@@ -106,24 +107,30 @@ def __constrain_message_data(self, message):
106107 if len (message .data ) > self .bytes :
107108 # chop off the right side
108109 message .data = message .data [:self .bytes ]
109- logger .debug ("Message was longer than expected. Trimmed message: " + repr (message .data ))
110+ logger .debug (
111+ "Message was longer than expected. Trimmed message: " +
112+ repr (message .data ))
110113 elif len (message .data ) < self .bytes :
111114 # pad the right with zeros
112115 message .data += (b'\x00 ' * (self .bytes - len (message .data )))
113- logger .debug ("Message was shorter than expected. Padded message: " + repr (message .data ))
116+ logger .debug (
117+ "Message was shorter than expected. Padded message: " +
118+ repr (message .data ))
114119
115120 def __str__ (self ):
121+ if self .header != ECU_HEADER .ENGINE :
122+ return "%s: %s" % (self .header + self .command , self .desc )
116123 return "%s: %s" % (self .command , self .desc )
117-
124+
118125 def __repr (self ):
119126 return "OBDCommand(%s, %s)" % (self .name , self .command )
120127
121128 def __hash__ (self ):
122129 # needed for using commands as keys in a dict (see async.py)
123- return hash (self .command )
130+ return hash (self .header + self . command )
124131
125132 def __eq__ (self , other ):
126133 if isinstance (other , OBDCommand ):
127- return self .command == other .command
134+ return self .command == other .command and self . header == other . header
128135 else :
129136 return False
0 commit comments