diff --git a/rpi/roy-test.py b/rpi/roy-test.py index 613d61c..bd3577a 100644 --- a/rpi/roy-test.py +++ b/rpi/roy-test.py @@ -1,42 +1,39 @@ -from samplebase import SampleBase from rgbmatrix import RGBMatrix, RGBMatrixOptions import paho.mqtt.client as mqtt +import time -class PulsingColors(SampleBase): - color = 0 - def __init__(self, *args, **kwargs): - super(PulsingColors, self).__init__(*args, **kwargs) - def run(self): - self.offscreen_canvas = self.matrix.CreateFrameCanvas() - continuum = 0 +# Configuration for the matrix +options = RGBMatrixOptions() +options.rows = 32 +options.chain_length = 1 +options.parallel = 1 +options.hardware_mapping = 'regular' # If you have an Adafruit HAT: 'adafruit-hat' +matrix = RGBMatrix(options = options) - while True: - self.usleep(5 * 1000) +# offscreen canvas that can be written to which can then be set to the matrix async +offscreen_canvas = matrix.CreateFrameCanvas() - if(self.color == 1): - self.offscreen_canvas.Fill(255,255,255) - else: - self.offscreen_canvas_Fill(255,0,0) - self.offscreen_canvas.brightness = 100 - self.offscreen_canvas = self.matrix.SwapOnVSync(self.offscreen_canvas) - def toggleColor(self): - if(self.color == 1): - self.color = 0 - else: - self.color = 1 +color = 0 +def toggleColor(self): + global color + if(color == 1): + color = 0 + else: + color = 1 + def on_connect(client, userdata, flags, rc): print("Connected to MQTT broker with result code " + str(rc)) client.subscribe("test") -def on_message(client, userdata, msg): - print("Received message: " + str(msg.payload.decode("utf-8"))) - pulsing_colors.toggleColor() - pulsing_colors.run() +def on_message(client, userdata, message): + print("Received message '" + str(message.payload) + "' on topic '" + + message.topic + "' with QoS " + str(message.qos)) + toggleColor() + -pulsing_colors = PulsingColors() client = mqtt.Client() client.on_connect = on_connect @@ -44,9 +41,15 @@ client.on_message = on_message client.connect("10.1.13.173", 1883, 60) # Replace with your MQTT broker's address -client.loop_forever() +client.loop_start() -# Main function -if __name__ == "__main__": - if (not pulsing_colors.process()): - pulsing_colors.print_help() +while True: + time.sleep(0.005) + + if(color == 1): + offscreen_canvas.Fill(255,255,255) + else: + offscreen_canvas.Fill(255,0,0) + + offscreen_canvas.brightness = 50 + offscreen_canvas = matrix.SwapOnVSync(offscreen_canvas) \ No newline at end of file