Exemplo n.º 1
0
static void brew_run_step()
{
	g_state.step_start_tick = xTaskGetTickCount();
	g_state.step_runtime = 0; // iterate will update this

	lcd_lock();
    lcd_fill(0, 0, LCD_W, CRUMB_H, 0x0);
	lcd_background(0x0);
    lcd_text(0, 0, "Brewbot:Brewing");
	lcd_fill(0, CRUMB_H - 2, LCD_W, 2, 0xFFFF);
	lcd_fill(0, CRUMB_H, LCD_W, LCD_H - CRUMB_H, COL_BG_NORM);
	lcd_fill(0, LCD_H - 1 * HH - 1, LCD_W / 2, 1, 0xFFFF);
	lcd_fill(LCD_W / 2, LCD_H - 1 * HH - 1, 1, HH, 0xFFFF);
	
	button_paint(brew_buttons);		
	if (g_steps[g_state.step].buttons)
		button_paint(g_steps[g_state.step].buttons);
	lcd_background(COL_BG_NORM);
	lcd_printf(17, 0, 20, "%d.%s", g_state.step, g_steps[g_state.step].name);
	lcd_release();
	log_brew(&g_state.log_file, "%.2d:%.2d Run step %d.%s\n",
			g_state.total_runtime / 60, g_state.total_runtime % 60,
			g_state.step, g_steps[g_state.step].name);

	g_steps[g_state.step].method(1);
}
/**
 * The factory method that builds a GUI using the given factory.
 *
 * @param gui_factory_h The factory to use for building the GUI.
 */
static void
generate_gui (gui_factory_handle gui_factory_h)
{
    button_handle button1 = NULL, button2 = NULL, button3 = NULL;

    if (NULL == gui_factory_h) {
        return;
    }

    /* 
     * The will create some buttons, call their paint functions, and then delete
     * them.  Use your imagination for much more complicated GUIs being built in
     * real life.
     */
    button1 = gui_factory_create_button(gui_factory_h);
    if (NULL == button1) {
        goto err_exit;
    }

    button2 = gui_factory_create_button(gui_factory_h);
    if (NULL == button2) {
        goto err_exit;
    }

    button3 = gui_factory_create_button(gui_factory_h);
    if (NULL == button3) {
        goto err_exit;
    }

    button_paint(button1);
    button_paint(button2);
    button_paint(button3);

    button_delete(button1);
    button_delete(button2);
    button_delete(button3);

    return;

err_exit:

    if (NULL != button1) {
        button_delete(button1);
    }

    if (NULL != button2) {
        button_delete(button2);
    }

    if (NULL != button3) {
        button_delete(button3);
    }
}
Exemplo n.º 3
0
void brew_resume(int init)
{
	if (init)
	{
		g_state.in_alarm = 0;
		lcd_lock();
	    lcd_fill(0, 0, LCD_W, CRUMB_H, 0x0);
	    lcd_text(0, 0, "Brewbot:Resume at step");
		lcd_fill(0, CRUMB_H - 2, LCD_W, 2, 0xFFFF);
		lcd_fill(0, CRUMB_H, LCD_W, LCD_H - CRUMB_H - 2 * HH, COL_BG_NORM);
		lcd_fill(0, LCD_H - 2 * HH - 2, LCD_W, 1, 0xFFFF);
		lcd_fill(0, LCD_H - 1 * HH - 1, LCD_W, 1, 0xFFFF);
		lcd_fill(LCD_W / 2, LCD_H - 2 * HH - 1, 1, 2 * HH, 0xFFFF);
		
		button_paint(resume_buttons);		
		lcd_background(COL_BG_NORM);
		lcd_printf(10, 4, 30, "%d. %s", g_state.step + 1, brew_step_name(g_state.step));
		lcd_release();
	}
	else
	{
		log_brew(&g_state.log_file, "%.2d:%.2d Brew stopped\n", g_state.total_runtime / 60, g_state.total_runtime % 60);
		brewTaskStop(&brew_task);
	}
}