Compare commits

..

No commits in common. "4a273d2c93ea32fefdc56d53c8d959052b94db1a" and "fb3af0bf835ea3421057c11b12c139abec285226" have entirely different histories.

5 changed files with 339 additions and 436 deletions

View File

@ -65,7 +65,6 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
String tempFormat = commondata.config->getString(commondata.config->tempFormat); // [K|°C|°F] String tempFormat = commondata.config->getString(commondata.config->tempFormat); // [K|°C|°F]
String dateFormat = commondata.config->getString(commondata.config->dateFormat); // [DE|GB|US] String dateFormat = commondata.config->getString(commondata.config->dateFormat); // [DE|GB|US]
bool usesimudata = commondata.config->getBool(commondata.config->useSimuData); // [on|off] bool usesimudata = commondata.config->getBool(commondata.config->useSimuData); // [on|off]
String precision = commondata.config->getString(commondata.config->valueprecision); // [1|2]
// If boat value not valid // If boat value not valid
if (! value->valid && !usesimudata){ if (! value->valid && !usesimudata){
@ -73,19 +72,6 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
return result; return result;
} }
const char* fmt_dec_1;
const char* fmt_dec_10;
const char* fmt_dec_100;
if (precision == "1") {
fmt_dec_1 = "%3.1f";
fmt_dec_10 = "%3.0f";
fmt_dec_100 = "%3.0f";
} else {
fmt_dec_1 = "%3.2f";
fmt_dec_10 = "%3.1f";
fmt_dec_100 = "%3.0f";
}
// LOG_DEBUG(GwLog::DEBUG,"formatValue init: getFormat: %s date->value: %f time->value: %f", value->getFormat(), commondata.date->value, commondata.time->value); // LOG_DEBUG(GwLog::DEBUG,"formatValue init: getFormat: %s date->value: %f time->value: %f", value->getFormat(), commondata.date->value, commondata.time->value);
static const int bsize = 30; static const int bsize = 30;
char buffer[bsize+1]; char buffer[bsize+1];
@ -220,13 +206,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
result.unit = "m/s"; result.unit = "m/s";
} }
if(speed < 10){ if(speed < 10){
snprintf(buffer, bsize, fmt_dec_1, speed); snprintf(buffer,bsize,"%3.2f",speed);
} }
else if (speed < 100) { if(speed >= 10 && speed < 100){
snprintf(buffer, bsize, fmt_dec_10, speed); snprintf(buffer,bsize,"%3.1f",speed);
} }
else { if(speed >= 100){
snprintf(buffer, bsize, fmt_dec_100, speed); snprintf(buffer,bsize,"%3.0f",speed);
} }
} }
//######################################################## //########################################################
@ -252,40 +238,40 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
if(speed < 0.3){ if(speed < 0.3){
speed = 0; speed = 0;
} }
else if (speed < 1.5) { if(speed >=0.3 && speed < 1.5){
speed = 1; speed = 1;
} }
else if (speed < 3.3) { if(speed >=1.5 && speed < 3.3){
speed = 2; speed = 2;
} }
else if (speed < 5.4) { if(speed >=3.3 && speed < 5.4){
speed = 3; speed = 3;
} }
else if (speed < 7.9) { if(speed >=5.4 && speed < 7.9){
speed = 4; speed = 4;
} }
else if (speed < 10.7) { if(speed >=7.9 && speed < 10.7){
speed = 5; speed = 5;
} }
else if (speed < 13.8) { if(speed >=10.7 && speed < 13.8){
speed = 6; speed = 6;
} }
else if (speed < 17.1) { if(speed >=13.8 && speed < 17.1){
speed = 7; speed = 7;
} }
else if (speed < 20.7) { if(speed >=17.1 && speed < 20.7){
speed = 8; speed = 8;
} }
else if (speed < 24.4) { if(speed >=20.7 && speed < 24.4){
speed = 9; speed = 9;
} }
else if (speed < 28.4) { if(speed >=24.4 && speed < 28.4){
speed = 10; speed = 10;
} }
else if (speed < 32.6) { if(speed >=28.4 && speed < 32.6){
speed = 11; speed = 11;
} }
else { if(speed >=32.6){
speed = 12; speed = 12;
} }
result.unit = "bft"; result.unit = "bft";
@ -299,13 +285,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
} }
else{ else{
if(speed < 10){ if(speed < 10){
snprintf(buffer, bsize, fmt_dec_1, speed); snprintf(buffer,bsize,"%3.2f",speed);
} }
else if (speed < 100){ if(speed >= 10 && speed < 100){
snprintf(buffer, bsize, fmt_dec_10, speed); snprintf(buffer,bsize,"%3.1f",speed);
} }
else { if(speed >= 100){
snprintf(buffer, bsize, fmt_dec_100, speed); snprintf(buffer,bsize,"%3.0f",speed);
} }
} }
} }
@ -351,13 +337,10 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
dop = 99.9; dop = 99.9;
} }
if(dop < 10){ if(dop < 10){
snprintf(buffer, bsize, fmt_dec_1, dop); snprintf(buffer,bsize,"%3.2f",dop);
} }
else if(dop < 100){ if(dop >= 10 && dop < 100){
snprintf(buffer, bsize, fmt_dec_10, dop); snprintf(buffer,bsize,"%3.1f",dop);
}
else {
snprintf(buffer, bsize, fmt_dec_100, dop);
} }
} }
//######################################################## //########################################################
@ -427,13 +410,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
result.unit = "m"; result.unit = "m";
} }
if(depth < 10){ if(depth < 10){
snprintf(buffer, bsize, fmt_dec_1, depth); snprintf(buffer,bsize,"%3.2f",depth);
} }
else if (depth < 100){ if(depth >= 10 && depth < 100){
snprintf(buffer, bsize, fmt_dec_10, depth); snprintf(buffer,bsize,"%3.1f",depth);
} }
else { if(depth >= 100){
snprintf(buffer, bsize, fmt_dec_100, depth); snprintf(buffer,bsize,"%3.0f",depth);
} }
} }
//######################################################## //########################################################
@ -447,11 +430,11 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
xte = rawvalue; xte = rawvalue;
} }
if (xte >= 100) { if (xte >= 100) {
snprintf(buffer, bsize, fmt_dec_100, value->value); snprintf(buffer,bsize,"%3.0f",value->value);
} else if (xte >= 10) { } else if (xte >= 10) {
snprintf(buffer, bsize, fmt_dec_10, value->value); snprintf(buffer,bsize,"%3.1f",value->value);
} else { } else {
snprintf(buffer, bsize, fmt_dec_1, value->value); snprintf(buffer,bsize,"%3.2f",value->value);
} }
result.unit = "nm"; result.unit = "nm";
} }
@ -478,13 +461,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
result.unit = "K"; result.unit = "K";
} }
if(temp < 10){ if(temp < 10){
snprintf(buffer, bsize, fmt_dec_1, temp); snprintf(buffer,bsize,"%3.2f",temp);
} }
else if (temp < 100) { if(temp >= 10 && temp < 100){
snprintf(buffer, bsize, fmt_dec_10, temp); snprintf(buffer,bsize,"%3.1f",temp);
} }
else { if(temp >= 100){
snprintf(buffer, bsize, fmt_dec_100, temp); snprintf(buffer,bsize,"%3.0f",temp);
} }
} }
//######################################################## //########################################################
@ -506,17 +489,17 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
distance = distance * 0.000539957; distance = distance * 0.000539957;
result.unit = "nm"; result.unit = "nm";
} }
else { else{;
result.unit = "m"; result.unit = "m";
} }
if(distance < 10){ if(distance < 10){
snprintf(buffer, bsize, fmt_dec_1, distance); snprintf(buffer,bsize,"%3.2f",distance);
} }
else if (distance < 100){ if(distance >= 10 && distance < 100){
snprintf(buffer, bsize, fmt_dec_10, distance); snprintf(buffer,bsize,"%3.1f",distance);
} }
else { if(distance >= 100){
snprintf(buffer, bsize, fmt_dec_100, distance); snprintf(buffer,bsize,"%3.0f",distance);
} }
} }
//######################################################## //########################################################
@ -564,10 +547,10 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
voltage = rawvalue; voltage = rawvalue;
} }
if(voltage < 10){ if(voltage < 10){
snprintf(buffer, bsize, fmt_dec_1, voltage); snprintf(buffer,bsize,"%3.2f",voltage);
} }
else{ else{
snprintf(buffer, bsize, fmt_dec_10, voltage); snprintf(buffer,bsize,"%3.1f",voltage);
} }
result.unit = "V"; result.unit = "V";
} }
@ -583,13 +566,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
current = rawvalue; current = rawvalue;
} }
if(current < 10){ if(current < 10){
snprintf(buffer, bsize, fmt_dec_1, current); snprintf(buffer,bsize,"%3.2f",current);
} }
else if(current < 100) { if(current >= 10 && current < 100){
snprintf(buffer, bsize, fmt_dec_10, current); snprintf(buffer,bsize,"%3.1f",current);
} }
else { if(current >= 100){
snprintf(buffer, bsize, fmt_dec_100, current); snprintf(buffer,bsize,"%3.0f",current);
} }
result.unit = "A"; result.unit = "A";
} }
@ -605,13 +588,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
temperature = rawvalue; temperature = rawvalue;
} }
if(temperature < 10){ if(temperature < 10){
snprintf(buffer, bsize, fmt_dec_1, temperature); snprintf(buffer,bsize,"%3.2f",temperature);
} }
else if (temperature < 100) { if(temperature >= 10 && temperature < 100){
snprintf(buffer, bsize, fmt_dec_10, temperature); snprintf(buffer,bsize,"%3.1f",temperature);
} }
else { if(temperature >= 100){
snprintf(buffer, bsize, fmt_dec_100, temperature); snprintf(buffer,bsize,"%3.0f",temperature);
} }
result.unit = "Deg C"; result.unit = "Deg C";
} }
@ -627,13 +610,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
temperature = rawvalue; temperature = rawvalue;
} }
if(temperature < 10){ if(temperature < 10){
snprintf(buffer, bsize, fmt_dec_1, temperature); snprintf(buffer,bsize,"%3.2f",temperature);
} }
else if(temperature < 100) { if(temperature >= 10 && temperature < 100){
snprintf(buffer, bsize, fmt_dec_10, temperature); snprintf(buffer,bsize,"%3.1f",temperature);
} }
else { if(temperature >= 100){
snprintf(buffer, bsize, fmt_dec_100, temperature); snprintf(buffer,bsize,"%3.0f",temperature);
} }
result.unit = "Deg C"; result.unit = "Deg C";
} }
@ -649,13 +632,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
humidity = rawvalue; humidity = rawvalue;
} }
if(humidity < 10){ if(humidity < 10){
snprintf(buffer, bsize, fmt_dec_1, humidity); snprintf(buffer,bsize,"%3.2f",humidity);
} }
else if(humidity < 100) { if(humidity >= 10 && humidity < 100){
snprintf(buffer, bsize, fmt_dec_10, humidity); snprintf(buffer,bsize,"%3.1f",humidity);
} }
else { if(humidity >= 100){
snprintf(buffer, bsize, fmt_dec_100, humidity); snprintf(buffer,bsize,"%3.0f",humidity);
} }
result.unit = "%"; result.unit = "%";
} }
@ -671,13 +654,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
volume = rawvalue; volume = rawvalue;
} }
if(volume < 10){ if(volume < 10){
snprintf(buffer, bsize, fmt_dec_1, volume); snprintf(buffer,bsize,"%3.2f",volume);
} }
else if (volume < 100) { if(volume >= 10 && volume < 100){
snprintf(buffer, bsize, fmt_dec_10, volume); snprintf(buffer,bsize,"%3.1f",volume);
} }
else if (volume >= 100) { if(volume >= 100){
snprintf(buffer, bsize, fmt_dec_100, volume); snprintf(buffer,bsize,"%3.0f",volume);
} }
result.unit = "%"; result.unit = "%";
} }
@ -693,13 +676,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
volume = rawvalue; volume = rawvalue;
} }
if(volume < 10){ if(volume < 10){
snprintf(buffer, bsize, fmt_dec_1, volume); snprintf(buffer,bsize,"%3.2f",volume);
} }
else if (volume < 100) { if(volume >= 10 && volume < 100){
snprintf(buffer, bsize, fmt_dec_10, volume); snprintf(buffer,bsize,"%3.1f",volume);
} }
else { if(volume >= 100){
snprintf(buffer, bsize, fmt_dec_100, volume); snprintf(buffer,bsize,"%3.0f",volume);
} }
result.unit = "l"; result.unit = "l";
} }
@ -715,13 +698,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
flow = rawvalue; flow = rawvalue;
} }
if(flow < 10){ if(flow < 10){
snprintf(buffer, bsize, fmt_dec_1, flow); snprintf(buffer,bsize,"%3.2f",flow);
} }
else if (flow < 100) { if(flow >= 10 && flow < 100){
snprintf(buffer, bsize, fmt_dec_10, flow); snprintf(buffer,bsize,"%3.1f",flow);
} }
else { if(flow >= 100){
snprintf(buffer, bsize, fmt_dec_100, flow); snprintf(buffer,bsize,"%3.0f",flow);
} }
result.unit = "l/min"; result.unit = "l/min";
} }
@ -729,7 +712,7 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
else if (value->getFormat() == "formatXdr:G:"){ else if (value->getFormat() == "formatXdr:G:"){
double generic = 0; double generic = 0;
if(usesimudata == false) { if(usesimudata == false) {
generic = value->value; generic = value->value; // Value in l/min
rawvalue = value->value; rawvalue = value->value;
} }
else{ else{
@ -737,13 +720,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
generic = rawvalue; generic = rawvalue;
} }
if(generic < 10){ if(generic < 10){
snprintf(buffer, bsize, fmt_dec_1, generic); snprintf(buffer,bsize,"%3.2f",generic);
} }
else if (generic < 100) { if(generic >= 10 && generic < 100){
snprintf(buffer, bsize, fmt_dec_10, generic); snprintf(buffer,bsize,"%3.1f",generic);
} }
else { if(generic >= 100){
snprintf(buffer, bsize, fmt_dec_100, generic); snprintf(buffer,bsize,"%3.0f",generic);
} }
result.unit = ""; result.unit = "";
} }
@ -759,13 +742,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
dplace = rawvalue; dplace = rawvalue;
} }
if(dplace < 10){ if(dplace < 10){
snprintf(buffer, bsize, fmt_dec_1, dplace); snprintf(buffer,bsize,"%3.2f",dplace);
} }
else if (dplace < 100) { if(dplace >= 10 && dplace < 100){
snprintf(buffer, bsize, fmt_dec_10, dplace); snprintf(buffer,bsize,"%3.1f",dplace);
} }
else { if(dplace >= 100){
snprintf(buffer, bsize, fmt_dec_100, dplace); snprintf(buffer,bsize,"%3.0f",dplace);
} }
result.unit = "%"; result.unit = "%";
} }
@ -801,13 +784,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
rpm = rawvalue; rpm = rawvalue;
} }
if(rpm < 10){ if(rpm < 10){
snprintf(buffer, bsize, fmt_dec_1, rpm); snprintf(buffer,bsize,"%3.2f",rpm);
} }
else if (rpm < 100) { if(rpm >= 10 && rpm < 100){
snprintf(buffer, bsize, fmt_dec_10, rpm); snprintf(buffer,bsize,"%3.1f",rpm);
} }
else { if(rpm >= 100){
snprintf(buffer, bsize, fmt_dec_100, rpm); snprintf(buffer,bsize,"%3.0f",rpm);
} }
result.unit = "rpm"; result.unit = "rpm";
} }
@ -816,13 +799,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
//######################################################## //########################################################
else{ else{
if(value->value < 10){ if(value->value < 10){
snprintf(buffer, bsize, fmt_dec_1, value->value); snprintf(buffer,bsize,"%3.2f",value->value);
} }
else if (value->value < 100) { if(value->value >= 10 && value->value < 100){
snprintf(buffer, bsize, fmt_dec_10, value->value); snprintf(buffer,bsize,"%3.1f",value->value);
} }
else { if(value->value >= 100){
snprintf(buffer, bsize, fmt_dec_100, value->value); snprintf(buffer,bsize,"%3.0f",value->value);
} }
result.unit = ""; result.unit = "";
} }

