Added sleep state. Battery is now read on display wake or battery info click

This commit is contained in:
nedko 2022-11-04 16:55:08 +02:00
parent ca40b8d0eb
commit e71049146a

View File

@ -82,6 +82,7 @@ enum btn_state_e
enum main_state_e
{
STATE_SLEEP,
STATE_IDLE,
STATE_MENU,
STATE_ADJUST,
@ -308,9 +309,6 @@ void print_battery_stat(uint8_t force_draw);
// Prints single battery stat on row using symbols
void print_battery_single_stat(uint8_t y, int16_t bat_stat, uint8_t *symbols, uint8_t decimal_idx);
// Prints battery temp
void print_battery_temp();
// Find the current eeprom data idx of the attached spool
int16_t find_eeprom_idx();
@ -347,6 +345,7 @@ uint8_t consume_event();
// Adjusts count value based on event
void spool_count(uint8_t event);
void process_sleep();
void process_idle();
void process_menu();
void process_adjust();
@ -511,6 +510,10 @@ int main()
{
switch (state)
{
case STATE_SLEEP:
process_sleep();
break;
case STATE_IDLE:
process_idle();
break;
@ -528,15 +531,11 @@ int main()
break;
}
print_mm();
print_direction();
print_battery_icon();
if (sleep_when_ms > ms)
if (STATE_SLEEP != state)
{
sleep_when_ms = 0xFFFFFFFF;
do_sleep();
read_battery(&battery_mAh, &battery_mV, &battery_temp);
print_mm();
print_direction();
print_battery_icon();
}
}
}
@ -1414,6 +1413,40 @@ void spool_count(uint8_t event)
}
}
void process_sleep()
{
uint8_t curr_event;
while (event_count > 0)
{
curr_event = consume_event();
switch (curr_event)
{
case EVENT_ROT_CW: // Fall-through
case EVENT_ROT_CCW:
spool_count(curr_event);
break;
case EVENT_BTN_DOWN:
display_enable(1);
read_battery(&battery_mAh, &battery_mV, &battery_temp);
sleep_when_ms = ms + DISPLAY_DELAY;
state = STATE_IDLE;
break;
case EVENT_BTN_UP:
long_press_when_ms = 0xFFFFFFFF;
break;
}
}
if (STATE_SLEEP == state)
{
display_enable(0);
do_sleep();
}
}
void process_idle()
{
uint8_t curr_event;
@ -1435,8 +1468,6 @@ void process_idle()
case EVENT_BTN_UP:
long_press_when_ms = 0xFFFFFFFF;
// Click - update battery info
read_battery(&battery_mAh, &battery_mV, &battery_temp);
break;
}
}
@ -1449,6 +1480,13 @@ void process_idle()
long_press_when_ms = 0xFFFFFFFF;
print_menu(1);
}
// Go to sleep
if (ms >= sleep_when_ms)
{
state = STATE_SLEEP;
sleep_when_ms = 0xFFFFFFFF;
}
}
void process_menu()
@ -1505,6 +1543,13 @@ void process_menu()
// Print Menu in auto mode
print_menu(0);
}
if (ms >= sleep_when_ms)
{
print_clear_menu_area();
state = STATE_SLEEP;
sleep_when_ms = 0xFFFFFFFF;
}
}
void process_adjust()
@ -1643,6 +1688,13 @@ void process_battery()
state = STATE_IDLE;
long_press_when_ms = 0xFFFFFFFF;
}
if (ms >= sleep_when_ms)
{
print_clear_menu_area();
state = STATE_SLEEP;
sleep_when_ms = 0xFFFFFFFF;
}
}
void attach_detach_spool()