void write_lcd(int selected) { LCD_Clear(); LCD_DrawString(0, 8, (u8*)drink[0], strlen(drink[0])); LCD_DrawString(2, 8, (u8*)drink[1], strlen(drink[1])); LCD_DrawString(4, 8, (u8*)drink[2], strlen(drink[2])); LCD_DrawString(6, 8, (u8*)drink[3], strlen(drink[3])); LCD_DrawChar(2*selected, 0, '-'); }
void fill_glass(int sel) { disable_joystick(); // Disable user input LCD_Clear(); LCD_DrawString(2, 8, (u8*)"Filling...", 10); LCD_DrawString(4, 8, (u8*)drink[sel], strlen(drink[sel]));; set_all_valves(0); // Safety check; close all valves int empty_weight = get_weight(); switch(sel) { case 0: // Tequila Sunrise; 30.75% Tequila, 61.5% Orange Juice, 7.75% Grenadine LCD_DrawChar(0, 0, '1'); fill_liquid(TEQUILA, (empty_weight + 0.3075*MAX_WEIGHT)); LCD_DrawChar(0, 0, '2'); fill_liquid(ORANGE, (empty_weight + 0.9225*MAX_WEIGHT)); LCD_DrawChar(0, 0, '3'); fill_liquid(GRENADINE, (empty_weight + MAX_WEIGHT)); break; case 1: // The Gilbert; 58% Vodka, 30% Soda, 12% Orange Juice LCD_DrawChar(0, 0, '1'); fill_liquid(VODKA, (empty_weight + 0.58*MAX_WEIGHT)); LCD_DrawChar(0, 0, '2'); fill_liquid(SODA, (empty_weight + 0.88*MAX_WEIGHT)); LCD_DrawChar(0, 0, '3'); fill_liquid(ORANGE, (empty_weight + MAX_WEIGHT)); break; case 2: // Pink Polar Bear; 58% Vodka, 42% Grenadine LCD_DrawChar(0, 0, '1'); fill_liquid(VODKA, (empty_weight + 0.58*MAX_WEIGHT)); LCD_DrawChar(0, 0, '2'); fill_liquid(GRENADINE, (empty_weight + MAX_WEIGHT)); break; case 3: // Screwdriver; 48% Vodka, 52% Orange Juice LCD_DrawChar(0, 0, '1'); fill_liquid(VODKA, (empty_weight + 0.48*MAX_WEIGHT)); LCD_DrawChar(0, 15*8, '2'); fill_liquid(ORANGE, (empty_weight + MAX_WEIGHT)); break; default: break; } set_all_valves(0); // Safety check; close all valves LCD_Clear(); LCD_DrawString(1, 8, (u8*)"Enjoy...", 8); LCD_DrawString(3, 8, (u8*)"Press Joystick", 14); LCD_DrawString(5, 8, (u8*)"for new drink", 13); enable_joystick(); // Enable user input }
void fill_glass_debug(int sel) { char* msg = "Filling..."; char* msg2; int w; while (1) { w = get_average(100); sprintf(msg2, "%d", w); LCD_Clear(); LCD_DrawString(2, 16, (u8*)msg, 10); LCD_DrawString(4, 16, (u8*)msg2, strlen(msg2)); Delayms(100); } }
void error_recv(unsigned char id, unsigned char kind, unsigned char offset) { LCD_DrawUint(offset, WIDTH-6, 1); LCD_DrawUint(kind, WIDTH-9, 1); LCD_DrawUint(id, WIDTH-12, 1); LCD_DrawString("RcvErr", WIDTH-17, 1, 0); LCD_DrawHex(read_servo_buf, offset+1, 1, 2); }
// args are x, y, background_color, // foreground_color, transparent_flag, string const char* JSON_evalString(const char* ptr) { const char* data[5] = {NULL}; // this one has to be slightly different, hence cannot use the // "safe" function int i = 0; do { if(*ptr == ',') { data[i] = (ptr-1); i++; } ptr++; } while(i != 5 && *ptr != BREAK_CHAR && *ptr != END_CHAR); LCD_DrawString(atoi(data[1]), atoi(data[0]), atoi(data[2]), atoi(data[3]), atoi(data[4]), ptr); return ptr; }
void EditBoxDraw(GUI_EDIT_BOX * pEditBox) { int i; if (pEditBox->wmObj.Visible) { // Borders LCD_SetTextColor(pEditBox->wmObj.BorderColor); if (pEditBox->wmObj.BorderWidth) { if (pEditBox->wmObj.Visual3D == 1) { for (i = 0; i < pEditBox->wmObj.BorderWidth; i++) { LCD_SetTextColor(LCD_COLOR_GREYD); // Top Border LCD_DrawLine(pEditBox->wmObj.xPos, pEditBox->wmObj.yPos, pEditBox->wmObj.Width-i-1, LCD_DIR_HORIZONTAL); // Left Border LCD_DrawLine(pEditBox->wmObj.xPos, pEditBox->wmObj.yPos, pEditBox->wmObj.Height-i, LCD_DIR_VERTICAL); if (i == pEditBox->wmObj.BorderWidth-1 && pEditBox->wmObj.Color == LCD_COLOR_WHITE) LCD_SetTextColor(LCD_COLOR_GREYL); else LCD_SetTextColor(LCD_COLOR_WHITE); // Bottom Border LCD_DrawLine(pEditBox->wmObj.xPos+1+i, pEditBox->wmObj.yPos+pEditBox->wmObj.Height-i-1, pEditBox->wmObj.Width-i-2, LCD_DIR_HORIZONTAL); // Right Border LCD_DrawLine(pEditBox->wmObj.xPos+pEditBox->wmObj.Width-i-1, pEditBox->wmObj.yPos+i+1, pEditBox->wmObj.Height-i-2, LCD_DIR_VERTICAL); } } else { // Top Border LCD_DrawFillRect(pEditBox->wmObj.xPos, pEditBox->wmObj.yPos, pEditBox->wmObj.Width, pEditBox->wmObj.BorderWidth); // Left Border LCD_DrawFillRect(pEditBox->wmObj.xPos, pEditBox->wmObj.yPos, pEditBox->wmObj.BorderWidth, pEditBox->wmObj.Height); // Bottom Border LCD_DrawFillRect(pEditBox->wmObj.xPos, pEditBox->wmObj.yPos+pEditBox->wmObj.Height-pEditBox->wmObj.BorderWidth, pEditBox->wmObj.Width, pEditBox->wmObj.BorderWidth); // Right Border LCD_DrawFillRect(pEditBox->wmObj.xPos+pEditBox->wmObj.Width-pEditBox->wmObj.BorderWidth, pEditBox->wmObj.yPos, pEditBox->wmObj.BorderWidth, pEditBox->wmObj.Height); } } // Back if (pEditBox->wmObj.Transparent == 0) { LCD_SetTextColor(pEditBox->wmObj.Color); LCD_DrawFillRect(pEditBox->wmObj.xPos + pEditBox->wmObj.BorderWidth, pEditBox->wmObj.yPos + pEditBox->wmObj.BorderWidth, pEditBox->wmObj.Width - 2*pEditBox->wmObj.BorderWidth, pEditBox->wmObj.Height - 2*pEditBox->wmObj.BorderWidth ); } // Text LCD_SetFont(pEditBox->wmTxt.vFont); if (pEditBox->wmObj.Enable) LCD_SetColors(pEditBox->wmTxt.TextColor, pEditBox->wmObj.Color); else LCD_SetColors(guiChangeColorLight(pEditBox->wmObj.Color, 120), pEditBox->wmObj.Color); LCD_DrawString(pEditBox->wmTxt.Text, pEditBox->wmTxt.TextLen, pEditBox->wmTxt.TextPosX, pEditBox->wmTxt.TextPosY); } }