View File

@ -1117,21 +1117,6 @@
"obp60":"true" "obp60":"true"
} }
}, },
{
"name": "valueprecision",
"label": "Display value precision",
"type": "list",
"default": "2",
"description": "Maximum number of decimal places to display [1|2]",
"list": [
"1",
"2"
],
"category": "OBP60 Display",
"capabilities": {
"obp60":"true"
}
},
{ {
"name": "backlight", "name": "backlight",
"label": "Backlight Mode", "label": "Backlight Mode",

View File

@ -1129,21 +1129,6 @@
"obp40": "true" "obp40": "true"
} }
}, },
{
"name": "valueprecision",
"label": "Display value precision",
"type": "list",
"default": "2",
"description": "Maximum number of decimal places to display [1|2]",
"list": [
"1",
"2"
],
"category": "OBP40 Display",
"capabilities": {
"obp40":"true"
}
},
{ {
"name": "backlight", "name": "backlight",
"label": "Backlight Mode", "label": "Backlight Mode",

View File

@ -1,55 +1,46 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# A tool to generate that part of config.json that deals with pages and fields.
#
#Usage: 1. modify this script (e.g.add a page, change number of fields, etc.)
# 2. Delete all lines from config.json from the curly backet before "name": "page1type" to o the end of the file (as of today, delete from line 917 to the end of the File)
# 3. run ./gen_set.py >> config.json
"""
A tool to generate that part of config.json that deals with pages and fields.
Usage example:
1. Delete all lines from config.json from the curly backet before
"name": "page1type" to the end of the file
2. run ./gen_set.py -d obp60 -p 10 >> config.json
TODO Better handling of default pages
"""
import os
import sys
import getopt
import re
import json import json
__version__ = "0.2" # List of all pages and the number of parameters they expect.
no_of_fields_per_page = {
"Wind": 0,
"XTETrack": 0,
"Battery2": 0,
"Battery": 0,
"BME280": 0,
"Clock": 0,
"Compass" : 0,
"DST810": 0,
"Fluid": 1,
"FourValues2": 4,
"FourValues": 4,
"Generator": 0,
"KeelPosition": 0,
"OneValue": 1,
"RollPitch": 2,
"RudderPosition": 0,
"SixValues" : 6,
"Solar": 0,
"ThreeValues": 3,
"TwoValues": 2,
"Voltage": 0,
"WhitePage": 0,
"WindPlot": 0,
"WindRose": 0,
"WindRoseFlex": 6,
}
def detect_pages(filename): # No changes needed beyond this point
# returns a dictionary with page name and the number of gui fields # max number of pages supported by OBP60
pagefiles = [] no_of_pages = 10
with open(filename, 'r') as fh:
pattern = r'extern PageDescription\s*register(Page[^;\s]*)'
for line in fh:
if "extern PageDescription" in line:
match = re.search(pattern, line)
if match:
pagefiles.append(match.group(1))
try:
pagefiles.remove('PageSystem')
except ValueError:
pass
pagedata = {}
for pf in pagefiles:
filename = pf + ".cpp"
with open(filename, 'r') as fh:
content = fh.read()
pattern = r'PageDescription\s*?register' + pf + r'\s*\(\s*"([^"]+)".*?\n\s*(\d+)'
match = re.search(pattern, content, re.DOTALL)
if match:
pagedata[match.group(1)] = int(match.group(2))
return pagedata
def get_default_page(pageno):
# Default selection for each page # Default selection for each page
default_pages = ( default_pages = [
"Voltage", "Voltage",
"WindRose", "WindRose",
"OneValue", "OneValue",
@ -59,30 +50,22 @@ def get_default_page(pageno):
"FourValues2", "FourValues2",
"Clock", "Clock",
"RollPitch", "RollPitch",
"Battery2" "Battery2",
) ]
if pageno > len(default_pages): numbers = [
return "OneValue" "one",
return default_pages[pageno - 1] "two",
"three",
def number_to_text(number): "four",
if number < 0 or number > 99: "five",
raise ValueError("Only numbers from 0 to 99 are allowed.") "six",
numbers = ("zero", "one", "two", "three", "four", "five", "six", "seven", "seven",
"eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "eight",
"fifteen", "sixteen", "seventeen", "eighteen", "nineteen") "nine",
tens = ("", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "ten",
"eighty", "ninety") ]
if number < 20: pages = sorted(no_of_fields_per_page.keys())
return numbers[number] max_no_of_fields_per_page = max(no_of_fields_per_page.values())
else:
q, r = divmod(number, 10)
return tens[q] + numbers[r]
def create_json(device, no_of_pages, pagedata):
pages = sorted(pagedata.keys())
max_no_of_fields_per_page = max(pagedata.values())
output = [] output = []
@ -91,11 +74,11 @@ def create_json(device, no_of_pages, pagedata):
"name": f"page{page_no}type", "name": f"page{page_no}type",
"label": "Type", "label": "Type",
"type": "list", "type": "list",
"default": get_default_page(page_no), "default": default_pages[page_no - 1],
"description": f"Type of page for page {page_no}", "description": f"Type of page for page {page_no}",
"list": pages, "list": pages,
"category": f"{device.upper()} Page {page_no}", "category": f"OBP60 Page {page_no}",
"capabilities": {device.lower(): "true"}, "capabilities": {"obp60": "true"},
"condition": [{"visiblePages": vp} for vp in range(page_no, no_of_pages + 1)], "condition": [{"visiblePages": vp} for vp in range(page_no, no_of_pages + 1)],
#"fields": [], #"fields": [],
} }
@ -107,13 +90,13 @@ def create_json(device, no_of_pages, pagedata):
"label": f"Field {field_no}", "label": f"Field {field_no}",
"type": "boatData", "type": "boatData",
"default": "", "default": "",
"description": "The display for field {}".format(number_to_text(field_no)), "description": f"The display for field {numbers[field_no - 1]}",
"category": f"{device.upper()} Page {page_no}", "category": f"OBP60 Page {page_no}",
"capabilities": {device.lower(): "true"}, "capabilities": {"obp60": "true"},
"condition": [ "condition": [
{f"page{page_no}type": page} {f"page{page_no}type": page}
for page in pages for page in pages
if pagedata[page] >= field_no if no_of_fields_per_page[page] >= field_no
], ],
} }
output.append(field_data) output.append(field_data)
@ -133,47 +116,17 @@ def create_json(device, no_of_pages, pagedata):
{"l":"Fuel Gasoline (6)","v":"6"} {"l":"Fuel Gasoline (6)","v":"6"}
], ],
"description": "Fluid type in tank", "description": "Fluid type in tank",
"category": f"{device.upper()} Page {page_no}", "category": f"OBP60 Page {page_no}",
"capabilities": { "capabilities": {
device.lower(): "true" "obp60":"true"
}, },
"condition":[{f"page{page_no}type":"Fluid"}] "condition":[{f"page{page_no}type":"Fluid"}]
} }
output.append(fluid_data) output.append(fluid_data)
return json.dumps(output, indent=4) json_output = json.dumps(output, indent=4)
# print omitting first and last line containing [ ] of JSON array
def usage(): #print(json_output[1:-1])
print("{} v{}".format(os.path.basename(__file__), __version__))
print()
print("Command line options")
print(" -d --device device name to use e.g. obp60")
print(" -p --pages number of pages to create")
print(" -h show this help")
print()
if __name__ == '__main__':
try:
options, remainder = getopt.getopt(sys.argv[1:], 'd:p:', ['device=','--pages='])
except getopt.GetoptError as err:
print(err)
usage()
sys.exit(2)
device = "obp60"
no_of_pages = 10
for opt, arg in options:
if opt in ('-d', '--device'):
device = arg
elif opt in ('-p', '--pages'):
no_of_pages = int(arg)
elif opt == '-h':
usage()
sys.exit(0)
# automatic detect pages and number of fields from sourcecode
pagedata = detect_pages("obp60task.cpp")
json_output = create_json(device, no_of_pages, pagedata)
# print omitting first line containing [ of JSON array # print omitting first line containing [ of JSON array
print(json_output[1:]) print(json_output[1:])
# print(",")

