# TVR testing
# 26/3/2022  setting parameters from TV remote
# Vol+  = basespeed
# Vol-  = efactor
# ch+   = dfactor
# ch-   = count
# Power = Exit and run race
# OK    = re-write params.py

# Filename to be printed
Thisfile = "TVRTest1.py"
# History

from machine import UART
from UKMARS import *
try:
    from params import *
except:
    pass
#count = 2

uart = UART(0, 2400)          # init with given baudrate 0 = TX/RX pins
     
#basespeed=12
#efactor=34
#dfactor=56

def Read():
    print("R",end="")
    bytesObj = uart.read(1)
    try:
        bytesObj =bytesObj.decode('utf-8')
        print(bytesObj)
    except:
        bytesObj = ''
    return(bytesObj)

#################
#  write_params  #
#################
# writes all parameter to file params.py
def writeparams():
    #global basespeed,efactor,dfactor
    pfile = open("params.py","w")
    pfile.write("basespeed="+str(basespeed))
    pfile.write("\r\nefactor="+str(efactor))
    pfile.write("\r\ndfactor="+str(dfactor))
    pfile.write("\r\ncount="+str(count))
    pfile.close()
    print("params.py written")


def getparams():
    return(basespeed,efactor,dfactor,count)


print(Thisfile)
char = " "
led.on()
time.sleep(1)
led.off()
Number = 0
#  0: waiting for 1st digit
#  1: waiting for destination
state = 0
swval = readswitches()

while (swval>=140):
    if (uart.any()):
        char = uart.read(1)
        #print(char)
        
        try:
            char = char.decode('utf-8')
        except:
            char = '?'
        try:
            ich = int(char)
        except:
            ich = 99
        #print(char,ich)
        if (ich >=0 and ich <10):
            led.on()
            time.sleep(0.1)
            led.off()
            if (state == 0):   # waiting 1st digit
                Number = ich
                state = 1
            elif (state == 1):
                Number = Number * 10 + ich
            print("Num:",Number)
        elif (char == 'e'):      #efactor
            if (state == 1):   # digits entered
                efactor = Number
                Number = 0
                state = 0
            print ("efactor:",efactor)
        elif (char == 'd'):      #efactor
            if (state == 1):   # digits entered
                dfactor = Number
                Number = 0
                state = 0
            print ("dfactor:",dfactor)
                
        elif (char == 's'):      #efactor
            if (state == 1):   # digits entered
                basespeed = Number
                Number = 0
                state = 0
            print ("speed:",basespeed)
        elif (char == 'l'):      #count
            if (state == 1):   # digits entered
                count = Number
                Number = 0
                state = 0
            print ("count:",count)
        elif (char == 'P'):      #power
            break
        elif (char == '\r'):      #OK
            print("OK, writing file")
            writeparams()
        elif (char == 'm'):      #OK
            print("Number deleted")
            led.on()
            time.sleep(0.1)
            led.off()
            Number = 0
            state = 0
        elif (char == 'q'):      #OK
            print("basespeed=",basespeed,"efactor=",efactor,"dfactor=",dfactor,"count=",count)
            state =0
            Number=0
        elif (char == 'G'):    # Green
            print("Trying to Read file")
            myname = "params.py"
            try:
                pfile = open(myname,"r")
                print(myname +" opened OK")
                Lines = pfile.readlines()
                for line in Lines:
                    exec(line)
                pfile.close()
            except:
                print("read fail:")
            print("basespeed=",basespeed)
            print("efactor=",efactor)
            print("dfactor=",dfactor)
            print("count=",count)
            state =0
            Number=0

        else:
            print("Unknown key '"+char+"'")
    time.sleep(0.1)
    
#while Button.value()==0:
#    led.toggle()
#    time.sleep(0.1)
