diff --git a/src/display.c b/src/display.c --- a/src/display.c +++ b/src/display.c @@ -114,7 +114,7 @@ void display_process(void) status->state = STATE_PREHEAT; break; case MODE_SETUP: - status->state = STATE_SETMODE; + status->state = STATE_SETSENSORTYPE; break; case MODE_RESET: status->state = STATE_RESET; @@ -149,6 +149,32 @@ void display_process(void) + case STATE_SETSENSORTYPE: + { + // Write text to OLED + // [ therm :: set mode ] + // [ m = ] + ssd1306_drawstring("Sensor Type", 0, 40); + ssd1306_drawlogo(); + + // change scope to global? + char* sensor_lookup[] = {"NTC", "K ", "E ", "N ", "R ", "S ", "T "}; + ssd1306_drawstring(sensor_lookup[set->val.sensor_type], 1, 60); + ssd1306_drawstring("Press to accept", 3, 40); + + // Button handler + if(SW_BTN_PRESSED) { + status->state = STATE_SETMODE; + } + else + { + user_input((uint16_t*)&set->val.hysteresis); + } + // Event Handler + // N/A + + } break; + case STATE_SETMODE: { // Write text to OLED