From c359ecb5449e340ffe8a136a72b6a33fd125d288 Mon Sep 17 00:00:00 2001 From: Mitchell Marino Date: Fri, 28 Mar 2025 00:48:33 -0500 Subject: [PATCH] state tracking for sseg --- main/drivers/sseg.cpp | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/main/drivers/sseg.cpp b/main/drivers/sseg.cpp index e7319e9..a7dc162 100644 --- a/main/drivers/sseg.cpp +++ b/main/drivers/sseg.cpp @@ -1,5 +1,6 @@ #include "sseg.h" -#include "esp_log.h" +#include +#include "state_tracking.h" TM1640* sseg = nullptr; @@ -18,12 +19,22 @@ void set_game_sseg_raw(const uint8_t* segments) { sseg->setSegments(segments[1], 1); sseg->setSegments(segments[2], 2); sseg->setSegments(segments[3], 3); + + if (is_state_tracking()) { + char buf[32]; + sprintf(buf, "%d,%d,%d,%d", segments[0], segments[1], segments[2], segments[3]); + event_occured("SSEG_G_RAW", buf); + } } void clear_game_sseg() { sseg->setSegments(0, 0); sseg->setSegments(0, 1); sseg->setSegments(0, 2); sseg->setSegments(0, 3); + + if (is_state_tracking()) { + event_occured("SSEG_G_CLR", NULL); + } } void set_module_sseg_raw(const uint8_t* segments) { @@ -31,6 +42,12 @@ void set_module_sseg_raw(const uint8_t* segments) { sseg->setSegments(segments[1], 5); sseg->setSegments(segments[2], 6); sseg->setSegments(segments[3], 7); + + if (is_state_tracking()) { + char buf[32]; + sprintf(buf, "%d,%d,%d,%d", segments[0], segments[1], segments[2], segments[3]); + event_occured("SSEG_M_RAW", buf); + } } void clear_module_sseg() { @@ -38,6 +55,10 @@ void clear_module_sseg() { sseg->setSegments(0, 5); sseg->setSegments(0, 6); sseg->setSegments(0, 7); + + if (is_state_tracking()) { + event_occured("SSEG_M_CLR", NULL); + } } void set_game_sseg_num(uint32_t value, uint8_t dot_pos) { @@ -46,6 +67,12 @@ void set_game_sseg_num(uint32_t value, uint8_t dot_pos) { sseg->sendChar(3-i, TM16XX_NUMBER_FONT[idx], i == dot_pos); value = value / 10; } + + if (is_state_tracking()) { + char buf[16]; + sprintf(buf, "%ld,%d", value, dot_pos); + event_occured("SSEG_G", buf); + } } void set_module_sseg_num(uint32_t value, uint8_t dot_pos) { @@ -54,4 +81,10 @@ void set_module_sseg_num(uint32_t value, uint8_t dot_pos) { sseg->sendChar(7-i, TM16XX_NUMBER_FONT[idx], i == dot_pos); value = value / 10; } + + if (is_state_tracking()) { + char buf[16]; + sprintf(buf, "%ld,%d", value, dot_pos); + event_occured("SSEG_M", buf); + } }