4
0
Fork 0
mirror of https://github.com/zzzzDev4/IAS-Better-Tea.git synced 2025-04-21 07:31:20 +02:00

added time formatting

This commit is contained in:
zzzz 2024-05-14 20:21:01 +02:00
parent fed38c1486
commit 421d00b3fb
5 changed files with 51 additions and 13 deletions

View file

@ -1,4 +1,5 @@
#include "SmartDisplay.hpp"
#include "SmartTime.hpp"
SmartDisplay::SmartDisplay(Adafruit_SSD1306 *display)
{
@ -12,11 +13,15 @@ void SmartDisplay::printTeaConfigScreen(TeaData tea)
m_display->println(tea.m_teaName);
m_display->print(tea.m_waterTemp);
m_display->drawCircle(m_display->getCursorX() + 4, m_display->getCursorY(), 1, WHITE);
m_display->println(" C");
m_display->setTextSize(2);
m_display->print(tea.m_steepingSeconds);
m_display->print(" ");
String steepingTime = SmartTime::formatSeconds(tea.m_steepingSeconds);
m_display->print(steepingTime);
m_display->setTextSize(1);
m_display->setCursor(m_display->getCursorX(), m_display->getCursorY() + 7);
m_display->println(" min");
m_display->display();
}
@ -29,7 +34,11 @@ void SmartDisplay::printTeaSteepingProgressScreen(TeaData tea, int remainingSeco
m_display->println(" (Steeping)");
m_display->setTextSize(2);
m_display->println(remainingSeconds);
String remainingTime = SmartTime::formatSeconds(remainingSeconds);
m_display->print(remainingTime);
m_display->setTextSize(1);
m_display->setCursor(m_display->getCursorX(), m_display->getCursorY() + 7);
m_display->println(" min");
m_display->display();
}
@ -42,7 +51,7 @@ void SmartDisplay::printWaitForRFIDScreen()
m_display->display();
}
void SmartDisplay::printRequestFeedbackScreen(TeaData teaData)
void SmartDisplay::printRequestFeedbackScreen(TeaData tea)
{
resetDisplay();
@ -53,15 +62,17 @@ void SmartDisplay::printRequestFeedbackScreen(TeaData teaData)
m_display->display();
}
void SmartDisplay::printAddNewTeaConfigScreen(TeaData teaData)
void SmartDisplay::printAddNewTeaConfigScreen(TeaData tea)
{
resetDisplay();
m_display->println("Add initial config for new tea");
m_display->println();
m_display->print("Steeping time:");
m_display->print(teaData.m_steepingSeconds);
m_display->println("s");
String steepingTime = SmartTime::formatSeconds(tea.m_steepingSeconds);
m_display->print(steepingTime);
m_display->setTextSize(1);
m_display->println(" min");
m_display->display();
}

View file

@ -11,13 +11,13 @@ public:
public:
// lifecycle screens
void printWaitForRFIDScreen();
void printTeaConfigScreen(TeaData teaData);
void printTeaSteepingProgressScreen(TeaData teaData, int remainingSeconds);
void printRequestFeedbackScreen(TeaData teaData);
void printTeaConfigScreen(TeaData tea);
void printTeaSteepingProgressScreen(TeaData tea, int remainingSeconds);
void printRequestFeedbackScreen(TeaData tea);
public:
// special screens
void printAddNewTeaConfigScreen(TeaData teaData);
void printAddNewTeaConfigScreen(TeaData tea);
public:
// helper methods

14
src/SmartTime.cpp Normal file
View file

@ -0,0 +1,14 @@
#include "SmartTime.hpp"
String SmartTime::formatSeconds(int seconds)
{
int m = seconds / 60;
int s = seconds % 60;
String str = "";
str += m;
str += ":";
if (s < 10)
str += "0";
str += s;
return str;
}

7
src/SmartTime.hpp Normal file
View file

@ -0,0 +1,7 @@
#pragma once
#include <Arduino.h>
class SmartTime {
public:
static String formatSeconds(int seconds);
};

View file

@ -242,18 +242,24 @@ void loop()
break;
}
if (isBtnPressed()) {
// keep steeping time for next brew
smartDisplay.printMsg("Feedback accepted (perfect)");
delay(1000);
state = State::WAIT_FOR_RFID_SCAN;
}
if (buttonLeft.isJustPressed())
{
// decrease steeping time for next brew
smartDisplay.printMsg("Feedback accepted (-)");
delay(3000);
delay(1000);
state = State::WAIT_FOR_RFID_SCAN;
}
if (buttonRight.isJustPressed())
{
// increase steeping time for next brew
smartDisplay.printMsg("Feedback accepted (+)");
delay(3000);
delay(1000);
state = State::WAIT_FOR_RFID_SCAN;
}
break;