// Maxim_scala.h #include "Arduino.h" #include #include class Maxim_scala{ public: // Beschreibung von Konstruktor. xo,yo,xu,yu - äußere Maße von Rahmen. // verthor 0/1 vertikal/horizontal, nulluo 0 = Null unten/links, 1 = Null oben/rechts // Andere Einstellungen default: // Scala vertikal, 7 Marker, einfarbig, einfachen Ziffer links Maxim_scala(int16_t _xo, int16_t _yo, int16_t _xu, int16_t _yu, boolean _verthor, boolean _nulluo, GigaDisplay_GFX *ein_display); // Einstellungen // scalaein: 1 = Scala einschalten, // rahmenein: 1 = Rahmen einschalten, // verthor: 0 = vertikal, 1 = horizontal, // nulluo: 0 = Null unten/links / 1 = Null oben/rechts, // gradient: 0 = einfarbig-Scala, 1 = gradient-Scala, // grund = leere Scala-Teil mit Farbe: 0 = Grundfarbe, 1 = Hintergrundfarbe void setmodescala(boolean _scalaein, boolean _rahmenein, boolean _verthor, boolean _nulluo, boolean _gradient, boolean _grund); // mitme: 1 = Marker in der Mitte besondere Größe, 0 = Marker in der Mitte allgemeine Größe, // mitmetl: 1 = Marker in der Mitte links/oben mit einer ungeraden Anzahl von Marker (und zwei Marker mit einer geraden Anzahl) eingeschaltet, // mitmetr: 1 = Marker in der Mitte rechts/unten mit einer ungeraden Anzahl von Marker (und zwei Marker mit einer geraden Anzahl) eingeschaltet, // metlinks: 1 = Marker (außer in der Mitte) links/oben eingeschaltet, // metrechts: 1 = Marker (außer in der Mitte) rechts/unten eingeschaltet void setmodemetka(boolean _mitme, boolean _mitmetl, boolean _mitmetr, boolean _metlinks, boolean _metrechts); // ziflinks: 1 = Zeichen links/oben eingeschaltet, // zifrechts: 1 = Zeichen rechts/unten eingeschaltet, // zifpos: 0 = Zeichen gegen Marker, 1 = Zeichen zwischen Marker // ziftyp: 0 = Ziffer, es gelten anfzif und difzif, 1 = string, es gelten *sym und symzif void setmodezif(boolean _ziflinks, boolean _zifrechts, boolean _zifpos, boolean _ziftyp); // Einstellungsmethoden // xo,yo - Ecke oben links von Scala (mit Rahmen zusammen), // xu,yu - Ecke unten rechts von Scala (mit Rahmen zusammen) void setscalaxy(int16_t _xo, int16_t _yo, int16_t _xu, int16_t _yu); // Wert für volle (100%) Scala void setvollscala(float _vollscala); // rdicke: Dicke von Rahmen, // mzahl: Zahl von Marker // m_metka: Länge für mittlere Marker (von Rahmen nach außen), // m_mdicke: Dicke für mittlere Marker // metka: Länge für restlichen Marker (von Rahmen nach außen), // mdicke: Dicke für restlichen Marker void setrammetka(int16_t _rdicke, uint8_t _mzahl, int16_t _m_metka, int16_t _m_mdicke, int16_t _metka, int16_t _mdicke); // zifscala_xl = horizontale (vertikale) Zeichenabstand von Rahmen links (oben), // zifscala_yl = vertikale (horizontale) Zeichenabstand von Rahmen links (oben), // zifscala_xr = horizontale (vertikale) Zeichenabstand von Rahmen rechts (unten), // zifscala_yr = vertikale (horizontale) Zeichenabstand von Rahmen rechts (unten) void setabstand(int16_t _zifscala_xl, int16_t _zifscala_yl, int16_t _zifscala_xr, int16_t _zifscala_yr); // scalafarbe = Farbe für wirkende Scalateil, auch Farbe für Ende von wirkenden Scalateil für Gradientscala, // scalafarbeanf = Farbe für Anfang von wirkenden Scalateil für Gradientscala // rahmenfarbe = Farbe für Rahmen und Marker // zifferfarbe = Farbe für Zeichen // grundfarbe = Farbe für Leere Teil von Scala // hintergrundfarbe = Grundfarbe von Bildschirm. Wird z.B. für Zeichen gebraucht void setfarbe(uint16_t _scalafarbe, uint16_t _scalafarbeanf, uint16_t _rahmenfarbe, uint16_t _zifferfarbe, uint16_t _grundfarbe, uint16_t _hintergrundfarbe); // anfzif = Wert für oberste/rechte Ziffer bei Marker, difzif = Zifferschritt void setzif(int16_t _anfzif, int16_t _difzif); // *sym = Zeiger auf Zeichenarray für Scala, symzif = Zahl von Zeichen in Zeile einschließlich \0 in der Zeile bei Marker void setsymbol(char *_sym, uint8_t _symzif); /////////////////////////////////// // Hauptfunktion // Scala zeichnen. xx - Scalawert. rahmen - 1 = Scala, Marker und Zeichen zeichnen, 0 = Nur Scala selbst zeichnen void scala(uint16_t xx, uint8_t rahmen); private: GigaDisplay_GFX *mein_display; // Scalamodi void set_scalaein(boolean xx); // 1 = Scala einschalten (Scala selbst, ohne Rahmen) boolean get_scalaein(void); void set_rahmenein(boolean xx); // 1 = Rahmen einschalten boolean get_rahmenein(void); void set_mitme(boolean xx); // 1 = Marker in der Mitte besondere Größe, 0 = Marker in der Mitte allgemeine Größe boolean get_mitme(void); void set_mitmetl(boolean xx); // 1 = Marker in der Mitte links/oben mit einer ungeraden Anzahl von Marker (und zwei Marker mit einer geraden Anzahl) eingeschaltet boolean get_mitmetl(void); void set_mitmetr(boolean xx); // 1 = Marker in der Mitte rechts/unten mit einer ungeraden Anzahl von Marker (und zwei Marker mit einer geraden Anzahl) eingeschaltet boolean get_mitmetr(void); void set_metlinks(boolean xx); // 1 = Marker (außer in der Mitte) links/oben eingeschaltet boolean get_metlinks(void); void set_metrechts(boolean xx); // 1 = Marker (außer in der Mitte) rechts/unten eingeschaltet boolean get_metrechts(void); void set_ziflinks(boolean xx); // 1 = Zeichen links/oben eingeschaltet boolean get_ziflinks(void); void set_zifrechts(boolean xx); // 1 = Zeichen rechts/unten eingeschaltet boolean get_zifrechts(void); void set_zifpos(boolean xx); // 0 = Zeichen gegen Marker, 1 = Zeichen zwischen Marker boolean get_zifpos(void); void set_ziftyp(boolean xx); // 0 = Ziffer, es gelten anfzif und difzif, 1 = string, es gelten *sym und symzif boolean get_ziftyp(void); void set_nulluo(boolean xx); // 0 = Null unten/links / 1 = Null oben/rechts boolean get_nulluo(void); void set_verthor(boolean xx); // 0 = vertikal, 1 = horizontal boolean get_verthor(void); void set_grund(boolean xx); // leere Scala-Teil mit Farbe: 0 = Grundfarbe, 1 = Hintergrundfarbe boolean get_grund(void); void set_gradient(boolean xx); // 0 = einfarbig-Scala, 1 = gradient-Scala boolean get_gradient(void); // Einstellungen für Scala int16_t xo; // x-Koordinate (horizontal) Ecke oben links von Scala (mit Rahmen zusammen) int16_t yo; // y-Koordinate (vertikal) Ecke oben links von Scala (mit Rahmen zusammen) int16_t xu; // x-Koordinate (horizontal) Ecke unten rechts von Scala (mit Rahmen zusammen) int16_t yu; // y-Koordinate (vertikal) Ecke unten rechts von Scala (mit Rahmen zusammen) uint16_t mode; // Scalamodi float vollscala; // Wert für volle (100%) Scala int16_t rdicke; // Rahmendicke uint8_t mzahl; // Anzahl des Markers int16_t m_metka; // Länge für mittlere Marker (von Rahmen nach außen) int16_t m_mdicke; // Dicke für mittlere Marker int16_t metka; // Länge für restlichen Marker (von Rahmen nach außen) int16_t mdicke; // Dicke für restlichen Marker int16_t zifscala_xl; // horizontale (vertikale) Zeichenabstand von Rahmen links (oben) int16_t zifscala_yl; // vertikale (horizontale) Zeichenabstand von Rahmen links (oben) int16_t zifscala_xr; // horizontale (vertikale) Zeichenabstand von Rahmen rechts (unten) int16_t zifscala_yr; // vertikale (horizontale) Zeichenabstand von Rahmen rechts (unten) uint16_t rahmenfarbe; // Farbe für Rahmen und Marker uint16_t zifferfarbe; // Farbe für Zeichen uint16_t grundfarbe; // Farbe für Leere Teil von Scala uint16_t scalafarbe; // Farbe für wirkende Scalateil, auch Farbe für Ende von wirkenden Scalateil für Gradientscala uint16_t scalafarbeanf; // Farbe für Anfang von wirkenden Scalateil für Gradientscala uint16_t hintergrundfarbe; // Grundfarbe von Bildschirm. Wird z.B. für Zeichen gebraucht int16_t anfzif; // Wert für oberste/rechte Ziffer bei Marker int16_t difzif; // Zifferschritt char *sym ; // Zeiger auf Zeichenarray für Scala uint8_t symzif; // Zahl von Zeichen in Zeile einschließlich \0 in der Zeile bei Marker // Methoden (Funktionen) zum Zeichnen einer Scala // Rahmen zeichnen. einaus: Wenn 0, hintergrundfarbe verwenden (Rahmen vom Bildschirm entfernen) void scala_rahmen(uint8_t einaus); // Marker in der Mitte zeichnen. einaus: Wenn 0, hintergrundfarbe verwenden (Marker vom Bildschirm entfernen) void scala_m_metka(uint8_t einaus); // Marker zeichnen (außer mittleren). einaus: Wenn 0, hintergrundfarbe verwenden (Marker vom Bildschirm entfernen) void scala_metka(uint8_t einaus); // Zeichen zeichnen. einaus: Wenn 0, Wenn 0, hintergrundfarbe verwenden (Zeichen vom Bildschirm entfernen) void scala_ziffer(uint8_t einaus); // Gradientscala zeichnen. xx ist der Skalanwert. void scala_gradient(uint16_t xx); // Skala zeichnen (einfach oder Gradient) void scala_inhalt(uint16_t xx); };