From d27ca93ac86697f8be6af3c751a5a527f3c07c88 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Sun, 12 Jun 2022 11:17:10 +0200 Subject: Python scripts for communication over serial and scramble generation --- Makefile | 2 +- comm.py | 34 ++++++++++++++++++++++++++++++++++ gen-scramble.py | 22 ++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 comm.py create mode 100644 gen-scramble.py diff --git a/Makefile b/Makefile index cafcbf0..0480df8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CXX = g++ # CXXFLAGS = -std=c++14 -g -Wall -Wshadow -Wextra -fsanitize=address -fsanitize=undefined -CXXFLAGS = -std=c++14 -O3 +CXXFLAGS = -std=c++14 -O3 -march=native C_FILES = $(wildcard src/*.cpp) H_FILES = $(wildcard src/*.h) diff --git a/comm.py b/comm.py new file mode 100644 index 0000000..bd07978 --- /dev/null +++ b/comm.py @@ -0,0 +1,34 @@ +import serial +import sys +import time + +device = sys.argv[1] +bandwidth = 115200 + +rot_str = [ + "R", "R\'", "R2", + "L", "L\'", "L2", + "U", "U\'", "U2", + "D", "D\'", "D2", + "F", "F\'", "F2", + "B", "B\'", "B2", +] + +def rot_to_byte(rot): + return rot_str.index(rot) + +with serial.Serial(device, bandwidth, timeout=1) as ser: + print("Sleepin for some time") + time.sleep(4) + print("Ready!") + while True: + rots = input().strip().split(' ') + print(rots) + for rot in rots: + if not rot in rot_str: + print(f"Invalid rotation {rot}, discarding.") + rots = [] + for rot in rots: + ser.write(bytes([rot_to_byte(rot)])) + print(f"Sending rotation: {rot}") + print(str(ser.readline())) diff --git a/gen-scramble.py b/gen-scramble.py new file mode 100644 index 0000000..d1482cd --- /dev/null +++ b/gen-scramble.py @@ -0,0 +1,22 @@ +import sys +import random + +faces = "RLUDFB" +rot = " '2" + +def random_rotation(): + r = random.choice(faces) + random.choice(rot) + return r.strip() + +def gen_scramble(): + scramble = '' + for _ in range(int(sys.argv[2])): + scramble += random_rotation() + ' ' + return scramble.strip() + +if len(sys.argv) != 4: + print(f"Usage: python3 {sys.argv[0]} seed length scrambles") + exit(1) + +for i in range(int(sys.argv[3])): + print(gen_scramble()) -- cgit v1.2.3