Browse Source

Moved functions to private

01010101 12 years ago
parent
commit
dc80c0ba39
3 changed files with 383 additions and 10 deletions
  1. 18 2
      Minitel.cpp
  2. 12 8
      Minitel.h
  3. 353 0
      examples/MinitelDemo/MinitelDemo/MinitelDemo.ino

+ 18 - 2
Minitel.cpp

@@ -8,7 +8,7 @@
  * For the Graffiti Research Lab France
  * http://graffitiresearchlab.fr
  * 
- * Based on works from the Tetalab (Fabrice, Renaud, PG & Phil)
+ * Based on works by the Tetalab (Fabrice, Renaud, PG & Phil)
  * http://tetalab.org
  */
  
@@ -426,6 +426,15 @@ void Minitel::incrustation(boolean b) {
   } 
 }
 
+void Minitel::incrustation() {
+	incrustation(INCRUSTATION_ON);
+}
+
+void Minitel::noIncrustation() {
+    incrustation(INCRUSTATION_OFF);
+}
+
+
 void Minitel::pixelate() {
   pixelate(true); 
 }
@@ -447,7 +456,7 @@ void Minitel::pixelate(boolean b) {
 }
 
 
-void Minitel::setLineMask(boolean b) {
+void Minitel::lineMask(boolean b) {
   serialprint7(27);
   if (b) {
     serialprint7(LINE_MASK_ON);
@@ -457,6 +466,13 @@ void Minitel::setLineMask(boolean b) {
   } 
 }
 
+void Minitel::lineMask() {
+    lineMask(LINE_MASK_ON);
+}
+
+void Minitel::noLineMask() {
+    lineMask(LINE_MASK_OFF);
+}
 
 void Minitel::video(byte v) {
   if (v == VIDEO_INVERT || v == VIDEO_STANDARD || v == VIDEO_TRANSPARENT) {

+ 12 - 8
Minitel.h

@@ -143,6 +143,14 @@ private :
 	boolean _currentBlink;
 	boolean _currentShowCursor;
 	void init();
+	void refreshSettings();
+	void mode(byte mode);
+	void cursor(boolean b);
+	void blink(boolean b);
+	void pixelate(boolean b);
+	void video(byte v);
+	void incrustation(boolean b);
+	void lineMask(boolean b);
 	boolean isValidChar(byte index);
 	boolean isAccent(char c);
 	boolean printAccentChar(char c);
@@ -154,7 +162,6 @@ public :
 
 	Minitel();
 	Minitel(int rx, int tx);
-	void refreshSettings();
 	byte getGraphicChar(String s);
 	void serialprint7(byte b);
 	void graphic(String s, int x, int y);
@@ -180,21 +187,18 @@ public :
 	void moveCursor(byte dir, int n);
 	void cursor();
 	void noCursor();
-	void cursor(boolean b);
 	void clearScreen();
-	void mode(byte mode);
 	void graphicMode();
 	void textMode();
 	void blink();
 	void noBlink();
-	void blink(boolean b);
 	void charSize(byte type);
-	void incrustation(boolean b);
+	void incrustation();
+	void noIncrustation();
 	void pixelate();
 	void noPixelate();
-	void pixelate(boolean b);
-	void setLineMask(boolean b);
-	void video(byte v);
+	void lineMask();
+	void noLineMask();
 	void standardVideo();
 	void invertVideo();
 	void transparentVideo();

+ 353 - 0
examples/MinitelDemo/MinitelDemo/MinitelDemo.ino

@@ -0,0 +1,353 @@
+/**
+ * Minitel library for Arduino (v0.1) / May 2013
+ * http://github.com/01010101/Minitel
+ *
+ * By Jerome Saint-Clair aka 01010101
+ * http://saint-clair.net
+ * 
+ * For the Graffiti Research Lab France
+ * http://graffitiresearchlab.fr
+ * 
+ * Based on works by the Tetalab (Fabrice, Renaud, PG & Phil)
+ * http://tetalab.org
+ */
+
+
+#include <SoftwareSerial.h>
+#include <Minitel.h>
+
+Minitel m(6,7);
+
+void setup() {
+  
+}
+
+void loop() {
+ 
+  long pause = 2000;
+
+  demoColor();
+  delay(pause);
+
+  demoGraphics(true);
+  delay(pause);
+
+  demoGraphics(false);
+  delay(pause);
+
+  demoBip();
+  delay(pause);
+
+  demoCursor();
+  delay(pause);
+
+  demoText();
+  delay(pause);
+
+  demoCharacters();
+  delay(pause);
+  
+}
+
+/**
+ *
+ * DEMOS
+ *
+ */
+
+// Graphic characters
+
+void demoGraphics(boolean underline) {
+
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" GRAPHICS DEMO ", 4, 1);
+  m.bgColor(BLACK);
+
+  
+  m.graphicMode();
+  
+  m.pixelate();
+  m.noCursor();
+
+  // No color 
+  m.useDefaultColors();
+
+  int xPos = 5;
+  int yPos = 5;
+  m.moveCursorTo(xPos, yPos);
+  int x = 32;
+  for (int i=x; i<x+16; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+2);
+  for (int i=x+16; i<x+32; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+4);
+  for (int i=x+32; i<x+48; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+6);
+  for (int i=x+48; i<x+64; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  } 
+
+  // Colored
+  m.bgColor(RED);
+  m.textColor(WHITE);
+
+  m.moveCursorTo(xPos, yPos+10);
+  x = 32;
+  for (int i=x; i<x+16; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+12);
+  for (int i=x+16; i<x+32; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+14);
+  for (int i=x+32; i<x+48; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+
+  m.moveCursorTo(xPos, yPos+16);
+  for (int i=x+48; i<x+64; i++) {
+    m.serialprint7(i);
+    m.serialprint7(9);
+  }
+  m.useDefaultColors();
+  m.noPixelate();
+}
+
+
+void demoCursor() {
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" CURSOR DEMO ", 4, 1);
+  m.bgColor(BLACK);
+
+  m.cursor();
+
+  int pause = 1000;
+  m.moveCursorTo(TOP_LEFT);
+  delay(pause);
+  m.moveCursor(RIGHT, 39);
+  delay(pause);
+  m.moveCursor(DOWN, 23);
+  delay(pause);
+  m.moveCursor(LEFT, 39);
+  delay(pause);
+  m.moveCursor(UP, 23);
+  delay(pause);
+  m.moveCursor(RIGHT, 19);
+  delay(pause);
+  m.moveCursor(DOWN, 12);
+  delay(pause);
+  m.moveCursorTo(HOME);
+  delay(pause);
+  m.moveCursorTo(TOP_RIGHT);
+  delay(pause);
+  m.moveCursorTo(BOTTOM_LEFT);
+  delay(pause);
+  m.moveCursorTo(BOTTOM_RIGHT);
+  delay(pause);
+  m.moveCursorTo(TOP_LEFT);
+  delay(pause);
+  m.moveCursorTo(CENTER);
+  m.noCursor();
+}
+
+
+void demoCharacters() {
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" CHARACTERS DEMO ", 4, 1);
+  m.bgColor(BLACK);
+
+
+  int xPos = 3;
+  int yPos = 5;
+  m.cursor();
+
+  // a->z
+  m.moveCursorTo(xPos, yPos);
+  for (int i=97; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+
+  // A->Z
+  m.moveCursorTo(xPos, yPos+1);
+  for (int i=65; i<65+26; i++) {
+    m.serialprint7(i);
+  }
+
+  // 0-9 + punctuation marks, ...
+  m.moveCursorTo(xPos, yPos+2);
+  for (int i=33; i<33+32; i++) {
+    m.serialprint7(i);
+  }
+  for (int i=91; i<97; i++) {
+    m.serialprint7(i);
+  }
+
+  // Colored characters
+  m.moveCursorTo(xPos, yPos+3);
+  m.textColor(RED);
+  for (int i=97; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+  m.textColor(WHITE);
+
+  // Double width 1/2
+  m.moveCursorTo(xPos, yPos+4);
+  m.charSize(SIZE_DOUBLE_WIDTH);
+  for (int i=97; i<97+13; i++) {
+    m.serialprint7(i);
+  }  
+  m.moveCursorTo(xPos, yPos+5);
+  for (int i=97+13; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+  m.charSize(SIZE_NORMAL);
+
+  // Special characters
+  m.moveCursorTo(xPos, yPos+6);
+  byte chars[] = {
+    SPE_CHAR_BOOK, SPE_CHAR_PARAGRAPH, SPE_CHAR_ARROW_LEFT, SPE_CHAR_ARROW_UP, SPE_CHAR_ARROW_RIGHT, SPE_CHAR_ARROW_DOWN, SPE_CHAR_CIRCLE, SPE_CHAR_MINUS_PLUS, SPE_CHAR_1_4, SPE_CHAR_1_2, SPE_CHAR_3_4, SPE_CHAR_UPPER_OE, SPE_CHAR_LOWER_OE, SPE_CHAR_BETA                  };
+  for (int i=0; i<sizeof(chars); i++) {
+    m.specialChar(chars[i]);
+  }
+
+  // Blink
+  m.moveCursorTo(xPos, yPos+7);
+  m.blink();
+  for (int i=97; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+  m.noBlink();
+
+  // Invert video
+  m.moveCursorTo(xPos, yPos+8);
+  m.invertVideo();
+  for (int i=97; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+  m.standardVideo();
+
+
+  // Transparent
+  // No effet on Minitel 1
+  m.moveCursorTo(xPos, yPos+9);
+  m.transparentVideo();
+  for (int i=97; i<97+26; i++) {
+    m.serialprint7(i);
+  }
+  m.standardVideo();
+}
+
+
+void demoBip() {
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" BIP DEMO ", 4, 1);
+  m.bgColor(BLACK);
+  
+  for (int i=0; i<2; i++) {
+    m.bip(50);
+    delay(700);
+    m.bip(5);
+    delay(500);
+    m.bip(10);
+    delay(2000);
+  }
+}
+
+void demoText() {
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" TEXT DEMO ", 4, 1);
+  m.bgColor(BLACK);
+
+  m.cursor();
+  m.text("****************************************", 1, 8);
+  m.blink();
+  m.text("CAUTION", 17, 13);
+  m.noBlink();
+  m.text("This is a test", 13, 15);
+  m.text("****************************************", 1, 20);
+  m.noCursor(); 
+}
+
+void demoColor() {
+
+  m.clearScreen();
+  m.textMode();
+  m.textColor(WHITE);
+  m.bgColor(RED);
+  m.text(" COLORS DEMO ", 4, 1);
+
+  m.graphicMode();
+  m.bgColor(RED);
+  m.rect((byte) m.getGraphicChar("011001"), 4, 4, 33, 20);
+
+  for(int i=0; i<18; i++) {
+    m.moveCursorTo(5, 5+i);
+
+    m.textColor(WHITE);
+    byte c = m.getGraphicChar("111111");
+    m.textByte(c);
+    m.repeat(3);
+
+    m.textColor(YELLOW);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(CYAN);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(GREEN);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(BLUE);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(RED);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(MAGENTA);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+
+    m.textColor(BLACK);
+    m.textByte(m.getGraphicChar("111111"));
+    m.repeat(3);
+  }
+}
+