summaryrefslogtreecommitdiff
path: root/ledctl.py
diff options
context:
space:
mode:
Diffstat (limited to 'ledctl.py')
-rw-r--r--ledctl.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/ledctl.py b/ledctl.py
deleted file mode 100644
index da42efa..0000000
--- a/ledctl.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/python
-
-import argparse
-import board
-import neopixel
-import time
-
-from os.path import exists
-
-# parse command line arguments
-
-# TODO parse multiple LEDs e.g. ./ledctl --led 1 red --led 2 white
-
-parser = argparse.ArgumentParser(description='Set LED colors')
-
-parser.add_argument('--led', type=int, help='LED number to control, starting at 1')
-parser.add_argument('color', type=str, help='color or command')
-
-args = parser.parse_args();
-
-# initialize LED array
-leds_max = 1
-leds_num = 0
-leds_array = neopixel.NeoPixel(board.D18, leds_max)
-
-# restore LED array from state file
-statefile = '/tmp/ledctl.state'
-
-if exists(statefile):
- #print('reading ' + statefile)
-
- with open(statefile, 'r') as f:
- lines = f.readlines()
- i = 0;
- for line in lines:
- values = [ int(number) for number in line.rstrip().split(' ')]
- if (i < leds_max):
- leds_array[i] = (values[0], values[1], values[2]);
- i = i + 1
- f.close()
-
-# figure out if we want to control a single LED or all of them
-if args.led:
- if (args.led < 1) or (args.led > leds_max):
- parser.error("led must be within range")
- else:
- leds_num = args.led;
-
-# default color is white
-leds_color = (255, 255, 255)
-
-def rgbval(colorname):
- switch = {
- 'on': (255, 255, 255),
- 'off': (0, 0, 0),
- 'white': (255, 255, 255),
- 'black': (0, 0, 0),
- 'red': (255, 0, 0),
- 'green': (0, 255, 0),
- 'blue': (0, 0, 255),
- 'yellow': (255, 255, 0),
- 'cyan': (0, 255, 255),
- 'pink': (255, 0, 255),
- 'boot': (63, 15, 0),
- 'reboot' : (63, 15, 0),
- 'ready': (0, 15, 0),
- 'halt' : (0, 0, 0),
- 'poweroff' : (0, 0, 0),
- 'kexec' : (63, 0, 63),
- }
- return switch.get(colorname, (255, 255, 255))
-
-def hexval(letter):
- switch = {
- '0': 0,
- '1': 1,
- '2': 2,
- '3': 3,
- '4': 4,
- '5': 5,
- '6': 6,
- '7': 7,
- '8': 8,
- '9': 9,
- 'A': 10,
- 'a': 10,
- 'B': 11,
- 'b': 11,
- 'C': 12,
- 'c': 12,
- 'D': 13,
- 'd': 13,
- 'E': 14,
- 'e': 14,
- 'F': 15,
- 'f': 15,
- }
- return switch.get(letter, 0)
-
-if args.color:
- #print('color ' + args.color)
- if args.color[:1] == '#':
- red = 16 * hexval(args.color[1:2]) + hexval(args.color[2:3]);
- green = 16 * hexval(args.color[3:4]) + hexval(args.color[4:5]);
- blue = 16 * hexval(args.color[5:6]) + hexval(args.color[6:7]);
- leds_color = (red, green, blue);
- #print ('color %d %d %d' % leds_color)
-
- else:
- leds_color = rgbval(args.color);
-
-if (leds_num > 0):
- #print('setting LED %d' % leds_num)
-
- leds_array[leds_num - 1] = leds_color
-else:
- #print('setting all LEDs')
-
- leds_array.fill(leds_color)
-
-# write LED array to state file
-
-#print('writing ' + statefile)
-
-with open(statefile, 'w') as f:
- for i in range(leds_max):
- for c in range(3):
- f.write ('%d ' % leds_array[i][c])
- f.write('\n');
-
- f.close()
-