diff --git a/README.md b/README.md index 7037348..b7372f1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ *Menu creation Arduino library for LCDs, extends [LiquidCrystal][lc].* [![Build Status](https://travis-ci.org/VasilKalchev/LiquidMenu.svg?branch=master)](https://travis-ci.org/VasilKalchev/LiquidMenu) -[![release](https://img.shields.io/badge/release-1.1.4-yellow.svg)](https://github.com/VasilKalchev/LiquidMenu/releases) +[![release](https://img.shields.io/badge/release-1.1.5-yellow.svg)](https://github.com/VasilKalchev/LiquidMenu/releases) [![documentation](https://img.shields.io/badge/docs-doxygen-green.svg)](https://vasilkalchev.github.io/LiquidMenu/doc/html/index.html) [![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://opensource.org/licenses/mit-license.php) diff --git a/doc/html/_liquid_menu_8h.html b/doc/html/_liquid_menu_8h.html index a4a540f..8dc3142 100644 --- a/doc/html/_liquid_menu_8h.html +++ b/doc/html/_liquid_menu_8h.html @@ -28,7 +28,7 @@ @@ -160,9 +160,9 @@ - - - + + + @@ -199,11 +199,11 @@

Include file for LiquidMenu library.

Author
Vasil Kalchev
Date
2016
-
Version
1.1.4
+
Version
1.1.5
Todo:

: Change/Remove variables/screens/menus maybe

: screen wide glyphs

-

: Shorten the examples add a setAsGlyph example

+

: Shorten the examples and add a setAsGlyph example

Enumeration Type Documentation

@@ -252,14 +252,14 @@

Function Documentation

- +

Functions

void print_me (uint16_t address)
 Prints the number passed to it in a specific way. More...
 
void print_me (uintptr_t address)
 Prints the number passed to it in a specific way. More...
 
recognizeType overloaded function
DataType recognizeType (bool variable)
 
- + @@ -280,8 +280,8 @@

Function Documentation

-Go to the documentation of this file.
1 /*
2 The MIT License (MIT)
3 
4 Copyright (c) 2016 Vasil Kalchev
5 
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12 
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15 
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 SOFTWARE.
23 */
24 
39 #pragma once
40 
41 #include <LiquidCrystal.h>
42 
43 #include "LiquidMenu_config.h"
44 
45 #include "serial_debugging.h"
46 
47 #ifndef LiquidCrystal_h
48 #warning "LiquidCrystal library is required!"
49 #endif
50 
51 const char VERSION[] = "1.1";
52 
54 
57 enum class DataType : uint8_t {
58  NOT_USED = 0,
59  BOOL = 1, BOOLEAN = 1,
60  INT8_T = 8,
61  UINT8_T = 9, BYTE = 9,
62  INT16_T = 16,
63  UINT16_T = 17,
64  INT32_T = 32,
65  UINT32_T = 33,
66  FLOAT = 50, DOUBLE = 50,
67  CHAR = 60,
68  CHAR_PTR = 61,
69  CONST_CHAR_PTR = 62,
70  GLYPH = 70,
71 };
72 
74 /*
75 Used to store and set the relative or absolute position of the focus indicator.
76 */
77 enum class Position : uint8_t {
78  RIGHT = 1, NORMAL = 1,
79  LEFT = 2,
80  CUSTOM = 3,
81 };
82 
84 
88 
94 DataType recognizeType(bool variable);
95 
100 DataType recognizeType(char variable);
101 
106 DataType recognizeType(char* variable);
107 
112 DataType recognizeType(const char* variable);
113 
118 DataType recognizeType(int8_t variable);
119 
124 DataType recognizeType(uint8_t variable);
125 
130 DataType recognizeType(int16_t variable);
131 
136 DataType recognizeType(uint16_t variable);
137 
142 DataType recognizeType(int32_t variable);
143 
148 DataType recognizeType(uint32_t variable);
149 
154 DataType recognizeType(float variable);
155 
160 DataType recognizeType(double variable);
161 
163 
164 
166 
171 void print_me(uint16_t address);
172 
173 
175 
182 class LiquidLine {
183  friend class LiquidScreen;
184 
185 public:
188 
190 
196  LiquidLine(uint8_t column, uint8_t row)
197  : _row(row), _column(column), _focusRow(row - 1),
198  _focusColumn(column - 1), _focusPosition(Position::NORMAL),
199  _variableCount(0), _focusable(false) {
200  for (uint8_t i = 0; i < MAX_VARIABLES; i++) {
201  _variable[i] = nullptr;
202  _variableType[i] = DataType::NOT_USED;
203  }
204  for (uint8_t f = 0; f < MAX_FUNCTIONS; f++) {
205  _function[f] = 0;
206  }
207  }
208 
210 
215  template <typename A>
216  LiquidLine(uint8_t column, uint8_t row, A &variableA)
217  : LiquidLine(column, row) {
218  add_variable(variableA);
219  //_variable[0] = (void*)&variableA;
220  //_variableType[0] = recognizeType(variableA);
221  }
222 
224 
230  template <typename A, typename B>
231  LiquidLine(uint8_t column, uint8_t row,
232  A &variableA, B &variableB)
233  : LiquidLine(column, row, variableA) {
234  add_variable(variableB);
235  //_variable[1] = (void*)&variableB;
236  //_variableType[1] = recognizeType(variableB);
237  }
238 
240 
247  template <typename A, typename B, typename C>
248  LiquidLine(uint8_t column, uint8_t row,
249  A &variableA, B &variableB, C &variableC)
250  : LiquidLine(column, row, variableA, variableB) {
251  add_variable(variableC);
252  //_variable[2] = (void*)&variableC;
253  //_variableType[2] = recognizeType(variableC);
254  }
255 
257 
265  template <typename A, typename B, typename C, typename D>
266  LiquidLine(uint8_t column, uint8_t row,
267  A &variableA, B &variableB, C &variableC, D &variableD)
268  : LiquidLine(column, row, variableA, variableB, variableC) {
269  add_variable(variableD);
270  //_variable[3] = (void*)&variableD;
271  //_variableType[3] = recognizeType(variableD);
272  }
273 
275 
276 
279 
281 
292  template <typename T>
293  bool add_variable(T &variable) {
294  print_me((uint16_t)this);
295  if (_variableCount < MAX_VARIABLES) {
296  _variable[_variableCount] = (void*)&variable;
297  _variableType[_variableCount] = recognizeType(variable);
298  DEBUG(F("Added variable '")); DEBUG(variable); DEBUGLN(F("'"));
299  _variableCount++;
300  return true;
301  }
302  DEBUG(F("Adding variable ")); DEBUG(variable);
303  DEBUGLN(F(" failed, edit LiquidMenu_config.h to allow for more variables"));
304  return false;
305  }
306 
308 
326  bool attach_function(uint8_t number, void (*function)(void));
327 
329 
345  bool set_focusPosition(Position position,
346  uint8_t column = 0, uint8_t row = 0);
347 
349 
358  bool set_asGlyph(uint8_t number);
360 
361 private:
363 
371  void print(LiquidCrystal *p_liquidCrystal, bool isFocused);
372 
374 
381  void print_variable(LiquidCrystal *p_liquidCrystal, uint8_t number);
382 
384 
392  bool call_function(uint8_t number) const;
393 
394  uint8_t _row, _column, _focusRow, _focusColumn;
395  Position _focusPosition;
396  uint8_t _variableCount;
397  void (*_function[MAX_FUNCTIONS])(void);
398  const void *_variable[MAX_VARIABLES];
399  DataType _variableType[MAX_VARIABLES];
400  bool _focusable;
401 };
402 
403 
405 
414  friend class LiquidMenu;
415 
416 public:
417 
420 
422 
425  LiquidScreen();
426 
428 
431  LiquidScreen(LiquidLine &liquidLine);
432 
434 
438  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2);
439 
441 
446  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2,
447  LiquidLine &liquidLine3);
448 
450 
456  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2,
457  LiquidLine &liquidLine3, LiquidLine &liquidLine4);
458 
460 
463 
465 
476  bool add_line(LiquidLine &liquidLine);
477 
479 
493  bool set_focusPosition(Position position);
494 
496 
507  void hide(bool hide);
509 
510 private:
512 
518  void print(LiquidCrystal *p_liquidCrystal) const;
519 
521 
527  void switch_focus(bool forward = true);
528 
530 
540  bool call_function(uint8_t number) const;
541 
542  LiquidLine *_p_liquidLine[MAX_LINES];
543  uint8_t _lineCount;
544  uint8_t _focus;
545  bool _hidden;
546 };
547 
548 
550 
559 class LiquidMenu {
560  friend class LiquidSystem;
561 
562 public:
563 
566 
568 
575  LiquidMenu(LiquidCrystal &liquidCrystal, uint8_t startingScreen = 1);
576 
578 
584  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen,
585  uint8_t startingScreen = 1);
586 
588 
595  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
596  LiquidScreen &liquidScreen2, uint8_t startingScreen = 1);
597 
599 
607  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
608  LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3,
609  uint8_t startingScreen = 1);
610 
612 
621  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
622  LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3,
623  LiquidScreen &liquidScreen4, uint8_t startingScreen = 1);
624 
626 
629 
631 
642  bool add_screen(LiquidScreen &liquidScreen);
643 
645  void next_screen();
646 
648 
651  void operator++();
652 
654 
657  void operator++(int);
658 
660  void previous_screen();
661 
663 
666  void operator--();
667 
669 
672  void operator--(int);
673 
675 
679  bool change_screen(LiquidScreen &p_liquidScreen);
680 
682 
687  bool change_screen(uint8_t number);
688 
690 
694  bool operator=(LiquidScreen &p_liquidScreen);
695 
697 
702  bool operator=(uint8_t number);
703 
705 
711  void switch_focus(bool forward = true);
712 
714 
728  bool set_focusPosition(Position position);
729 
731 
744  bool set_focusSymbol(Position position, uint8_t symbol[8]);
745 
747 
758  bool call_function(uint8_t number) const;
759 
761 
764  void update() const;
765 
767 
773  void softUpdate() const;
774 
776 
777 private:
778  LiquidCrystal *_p_liquidCrystal;
779  LiquidScreen *_p_liquidScreen[MAX_SCREENS];
780  uint8_t _screenCount;
781  uint8_t _currentScreen;
782 };
783 
784 
786 
797 public:
798 
801 
803 
808  LiquidSystem(uint8_t startingMenu = 1);
809 
811 
816  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
817  uint8_t startingMenu = 1);
818 
820 
826  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
827  LiquidMenu &liquidMenu3, uint8_t startingMenu = 1);
828 
830 
837  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
838  LiquidMenu &liquidMenu3, LiquidMenu &liquidMenu4,
839  uint8_t startingMenu = 1);
840 
842 
845 
847 
858  bool add_menu(LiquidMenu &liquidMenu);
859 
861 
865  bool change_menu(LiquidMenu &p_liquidMenu);
866 
868  void next_screen();
869 
871 
874  void operator++();
875 
877 
880  void operator++(int);
881 
883  void previous_screen();
884 
886 
889  void operator--();
890 
892 
895  void operator--(int);
896 
898 
902  bool change_screen(LiquidScreen &p_liquidScreen);
903 
905 
910  bool change_screen(uint8_t number);
911 
913 
917  bool operator=(LiquidScreen &p_liquidScreen);
918 
920 
925  bool operator=(uint8_t number);
926 
928 
934  void switch_focus(bool forward = true);
935 
937 
951  bool set_focusPosition(Position position);
952 
954 
967  bool set_focusSymbol(Position position, uint8_t symbol[8]);
968 
970 
981  bool call_function(uint8_t number) const;
982 
984 
987  void update() const;
988 
990 
996  void softUpdate() const;
997 
999 
1000 private:
1001  LiquidMenu *_p_liquidMenu[MAX_MENUS];
1002  uint8_t _menuCount;
1003  uint8_t _currentMenu;
1004 };
LiquidLine(uint8_t column, uint8_t row, A &variableA, B &variableB, C &variableC)
Constructor for three variables/constants.
Definition: LiquidMenu.h:248
+Go to the documentation of this file.
1 /*
2 The MIT License (MIT)
3 
4 Copyright (c) 2016 Vasil Kalchev
5 
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12 
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15 
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 SOFTWARE.
23 */
24 
39 #pragma once
40 
41 #include <LiquidCrystal.h>
42 
43 #include "LiquidMenu_config.h"
44 
45 #include "serial_debugging.h"
46 
47 #ifndef LiquidCrystal_h
48 #warning "LiquidCrystal library is required!"
49 #endif
50 
51 const char VERSION[] = "1.1";
52 
54 
57 enum class DataType : uint8_t {
58  NOT_USED = 0,
59  BOOL = 1, BOOLEAN = 1,
60  INT8_T = 8,
61  UINT8_T = 9, BYTE = 9,
62  INT16_T = 16,
63  UINT16_T = 17,
64  INT32_T = 32,
65  UINT32_T = 33,
66  FLOAT = 50, DOUBLE = 50,
67  CHAR = 60,
68  CHAR_PTR = 61,
69  CONST_CHAR_PTR = 62,
70  GLYPH = 70,
71 };
72 
74 /*
75 Used to store and set the relative or absolute position of the focus indicator.
76 */
77 enum class Position : uint8_t {
78  RIGHT = 1, NORMAL = 1,
79  LEFT = 2,
80  CUSTOM = 3,
81 };
82 
84 
88 
94 DataType recognizeType(bool variable);
95 
100 DataType recognizeType(char variable);
101 
106 DataType recognizeType(char* variable);
107 
112 DataType recognizeType(const char* variable);
113 
118 DataType recognizeType(int8_t variable);
119 
124 DataType recognizeType(uint8_t variable);
125 
130 DataType recognizeType(int16_t variable);
131 
136 DataType recognizeType(uint16_t variable);
137 
142 DataType recognizeType(int32_t variable);
143 
148 DataType recognizeType(uint32_t variable);
149 
154 DataType recognizeType(float variable);
155 
160 DataType recognizeType(double variable);
161 
163 
164 
166 
171 void print_me(uintptr_t address);
172 
173 
175 
182 class LiquidLine {
183  friend class LiquidScreen;
184 
185 public:
188 
190 
196  LiquidLine(uint8_t column, uint8_t row)
197  : _row(row), _column(column), _focusRow(row - 1),
198  _focusColumn(column - 1), _focusPosition(Position::NORMAL),
199  _variableCount(0), _focusable(false) {
200  for (uint8_t i = 0; i < MAX_VARIABLES; i++) {
201  _variable[i] = nullptr;
202  _variableType[i] = DataType::NOT_USED;
203  }
204  for (uint8_t f = 0; f < MAX_FUNCTIONS; f++) {
205  _function[f] = 0;
206  }
207  }
208 
210 
215  template <typename A>
216  LiquidLine(uint8_t column, uint8_t row, A &variableA)
217  : LiquidLine(column, row) {
218  add_variable(variableA);
219  //_variable[0] = (void*)&variableA;
220  //_variableType[0] = recognizeType(variableA);
221  }
222 
224 
230  template <typename A, typename B>
231  LiquidLine(uint8_t column, uint8_t row,
232  A &variableA, B &variableB)
233  : LiquidLine(column, row, variableA) {
234  add_variable(variableB);
235  //_variable[1] = (void*)&variableB;
236  //_variableType[1] = recognizeType(variableB);
237  }
238 
240 
247  template <typename A, typename B, typename C>
248  LiquidLine(uint8_t column, uint8_t row,
249  A &variableA, B &variableB, C &variableC)
250  : LiquidLine(column, row, variableA, variableB) {
251  add_variable(variableC);
252  //_variable[2] = (void*)&variableC;
253  //_variableType[2] = recognizeType(variableC);
254  }
255 
257 
265  template <typename A, typename B, typename C, typename D>
266  LiquidLine(uint8_t column, uint8_t row,
267  A &variableA, B &variableB, C &variableC, D &variableD)
268  : LiquidLine(column, row, variableA, variableB, variableC) {
269  add_variable(variableD);
270  //_variable[3] = (void*)&variableD;
271  //_variableType[3] = recognizeType(variableD);
272  }
273 
275 
276 
279 
281 
292  template <typename T>
293  bool add_variable(T &variable) {
294  print_me((uintptr_t)this);
295  if (_variableCount < MAX_VARIABLES) {
296  _variable[_variableCount] = (void*)&variable;
297  _variableType[_variableCount] = recognizeType(variable);
298  DEBUG(F("Added variable '")); DEBUG(variable); DEBUGLN(F("'"));
299  _variableCount++;
300  return true;
301  }
302  DEBUG(F("Adding variable ")); DEBUG(variable);
303  DEBUGLN(F(" failed, edit LiquidMenu_config.h to allow for more variables"));
304  return false;
305  }
306 
308 
326  bool attach_function(uint8_t number, void (*function)(void));
327 
329 
345  bool set_focusPosition(Position position,
346  uint8_t column = 0, uint8_t row = 0);
347 
349 
358  bool set_asGlyph(uint8_t number);
360 
361 private:
363 
371  void print(LiquidCrystal *p_liquidCrystal, bool isFocused);
372 
374 
381  void print_variable(LiquidCrystal *p_liquidCrystal, uint8_t number);
382 
384 
392  bool call_function(uint8_t number) const;
393 
394  uint8_t _row, _column, _focusRow, _focusColumn;
395  Position _focusPosition;
396  uint8_t _variableCount;
397  void (*_function[MAX_FUNCTIONS])(void);
398  const void *_variable[MAX_VARIABLES];
399  DataType _variableType[MAX_VARIABLES];
400  bool _focusable;
401 };
402 
403 
405 
414  friend class LiquidMenu;
415 
416 public:
417 
420 
422 
425  LiquidScreen();
426 
428 
431  LiquidScreen(LiquidLine &liquidLine);
432 
434 
438  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2);
439 
441 
446  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2,
447  LiquidLine &liquidLine3);
448 
450 
456  LiquidScreen(LiquidLine &liquidLine1, LiquidLine &liquidLine2,
457  LiquidLine &liquidLine3, LiquidLine &liquidLine4);
458 
460 
463 
465 
476  bool add_line(LiquidLine &liquidLine);
477 
479 
493  bool set_focusPosition(Position position);
494 
496 
507  void hide(bool hide);
509 
510 private:
512 
518  void print(LiquidCrystal *p_liquidCrystal) const;
519 
521 
527  void switch_focus(bool forward = true);
528 
530 
540  bool call_function(uint8_t number) const;
541 
542  LiquidLine *_p_liquidLine[MAX_LINES];
543  uint8_t _lineCount;
544  uint8_t _focus;
545  bool _hidden;
546 };
547 
548 
550 
559 class LiquidMenu {
560  friend class LiquidSystem;
561 
562 public:
563 
566 
568 
575  LiquidMenu(LiquidCrystal &liquidCrystal, uint8_t startingScreen = 1);
576 
578 
584  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen,
585  uint8_t startingScreen = 1);
586 
588 
595  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
596  LiquidScreen &liquidScreen2, uint8_t startingScreen = 1);
597 
599 
607  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
608  LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3,
609  uint8_t startingScreen = 1);
610 
612 
621  LiquidMenu(LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1,
622  LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3,
623  LiquidScreen &liquidScreen4, uint8_t startingScreen = 1);
624 
626 
629 
631 
642  bool add_screen(LiquidScreen &liquidScreen);
643 
645  void next_screen();
646 
648 
651  void operator++();
652 
654 
657  void operator++(int);
658 
660  void previous_screen();
661 
663 
666  void operator--();
667 
669 
672  void operator--(int);
673 
675 
679  bool change_screen(LiquidScreen &p_liquidScreen);
680 
682 
687  bool change_screen(uint8_t number);
688 
690 
694  bool operator=(LiquidScreen &p_liquidScreen);
695 
697 
702  bool operator=(uint8_t number);
703 
705 
711  void switch_focus(bool forward = true);
712 
714 
728  bool set_focusPosition(Position position);
729 
731 
744  bool set_focusSymbol(Position position, uint8_t symbol[8]);
745 
747 
758  bool call_function(uint8_t number) const;
759 
761 
764  void update() const;
765 
767 
773  void softUpdate() const;
774 
776 
777 private:
778  LiquidCrystal *_p_liquidCrystal;
779  LiquidScreen *_p_liquidScreen[MAX_SCREENS];
780  uint8_t _screenCount;
781  uint8_t _currentScreen;
782 };
783 
784 
786 
797 public:
798 
801 
803 
808  LiquidSystem(uint8_t startingMenu = 1);
809 
811 
816  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
817  uint8_t startingMenu = 1);
818 
820 
826  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
827  LiquidMenu &liquidMenu3, uint8_t startingMenu = 1);
828 
830 
837  LiquidSystem(LiquidMenu &liquidMenu1, LiquidMenu &liquidMenu2,
838  LiquidMenu &liquidMenu3, LiquidMenu &liquidMenu4,
839  uint8_t startingMenu = 1);
840 
842 
845 
847 
858  bool add_menu(LiquidMenu &liquidMenu);
859 
861 
865  bool change_menu(LiquidMenu &p_liquidMenu);
866 
868  void next_screen();
869 
871 
874  void operator++();
875 
877 
880  void operator++(int);
881 
883  void previous_screen();
884 
886 
889  void operator--();
890 
892 
895  void operator--(int);
896 
898 
902  bool change_screen(LiquidScreen &p_liquidScreen);
903 
905 
910  bool change_screen(uint8_t number);
911 
913 
917  bool operator=(LiquidScreen &p_liquidScreen);
918 
920 
925  bool operator=(uint8_t number);
926 
928 
934  void switch_focus(bool forward = true);
935 
937 
951  bool set_focusPosition(Position position);
952 
954 
967  bool set_focusSymbol(Position position, uint8_t symbol[8]);
968 
970 
981  bool call_function(uint8_t number) const;
982 
984 
987  void update() const;
988 
990 
996  void softUpdate() const;
997 
999 
1000 private:
1001  LiquidMenu *_p_liquidMenu[MAX_MENUS];
1002  uint8_t _menuCount;
1003  uint8_t _currentMenu;
1004 };
LiquidLine(uint8_t column, uint8_t row, A &variableA, B &variableB, C &variableC)
Constructor for three variables/constants.
Definition: LiquidMenu.h:248
void operator--()
Switches to the previous screen.
Definition: LiquidSystem.cpp:97
void switch_focus(bool forward=true)
Switches the focus.
Definition: LiquidMenu.cpp:160
bool operator=(LiquidScreen &p_liquidScreen)
Switches to the specified screen.
Definition: LiquidSystem.cpp:117
@@ -129,10 +129,10 @@
void update() const
Prints the current screen to the display.
Definition: LiquidSystem.cpp:140
void next_screen()
Switches to the next screen.
Definition: LiquidSystem.cpp:81
DataType
Data type enum.
Definition: LiquidMenu.h:57
+
void print_me(uintptr_t address)
Prints the number passed to it in a specific way.
Definition: LiquidLine.cpp:29
const uint8_t MAX_MENUS
Configures the number of available manus per menus system.
Definition: LiquidMenu_config.h:24
const uint8_t MAX_FUNCTIONS
Configures the number of available functions per line.
Definition: LiquidMenu_config.h:15
LiquidLine(uint8_t column, uint8_t row, A &variableA)
Constructor for one variable/constant.
Definition: LiquidMenu.h:216
-
void print_me(uint16_t address)
Prints the number passed to it in a specific way.
Definition: LiquidLine.cpp:29
bool call_function(uint8_t number) const
Calls an attached function specified by the number.
Definition: LiquidSystem.cpp:133
void operator++()
Switches to the next screen.
Definition: LiquidSystem.cpp:85
bool set_focusPosition(Position position)
Sets the focus position for the whole screen at once.
Definition: LiquidScreen.cpp:66
diff --git a/doc/html/_liquid_menu__config_8h.html b/doc/html/_liquid_menu__config_8h.html index a4c1f1c..a7cfd77 100644 --- a/doc/html/_liquid_menu__config_8h.html +++ b/doc/html/_liquid_menu__config_8h.html @@ -28,7 +28,7 @@ diff --git a/doc/html/_liquid_menu__config_8h_source.html b/doc/html/_liquid_menu__config_8h_source.html index adeda7c..5e16cea 100644 --- a/doc/html/_liquid_menu__config_8h_source.html +++ b/doc/html/_liquid_menu__config_8h_source.html @@ -28,7 +28,7 @@ diff --git a/doc/html/annotated.html b/doc/html/annotated.html index 8b539a6..7a8d4c4 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -28,7 +28,7 @@ diff --git a/doc/html/buttons_menu_8ino-example.html b/doc/html/buttons_menu_8ino-example.html index a3d71a7..1b4347a 100644 --- a/doc/html/buttons_menu_8ino-example.html +++ b/doc/html/buttons_menu_8ino-example.html @@ -28,7 +28,7 @@ diff --git a/doc/html/class_liquid_line-members.html b/doc/html/class_liquid_line-members.html index b0b5ef2..2f19f1c 100644 --- a/doc/html/class_liquid_line-members.html +++ b/doc/html/class_liquid_line-members.html @@ -28,7 +28,7 @@ diff --git a/doc/html/class_liquid_line.html b/doc/html/class_liquid_line.html index c384e11..ac9de7e 100644 --- a/doc/html/class_liquid_line.html +++ b/doc/html/class_liquid_line.html @@ -28,7 +28,7 @@ @@ -490,7 +490,7 @@

