123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #include <Wire.h> // Only needed for Arduino 1.6.5 and earlier
- #include "heltec.h" // alias for `#include "SSD1306Wire.h"
- #include "images.h"
- #define DEMO_DURATION 3000
- typedef void (*Demo)(void);
- OLEDDisplayUi ui ( Heltec.display );
- void msOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) {
- display->setTextAlignment(TEXT_ALIGN_RIGHT);
- display->setFont(ArialMT_Plain_10);
- display->drawString(128, 0, String(millis()));
- }
- void drawFrame1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
- display->drawXbm(x, y, BT_width, BT_height, BT_bits);
- display->drawXbm(x + 12 + 1, y, WIFI_width, WIFI_height, WIFI_bits);
- display->drawXbm(x + 108, y, BAT_width, BAT_height, BAT_bits);
- display->setFont(ArialMT_Plain_24);
- display->drawString(x + 28, y + 5, "HelTec");
- }
- void drawFrame2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
- //display->drawXbm(x, y, BT_width, BT_height, BT_bits);
- //display->drawXbm(x + 12 + 1, y, WIFI_width, WIFI_height, WIFI_bits);
- //display->drawXbm(x + 108, y, BAT_width, BAT_height, BAT_bits);
- display->drawString(x + 10, y + 5, "WIFI KIT 8");
- }
- void drawFrame3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
- display->drawXbm(x + 25, y, HelTec_LOGO_width, HelTec_LOGO_height, HelTec_LOGO_bits);
- }
- void drawFrame4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
- display->setTextAlignment(TEXT_ALIGN_LEFT);
- //display->setFont(ArialMT_Plain_16);
- //display->drawString(x, y, "HelTec");
- display->setFont(ArialMT_Plain_10);
- display->drawString(x, y , "HelTec AutoMation");
- display->drawString(x, y + 10, "www.heltec.cn");
- }
- FrameCallback frames[] = { drawFrame1, drawFrame2, drawFrame3, drawFrame4 };
- int frameCount = 4;
- //OverlayCallback overlays[] = { msOverlay };
- //int overlaysCount = 1;
- void setup() {
-
- Heltec.begin(true /*DisplayEnable Enable*/, true /*Serial Enable*/);
- ui.setTargetFPS(30);
- // Customize the active and inactive symbol
- ui.setActiveSymbol(activeSymbol);
- ui.setInactiveSymbol(inactiveSymbol);
- // You can change this to
- // TOP, LEFT, BOTTOM, RIGHT
- ui.setIndicatorPosition(BOTTOM);
- // Defines where the first frame is located in the bar.
- ui.setIndicatorDirection(LEFT_RIGHT);
- // You can change the transition that is used
- // SLIDE_LEFT, SLIDE_RIGHT, SLIDE_UP, SLIDE_DOWN
- ui.setFrameAnimation(SLIDE_LEFT);
- // Add frames
- ui.setFrames(frames, frameCount);
- // Add overlays
- // ui.setOverlays(overlays, overlaysCount);
- // Initialising the UI will init the display too.
- ui.init();
- Heltec.display->flipScreenVertically();
- }
- void loop() {
- int remainingTimeBudget = ui.update();
- if (remainingTimeBudget > 0) {
- // You can do some work here
- // Don't do stuff if you are below your
- // time budget.
- delay(remainingTimeBudget);
- }
- }
|