Using Hexiware, Hexiware dock and an Alcohol click board, create your own breathalizer that connects to Wolksense to record your readings

Dependencies:   Hexi_KW40Z Hexi_OLED_SSD1351

Fork of Hexi_OLED_Text_Example by Hexiwear

Revision:
1:42e8e50ae4ac
Parent:
0:a1af4ae04b06
Child:
2:47c3dad2c8ef
Child:
3:d633281e5f83
--- a/main.cpp	Fri Aug 19 00:37:13 2016 +0000
+++ b/main.cpp	Fri Aug 26 23:07:25 2016 +0000
@@ -1,64 +1,54 @@
 #include "mbed.h"
 #include "Hexi_OLED_SSD1351.h"
 #include "OLED_types.h"
-#include "OLED_fonts.h"
+#include "OpenSans_Font.h"
 #include "string.h"
 
 int main() {
-    
-    //Instantiate Time    
-    Timer time;
+    char text[20];  /* Text Buffer */ 
+    Timer time;     /* Instantiate Time */
 
-    //Instantiate the SSD1351 OLED Driver    
-    SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); // (MOSI,SCLK,POWER,CS,RST,DC)
-    //Turn on the backlight of the OLED Display 
-    oled.DimScreenON();
-    //Fills the screen with solid black         
-    oled.FillScreen(COLOR_BLACK);
+    /* Instantiate the SSD1351 OLED Driver */ 
+    SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
     
-    //Set the parameters for desired text properties
-     oled_text_properties_t
-            textProperties =
-            {
-            .font       = oledFont_Tahoma_8_Regular,    
-            .fontColor  = COLOR_WHITE,
-            .alignParam = OLED_TEXT_ALIGN_LEFT, //currently does nothing in this example
-            .background = NULL
-            };
+    /* Get OLED Class Default Text Properties */
+    oled_text_properties_t textProperties = {0};
+    oled.GetTextProperties(&textProperties);    
 
+    /* Turn on the backlight of the OLED Display */
+    oled.DimScreenON();
+    
+    /* Fills the screen with solid black */         
+    oled.FillScreen(COLOR_BLACK);
+
+    /* Display Text at (x=7,y=0) */
+    strcpy((char *) text,"TEXT EXAMPLE");
+    oled.Label((uint8_t *)text,7,0);
+        
+    /* Change font color to blue */ 
+    textProperties.fontColor   = COLOR_BLUE;
     oled.SetTextProperties(&textProperties);
 
-    //Approximately 15 characters can fit on one line for this font size. 
-    //Extra element for null terminator of string. 
-    char text[15+1];
-    
-    //Display Text at (x=13,y=0). Need to manually center. 
-    strcpy((char *) text,"TEXT EXAMPLE");
-    oled.DrawText((uint8_t *)text,13,0);
-    
-    //Change Font to Blue 
-    textProperties.fontColor = COLOR_BLUE;
-    oled.SetTextProperties(&textProperties);
-
-    //Display text at (x=5,y=24)
+    /* Display text at (x=5,y=40) */ 
     strcpy(text,"Timer(s):");
-    oled.DrawText((uint8_t *)text,5,24);
+    oled.Label((uint8_t *)text,5,40);
         
-    //Set text color to white
+    /* Set text properties to white and right aligned for the dynamic text */
     textProperties.fontColor = COLOR_WHITE;
+    textProperties.alignParam = OLED_TEXT_ALIGN_RIGHT;
     oled.SetTextProperties(&textProperties);    
 
-    //start timer
-    time.start();
+    
+    time.start(); /* start timer */
 
     while (true) {
-
-        //Dynamic Text
+        
+        /* Format the time reading */
+        sprintf(text,"%.2f",time.read());
         
-        //Display Time Reading at (x=50, y=24)
-        sprintf(text,"%.2f",time.read());
-        oled.DrawText((uint8_t *)text,50,24);
-
+        /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
+        oled.TextBox((uint8_t *)text,55,40,35,15); 
+             
         Thread::wait(1000);
     }
 }