Member Function Documentation

@@ -332,7 +332,7 @@
- +

@@ -401,7 +401,7 @@
- +

@@ -477,7 +477,7 @@
- +

@@ -520,7 +520,7 @@

Member Function Documentation

@@ -1013,7 +1013,7 @@

Member Function Documentation

@@ -240,7 +240,7 @@
- +

@@ -295,7 +295,7 @@
- +

@@ -357,7 +357,7 @@
- +

@@ -399,7 +399,7 @@

Member Function Documentation

@@ -452,7 +452,7 @@

Member Function Documentation

@@ -492,7 +492,7 @@

Member Function Documentation

diff --git a/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.map b/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.map index aab32f9..550fb97 100644 --- a/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.map +++ b/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.md5 b/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.md5 index fb4af69..e65f264 100644 --- a/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.md5 +++ b/doc/html/class_liquid_screen_a28130554c21cfa4876f3bd7366c0b31b_cgraph.md5 @@ -1 +1 @@ -f3850e05823a3a631bd55865a7019d98 \ No newline at end of file +02410aca35436f39a41d1a3cee905443 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.map b/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.map index aab32f9..550fb97 100644 --- a/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.map +++ b/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.md5 b/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.md5 index fb4af69..e65f264 100644 --- a/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.md5 +++ b/doc/html/class_liquid_screen_a311f8d618c22427353807899233a30a6_cgraph.md5 @@ -1 +1 @@ -f3850e05823a3a631bd55865a7019d98 \ No newline at end of file +02410aca35436f39a41d1a3cee905443 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.map b/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.map index 17576d0..d43faaa 100644 --- a/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.map +++ b/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.md5 b/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.md5 index cb16e95..786595b 100644 --- a/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.md5 +++ b/doc/html/class_liquid_screen_a6b025aaf4ba5d0749aa828a303e64415_cgraph.md5 @@ -1 +1 @@ -c99cf086bf30860eeffc13c850cb358b \ No newline at end of file +b10c103f3706100cad42fc0ae769b539 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.map b/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.map index aab32f9..550fb97 100644 --- a/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.map +++ b/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.md5 b/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.md5 index fb4af69..e65f264 100644 --- a/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.md5 +++ b/doc/html/class_liquid_screen_a819a5d1f7d2420f40283c48abb456ae9_cgraph.md5 @@ -1 +1 @@ -f3850e05823a3a631bd55865a7019d98 \ No newline at end of file +02410aca35436f39a41d1a3cee905443 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.map b/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.map index 97c9068..eaa9e2b 100644 --- a/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.map +++ b/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.map @@ -1,3 +1,3 @@ - + diff --git a/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.md5 b/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.md5 index 2dc9531..5809b8f 100644 --- a/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.md5 +++ b/doc/html/class_liquid_screen_a99ca6b93fc5af199f50ce86421adbd49_cgraph.md5 @@ -1 +1 @@ -fa98050a4e68b997e9d066d2a78362de \ No newline at end of file +b6524fe17d5c15e2fb7a8f83579bdcf7 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.map b/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.map index aab32f9..550fb97 100644 --- a/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.map +++ b/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.md5 b/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.md5 index fb4af69..e65f264 100644 --- a/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.md5 +++ b/doc/html/class_liquid_screen_abf82a5702cc9706fa61f34881580231b_cgraph.md5 @@ -1 +1 @@ -f3850e05823a3a631bd55865a7019d98 \ No newline at end of file +02410aca35436f39a41d1a3cee905443 \ No newline at end of file diff --git a/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.map b/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.map index 2d74ba2..1acf738 100644 --- a/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.map +++ b/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.map @@ -1,3 +1,3 @@ - + diff --git a/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.md5 b/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.md5 index 816acad..73d055b 100644 --- a/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.md5 +++ b/doc/html/class_liquid_screen_acd5dc0309e7b66b42ca558015e586905_cgraph.md5 @@ -1 +1 @@ -18e127bf10362d83de5f566860a91182 \ No newline at end of file +ba04804bec88f44798656e83a38a3a01 \ No newline at end of file diff --git a/doc/html/class_liquid_system-members.html b/doc/html/class_liquid_system-members.html index af3a122..8d88d6d 100644 --- a/doc/html/class_liquid_system-members.html +++ b/doc/html/class_liquid_system-members.html @@ -28,7 +28,7 @@ diff --git a/doc/html/class_liquid_system.html b/doc/html/class_liquid_system.html index 7112ec1..bb8dce4 100644 --- a/doc/html/class_liquid_system.html +++ b/doc/html/class_liquid_system.html @@ -28,7 +28,7 @@ @@ -252,7 +252,7 @@
- +

