Started working on command set and removing tests

This commit is contained in:
Arne van Iterson 2020-05-20 20:22:41 +02:00
parent 162261e54f
commit fa8e3f17cc

View File

@ -10,13 +10,26 @@ Adafruit_PCD8544 display = Adafruit_PCD8544(14, 15, 16, 17, 18);
Button button(4); Button button(4);
Encoder encoder(3, 2); Encoder encoder(3, 2);
// General vars
unsigned long time; unsigned long time;
int connected = 0; int connected = 0;
int editing = 0; int editing = 0;
int blink = 0; int blink = 0;
// Encoder related vars
long position = 0; long position = 0;
// Serial related vars
const byte numChars = 32;
char receivedChars[numChars];
char tempChars[numChars];
char command[numChars] = {0};
char data[numChars] = {0};
int intData = 0;
boolean newData = false;
// Set backlight // Set backlight
int light = 0; int light = 0;
@ -35,11 +48,12 @@ void toggleBacklight(int value = 128) {
// Set variables for menu // Set variables for menu
int programLenght; int programLenght;
int currentProgram = 0; int currentProgram = 0;
char programName[numChars] = {0};
int menuUpdate = 1; int menuUpdate = 1;
int volume; float volume;
// Draw screen // Draw screen
void drawMenu(String name, float percentage) { void drawMenu(char name, float percentage) {
display.clearDisplay(); display.clearDisplay();
display.setFont(&Picopixel); display.setFont(&Picopixel);
@ -139,7 +153,8 @@ void drawBar(float percentage) {
} }
// Draw program name in the middle of the display or scroll it // Draw program name in the middle of the display or scroll it
void drawName(String name) { // TODO: Fix char lenght
void drawName(char name) {
int width = name.length() * 6; int width = name.length() * 6;
if (width > 84) if (width > 84)
{ {
@ -152,6 +167,7 @@ void drawName(String name) {
} }
// Check for button input // Check for button input
// TODO: Improve encoder input
void checkInput(unsigned long time) { void checkInput(unsigned long time) {
long newPosition = encoder.read(); long newPosition = encoder.read();
if (newPosition != position) { if (newPosition != position) {
@ -194,16 +210,6 @@ void checkInput(unsigned long time) {
} }
} }
const byte numChars = 32;
char receivedChars[numChars];
char tempChars[numChars];
char command[numChars] = {0};
char data[numChars] = {0};
int intData = 0;
boolean newData = false;
void processData() { void processData() {
if (newData == true) { if (newData == true) {
Serial.print("Raw data recieved: "); Serial.print("Raw data recieved: ");
@ -222,8 +228,29 @@ void processData() {
if (atoi(strtokIndx) > 0) // Integer data if (atoi(strtokIndx) > 0) // Integer data
{ {
intData = atoi(strtokIndx); intData = atoi(strtokIndx);
Serial.print("Int data: ");
Serial.println(intData);
} else { // String data } else { // String data
strcpy(data, strtokIndx); strcpy(data, strtokIndx);
Serial.print("String data: ");
Serial.println(data);
}
if (strcmp("HELLO", command) == 0)
{
Serial.println("<OK>");
}
else if (strcmp("COUNT", command) == 0)
{
programLenght = intData;
}
else if (strcmp("NAME", command) == 0)
{
// Set program name
}
else if (strcmp("GETVOL", command) == 0)
{
// Set volume
} }
newData = false; newData = false;
@ -300,19 +327,7 @@ void loop() {
// Draw menu every second or every 0.1 second when editing // Draw menu every second or every 0.1 second when editing
if (menuUpdate == 1 || (editing == 1 && time % 100 == 0)) { if (menuUpdate == 1 || (editing == 1 && time % 100 == 0)) {
menuUpdate = 0; menuUpdate = 0;
// TODO: Get serial data for program drawMenu(programName, volume);
switch (currentProgram)
{
case 0:
drawMenu("Firefox", volume);
break;
case 1:
drawMenu("Discord", volume);
break;
case 2:
drawMenu("Steam", volume);
break;
}
} }
// Check input // Check input