Frästisch mit elektronischer Höhenverstellung mittels Schrittmotoren.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Display.h 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Display.h
  3. *
  4. * Wrapper class for Adafruit OLED display.
  5. *
  6. * Created on: 28.01.2022
  7. * Author: FSmilari
  8. */
  9. #ifndef DISPLAY_H_
  10. #define DISPLAY_H_
  11. #include <Adafruit_SSD1306.h>
  12. #include <U8g2_for_Adafruit_GFX.h>
  13. #include <stdint.h>
  14. #include "images/SFToolsLogo.h"
  15. #include "images/ToolsBitmap.h"
  16. #include "images/NullingBitmap.h"
  17. #include "images/RotateBitmap.h"
  18. #include "images/DiveBitmap.h"
  19. #include "Status.h"
  20. #include "ValueMode.h"
  21. #define SCREEN_WIDTH 128
  22. #define SCREEN_HEIGHT 64
  23. #define SCREEN_ADDRESS 0x3C
  24. #define STATUS_TXT_IDLE "OPR"
  25. #define STATUS_TXT_TOOLCHG "WZW"
  26. #define STATUS_TXT_CFG "SETUP"
  27. #define STATUS_TXT_NULLING "NULL"
  28. #define STATUS_TXT_DIVING "EINT"
  29. class Display {
  30. private:
  31. Adafruit_SSD1306 ssd1306;
  32. U8G2_FOR_ADAFRUIT_GFX u8g2_gfx;
  33. String configText;
  34. String configOption;
  35. ValueMode mode;
  36. float distanceValue;
  37. String distanceUnit;
  38. float maxDiveDistance;
  39. float levelHeightDiving;
  40. bool wlsConnected;
  41. bool refreshScreen;
  42. int angle;
  43. unsigned long starttime;
  44. void drawStatusText(String txt);
  45. void drawBitmap(int x, int y, int w, int h, const uint8_t bitmap[]);
  46. void redrawFrame();
  47. void drawWLSStatus();
  48. void rotateAndDrawRotationBitmap();
  49. public:
  50. Display();
  51. void init(void);
  52. void display(void);
  53. void clearDisplay(void);
  54. void showBrand(void);
  55. void showInitialization(void);
  56. void showFrame(Status status);
  57. void drawConfigText(String txt);
  58. void drawConfigOption(String txt);
  59. void drawMode(ValueMode mode);
  60. void drawDistanceValue(float distance);
  61. void drawDistanceUnit(String unit);
  62. void drawMaxDiveDistance(float maxDiveDistance);
  63. void drawActualDiveStep(float maxDiveDistance, float levelHeightDiving, float distance);
  64. void setConfigOption(const String &configOption);
  65. const String& getConfigOption() const;
  66. void setConfigText(const String &configText);
  67. const String& getConfigText() const;
  68. void setWlsConnected(bool wlsConnected);
  69. void setRefreshScreen();
  70. void setMode(const ValueMode &mode);
  71. void setDistanceValue(const float &distanceValue);
  72. void setDistanceUnit(const String &distanceUnit);
  73. void setLevelHeightDiving(float levelHeightDiving);
  74. void setMaxDiveDistance(float maxDiveDistance);
  75. };
  76. #endif /* DISPLAY_H_ */