@@ -314,7 +314,7 @@
- +

@@ -383,7 +383,7 @@
- +

@@ -425,7 +425,7 @@

Member Function Documentation

@@ -954,7 +954,7 @@

Member Function Documentation

- + diff --git a/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.map b/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.map index 4f7d000..ef735ac 100644 --- a/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.map +++ b/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.md5 b/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.md5 index 46595ce..a1ae434 100644 --- a/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.md5 +++ b/doc/html/class_liquid_system_a40d07c7650ed405ae6efde2309de6fea_cgraph.md5 @@ -1 +1 @@ -c13a70c2fd3c6be69b2d8d855db758ab \ No newline at end of file +b2b4776c498472f0e201236c1f95845c \ No newline at end of file diff --git a/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.map b/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.map index 4f7d000..ef735ac 100644 --- a/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.map +++ b/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.md5 b/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.md5 index 46595ce..a1ae434 100644 --- a/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.md5 +++ b/doc/html/class_liquid_system_a65d85e26b95a188b89e14d96bfbbb570_cgraph.md5 @@ -1 +1 @@ -c13a70c2fd3c6be69b2d8d855db758ab \ No newline at end of file +b2b4776c498472f0e201236c1f95845c \ No newline at end of file diff --git a/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.map b/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.map index 4f7d000..ef735ac 100644 --- a/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.map +++ b/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.map @@ -1,4 +1,4 @@ - + diff --git a/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.md5 b/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.md5 index 46595ce..a1ae434 100644 --- a/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.md5 +++ b/doc/html/class_liquid_system_aa68e03dd1ffae81ea036407c0c3e427e_cgraph.md5 @@ -1 +1 @@ -c13a70c2fd3c6be69b2d8d855db758ab \ No newline at end of file +b2b4776c498472f0e201236c1f95845c \ No newline at end of file diff --git a/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.map b/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.map index a83c5f0..5e590a0 100644 --- a/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.map +++ b/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.map @@ -1,3 +1,3 @@ - + diff --git a/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.md5 b/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.md5 index c340fe6..6768ee5 100644 --- a/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.md5 +++ b/doc/html/class_liquid_system_ae43462b3beae352bdc4a3bf8032512e3_cgraph.md5 @@ -1 +1 @@ -726bd1c0913f9d2bea1e67de7f3864a6 \ No newline at end of file +e616241fe9515f7b38c5616c7f063c8a \ No newline at end of file diff --git a/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.map b/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.map index 28e1c72..608146c 100644 --- a/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.map +++ b/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.map @@ -1,6 +1,6 @@ - + diff --git a/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.md5 b/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.md5 index 001c6a8..25cb4ad 100644 --- a/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.md5 +++ b/doc/html/class_liquid_system_af261a981d86b320ba57c392bd1b65432_cgraph.md5 @@ -1 +1 @@ -af921c43186fbb651f546117afcaedae \ No newline at end of file +fe6ad6a764be9210fe5b08cce955807c \ No newline at end of file diff --git a/doc/html/classes.html b/doc/html/classes.html index dd00d25..2f936b2 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -28,7 +28,7 @@ diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 04134c3..3cfb647 100644 --- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -28,7 +28,7 @@ diff --git a/doc/html/examples.html b/doc/html/examples.html index b1397c7..35067dc 100644 --- a/doc/html/examples.html +++ b/doc/html/examples.html @@ -28,7 +28,7 @@ diff --git a/doc/html/files.html b/doc/html/files.html index f6681dc..af6b5ca 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -28,7 +28,7 @@ diff --git a/doc/html/focus_menu_8ino-example.html b/doc/html/focus_menu_8ino-example.html index c1818a1..23d0669 100644 --- a/doc/html/focus_menu_8ino-example.html +++ b/doc/html/focus_menu_8ino-example.html @@ -28,7 +28,7 @@ diff --git a/doc/html/functions.html b/doc/html/functions.html index 96883cc..9a8799e 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -28,7 +28,7 @@ diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index 5e5f9f1..37bdac5 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -28,7 +28,7 @@ diff --git a/doc/html/functions_menu_8ino-example.html b/doc/html/functions_menu_8ino-example.html index 4b24694..355afc8 100644 --- a/doc/html/functions_menu_8ino-example.html +++ b/doc/html/functions_menu_8ino-example.html @@ -28,7 +28,7 @@ diff --git a/doc/html/globals.html b/doc/html/globals.html index f732491..8e770a6 100644 --- a/doc/html/globals.html +++ b/doc/html/globals.html @@ -28,7 +28,7 @@ @@ -125,7 +125,7 @@ : LiquidMenu.h
  • print_me() -: LiquidMenu.h +: LiquidMenu.h
  • recognizeType() : LiquidMenu.h diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html index 2624a74..9a75a72 100644 --- a/doc/html/globals_defs.html +++ b/doc/html/globals_defs.html @@ -28,7 +28,7 @@ diff --git a/doc/html/globals_enum.html b/doc/html/globals_enum.html index c216cf7..1902298 100644 --- a/doc/html/globals_enum.html +++ b/doc/html/globals_enum.html @@ -28,7 +28,7 @@ diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index 70c6cf3..88c5874 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -28,7 +28,7 @@ @@ -101,7 +101,7 @@
     
    diff --git a/library.properties b/library.properties index c43aca4..04bea9d 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=LiquidMenu -version=1.1.4 +version=1.1.5 author=Vasil Kalchev maintainer=Vasil Kalchev sentence=Menu creation Arduino library for LCDs, extends LiquidCrystal. diff --git a/src/LiquidMenu.h b/src/LiquidMenu.h index a4f81a5..d868cf1 100644 --- a/src/LiquidMenu.h +++ b/src/LiquidMenu.h @@ -28,7 +28,7 @@ Include file for LiquidMenu library. @author Vasil Kalchev @date 2016 -@version 1.1.4 +@version 1.1.5 @copyright The MIT License @todo: Change/Remove variables/screens/menus maybe
  • void print_me (uint16_t uintptr_t  address)