From b5f5be60d7994b874209d4d0df19f22b6819662c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ebbe=20Ba=C3=9F?= Date: Sun, 15 May 2022 20:40:08 +0200 Subject: [PATCH] removed debug client and added new main.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ebbe Baß --- debug-client.py | 9 ---- main-old.py | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ start.sh | 8 +-- test-client.py | 11 ----- test-server.py | 17 ------- 5 files changed, 133 insertions(+), 41 deletions(-) delete mode 100644 debug-client.py create mode 100644 main-old.py delete mode 100644 test-client.py delete mode 100644 test-server.py diff --git a/debug-client.py b/debug-client.py deleted file mode 100644 index da15321..0000000 --- a/debug-client.py +++ /dev/null @@ -1,9 +0,0 @@ -import socket - -HOST = "172.0.0.1" -PORT = 5760 - -with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.connect((HOST, PORT)) - s.sendall(b"Hello, world") - data = s.recv(1024) \ No newline at end of file diff --git a/main-old.py b/main-old.py new file mode 100644 index 0000000..5d3c51c --- /dev/null +++ b/main-old.py @@ -0,0 +1,129 @@ +import time +import os +from datetime import datetime +try: + from rpi_ws281x import * + import RPi.GPIO as GPIO + import socket +except ImportError: + print('Some modules are missing. Try to install them with "pip3 install -r requirements.txt"') + exit() + +led_power = True +idle_mode = 1 +global power_button_pressed +power_button_pressed = False + +SOCKET_BIND_IP = '0.0.0.0' +SOCKET_BIND_PORT = 5760 + +# LED strip configuration: +LED_COUNT = 60 # Number of LED pixels. +LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!). +#LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0). +LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz) +LED_DMA = 10 # DMA channel to use for generating signal (try 10) +LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest +LED_INVERT = False # True to invert the signal (when using NPN transistor level shift) +LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53 + +def debug_print(message: str): + now = datetime.now() + current_time = now.strftime("%H:%M:%S") + print('[DEBUG]['+current_time+'] '+message) + +def wheel(pos): + if pos < 85: + return Color(pos * 3, 255 - pos * 3, 0) + elif pos < 170: + pos -= 85 + return Color(255 - pos * 3, 0, pos * 3) + else: + pos -= 170 + return Color(0, pos * 3, 255 - pos * 3) + +def rainbowCycle(strip, wait_ms=5, iterations=10): + for j in range(256*iterations): + if power_button_pressed == True: + break + elif idle_mode > 1: + break + for i in range(strip.numPixels()): + strip.setPixelColor(i, wheel((int(i * 256 / strip.numPixels()) + j) & 255)) + strip.show() + time.sleep(wait_ms/1000.0) + +def setColor(strip, color, wait_ms=10): + for i in range(strip.numPixels()): + strip.setPixelColor(i, color) + strip.show() + time.sleep(wait_ms/1000.0) + +def blink(strip, color1, color2): + for i in range(strip.numPixels()): + strip.setPixelColor(i, color1) + strip.show() + time.sleep(1) + for i in range(strip.numPixels()): + strip.setPixelColor(i, color2) + strip.show() + time.sleep(1) + +def change_idle_mode(channel): + global idle_mode + idle_mode += 1 + if idle_mode == 8: + idle_mode = 1 + debug_print('Change Idlemode executed') + +def power_toggle(channel): + if led_power == True: + led_power = False + debug_print('LED Power OFF') + else: + led_power = True + debug_print('LED Power ON') + +if __name__ == '__main__': + strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL) + strip.begin() + GPIO.setmode(GPIO.BOARD) + GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP) + GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_UP) + GPIO.add_event_detect(13, GPIO.RISING, callback=power_toggle, bouncetime=300) + GPIO.add_event_detect(19, GPIO.RISING, callback=change_idle_mode, bouncetime=300) + + # with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + # s.bind((SOCKET_BIND_IP, SOCKET_BIND_PORT)) + # s.listen() + # conn, addr = s.accept() + + try: + while True: + # socket_data = conn.recv(1024) + # print(socket_data) + # print(type(socket_data)) + if led_power == True: + if idle_mode == 1: + rainbowCycle(strip) + elif idle_mode == 2: + setColor(strip, Color(255,0,0)) + elif idle_mode == 3: + setColor(strip, Color(0,255,0)) + elif idle_mode == 4: + setColor(strip, Color(0,0,255)) + elif idle_mode == 5: + setColor(strip, Color(125,245,255)) + elif idle_mode == 6: + setColor(strip, Color(255,0,100)) + elif idle_mode == 7: + setColor(strip, Color(0,255,255)) + else: + blink(strip, Color(255,0,0), Color(0,0,0)) + time.sleep(1) + else: + setColor(strip, Color(0,0,0)) + time.sleep(1) + except KeyboardInterrupt: + setColor(strip, Color(0,0,0)) + GPIO.cleanup() diff --git a/start.sh b/start.sh index 1dc6fd9..f1dbb6a 100644 --- a/start.sh +++ b/start.sh @@ -1,7 +1,7 @@ -#!bin/bash -e +#!bin/bash SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -screen -m -d rackled +screen -m -d rackled-ui sleep 5 -screen -S rackled -X stuff "cd $SCRIPT_DIR\n" -screen -S rackled -X stuff "python3 main.py\n" \ No newline at end of file +screen -S rackled-ui -X stuff "cd $SCRIPT_DIR\n" +screen -S rackled-ui -X stuff "python3 main.py\n" \ No newline at end of file diff --git a/test-client.py b/test-client.py deleted file mode 100644 index 0af878f..0000000 --- a/test-client.py +++ /dev/null @@ -1,11 +0,0 @@ -import socket - -HOST = "192.168.190.20" -PORT = 5760 - -with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.connect((HOST, PORT)) - s.sendall(b"Hello, world") - data = s.recv(1024) - -print(f"Received {data!r}") \ No newline at end of file diff --git a/test-server.py b/test-server.py deleted file mode 100644 index b00e3d9..0000000 --- a/test-server.py +++ /dev/null @@ -1,17 +0,0 @@ -import socket - -HOST = '0.0.0.0' -PORT = 5760 - -with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind((HOST, PORT)) - s.listen() - conn, addr = s.accept() - with conn: - print(f"Connected by {addr}") - while True: - data = conn.recv(1024) - if not data: - break - conn.sendall(data) - \ No newline at end of file