Exemple #1
0
def main():
    print(sys.argv)
    if len(sys.argv) == 2:
        sendcmd(sys.argv[1])
    elif len(sys.argv) == 3:
        sendcmd(sys.argv[1], sys.argv[2])
    elif len(sys.argv) == 1:

        print('Enter BMS port address option [3]')
        print('(1) /dev/ttyUSB0')
        print('(2) /dev/ttyUSB1')
        print('(3) other')
        port = int(getcmd())
        if port == 1:
            port = '/dev/ttyUSB0'
        elif port == 2:
            port = '/dev/ttyUSB1'
        else:
            port = str(input("Enter port name>"))

        while True:
            bmscore.openbms(port)

            print('Enter option')
            print('(1) Load all config data from BMS to memory')
            print('(2) Read all config data from disk to memory')
            print('(3) Write all config data from memory to BMS')
            print('(4) Write all config data from memory to disk')
            print('(5) Dump all config data in memory')
            print('(6) Dump raw config data in memory')
            print('(7) Read/Write config item in memory')
            print('(8) Read/Write single register in memory and on BMS PCB')
            print('(9) Read BMS data')
            print('(10) Switch charge/discharge FETs')
            print('(11) Calibrate BMS')
            cmd = int(getcmd())
            if cmd == 1:
                bmscore.configitems(bmscore.fullconfiglist, port)
            elif cmd == 2:
                file = str(input("Enter filename>"))
                bmscore.configinmem = bmscore.rdjson(file)
            elif cmd == 3:
                bmscore.configitems(bmscore.fullconfiglist, port, write=True)
            elif cmd == 4:
                file = str(input("Enter filename>"))
                bmscore.wrjson(file, bmscore.configinmem)
            elif cmd == 5:
                count = 0
                for i in bmscore.configinmem:
                    print ('{}={}{} {}'.format \
                    (i,bmscore.configinmem[i]['value'],bmscore.configinmem[i]['units'],bmscore.configinmem[i]['comment']))
                    count = count + 1
                    if count % 30 == 0:
                        x = input("press return for next page")

            elif cmd == 7:
                reg = enterreg()
                chgreg(reg)
            elif cmd == 6:
                count = 0
                for i in bmscore.configinmem:
                    print(i, bmscore.configinmem[i])
                    count = count + 1
                    if count % 30 == 0:
                        x = input("press return for next page")
            elif cmd == 8:
                reg = enterreg()
                if reg[[*reg][0]]:
                    chgreg(reg)
                    bmscore.configitems(reg, port, write=True)
            elif cmd == 9:
                getdat(port)
            elif cmd == 10:
                switchfets(port)
            elif cmd == 11:
                print('Enter Item to Calibrate?')
                print('(1) Cell Voltages')
                print('(2) Battery Current')
                item = int(getcmd())
                if item == 1:
                    item = input("Enter cell number/s e.g. '1-4,5'?> ")
                    result = set()
                    for part in item.split(','):
                        x = part.split('-')
                        result.update(range(int(x[0]), int(x[-1]) + 1))
                    celllist = sorted(result)
                    cellvolts = int(input("Enter cell voltage/s in mV?> "))
                    reglist = {}
                    for i in range(len(celllist)):
                        reg = findregname(
                            str.upper(format(celllist[i] + 0xAF, '02x')))
                        reglist[reg] = cellvolts
                    chgreg(reglist)
                    bmscore.configitems(reglist,
                                        port,
                                        write=True,
                                        calibrate=True)
                elif item == 2:
                    print("Enter current type?> ")
                    print('(1) Idle Current')
                    print('(2) Charge Current')
                    print('(3) Discharge Current')
                    item = int(getcmd())
                    if item == 1:
                        reg = 'CalibrateIdleA'
                    elif item == 2:
                        reg = 'CalibrateChgA'
                    elif item == 3:
                        reg = 'CalibrateDchgA'
                    current = int(input("Enter Measured Current in A> "))
                    reginfo = {reg: current}
                    chgreg(reginfo)
                    bmscore.configitems(reginfo,
                                        port,
                                        write=True,
                                        calibrate=True)
