/* -*- C++ -*- * Euler - A watchy firmware for crazy people. * * Copyright (c) 2021 Sameer Rahmani * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include "Face.h" #include "Home.h" #include "esp32-hal-cpu.h" #include "stdint.h" namespace Euler{ void Face::drawWatchFace(){ Home home(Home(*this)); home.draw(); } // EulerFace::EulerFace(){} // void EulerFace::drawWatchFace(){ // display.fillScreen(DARKMODE ? GxEPD_BLACK : GxEPD_WHITE); // display.setTextColor(DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); // drawTime(); // drawDate(); // //drawSteps(); // drawWeather(); // drawBattery(); // display.drawBitmap(120, 77, WIFI_CONFIGURED ? wifi : wifioff, 26, 18, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); // if(BLE_CONFIGURED){ // display.drawBitmap(100, 75, bluetooth, 13, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); // } // } // void EulerFace::drawTime(){ // display.setFont(&DSEG7_Classic_Bold_53); // display.setCursor(5, 53+5); // if(currentTime.Hour < 10){ // display.print("0"); // } // display.print(currentTime.Hour); // display.print(":"); // if(currentTime.Minute < 10){ // display.print("0"); // } // display.println(currentTime.Minute); // } // void EulerFace::drawDate(){ // display.setFont(&Seven_Segment10pt7b); // int16_t x1, y1; // uint16_t w, h; // String dayOfWeek = dayStr(currentTime.Wday); // display.getTextBounds(dayOfWeek, 5, 85, &x1, &y1, &w, &h); // display.setCursor(85 - w, 85); // display.println(dayOfWeek); // String month = monthShortStr(currentTime.Month); // display.getTextBounds(month, 60, 110, &x1, &y1, &w, &h); // display.setCursor(85 - w, 110); // display.println(month); // display.setFont(&DSEG7_Classic_Bold_25); // display.setCursor(5, 120); // if(currentTime.Day < 10){ // display.print("0"); // } // display.println(currentTime.Day); // display.setCursor(5, 150); // display.println(currentTime.Year + YEAR_OFFSET);// offset from 1970, // since year is stored in uint8_t // } // void EulerFace::drawSteps(){ // uint32_t stepCount = sensor.getCounter(); // display.drawBitmap(10, 165, steps, 19, 23, DARKMODE ? GxEPD_WHITE : // GxEPD_BLACK); display.setCursor(35, 190); display.println(stepCount); // } // void EulerFace::drawWeather(){ // weatherData currentWeather = getWeatherData(); // int8_t temperature = currentWeather.temperature; // int16_t weatherConditionCode = currentWeather.weatherConditionCode; // display.setFont(&DSEG7_Classic_Regular_39); // int16_t x1, y1; // uint16_t w, h; // display.getTextBounds(String(temperature), 100, 150, &x1, &y1, &w, &h); // display.setCursor(155 - w, 150); // display.println(temperature); // display.drawBitmap(165, 110, strcmp(TEMP_UNIT, "metric") == 0 ? celsius : fahrenheit, 26, 20, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); // const unsigned char* weatherIcon; // //https://openweathermap.org/weather-conditions // if(weatherConditionCode > 801){//Cloudy // weatherIcon = cloudy; // }else if(weatherConditionCode == 801){//Few Clouds // weatherIcon = cloudsun; // }else if(weatherConditionCode == 800){//Clear // weatherIcon = sunny; // }else if(weatherConditionCode >=700){//Atmosphere // weatherIcon = cloudy; // }else if(weatherConditionCode >=600){//Snow // weatherIcon = snow; // }else if(weatherConditionCode >=500){//Rain // weatherIcon = rain; // }else if(weatherConditionCode >=300){//Drizzle // weatherIcon = rain; // }else if(weatherConditionCode >=200){//Thunderstorm // weatherIcon = rain; // }else // return; // display.drawBitmap(145, 158, weatherIcon, WEATHER_ICON_WIDTH, WEATHER_ICON_HEIGHT, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); // } }