View File

@ -891,7 +891,6 @@ void OBP60Task(GwApi *api){
else{ else{
getdisplay().fillScreen(commonData.fgcolor); // Clear display getdisplay().fillScreen(commonData.fgcolor); // Clear display
#ifdef DISPLAY_GDEY042T81 #ifdef DISPLAY_GDEY042T81
getdisplay().hibernate(); // Set display in hybenate mode
getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse
#else #else
getdisplay().init(115200); // Init for normal displays getdisplay().init(115200); // Init for normal displays
@ -919,7 +918,6 @@ void OBP60Task(GwApi *api){
else{ else{
getdisplay().fillScreen(commonData.fgcolor); // Clear display getdisplay().fillScreen(commonData.fgcolor); // Clear display
#ifdef DISPLAY_GDEY042T81 #ifdef DISPLAY_GDEY042T81
getdisplay().hibernate(); // Set display in hybenate mode
getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse
#else #else
getdisplay().init(115200); // Init for normal displays getdisplay().init(115200); // Init for normal displays
@ -944,7 +942,6 @@ void OBP60Task(GwApi *api){
else{ else{
getdisplay().fillScreen(commonData.fgcolor); // Clear display getdisplay().fillScreen(commonData.fgcolor); // Clear display
#ifdef DISPLAY_GDEY042T81 #ifdef DISPLAY_GDEY042T81
getdisplay().hibernate(); // Set display in hybenate mode
getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse getdisplay().init(115200, true, 2, false); // Init for Waveshare boards with "clever" reset circuit, 2ms reset pulse
#else #else
getdisplay().init(115200); // Init for normal displays getdisplay().init(115200); // Init for normal displays