Exemple #2
0
def main():
  print (sys.argv)
  if len(sys.argv) == 2:
    sendcmd(sys.argv[1])
  elif len(sys.argv) == 3:
    sendcmd(sys.argv[1],sys.argv[2])
  elif len(sys.argv) == 1:

    print ('Enter BMS port address option [3]')
    print ('(1) /dev/ttyUSB0')
    print ('(2) /dev/ttyUSB1')
    print ('(3) other')
    port=int(getcmd())
    if port==1:
      port='/dev/ttyUSB0'
    elif port == 2:
      port='/dev/ttyUSB1'
    else:
      port=str(input("Enter port name>"))

    while True:
      bmscore.openbms(port)

      print('Enter option')
      print('(1) Load all config data from BMS to memory')
      print('(2) Read all config data from disk to memory')
      print('(3) Write all config data from memory to BMS')
      print('(4) Write all config data from memory to disk')
      print('(5) Dump all config data in memory')
      print('(6) Dump raw config data in memory')
      print('(7) Read/Write config item in memory')
      print('(8) Read/Write single register in memory and on BMS PCB')
      print('(9) Read BMS data')
      print('(10) Switch charge/discharge FETs')
      cmd=int(getcmd())
      if cmd==1:
        bmscore.configitems(bmscore.fullconfiglist,port)
      elif cmd==2:
        file=str(input("Enter filename>"))
        bmscore.configinmem=bmscore.rdjson(file)
      elif cmd==3:
        bmscore.configitems(bmscore.fullconfiglist,port,write=True)
      elif cmd==4:
        file=str(input("Enter filename>"))
        bmscore.wrjson(file,bmscore.configinmem)
      elif cmd ==5:
        count = 0
        for i in bmscore.configinmem:
          print ('{}={}{}'.format(i,bmscore.configinmem[i]['value'],bmscore.configinmem[i]['units']))
          count=count+1
          if count%30==0:
            x=input("press return for next page")

      elif cmd==7:
        changereg()
      elif cmd==6:
        count=0
        for i in bmscore.configinmem:
          print (i,bmscore.configinmem[i])
          count=count+1
          if count%30==0:
            x=input("press return for next page")
      elif cmd==8:
        reg=[]
        reg.append(changereg())
        if reg!=[None]:
          bmscore.configitems(reg,port,write=True)
      elif cmd==9:
        getdat(port)
      elif cmd ==10:
        switchfets(port)
Exemple #3
0
def main():
  print (sys.argv)
  if len(sys.argv) == 2:
    sendcmd(sys.argv[1])
  elif len(sys.argv) == 3:
    sendcmd(sys.argv[1],sys.argv[2])
  elif len(sys.argv) == 1:

    print ('Enter BMS port address option [3]')
    print ('(1) /dev/ttyUSB0')
    print ('(2) /dev/ttyUSB1')
    print ('(3) other')
    port=int(getcmd())
    if port==1:
      port='/dev/ttyUSB0'
    elif port == 2:
      port='/dev/ttyUSB1'
    else:
      port=str(input("Enter port name>"))

    while True:
      bmscore.openbms(port)

      print('Enter option')
      print('(1) Load all config data from BMS to memory')
      print('(2) Read all config data from disk to memory')
      print('(3) Write all config data from memory to BMS')
      print('(4) Write all config data from memory to disk')
      print('(5) Dump all config data in memory')
      print('(6) Dump raw config data in memory')
      print('(7) Read/Write config item in memory')
      print('(8) Read/Write single register in memory and on BMS PCB')
      print('(9) Read BMS data')

      cmd=int(getcmd())
      if cmd==1:
        bmscore.configitems(bmscore.fullconfiglist,port)
      elif cmd==2:
        file=str(input("Enter filename>"))
        bmscore.configinmem=bmscore.rdjson(file)
      elif cmd==3:
        bmscore.configitems(bmscore.fullconfiglist,port,write=True)
      elif cmd==4:
        file=str(input("Enter filename>"))
        bmscore.wrjson(file,bmscore.configinmem)
      elif cmd ==5:
        count = 0
        for i in bmscore.configinmem:
          print ('{}={}{}'.format(i,bmscore.configinmem[i]['value'],bmscore.configinmem[i]['units']))
          count=count+1
          if count%30==0:
            x=input("press return for next page")

      elif cmd==7:
        changereg()
      elif cmd==6:
        count=0
        for i in bmscore.configinmem:
          print (i,bmscore.configinmem[i])
          count=count+1
          if count%30==0:
            x=input("press return for next page")
      elif cmd==8:
        reg=[]
        reg.append(changereg())
        if reg!=[None]:
          bmscore.configitems(reg,port,write=True)
      elif cmd==9:
        getdat(port)