Exemplo n.º 1
0
def Main():

    devices = GetFtdiDevices()
    default_device = None
    if len(devices) > 0:
        default_device = list(devices.keys())[0]

    parser = argparse.ArgumentParser(
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument('-d',
                        '--device',
                        help="ftdi device serial number",
                        default=default_device)
    subparsers = parser.add_subparsers(metavar='mode', dest='mode')

    parser_kline = subparsers.add_parser('kline', help='test kline')

    db_grp = parser.add_argument_group('debugging options')
    db_grp.add_argument('--list-devices',
                        action='store_true',
                        help="list ftdi devices")
    args = parser.parse_args()

    if args.list_devices:
        print("FTDI Devices:")
        for k, v in devices.items():
            print(" * %s: %s %s" % (k, v[0], v[1]))
        return
    elif args.device is None:
        print("No FTDI device connected")
        return

    dev = KlineAdapter(args.device)

    if args.mode is None:
        parser.print_help()

    elif args.mode == "kline":
        try:
            oldstate = None
            while True:
                newstate = dev.kline()
                if oldstate != newstate:
                    sys.stdout.write("\rK-line state: %d" % newstate)
                    sys.stdout.flush()
                    oldstate = newstate
        except KeyboardInterrupt:
            sys.stdout.write("\n")
            sys.stdout.flush()
Exemplo n.º 2
0
 def DeviceHandler(self, action, device, config):
     if action == "interrupt":
         raise Exception()
     elif action == "deactivate":
         if self.ecu:
             self.__cleanup()
     elif action == "activate":
         self.__clear_data()
         self.ecu = HondaECU(KlineAdapter(config))
         self.ready = True
Exemplo n.º 3
0
 def DeviceHandler(self, action, vendor, product, serial):
     if action == "interrupt":
         raise Exception()
     elif action == "deactivate":
         if self.ecu:
             self.__cleanup()
     elif action == "activate":
         self.__clear_data()
         try:
             self.ecu = HondaECU(KlineAdapter(device_id=serial))
             self.ready = True
         except FtdiError:
             pass
Exemplo n.º 4
0
 def DeviceHandler(self, action, device, config):
     if action == "interrupt":
         raise Exception()
     elif action == "deactivate":
         if self.ecu:
             self.__cleanup()
     elif action == "activate":
         self.__clear_data()
         self.ecu = HondaECU(
             KlineAdapter(config),
             retries=int(self.parent.config["DEFAULT"]["retries"]),
             timeout=float(self.parent.config["DEFAULT"]["timeout"]))
         self.ready = True