#Region Project Attributes
#AutoFlushLogs: True
#CheckArrayBounds: True
#StackBufferSize: 300
#End Region
Sub Process_Globals
Public const APP_Version As String = "v1.0" 'Version
Public Serial1 As Serial 'Debug
Private WiFiConnect As ESP8266WiFi 'WiFi
Public Debug As Boolean = True 'Show Debug Messages
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Delay(1500) 'short delay to show debug Messages
If Debug Then Log("( Info ) AppStart")
If Debug Then Log("( Info ) APP_Version: ", APP_Version)
If Debug Then Log("( Info ) Show Debug Messages: ", getBoolean(Debug))
'WLAN
WiFiConnect.Connect2("[YOUR ACCESS POINT]", "[AP PASSWORD]")
'C Code
RunNative("setup", Null)
RunNative("fill", Null)
RunNative("text", Null)
RunNative("number", Null)
RunNative("hex", Null)
RunNative("bigtxt", Null)
RunNative("font2", Null)
RunNative("formatting", Null)
End Sub
#Region "Helpers"
Private Sub getBoolean (bol As Boolean) As String 'Convert Boolen to String
If bol = True Then
Return "True"
Else
Return "False"
End If
End Sub
#End Region
#if C
#include <M5Stack.h>
#define TFT_GREY 0x5AEB // New colour
void setup(B4R::Object* unused) {
M5.begin();
// M5.Lcd.setRotation(2);
}
void fill(B4R::Object* unused) {
// Fill screen with grey so we can see the effect of printing with and without
// a background colour defined
M5.Lcd.fillScreen(TFT_GREY);
}
void text(B4R::Object* unused) {
// Set "cursor" at top left corner of display (0,0) and select font 2
// (cursor will move to next line automatically during printing with 'M5.Lcd.println'
// or stay on the line is there is room for the text with M5.Lcd.print)
M5.Lcd.setCursor(0, 0, 2);
// Set the font colour to be white with a black background, set text size multiplier to 1
M5.Lcd.setTextColor(TFT_WHITE,TFT_BLACK);
M5.Lcd.setTextSize(1);
// We can now plot text on screen using the "print" class
M5.Lcd.println("Hello World!");
}
void number(B4R::Object* unused) {
// Set the font colour to be yellow with no background, set to font 7
M5.Lcd.setTextColor(TFT_YELLOW); M5.Lcd.setTextFont(7);
M5.Lcd.println(1234.56);
}
void hex(B4R::Object* unused) {
// Set the font colour to be red with black background, set to font 4
M5.Lcd.setTextColor(TFT_RED,TFT_BLACK); M5.Lcd.setTextFont(4);
//M5.Lcd.println(3735928559L, HEX); // Should print DEADBEEF
}
void bigtxt(B4R::Object* unused) {
// Set the font colour to be green with black background, set to font 4
M5.Lcd.setTextColor(TFT_GREEN,TFT_BLACK);
M5.Lcd.setTextFont(4);
M5.Lcd.println("Groop");
M5.Lcd.println("I implore thee,");
}
void font2(B4R::Object* unused) {
// Change to font 2
M5.Lcd.setTextFont(2);
M5.Lcd.println("my foonting turlingdromes.");
M5.Lcd.println("And hooptiously drangle me");
M5.Lcd.println("with crinkly bindlewurdles,");
// This next line is deliberately made too long for the display width to test
// automatic text wrapping onto the next line
M5.Lcd.println("Or I will rend thee in the gobberwarts with my blurglecruncheon, see if I don't!");
}
void formatting(B4R::Object* unused) {
// Test some print formatting functions
float fnumber = 123.45;
// Set the font colour to be blue with no background, set to font 4
M5.Lcd.setTextColor(TFT_BLUE); M5.Lcd.setTextFont(4);
M5.Lcd.print("Float = "); M5.Lcd.println(fnumber); // Print floating point number
M5.Lcd.print("Binary = "); M5.Lcd.println((int)fnumber, BIN); // Print as integer value in binary
M5.Lcd.print("Hexadecimal = "); M5.Lcd.println((int)fnumber, HEX); // Print as integer number in Hexadecimal
// delay(10000);
}
#End If