+ (parser, opts, args) = parse_options()
+ if len(args) < 1:
+ parser.error("Debe especificarse un comando.")
+ cmd = args[0]
+ dev = etherled.NetworkedDevice(opts.host, opts.port)
+ if cmd == 'gui':
+ cols = 16
+ if len(args) == 2:
+ try:
+ cols = int(args[1])
+ except ValueError:
+ parser.error("El parámetro debe ser un número entero.")
+ elif len(args) > 2:
+ parser.error("El comando lleva sólo 1 parámetro (opcional).")
+ if (cols < 8) or (cols > 32):
+ parser.error("El número de columnas debe estar entre 8 y 32.")
+ gtk.threads_init()
+ main_window = MainWindow(columns=cols, dev=dev)
+ gtk.threads_enter()
+ main_window.run()
+ gtk.threads_leave()
+ elif cmd == 'get-matrix':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ etherled.protocol._print_matrix(dev.matrix)
+ elif cmd == 'paused':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ if dev.paused:
+ print "En pausa"
+ else:
+ print "Dibujando"
+ elif cmd == 'pause':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ dev.paused = True
+ elif cmd == 'continue':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ dev.paused = False
+ elif cmd == 'off':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ try:
+ dev.turn_off()
+ # Nos va a tirar un time-out porque no responde
+ except etherled.protocol.RecvError:
+ pass
+ elif cmd == 'get-delay':
+ if len(args) != 1:
+ parser.error("El comando no lleva argumentos.")
+ print dev.delay
+ elif cmd == 'set-delay':
+ if len(args) != 2:
+ parser.error("El comando lleva 1 argumento.")
+ try:
+ delay = int(args[1])
+ except ValueError:
+ parser.error("El parámetro debe ser un entero entre 1 y 255.")
+ if (delay < 1) or (delay > 255):
+ parser.error("El parámetro debe ser un entero entre 1 y 255.")
+ dev.delay = delay
+ else:
+ parser.error("Comando desconocido. Vea la ayuda con %prog -h.")