@@ -126,27 +126,27 @@ def close(self):
126126
127127 async def _command (self , name , * args ):
128128 LOGGER .debug ("Command %s %s" , name , args )
129- self ._seq = (self ._seq % 255 ) + 1
130- data = self ._api_frame (name , * args )
129+ data , seq = self ._api_frame (name , * args )
131130 self ._uart .send (data )
132131 fut = asyncio .Future ()
133- self ._awaiting [self . _seq ] = fut
132+ self ._awaiting [seq ] = fut
134133 try :
135134 return await asyncio .wait_for (fut , timeout = COMMAND_TIMEOUT )
136135 except asyncio .TimeoutError :
137136 LOGGER .warning ("No response to '%s' command" , name )
138- self ._awaiting .pop (self . _seq )
137+ self ._awaiting .pop (seq )
139138 raise
140139
141140 def _api_frame (self , name , * args ):
142141 cmd_id , schema = TX_COMMANDS [name ]
143142 d = t .serialize (args , schema )
144143 data = t .uint8_t (cmd_id ).serialize ()
144+ self ._seq = (self ._seq % 255 ) + 1
145145 data += t .uint8_t (self ._seq ).serialize ()
146146 data += t .uint8_t (0 ).serialize ()
147147 data += t .uint16_t (len (d ) + 5 ).serialize ()
148148 data += d
149- return data
149+ return data , self . _seq
150150
151151 def data_received (self , data ):
152152 try :
0 commit comments