9q Emprovements for favorites and terminal
This commit is contained in:
parent
0e2a6f9f29
commit
7c56018259
@ -491,8 +491,10 @@ class ECU:
|
||||
c = kb.getch()
|
||||
if len(c)!=1: continue
|
||||
if path[:3] == 'FAV':
|
||||
if ord(c) == 13:
|
||||
if ord(c) == 13 or ord(c) == 10:
|
||||
kb.set_normal_term()
|
||||
self.add_favourite()
|
||||
kb.set_getch_term()
|
||||
else:
|
||||
if mod_globals.opt_csv and (c in mod_globals.opt_usrkey):
|
||||
csvline += ";" + c
|
||||
@ -521,31 +523,40 @@ class ECU:
|
||||
def add_favourite(self):
|
||||
H = 25
|
||||
if len(favouriteScreen.datarefs) < H:
|
||||
userData = raw_input("\nEnter parameter/state that you want to monitor: ").upper()
|
||||
if userData[:2] == 'PR':
|
||||
for pr in self.Parameters.keys():
|
||||
if self.Parameters[pr].agcdRef == userData:
|
||||
if not any(pr == dr.name for dr in favouriteScreen.datarefs):
|
||||
favouriteScreen.datarefs.append(ecu_screen_dataref("",pr,"Parameter"))
|
||||
else:
|
||||
for dr in favouriteScreen.datarefs:
|
||||
if pr == dr.name:
|
||||
favouriteScreen.datarefs.remove(dr)
|
||||
elif userData[:2] == 'ET':
|
||||
for st in self.States.keys():
|
||||
if self.States[st].agcdRef == userData:
|
||||
if not any(st == dr.name for dr in favouriteScreen.datarefs):
|
||||
favouriteScreen.datarefs.append(ecu_screen_dataref("",st,"State"))
|
||||
else:
|
||||
for dr in favouriteScreen.datarefs:
|
||||
if st == dr.name:
|
||||
favouriteScreen.datarefs.remove(dr)
|
||||
userDataStr = raw_input("\nEnter parameter/state that you want to monitor: ").upper()
|
||||
for userData in userDataStr.split(','):
|
||||
userData = userData.strip()
|
||||
if userData[:2] == 'PR':
|
||||
for pr in self.Parameters.keys():
|
||||
if self.Parameters[pr].agcdRef == userData:
|
||||
if not any(pr == dr.name for dr in favouriteScreen.datarefs):
|
||||
favouriteScreen.datarefs.append(ecu_screen_dataref("",pr,"Parameter"))
|
||||
else:
|
||||
for dr in favouriteScreen.datarefs:
|
||||
if pr == dr.name:
|
||||
favouriteScreen.datarefs.remove(dr)
|
||||
elif userData[:2] == 'ET':
|
||||
for st in self.States.keys():
|
||||
if self.States[st].agcdRef == userData:
|
||||
if not any(st == dr.name for dr in favouriteScreen.datarefs):
|
||||
favouriteScreen.datarefs.append(ecu_screen_dataref("",st,"State"))
|
||||
else:
|
||||
for dr in favouriteScreen.datarefs:
|
||||
if st == dr.name:
|
||||
favouriteScreen.datarefs.remove(dr)
|
||||
clearScreen()
|
||||
|
||||
def loadFavList(self):
|
||||
fl = open("./cache/favlist.txt", "r").readlines()
|
||||
|
||||
fn = "./cache/favlist_"+self.ecudata['ecuname']+".txt"
|
||||
|
||||
if not os.path.isfile(fn):
|
||||
favlistfile = open( fn, "wb" )
|
||||
favlistfile.close()
|
||||
|
||||
|
||||
fl = open(fn, "r").readlines()
|
||||
if len(fl) > 1:
|
||||
if(fl[-1] != self.ecudata['ecuname']): return False
|
||||
for drname in fl:
|
||||
drname = drname.strip().replace('\n','')
|
||||
if drname[:1] == "P":
|
||||
@ -554,6 +565,7 @@ class ECU:
|
||||
favouriteScreen.datarefs.append(ecu_screen_dataref("", drname,"State"))
|
||||
else:
|
||||
return drname
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@ -763,10 +775,9 @@ class ECU:
|
||||
menu.append("<Up>")
|
||||
choice = Choice(menu, "Choose :")
|
||||
if choice[0]=="<Up>":
|
||||
fl = open("./cache/favlist.txt", "w")
|
||||
fl = open("./cache/favlist_"+self.ecudata['ecuname']+".txt", "w")
|
||||
for dr in favouriteScreen.datarefs:
|
||||
fl.write(dr.name + "\n")
|
||||
fl.write(self.ecudata['ecuname'])
|
||||
fl.close()
|
||||
favouriteScreen.datarefs = []
|
||||
return
|
||||
@ -795,16 +806,20 @@ class ECU:
|
||||
gc.collect ()
|
||||
continue
|
||||
|
||||
fav_sc = self.screens[int(choice[1]) - 1]
|
||||
if choice[0][:3] == "FAV":
|
||||
for sc in self.screens:
|
||||
if sc.name.startswith('FAV'):
|
||||
fav_sc = sc
|
||||
if not favouriteScreen.datarefs:
|
||||
if self.loadFavList():
|
||||
self.show_screen(self.screens[int(choice[1])-1])
|
||||
self.show_screen(fav_sc)
|
||||
else:
|
||||
self.add_favourite()
|
||||
else:
|
||||
self.show_screen(self.screens[int(choice[1])-1])
|
||||
self.show_screen(fav_sc)
|
||||
else:
|
||||
self.show_screen(self.screens[int(choice[1])-1])
|
||||
self.show_screen(fav_sc)
|
||||
|
||||
def getLanguageMap(self):
|
||||
|
||||
|
@ -549,6 +549,10 @@ def proc_line( l, elm ):
|
||||
|
||||
l = l.strip()
|
||||
|
||||
if l.startswith(':'):
|
||||
print l
|
||||
return
|
||||
|
||||
if len(l) == 0:
|
||||
print
|
||||
return
|
||||
@ -616,6 +620,9 @@ def proc_line( l, elm ):
|
||||
bit_cmd( l.lower()[7:], elm, fnc='exit_if' )
|
||||
return
|
||||
|
||||
if len(l_parts) > 0 and l_parts[0] in ['go','goto']:
|
||||
print l
|
||||
return l_parts[1]
|
||||
|
||||
if l.lower().startswith('_'):
|
||||
print elm.send_raw(l[1:])
|
||||
@ -672,7 +679,7 @@ def main():
|
||||
if auto_macro in macro.keys():
|
||||
play_macro( auto_macro, elm )
|
||||
else:
|
||||
print 'Error: unknown macro mane:', auto_macro
|
||||
print 'Error: unknown macro name:', auto_macro
|
||||
|
||||
|
||||
while True:
|
||||
@ -688,7 +695,16 @@ def main():
|
||||
l = "# end of command file"
|
||||
print l
|
||||
|
||||
proc_line( l, elm )
|
||||
goto = proc_line( l, elm )
|
||||
|
||||
if goto and len(cmd_lines):
|
||||
c_str = 0
|
||||
for c in cmd_lines:
|
||||
if c.startswith(':'):
|
||||
if goto == c[1:].strip():
|
||||
cmd_ref = c_str
|
||||
break
|
||||
c_str += 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
@ -39,6 +39,9 @@ else:
|
||||
class KBHit:
|
||||
|
||||
def __init__(self):
|
||||
self.set_getch_term()
|
||||
|
||||
def set_getch_term(self):
|
||||
'''Creates a KBHit object that you can call to do various keyboard things.
|
||||
'''
|
||||
|
||||
@ -274,7 +277,7 @@ def clearScreen():
|
||||
def upScreen():
|
||||
sys.stdout.write(chr(27)+"[;H")
|
||||
|
||||
def hex_VIN_plus_CRC( VIN ):
|
||||
def hex_VIN_plus_CRC( VIN, plusCRC=True):
|
||||
'''The VIN must be composed of 17 alphanumeric characters apart from "I" and "O"'''
|
||||
|
||||
#VIN ='VF1LM1B0H11111111'
|
||||
@ -306,7 +309,10 @@ def hex_VIN_plus_CRC( VIN ):
|
||||
sCRC = '0'*(4-len(sCRC))+sCRC
|
||||
|
||||
# result
|
||||
return hexVIN+sCRC
|
||||
if plusCRC:
|
||||
return hexVIN+sCRC
|
||||
else:
|
||||
return hexVIN
|
||||
|
||||
# Test
|
||||
if __name__ == "__main__":
|
||||
|
@ -306,10 +306,6 @@ def main():
|
||||
ecu = ECU(choosen_ecu, lang.dict ) #loading original data for chosen ECU
|
||||
pickle.dump( ecu, open( ecucashfile, "wb" ) ) #and save cache
|
||||
|
||||
if not os.path.isfile("./cache/favlist.txt"):
|
||||
favlistfile = open( "./cache/favlist.txt", "wb" )
|
||||
favlistfile.close()
|
||||
|
||||
ecu.initELM( elm ) #init ELM for chosen ECU
|
||||
|
||||
if mod_globals.opt_demo:
|
||||
|
Loading…
x
Reference in New Issue
Block a user