code: def interactive():
      
      parser = argparse.ArgumentParser(description=__doc__)
      parser.add_argument('--device', default='/dev/ttyUSB0',
                          help='Path to PLM device')
      parser.add_argument('-v', '--verbose', action='count',
                          help='Set logging level to verbose')
      parser.add_argument('-l', '--logfile', default='',
                          help='Log file name')
      parser.add_argument('--workdir', default='',
                          help='Working directory for reading and saving '
                          'device information.')
      args = parser.parse_args()
  
      loop = asyncio.get_event_loop()
      cmd = Commander(loop, args)
      cmd.start()
      try:
          loop.run_forever()
      except KeyboardInterrupt:
          if cmd.tools.plm:
              if cmd.tools.plm.transport:
                  # _LOGGING.info('Closing the session')
                  cmd.tools.plm.transport.close()
          loop.stop()
          pending = asyncio.Task.all_tasks(loop=loop)
          for task in pending:
              task.cancel()
              try:
                  loop.run_until_complete(task)
              except asyncio.CancelledError:
                  pass
              except KeyboardInterrupt:
                  pass
          loop.close()
docs: Create an interactive command line tool.
  
      Wrapper for an interactive session for manual commands to be entered.