Skip to content

Commit

Permalink
optimize raise, close serial port before raise
Browse files Browse the repository at this point in the history
  • Loading branch information
Neutree committed Jul 3, 2019
1 parent 72ee381 commit ccbdc55
Showing 1 changed file with 84 additions and 79 deletions.
163 changes: 84 additions & 79 deletions kflash.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,7 @@ def raise_exception(self, exception):
self._port.close()
except Exception:
pass
raise exception

def change_baudrate(self, baudrate):
printf(INFO_MSG,"Selected Baudrate: ", baudrate, BASH_TIPS['DEFAULT'])
Expand Down Expand Up @@ -1234,85 +1235,89 @@ def open_terminal(reset):

while 1:
self.checkKillExit()
retry_count = retry_count + 1
if retry_count > 15:
err = (ERROR_MSG,"No vaild Kendryte K210 found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`-p '+('/dev/ttyUSB0', 'COM3')[sys.platform == 'win32']+'`',BASH_TIPS['DEFAULT'])
err = tuple2str(err)
raise_exception( Exception(err) )
if args.Board == "dan" or args.Board == "bit" or args.Board == "trainer":
try:
printf('.', end='')
self.loader.reset_to_isp_dan()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "kd233":
try:
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "goE":
try:
printf('*', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "goD":
try:
printf('#', end='')
self.loader.reset_to_isp_goD()
self.loader.greeting()
break
except TimeoutError:
pass
else:
try:
printf('.', end='')
self.loader.reset_to_isp_dan()
self.loader.greeting()
args.Board = "dan"
printf()
printf(INFO_MSG,"Automatically detected dan/bit/trainer",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
args.Board = "kd233"
printf()
printf(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
printf('.', end='')
self.loader.reset_to_isp_goD()
self.loader.greeting()
args.Board = "goD"
printf()
printf(INFO_MSG,"Automatically detected goD",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
# Magic, just repeat, don't remove, it may unstable, don't know why.
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
args.Board = "kd233"
printf()
printf(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
retry_count = retry_count + 1
if retry_count > 15:
err = (ERROR_MSG,"No vaild Kendryte K210 found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`-p '+('/dev/ttyUSB0', 'COM3')[sys.platform == 'win32']+'`',BASH_TIPS['DEFAULT'])
err = tuple2str(err)
raise_exception( Exception(err) )
if args.Board == "dan" or args.Board == "bit" or args.Board == "trainer":
try:
printf('.', end='')
self.loader.reset_to_isp_dan()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "kd233":
try:
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "goE":
try:
printf('*', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
break
except TimeoutError:
pass
elif args.Board == "goD":
try:
printf('#', end='')
self.loader.reset_to_isp_goD()
self.loader.greeting()
break
except TimeoutError:
pass
else:
try:
printf('.', end='')
self.loader.reset_to_isp_dan()
self.loader.greeting()
args.Board = "dan"
printf()
printf(INFO_MSG,"Automatically detected dan/bit/trainer",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
args.Board = "kd233"
printf()
printf(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
printf('.', end='')
self.loader.reset_to_isp_goD()
self.loader.greeting()
args.Board = "goD"
printf()
printf(INFO_MSG,"Automatically detected goD",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
try:
# Magic, just repeat, don't remove, it may unstable, don't know why.
printf('_', end='')
self.loader.reset_to_isp_kd233()
self.loader.greeting()
args.Board = "kd233"
printf()
printf(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
break
except TimeoutError:
pass
except Exception as e:
printf()
raise_exception( Exception("Greeting fail, check serial port ("+str(e)+")" ) )

# Don't remove this line
# Dangerous, here are dinosaur infested!!!!!
Expand Down

0 comments on commit ccbdc55

Please sign in to comment.