1- #!/usr/bin/env python3
2- ''' log command handling'''
1+ '''
2+ log command handling
33
4- import time , os
4+ AP_FLAKE8_CLEAN
5+ '''
6+
7+ import os
8+ import time
59
610from MAVProxy .modules .lib import mp_module
711
12+
813class LogModule (mp_module .MPModule ):
914 def __init__ (self , mpstate ):
1015 super (LogModule , self ).__init__ (mpstate , "log" , "log transfer" )
@@ -43,7 +48,6 @@ def handle_log_entry(self, m):
4348 self .entries [m .id ] = m
4449 print ("Log %u numLogs %u lastLog %u size %u %s" % (m .id , m .num_logs , m .last_log_num , m .size , tstring ))
4550
46-
4751 def handle_log_data (self , m ):
4852 '''handling incoming log data'''
4953 if self .download_file is None :
@@ -67,17 +71,21 @@ def handle_log_data(self, m):
6771 self .download_file .close ()
6872 size = os .path .getsize (self .download_filename )
6973 speed = size / (1000.0 * dt )
70- status = "Finished downloading %s (%u bytes %u seconds, %.1f kbyte/sec %u retries)" % (self .download_filename ,
71- size ,
72- dt , speed ,
73- self .retries )
74- self .console .set_status ('LogDownload' ,status , row = 4 )
74+ status = (
75+ f"Finished downloading { self .download_filename } " +
76+ f"({ size } bytes { dt } seconds, " +
77+ f"{ speed :.1} f kbyte/sec " +
78+ "{self.retries} retries)"
79+ )
80+ self .console .set_status ('LogDownload' , status , row = 4 )
7581 print (status )
7682 self .download_file = None
7783 self .download_filename = None
7884 self .download_set = set ()
79- self .master .mav .log_request_end_send (self .target_system ,
80- self .target_component )
85+ self .master .mav .log_request_end_send (
86+ self .target_system ,
87+ self .target_component
88+ )
8189 if len (self .download_queue ):
8290 self .log_download_next ()
8391 self .update_status ()
@@ -89,9 +97,13 @@ def handle_log_data_missing(self):
8997 highest = max (self .download_set )
9098 diff = set (range (highest )).difference (self .download_set )
9199 if len (diff ) == 0 :
92- self .master .mav .log_request_data_send (self .target_system ,
93- self .target_component ,
94- self .download_lognum , (1 + highest ) * 90 , 0xffffffff )
100+ self .master .mav .log_request_data_send (
101+ self .target_system ,
102+ self .target_component ,
103+ self .download_lognum ,
104+ (1 + highest ) * 90 ,
105+ 0xffffffff
106+ )
95107 self .retries += 1
96108 else :
97109 num_requests = 0
@@ -102,15 +114,18 @@ def handle_log_data_missing(self):
102114 while end + 1 in diff :
103115 end += 1
104116 diff .remove (end )
105- self .master .mav .log_request_data_send (self .target_system ,
106- self .target_component ,
107- self .download_lognum , start * 90 , (end + 1 - start ) * 90 )
117+ self .master .mav .log_request_data_send (
118+ self .target_system ,
119+ self .target_component ,
120+ self .download_lognum ,
121+ start * 90 ,
122+ (end + 1 - start ) * 90
123+ )
108124 num_requests += 1
109125 self .retries += 1
110126 if len (diff ) == 0 :
111127 break
112128
113-
114129 def log_status (self , console = False ):
115130 '''show download status'''
116131 if self .download_filename is None :
@@ -133,13 +148,12 @@ def log_status(self, console=False):
133148 if len (self .download_set ):
134149 highest = max (self .download_set )
135150 diff = set (range (highest )).difference (self .download_set )
136- status = "Downloading %s - %u/%u bytes %.1f%% %.1f kbyte/s (%u retries %u missing)" % (self .download_filename ,
137- os .path .getsize (self .download_filename ),
138- size ,
139- pct ,
140- speed ,
141- self .retries ,
142- len (diff ))
151+ status = (
152+ f"Downloading { self .download_filename } - " +
153+ f"{ os .path .getsize (self .download_filename )} /{ size } bytes " +
154+ f"{ pct :.1f} % { speed :.1} kbyte/s " +
155+ f"({ self .retries } retries { len (diff )} missing)"
156+ )
143157 if console :
144158 self .console .set_status ('LogDownload' , status , row = 4 )
145159 else :
@@ -164,11 +178,11 @@ def log_download_all(self):
164178 self .log_download_next ()
165179
166180 def log_download_range (self , first , last ):
167- self .download_queue = sorted (list (range (first ,last + 1 )),reverse = True )
181+ self .download_queue = sorted (list (range (first , last + 1 )), reverse = True )
168182 print (self .download_queue )
169183 self .log_download_next ()
170184
171- def log_download_from (self ,fromnum = 0 ):
185+ def log_download_from (self , fromnum = 0 ):
172186 if len (self .entries .keys ()) == 0 :
173187 print ("Please use log list first" )
174188 return
@@ -181,9 +195,13 @@ def log_download(self, log_num, filename):
181195 print ("Downloading log %u as %s" % (log_num , filename ))
182196 self .download_lognum = log_num
183197 self .download_file = open (filename , "wb" )
184- self .master .mav .log_request_data_send (self .target_system ,
185- self .target_component ,
186- log_num , 0 , 0xFFFFFFFF )
198+ self .master .mav .log_request_data_send (
199+ self .target_system ,
200+ self .target_component ,
201+ log_num ,
202+ 0 ,
203+ 0xFFFFFFFF
204+ )
187205 self .download_filename = filename
188206 self .download_set = set ()
189207 self .download_start = time .time ()
@@ -206,17 +224,24 @@ def cmd_log(self, args):
206224 elif args [0 ] == "list" :
207225 print ("Requesting log list" )
208226 self .download_set = set ()
209- self .master .mav .log_request_list_send (self .target_system ,
210- self .target_component ,
211- 0 , 0xffff )
227+ self .master .mav .log_request_list_send (
228+ self .target_system ,
229+ self .target_component ,
230+ 0 ,
231+ 0xffff
232+ )
212233
213234 elif args [0 ] == "erase" :
214- self .master .mav .log_erase_send (self .target_system ,
215- self .target_component )
235+ self .master .mav .log_erase_send (
236+ self .target_system ,
237+ self .target_component
238+ )
216239
217240 elif args [0 ] == "resume" :
218- self .master .mav .log_request_end_send (self .target_system ,
219- self .target_component )
241+ self .master .mav .log_request_end_send (
242+ self .target_system ,
243+ self .target_component
244+ )
220245
221246 elif args [0 ] == "cancel" :
222247 if self .download_file is not None :
@@ -225,7 +250,7 @@ def cmd_log(self, args):
225250
226251 elif args [0 ] == "download" :
227252 if len (args ) < 2 :
228- print ("usage: log download all | log download <lognumber> <filename> | log download from <lognumber>|log download range FIRST LAST" )
253+ print ("usage: log download all | log download <lognumber> <filename> | log download from <lognumber>|log download range FIRST LAST" ) # noqa:E501
229254 return
230255 if args [1 ] == 'all' :
231256 self .log_download_all ()
@@ -256,21 +281,21 @@ def cmd_log(self, args):
256281 else :
257282 print (usage )
258283
259-
260284 def update_status (self ):
261285 '''update log download status in console'''
262286 now = time .time ()
263287 if self .download_file is not None and now - self .last_status > 0.5 :
264288 self .last_status = now
265289 self .log_status (True )
266-
290+
267291 def idle_task (self ):
268292 '''handle missing log data'''
269293 if self .download_last_timestamp is not None and time .time () - self .download_last_timestamp > 0.7 :
270294 self .download_last_timestamp = time .time ()
271295 self .handle_log_data_missing ()
272296 self .update_status ()
273297
298+
274299def init (mpstate ):
275300 '''initialise module'''
276301 return LogModule (mpstate )
0 commit comments