Merge pull request #182 from thooge/system
Add display library version info to page system
This commit is contained in:
commit
4110e3f812
|
@ -520,19 +520,23 @@ prebuild(env)
|
||||||
board="PLATFORM_BOARD_%s"%env["BOARD"].replace("-","_").upper()
|
board="PLATFORM_BOARD_%s"%env["BOARD"].replace("-","_").upper()
|
||||||
print("Board=#%s#"%board)
|
print("Board=#%s#"%board)
|
||||||
print("BuildFlags=%s"%(" ".join(env["BUILD_FLAGS"])))
|
print("BuildFlags=%s"%(" ".join(env["BUILD_FLAGS"])))
|
||||||
|
|
||||||
epdtype = "unknown"
|
|
||||||
pcbvers = "unknown"
|
|
||||||
for x in env["BUILD_FLAGS"]:
|
|
||||||
if x.startswith("-D HARDWARE_"):
|
|
||||||
pcbvers = x.split('_')[1]
|
|
||||||
if x.startswith("-D DISPLAY_"):
|
|
||||||
epdtype = x.split('_')[1]
|
|
||||||
|
|
||||||
env.Append(
|
env.Append(
|
||||||
LINKFLAGS=[ "-u", "custom_app_desc" ],
|
LINKFLAGS=[ "-u", "custom_app_desc" ],
|
||||||
CPPDEFINES=[(board,"1"), ("BOARD", env["BOARD"]), ("EPDTYPE", epdtype),
|
CPPDEFINES=[(board,"1")]
|
||||||
("PCBVERS", pcbvers)]
|
|
||||||
)
|
)
|
||||||
#script does not run on clean yet - maybe in the future
|
#script does not run on clean yet - maybe in the future
|
||||||
env.AddPostAction("clean",cleangenerated)
|
env.AddPostAction("clean",cleangenerated)
|
||||||
|
|
||||||
|
#look for extra task scripts and include them here
|
||||||
|
for taskdir in userTaskDirs:
|
||||||
|
script = os.path.join(taskdir, "extra_task.py")
|
||||||
|
if os.path.isfile(script):
|
||||||
|
taskname = os.path.basename(os.path.normpath(taskdir))
|
||||||
|
print("#extra task script for '{}'".format(taskname))
|
||||||
|
with open(script) as fh:
|
||||||
|
try:
|
||||||
|
code = compile(fh.read(), taskname, 'exec')
|
||||||
|
except SyntaxError:
|
||||||
|
print("#ERROR: script does not compile")
|
||||||
|
continue
|
||||||
|
exec(code)
|
||||||
|
|
|
@ -37,6 +37,18 @@ String formatTime(char fmttype, uint8_t hour, uint8_t minute, uint8_t second) {
|
||||||
return String(buffer);
|
return String(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String formatLatitude(double lat) {
|
||||||
|
float degree = abs(int(lat));
|
||||||
|
float minute = abs((lat - int(lat)) * 60);
|
||||||
|
return String(degree, 0) + "\x90 " + String(minute, 4) + "' " + ((lat > 0) ? "N" : "S");
|
||||||
|
}
|
||||||
|
|
||||||
|
String formatLongitude(double lon) {
|
||||||
|
float degree = abs(int(lon));
|
||||||
|
float minute = abs((lon - int(lon)) * 60);
|
||||||
|
return String(degree, 0) + "\x90 " + String(minute, 4) + "' " + ((lon > 0) ? "E" : "W");
|
||||||
|
}
|
||||||
|
|
||||||
FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
||||||
GwLog *logger = commondata.logger;
|
GwLog *logger = commondata.logger;
|
||||||
FormatedData result;
|
FormatedData result;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#define BOARDINFO STRINGIZE(BOARD)
|
#define BOARDINFO STRINGIZE(BOARD)
|
||||||
#define PCBINFO STRINGIZE(PCBVERS)
|
#define PCBINFO STRINGIZE(PCBVERS)
|
||||||
#define DISPLAYINFO STRINGIZE(EPDTYPE)
|
#define DISPLAYINFO STRINGIZE(EPDTYPE)
|
||||||
|
#define GXEPD2INFO STRINGIZE(GXEPD2VERS)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Special system page, called directly with fast key sequence 5,4
|
* Special system page, called directly with fast key sequence 5,4
|
||||||
|
@ -43,6 +44,8 @@ String batt_sensor;
|
||||||
String solar_sensor;
|
String solar_sensor;
|
||||||
String gen_sensor;
|
String gen_sensor;
|
||||||
String rot_sensor;
|
String rot_sensor;
|
||||||
|
double homelat;
|
||||||
|
double homelon;
|
||||||
|
|
||||||
char mode = 'N'; // (N)ormal, (S)ettings, (D)evice list, (C)ard
|
char mode = 'N'; // (N)ormal, (S)ettings, (D)evice list, (C)ard
|
||||||
|
|
||||||
|
@ -69,6 +72,8 @@ public:
|
||||||
solar_sensor = common.config->getString(common.config->usePowSensor2);
|
solar_sensor = common.config->getString(common.config->usePowSensor2);
|
||||||
gen_sensor = common.config->getString(common.config->usePowSensor3);
|
gen_sensor = common.config->getString(common.config->usePowSensor3);
|
||||||
rot_sensor = common.config->getString(common.config->useRotSensor);
|
rot_sensor = common.config->getString(common.config->useRotSensor);
|
||||||
|
homelat = common.config->getString(common.config->homeLAT).toDouble();
|
||||||
|
homelon = common.config->getString(common.config->homeLON).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void setupKeys(){
|
virtual void setupKeys(){
|
||||||
|
@ -203,19 +208,21 @@ public:
|
||||||
|
|
||||||
getdisplay().setCursor(8, 95);
|
getdisplay().setCursor(8, 95);
|
||||||
getdisplay().print("Firmware version: ");
|
getdisplay().print("Firmware version: ");
|
||||||
getdisplay().setCursor(160, 95);
|
getdisplay().setCursor(150, 95);
|
||||||
getdisplay().print(VERSINFO);
|
getdisplay().print(VERSINFO);
|
||||||
|
|
||||||
getdisplay().setCursor(8, 113);
|
getdisplay().setCursor(8, 113);
|
||||||
getdisplay().print("Board version: ");
|
getdisplay().print("Board version: ");
|
||||||
getdisplay().setCursor(160, 113);
|
getdisplay().setCursor(150, 113);
|
||||||
getdisplay().print(BOARDINFO);
|
getdisplay().print(BOARDINFO);
|
||||||
getdisplay().print(String(" HW ") + String(PCBINFO));
|
getdisplay().print(String(" HW ") + String(PCBINFO));
|
||||||
|
|
||||||
getdisplay().setCursor(8, 131);
|
getdisplay().setCursor(8, 131);
|
||||||
getdisplay().print("Display version: ");
|
getdisplay().print("Display version: ");
|
||||||
getdisplay().setCursor(160, 131);
|
getdisplay().setCursor(150, 131);
|
||||||
getdisplay().print(DISPLAYINFO);
|
getdisplay().print(DISPLAYINFO);
|
||||||
|
getdisplay().print("; GxEPD2 v");
|
||||||
|
getdisplay().print(GXEPD2INFO);
|
||||||
|
|
||||||
getdisplay().setCursor(8, 265);
|
getdisplay().setCursor(8, 265);
|
||||||
#ifdef BOARD_OBP60S3
|
#ifdef BOARD_OBP60S3
|
||||||
|
@ -295,34 +302,44 @@ public:
|
||||||
// left column
|
// left column
|
||||||
getdisplay().setCursor(x0, y0);
|
getdisplay().setCursor(x0, y0);
|
||||||
getdisplay().print("Simulation:");
|
getdisplay().print("Simulation:");
|
||||||
getdisplay().setCursor(140, y0);
|
getdisplay().setCursor(120, y0);
|
||||||
getdisplay().print(simulation ? "on" : "off");
|
getdisplay().print(simulation ? "on" : "off");
|
||||||
|
|
||||||
getdisplay().setCursor(x0, y0 + 16);
|
getdisplay().setCursor(x0, y0 + 16);
|
||||||
getdisplay().print("Environment:");
|
getdisplay().print("Environment:");
|
||||||
getdisplay().setCursor(140, y0 + 16);
|
getdisplay().setCursor(120, y0 + 16);
|
||||||
getdisplay().print(env_module);
|
getdisplay().print(env_module);
|
||||||
|
|
||||||
getdisplay().setCursor(x0, y0 + 32);
|
getdisplay().setCursor(x0, y0 + 32);
|
||||||
getdisplay().print("Buzzer:");
|
getdisplay().print("Buzzer:");
|
||||||
getdisplay().setCursor(140, y0 + 32);
|
getdisplay().setCursor(120, y0 + 32);
|
||||||
getdisplay().print(buzzer_mode);
|
getdisplay().print(buzzer_mode);
|
||||||
|
|
||||||
getdisplay().setCursor(x0, y0 + 64);
|
getdisplay().setCursor(x0, y0 + 64);
|
||||||
getdisplay().print("GPS:");
|
getdisplay().print("GPS:");
|
||||||
getdisplay().setCursor(140, y0 + 64);
|
getdisplay().setCursor(120, y0 + 64);
|
||||||
getdisplay().print(gps_module);
|
getdisplay().print(gps_module);
|
||||||
|
|
||||||
getdisplay().setCursor(x0, y0 + 80);
|
getdisplay().setCursor(x0, y0 + 80);
|
||||||
getdisplay().print("RTC:");
|
getdisplay().print("RTC:");
|
||||||
getdisplay().setCursor(140, y0 + 80);
|
getdisplay().setCursor(120, y0 + 80);
|
||||||
getdisplay().print(rtc_module);
|
getdisplay().print(rtc_module);
|
||||||
|
|
||||||
getdisplay().setCursor(x0, y0 + 96);
|
getdisplay().setCursor(x0, y0 + 96);
|
||||||
getdisplay().print("Wifi:");
|
getdisplay().print("Wifi:");
|
||||||
getdisplay().setCursor(140, y0 + 96);
|
getdisplay().setCursor(120, y0 + 96);
|
||||||
getdisplay().print(commonData->status.wifiApOn ? "on" : "off");
|
getdisplay().print(commonData->status.wifiApOn ? "on" : "off");
|
||||||
|
|
||||||
|
// Home location
|
||||||
|
getdisplay().setCursor(x0, y0 + 128);
|
||||||
|
getdisplay().print("Home Lat.:");
|
||||||
|
getdisplay().setCursor(120, y0 + 128);
|
||||||
|
getdisplay().print(formatLatitude(homelat));
|
||||||
|
getdisplay().setCursor(x0, y0 + 144);
|
||||||
|
getdisplay().print("Home Lon.:");
|
||||||
|
getdisplay().setCursor(120, y0 + 144);
|
||||||
|
getdisplay().print(formatLongitude(homelon));
|
||||||
|
|
||||||
// right column
|
// right column
|
||||||
getdisplay().setCursor(202, y0);
|
getdisplay().setCursor(202, y0);
|
||||||
getdisplay().print("Batt. sensor:");
|
getdisplay().print("Batt. sensor:");
|
||||||
|
|
|
@ -168,6 +168,8 @@ class PageStruct{
|
||||||
// Standard format functions without overhead
|
// Standard format functions without overhead
|
||||||
String formatDate(String fmttype, uint16_t year, uint8_t month, uint8_t day);
|
String formatDate(String fmttype, uint16_t year, uint8_t month, uint8_t day);
|
||||||
String formatTime(char fmttype, uint8_t hour, uint8_t minute, uint8_t second);
|
String formatTime(char fmttype, uint8_t hour, uint8_t minute, uint8_t second);
|
||||||
|
String formatLatitude(double lat);
|
||||||
|
String formatLongitude(double lon);
|
||||||
|
|
||||||
// Structure for formatted boat values
|
// Structure for formatted boat values
|
||||||
typedef struct{
|
typedef struct{
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
# PlatformIO extra script for obp60task
|
||||||
|
|
||||||
|
epdtype = "unknown"
|
||||||
|
pcbvers = "unknown"
|
||||||
|
for x in env["BUILD_FLAGS"]:
|
||||||
|
if x.startswith("-D HARDWARE_"):
|
||||||
|
pcbvers = x.split('_')[1]
|
||||||
|
if x.startswith("-D DISPLAY_"):
|
||||||
|
epdtype = x.split('_')[1]
|
||||||
|
|
||||||
|
propfilename = os.path.join(env["PROJECT_LIBDEPS_DIR"], env["PIOENV"], "GxEPD2/library.properties")
|
||||||
|
properties = {}
|
||||||
|
with open(propfilename, 'r') as file:
|
||||||
|
for line in file:
|
||||||
|
match = re.match(r'^([^=]+)=(.*)$', line)
|
||||||
|
if match:
|
||||||
|
key = match.group(1).strip()
|
||||||
|
value = match.group(2).strip()
|
||||||
|
properties[key] = value
|
||||||
|
|
||||||
|
gxepd2vers = "unknown"
|
||||||
|
try:
|
||||||
|
if properties["name"] == "GxEPD2":
|
||||||
|
gxepd2vers = properties["version"]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
env["CPPDEFINES"].extend([("BOARD", env["BOARD"]), ("EPDTYPE", epdtype), ("PCBVERS", pcbvers), ("GXEPD2VERS", gxepd2vers)])
|
||||||
|
|
||||||
|
print("added hardware info to CPPDEFINES")
|
Loading…
Reference in New Issue