// sai_oled.h // Saisie de texte sur LCD Oled 1306 // Affichage/Saisie depuis trois écrans de caractères majuscule/minuscule/numérique ou spéciaux // Castoo // Décembre 2019 /* sai_oled.h - Objet destiné à être utilisé avec Arduino ou ESPxxx. Possibilité de supporter différents LCD mais l'objet a été créée avec un OLED SD1306 Possibilité de supporter différents Encodeurs rotatifs mais l'objet a été créée avec un KY-040 30 pas Création Jean Michel Castille décembre 2019 / castoo.fr Cette bibliothèque est un logiciel libre; Vous pouvez la redistribuer et ou la modifier. Cette bibliothèque est distribuée dans l'espoir qu'elle sera utile, mais SANS AUCUNE GARANTIE, sans même la garantie implicite de QUALITÉ MARCHANDE ou ADÉQUATION À UN USAGE PARTICULIER. */ #ifndef sai_oled_h #define sai_oled_h #include #include "SSD1306Wire.h" class sai_oled{ private: uint8_t PinCLK; // Gpio x sur sortie Clk du selecteur rotatif uint8_t PinDT; // Gpio x sur sortie DT du selecteur rotatif uint8_t PinSW; // Gpio x sur sortie SW du selecteur rotatif String ch_saisie; // Chaine de la saisie avec le menu sur OLED uint8_t val_ch; // Fin de la saisie bool flech_d; // sens des fleches dans menu sel chaine bool sortieH; // Permet la sortie rapide aprés saisie d'un caractère lors du balayage. SSD1306Wire *_ecran; // Ecran OLED #define nb_ch_menu_Alpha 4 // Nombre de choix du menu Alphanumérique String ch_menuAlpha[nb_ch_menu_Alpha] = { "Maj", "Min", "Spe", "Val" }; // Choix du menu Alphanumérique #define nb_ch_menu_Valid 4 // Nombre de choix du menu Validation String ch_menuValid[nb_ch_menu_Valid] = { "Correction", "Tout effacer", "Validation", "Annulation" }; // Choix du menu valid public: // Constructeur objet avec les 3 signaux clk, dt et sw du rotatif ainsi qu'un pointeur vers l'OLED sai_oled(uint8_t vclk, uint8_t vdt, uint8_t vsw, SSD1306Wire &ecran); // Initialisation de l'écran void init(void); // Affichage du menu alphanumerique retourne la chaine saisie ou ""; String aff_menu_Alpha(void); // valide ou invalide la sortie du balayage des caracteres aprés chaque saisie (valide par defaut) void sortie_deb(bool val); private: void aff_menu_alpha_maitre(uint8_t pos); void aff_menu_alpha_string(); void maj_ch(uint8_t pos, uint8_t menu); void aff_menu_Alpha_Maj(uint8_t pos, bool en_cours); void aff_menu_Alpha_Min(uint8_t pos, bool en_cours); void aff_menu_Alpha_Spe(uint8_t pos, bool en_cours); void aff_menu_Alpha_Val(uint8_t pos, bool en_cours); void aff_menu_alpha_zones(uint8_t pos, uint8_t menu, bool val_sys, bool val_det); uint8_t sel_menu_Alpha(uint8_t max); uint8_t sel_menu_Alpha_detail(uint8_t max, uint8_t menu); }; #endif