diff --git a/lib/obp60task/gen_set.py b/lib/obp60task/gen_set.py index 3e9dbd2..8cd43f0 100755 --- a/lib/obp60task/gen_set.py +++ b/lib/obp60task/gen_set.py @@ -149,12 +149,13 @@ def usage(): print("Command line options") print(" -d --device device name to use e.g. obp60") print(" -p --pages number of pages to create") + print(" -m --merge json with device config to merge to") print(" -h show this help") print() if __name__ == '__main__': try: - options, remainder = getopt.getopt(sys.argv[1:], 'd:p:', ['device=','--pages=']) + options, remainder = getopt.getopt(sys.argv[1:], 'd:p:m:', ['device=','--pages=','--merge']) except getopt.GetoptError as err: print(err) usage() @@ -162,11 +163,14 @@ if __name__ == '__main__': device = "obp60" no_of_pages = 10 + merge_json = None for opt, arg in options: if opt in ('-d', '--device'): device = arg elif opt in ('-p', '--pages'): no_of_pages = int(arg) + elif opt in ('-m', '--merge'): + merge_json = arg elif opt == '-h': usage() sys.exit(0) @@ -175,5 +179,12 @@ if __name__ == '__main__': pagedata = detect_pages("obp60task.cpp") json_output = create_json(device, no_of_pages, pagedata) - # print omitting first line containing [ of JSON array - print(json_output[1:]) + if merge_json and os.path.isfile(merge_json): + with open(merge_json, 'r') as fh: + device_json = json.load(fh) + page_json = json.loads(json_output) + device_json.extend(page_json) + print(json.dumps(device_json, indent=4)) + else: + # print omitting first line containing [ of JSON array + print(json_output[1:]) diff --git a/lib/obp60task/obp40.conf b/lib/obp60task/obp40.conf new file mode 100644 index 0000000..c2057f4 --- /dev/null +++ b/lib/obp60task/obp40.conf @@ -0,0 +1,807 @@ +[DEFAULT] +calibration_fields = AWA, AWS, COG, DBT, HDM, PRPOS, RPOS, SOG, STW, TWA, TWS, TWD, WTemp + +[deviceName] +label = system name +type = string +default = OBP40 +description = system name, used for the access point and for services +check = checkSystemName +category = system + +[timeServer] +label = time server +type = string +default = pool.ntp.org +description = NTP time server. Use only one hostname or IP address +category = wifi client +capabilities = obp40:true + +[timeZone] +label = Time Zone +type = number +default = 0.00 +description = Time zone [UTC -12...+14] +check = checkMinMax +min = -12.0 +max = 14.0 +category = OBP40 Settings +capabilities = obp40:true + +[homeLAT] +label = Home latitude +type = number +default = 0.00000 +description = Latitude of boat home location [-90.0...+90.0] +check = checkMinMax +min = -90.0 +max = 90.0 +category = OBP40 Settings +capabilities = obp40:true + +[homeLON] +label = Home longitude +type = number +default = 0.00000 +description = Longitude of boat home location [-180.0...+180.0] +check = checkMinMax +min = -180.0 +max = 180.0 +category = OBP40 Settings +capabilities = obp40:true + +[draft] +label = Boat Draft [m] +type = number +default = 0.00 +description = The draft of the boat [0...50m] +check = checkMinMax +min = 0.0 +max = 50.0 +category = OBP40 Settings +capabilities = obp40:true + +[chainLength] +label = Anchor Chain Length [m] +type = number +default = 0 +description = The length of the anchor chain [0...255m] +check = checkMinMax +min = 0 +max = 255 +category = OBP40 Settings +capabilities = obp40:true + +[fuelTank] +label = Fuel Tank [l] +type = number +default = 0 +description = Fuel tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP40 Settings +capabilities = obp40:true + +[fuelConsumption] +label = Fuel Consuption [l/h] +type = number +default = 0.00 +description = Medium fuel consumption [0...1000l/h] +check = checkMinMax +min = 0.0 +max = 1000.0 +category = OBP40 Settings +capabilities = obp40:true + +[waterTank] +label = Water Tank [l] +type = number +default = 0 +description = Water tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP40 Settings +capabilities = obp40:true + +[wasteTank] +label = Waste Tank [l] +type = number +default = 0 +description = Waste tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP40 Settings +capabilities = obp40:true + +[batteryVoltage] +label = Battery Voltage [V] +type = list +default = 12V +description = Battery Voltage [12V|24V] +list = 12V, 24V +category = OBP40 Settings +capabilities = obp40:true + +[batteryType] +label = Battery Type +type = list +default = Pb +description = Type of battery [Pb|Gel|AGM|LiFePo4] +list = Pb, Gel, AGM, LiFePo4 +category = OBP40 Settings +capabilities = obp40:true + +[batteryCapacity] +label = Battery Capacity [Ah] +type = number +default = 0.0 +description = Battery capacity [0...10000Ah] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP40 Settings +capabilities = obp40:true + +[solarPower] +label = Solar Power [W] +type = number +default = 0.0 +description = Solar power [0...10000W] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP40 Settings +capabilities = obp40:true + +[genPower] +label = Genarator Power [W] +type = number +default = 0.0 +description = Generator power [0...10000W] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP40 Settings +capabilities = obp40:true + +[trackStep] +label = angle [deg] +type = number +default = 3.0 +description = track step offset [1...12deg] +check = checkMinMax +min = 1.0 +max = 12.0 +category = OBP40 Settings +capabilities = obp40:true + +[calcTrueWnds] +label = Calculate True Wind +type = boolean +default = false +description = If not available, calculate true wind data from appearant wind and other boat data +category = OBP40 Settings +capabilities = obp40:true + +[lengthFormat] +label = Length Format +type = list +default = m +description = Length format [m|ft] +list = m, ft +category = OBP40 Units +capabilities = obp40:true + +[distanceFormat] +label = Distance Format +type = list +default = nm +description = Distance format [m|km|nm] +list = m, km, nm +category = OBP40 Units +capabilities = obp40:true + +[speedFormat] +label = Speed Format +type = list +default = kn +description = Distance format [m/s|km/h|kn] +list = m/s, km/h, kn +category = OBP40 Units +capabilities = obp40:true + +[windspeedFormat] +label = Wind Speed Format +type = list +default = kn +description = Wind speed format [m/s|km/h|kn|bft] +list = m/s, km/h, kn, bft +category = OBP40 Units +capabilities = obp40:true + +[tempFormat] +label = Temperature Format +type = list +default = C +description = Temperature format [K|C|F] +list = K, C, F +category = OBP40 Units +capabilities = obp40:true + +[dateFormat] +label = Date Format +type = list +default = DE +description = Date format [DE|GB|US|ISO] DE: 31.12.2022, GB: 31/12/2022, US: 12/31/2022, ISO: 2022-12-31 +list = DE, GB, US, ISO +category = OBP40 Units +capabilities = obp40:true + +[cpuSpeed] +label = CPU Speed [MHz] +type = list +default = 160 +description = CPU speed in MHz [80|160|240] +list = 80, 160, 240 +category = OBP40 Hardware +capabilities = obp40:true + +[useRTC] +label = RTC Modul +type = list +default = off +description = Use RTC module type [off|DS1388] +list = off, DS1388 +category = OBP40 Hardware +capabilities = obp40:true + +[useGPS] +label = GPS Sensor +type = list +default = off +description = Use internal GPS module type [off|NEO-6M|NEO-M8N|ATGM336H] +list = off, NEO-6M, NEO-M8N, ATGM336H +category = OBP40 Hardware +capabilities = obp40:true + +[hdopAccuracy] +label = HDOP Accuracy [m] +type = number +default = 20 +description = HDOP ccuracy in m for a valid GPS signal [1...50] +check = checkMinMax +min = 1 +max = 50 +category = OBP40 Hardware +capabilities = obp40:true + +[useEnvSensor] +label = Env. Sensor +type = list +default = off +description = Use internal or external environment sensor via I2C bus [off|BME280|BMP280|BMP180|BMP085|HTU21|SHT21] +list = off, BME280, BMP280, BMP180, BMP085, HTU21, SHT21 +category = OBP40 Hardware +capabilities = obp40:true + +[usePowSensor1] +label = Battery Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for battery [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP40 Hardware +capabilities = obp40:true + +[shunt1] +label = Battery Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP40 Hardware +capabilities = obp40:true + +[usePowSensor2] +label = Solar Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for solar panels [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP40 Hardware +capabilities = obp40:true + +[shunt2] +label = Solar Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP40 Hardware +capabilities = obp40:true + +[usePowSensor3] +label = Gen. Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for generator [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP40 Hardware +capabilities = obp40:true + +[shunt3] +label = Gen. Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] @ 75mV +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP40 Hardware +capabilities = obp40:true + +[useRotSensor] +label = Rot. Sensor +type = list +default = off +description = Use external rotation sensor via I2C bus [off|AS5600] +list = off, AS5600 +category = OBP40 Hardware +capabilities = obp40:true + +[rotFunction] +label = Rot. Function +type = list +default = off +description = Function for rotation sensor [off|Rudder|Wind|Mast|Keel|Trim|Boom] +list = off, Rudder, Wind, Mast, Keel, Trim, Boom +category = OBP40 Hardware +capabilities = obp40:true + +[rotOffset] +label = Rot. Offset +type = number +default = 0 +description = Offset for rotation sensor [-180°...+180°] +check = checkMinMax +min = -180 +max = 180 +category = OBP40 Hardware +capabilities = obp40:true + +[rollLimit] +label = Roll Limit +type = number +default = 25 +description = Limit violation for roll angle [-90°...+90°] +check = checkMinMax +min = -90 +max = 90 +category = OBP40 Hardware +capabilities = obp40:true + +[rollOffset] +label = Roll Offset +type = number +default = 0 +description = Roll offset angle [-45°...+45°] +check = checkMinMax +min = -45 +max = 45 +category = OBP40 Hardware +capabilities = obp40:true + +[pitchOffset] +label = Pitch Offset +type = number +default = 0 +description = Pitch offset angle [-45°...+45°] +check = checkMinMax +min = -45 +max = 45 +category = OBP40 Hardware +capabilities = obp40:true + +[useTempSensor] +label = Temp. Sensor +type = boolean +default = off +description = Use max. 8 external 1Wire devices [off|DS18B20] +list = off, DS18B20 +category = OBP40 Hardware +capabilities = obp40:true + +[useSDCard] +label = SD Card +type = boolean +default = false +description = Use internal SD card interface [off|on] +category = OBP40 Hardware +capabilities = obp40:true + +[powerMode] +label = Power Mode +type = list +default = Max Power +description = Settings for power mode +list = Max Power, Only 5.0V, Min Power +category = OBP40 Hardware +capabilities = obp40:true + +[underVoltage] +label = Undervoltage +type = boolean +default = false +description = Switch off device if LiPo voltage drops below 3.65V [on|off] +category = OBP40 Hardware +capabilities = obp40:true + +[useSimuData] +label = Simulation Data +type = boolean +default = false +description = Use simulation data when bus data are missing [on|off] +category = OBP40 Hardware +capabilities = obp40:true + +[tSensitivity] +label = Touch Sensitivity [%%] +type = number +default = 100 +description = Touch sensitivity [0...100%%] for sensor buttons +check = checkMinMax +min = 0 +max = 100 +category = OBP40 Calibrations +capabilities = obp40:false + +[vOffset] +label = VSensor Offset +type = number +default = -1.00 +description = Offset for internal voltage sensor (ESP32) +category = OBP40 Calibrations +capabilities = obp40:true + +[vSlope] +label = VSensor Slope +type = number +default = 1.00 +description = Slope for internal voltage sensor (ESP32) +category = OBP40 Calibrations +capabilities = obp40:true + +[calInstance1] +label = Calibration Data Instance 1 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP40 Calibrations +capabilities = obp40:true + +[calOffset1] +label = Data Instance 1 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 1 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance1 IN %(calibration_fields)s + +[calSlope1] +label = Data Instance 1 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 1 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance1 IN %(calibration_fields)s + +[calSmooth1] +label = Data Instance 1 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance1 IN %(calibration_fields)s + +[calInstance2] +label = Calibration Data Instance 2 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP40 Calibrations +capabilities = obp40:true + +[calOffset2] +label = Data Instance 2 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 2 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance2 IN %(calibration_fields)s + +[calSlope2] +label = Data Instance 2 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 2 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance2 IN %(calibration_fields)s + +[calSmooth2] +label = Data Instance 2 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calInstance2 IN %(calibration_fields)s + +[calInstance3] +label = Calibration Data Instance 3 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP40 Calibrations +capabilities = obp40:true + +[calOffset3] +label = Data Instance 3 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 3 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calinstance3 IN %(calibration_fields)s + +[calSlope3] +label = Data Instance 3 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 3 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calinstance3 IN %(calibration_fields)s + +[calSmooth3] +label = Data Instance 3 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP40 Calibrations +capabilities = obp40:true +condition = calinstance3 IN %(calibration_fields)s + +[display] +label = Display Mode +type = list +default = Logo + QR Code +description = Settings for startup display +list = White Screen, Logo, Logo + QR Code, Off +category = OBP40 Display +capabilities = obp40:true + +[displaycolor] +label = Inverted Display Mode +type = list +default = Normal +description = Invert display to white letters on black background [Normal|Inverse] +list = Normal, Inverse +category = OBP40 Display +capabilities = obp40:true + +[statusLine] +label = Status Line +type = boolean +default = true +description = Show status line [on|off] +category = OBP40 Display +capabilities = obp40:true + +[timeSource] +label = Status Time Source +type = list +default = GPS +description = Data source for date and time display in status line [RTC|iRTC|GPS] +dict = + iRTC:Internal real time clock (iRTC) + RTC:External real time clock (RTC) + GPS:External time via bus (GPS) +category = OBP40 Display +capabilities = obp40:true + +[refresh] +label = Refresh +type = boolean +default = true +description = Refresh e-paper display after each new page request to reduce ghost effects [on|off] +category = OBP40 Display +capabilities = obp40:true + +[fastRefresh] +label = Fast Refresh +type = boolean +default = false +description = Fast refresh for e-paper display [on|off] +category = OBP40 Display +capabilities = obp40:true + +[fullRefreshTime] +label = Full Refresh Time [min] +type = number +default = 1 +description = E-Paper full refresh time all [1...10 min] +check = checkMinMax +min = 1 +max = 10 +category = OBP40 Display +capabilities = obp40:true + +[holdvalues] +label = Hold Values +type = boolean +default = false +description = Retain old values when data stream stops [on|off] +category = OBP40 Display +capabilities = obp40:true + +[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 + +[headerFormat] +label = Header Format +type = list +default = TEXT +description = Header format: Text or Symbols +dict = + TEXT:Text + ICON:Symbols +category = OBP40 Display +capabilities = obp40:true + +[backlight] +label = Backlight Mode +type = list +default = off +description = Settings for automatic backlight mode +list = Off, Control by Sun, Control by Bus, Control by Time, Control by Key, On +category = OBP40 Display +capabilities = obp40:false + +[blColor] +label = Backlight Color +type = list +default = Red +description = Backlight color +list = Red, Orange, Yellow, Green, Blue, Aqua, Violet, White +category = OBP40 Display +capabilities = obp40:false + +[blBrightness] +label = Brightness [%%] +type = number +default = 50 +description = Backlight brightness [20...100%%] +check = checkMinMax +min = 20 +max = 100 +category = OBP40 Display +capabilities = obp40:false + +[flashLED] +label = Flash LED Mode +type = list +default = Off +description = Settings for flash LED +list = Off, Bus Data, GPS Fix Lost, Limit Violation +category = OBP40 Display +capabilities = obp40:false + +[buzzerError] +label = Buzzer Error +type = boolean +default = false +description = Sound on error [on|off] +category = OBP40 Buzzer +capabilities = obp40:false + +[buzzerGps] +label = Buzzer GPS Fix +type = boolean +default = false +description = Sound on missing or lost GPS fix +category = OBP40 Buzzer +capabilities = obp40:false + +[buzzerLim] +label = Buzzer by Limits +type = boolean +default = false +description = Sound on limit violation +category = OBP40 Buzzer +capabilities = obp40:false + +[buzzerMode] +label = Buzzer Mode +type = list +default = Off +description = Settings for buzzer behaviour +list = Off, Short Single Beep, Longer Single Beep, Beep until Confirmation +category = OBP40 Buzzer +capabilities = obp40:false + +[buzzerPower] +label = Buzzer Power [%%] +type = number +default = 50 +description = Buzzer loudness [0...100%%] +check = checkMinMax +min = 0 +max = 100 +category = OBP40 Buzzer +capabilities = obp40:false + +[visiblePages] +label = Number of Pages +type = number +default = 10 +description = Number of visible data pages [1...10] +check = checkMinMax +min = 1 +max = 10 +category = OBP40 Pages +capabilities = obp40:true + +[startPage] +label = Start Page +type = number +default = 1 +description = First page number to display after device startup +check = checkMinMax +min = 1 +max = 10 +category = OBP40 Pages +capabilities = obp40:true + +[systemPage] +label = System Page +type = boolean +default = false +description = Use wheel button for system page or direct deep sleep mode +category = OBP40 Pages +capabilities = obp40:true + +[imageFormat] +label = Screenshot Format +type = list +default = PBM +description = Graphics file format for screenshots [GIF|PBM|BMP] +dict = + GIF:Compressed image (GIF) + PBM:Portable bitmap (PBM) + BMP:Windows bitmap (BMP) +category = OBP40 Pages +capabilities = obp40:true diff --git a/lib/obp60task/obp60.conf b/lib/obp60task/obp60.conf new file mode 100644 index 0000000..5d2cbf0 --- /dev/null +++ b/lib/obp60task/obp60.conf @@ -0,0 +1,790 @@ +[DEFAULT] +calibration_fields = AWA, AWS, COG, DBT, HDM, PRPOS, RPOS, SOG, STW, TWA, TWS, TWD, WTemp + +[deviceName] +label = system name +type = string +default = OBP60V2 +description = system name, used for the access point and for services +check = checkSystemName +category = system + +[timeServer] +label = time server +type = string +default = pool.ntp.org +description = NTP time server. Use only one hostname or IP address +category = wifi client +capabilities = obp60:true + +[timeZone] +label = Time Zone +type = number +default = 0.00 +description = Time zone [UTC -12...+14] +check = checkMinMax +min = -12.0 +max = 14.0 +category = OBP60 Settings +capabilities = obp60:true + +[homeLAT] +label = Home latitude +type = number +default = +description = Latitude of boat home location [-90.0...+90.0] +check = checkMinMax +min = -90.0 +max = 90.0 +category = OBP60 Settings +capabilities = obp60:true + +[homeLON] +label = Home longitude +type = number +default = +description = Longitude of boat home location [-180.0...+180.0] +check = checkMinMax +min = -180.0 +max = 180.0 +category = OBP60 Settings +capabilities = obp60:true + +[draft] +label = Boat Draft [m] +type = number +default = 0.00 +description = The draft of the boat [0...50m] +check = checkMinMax +min = 0.0 +max = 50.0 +category = OBP60 Settings +capabilities = obp60:true + +[chainLength] +label = Anchor Chain Length [m] +type = number +default = 0 +description = The length of the anchor chain [0...255m] +check = checkMinMax +min = 0 +max = 255 +category = OBP60 Settings +capabilities = obp60:true + +[fuelTank] +label = Fuel Tank [l] +type = number +default = 0 +description = Fuel tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP60 Settings +capabilities = obp60:true + +[fuelConsumption] +label = Fuel Consuption [l/h] +type = number +default = 0.00 +description = Medium fuel consumption [0...1000l/h] +check = checkMinMax +min = 0.0 +max = 1000.0 +category = OBP60 Settings +capabilities = obp60:true + +[waterTank] +label = Water Tank [l] +type = number +default = 0 +description = Water tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP60 Settings +capabilities = obp60:true + +[wasteTank] +label = Waste Tank [l] +type = number +default = 0 +description = Waste tank capacity [0...5000l] +check = checkMinMax +min = 0 +max = 5000 +category = OBP60 Settings +capabilities = obp60:true + +[batteryVoltage] +label = Battery Voltage [V] +type = list +default = 12V +description = Battery Voltage [12V|24V] +list = 12V, 24V +category = OBP60 Settings +capabilities = obp60:true + +[batteryType] +label = Battery Type +type = list +default = Pb +description = Type of battery [Pb|Gel|AGM|LiFePo4] +list = Pb, Gel, AGM, LiFePo4 +category = OBP60 Settings +capabilities = obp60:true + +[batteryCapacity] +label = Battery Capacity [Ah] +type = number +default = 0.0 +description = Battery capacity [0...10000Ah] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP60 Settings +capabilities = obp60:true + +[solarPower] +label = Solar Power [W] +type = number +default = 0.0 +description = Solar power [0...10000W] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP60 Settings +capabilities = obp60:true + +[genPower] +label = Genarator Power [W] +type = number +default = 0.0 +description = Generator power [0...10000W] +check = checkMinMax +min = 0.0 +max = 10000.0 +category = OBP60 Settings +capabilities = obp60:true + +[trackStep] +label = angle [deg] +type = number +default = 3.0 +description = track step offset [1...12deg] +check = checkMinMax +min = 1.0 +max = 12.0 +category = OBP60 Settings +capabilities = obp60:true + +[calcTrueWnds] +label = Calculate True Wind +type = boolean +default = false +description = If not available, calculate true wind data from appearant wind and other boat data +category = OBP60 Settings +capabilities = obp60:true + +[lengthFormat] +label = Length Format +type = list +default = m +description = Length format [m|ft] +list = m, ft +category = OBP60 Units +capabilities = obp60:true + +[distanceFormat] +label = Distance Format +type = list +default = nm +description = Distance format [m|km|nm] +list = m, km, nm +category = OBP60 Units +capabilities = obp60:true + +[speedFormat] +label = Speed Format +type = list +default = kn +description = Distance format [m/s|km/h|kn] +list = m/s, km/h, kn +category = OBP60 Units +capabilities = obp60:true + +[windspeedFormat] +label = Wind Speed Format +type = list +default = kn +description = Wind speed format [m/s|km/h|kn|bft] +list = m/s, km/h, kn, bft +category = OBP60 Units +capabilities = obp60:true + +[tempFormat] +label = Temperature Format +type = list +default = C +description = Temperature format [K|C|F] +list = K, C, F +category = OBP60 Units +capabilities = obp60:true + +[dateFormat] +label = Date Format +type = list +default = DE +description = Date format [DE|GB|US|ISO] DE: 31.12.2022, GB: 31/12/2022, US: 12/31/2022, ISO: 2022-12-31 +list = DE, GB, US, ISO +category = OBP60 Units +capabilities = obp60:true + +[cpuSpeed] +label = CPU Speed [MHz] +type = list +default = 160 +description = CPU speed in MHz [80|160|240] +list = 80, 160, 240 +category = OBP60 Hardware +capabilities = obp60:true + +[useRTC] +label = RTC Modul +type = list +default = DS1388 +description = Use internal RTC module type [off|DS1388] +list = off, DS1388 +category = OBP60 Hardware +capabilities = obp60:true + +[useGPS] +label = GPS Sensor +type = list +default = ATGM336H +description = Use internal GPS module type [off|NEO-6M|NEO-M8N|ATGM336H] +list = off, NEO-6M, NEO-M8N, ATGM336H +category = OBP60 Hardware +capabilities = obp60:true + +[hdopAccuracy] +label = HDOP Accuracy [m] +type = number +default = 20 +description = HDOP ccuracy in m for a valid GPS signal [1...50] +check = checkMinMax +min = 1 +max = 50 +category = OBP60 Hardware +capabilities = obp60:true + +[useEnvSensor] +label = Env. Sensor +type = list +default = BMP280 +description = Use internal or external environment sensor via I2C bus [off|BME280|BMP280|BMP180|BMP085|HTU21|SHT21] +list = off, BME280, BMP280, BMP180, BMP085, HTU21, SHT21 +category = OBP60 Hardware +capabilities = obp60:true + +[usePowSensor1] +label = Battery Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for battery [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP60 Hardware +capabilities = obp60:true + +[shunt1] +label = Battery Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP60 Hardware +capabilities = obp60:true + +[usePowSensor2] +label = Solar Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for solar panels [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP60 Hardware +capabilities = obp60:true + +[shunt2] +label = Solar Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP60 Hardware +capabilities = obp60:true + +[usePowSensor3] +label = Gen. Sensor +type = list +default = off +description = Use external power management sensor via I2C bus for generator [off|INA219|INA226|] +list = off, INA219, INA226 +category = OBP60 Hardware +capabilities = obp60:true + +[shunt3] +label = Gen. Shunt +type = list +default = 10 +description = Shunt current value [10A|50A|100A|200A|300A|400A|500A] @ 75mV +list = 10, 50, 100, 200, 300, 400, 500 +category = OBP60 Hardware +capabilities = obp60:true + +[useRotSensor] +label = Rot. Sensor +type = list +default = off +description = Use external rotation sensor via I2C bus [off|AS5600] +list = off, AS5600 +category = OBP60 Hardware +capabilities = obp60:true + +[rotFunction] +label = Rot. Function +type = list +default = off +description = Function for rotation sensor [off|Rudder|Wind|Mast|Keel|Trim|Boom] +list = off, Rudder, Wind, Mast, Keel, Trim, Boom +category = OBP60 Hardware +capabilities = obp60:true + +[rotOffset] +label = Rot. Offset +type = number +default = 0 +description = Offset for rotation sensor [-180°...+180°] +check = checkMinMax +min = -180 +max = 180 +category = OBP60 Hardware +capabilities = obp60:true + +[rollLimit] +label = Roll Limit +type = number +default = 25 +description = Limit violation for roll angle [-90°...+90°] +check = checkMinMax +min = -90 +max = 90 +category = OBP60 Hardware +capabilities = obp60:true + +[rollOffset] +label = Roll Offset +type = number +default = 0 +description = Roll offset angle [-45°...+45°] +check = checkMinMax +min = -45 +max = 45 +category = OBP60 Hardware +capabilities = obp60:true + +[pitchOffset] +label = Pitch Offset +type = number +default = 0 +description = Pitch offset angle [-45°...+45°] +check = checkMinMax +min = -45 +max = 45 +category = OBP60 Hardware +capabilities = obp60:true + +[useTempSensor] +label = Temp. Sensor +type = boolean +default = off +description = Use max. 8 external 1Wire devices [off|DS18B20] +list = off, DS18B20 +category = OBP60 Hardware +capabilities = obp60:true + +[powerMode] +label = Power Mode +type = list +default = Max Power +description = Settings for power mode +list = Max Power, Only 5.0V, Min Power +category = OBP60 Hardware +capabilities = obp60:true + +[underVoltage] +label = Undervoltage +type = boolean +default = false +description = Switch off device if voltage drops below 9V [on|off] +category = OBP60 Hardware +capabilities = obp60:true + +[useSimuData] +label = Simulation Data +type = boolean +default = false +description = Use simulation data when bus data are missing [on|off] +category = OBP60 Hardware +capabilities = obp60:true + +[tSensitivity] +label = Touch Sensitivity [%%] +type = number +default = 100 +description = Touch sensitivity [0...100%%] for sensor buttons +check = checkMinMax +min = 0 +max = 100 +category = OBP60 Calibrations +capabilities = obp60:true + +[vOffset] +label = VSensor Offset +type = number +default = -1.00 +description = Offset for internal voltage sensor (ESP32) +category = OBP60 Calibrations +capabilities = obp60:true + +[vSlope] +label = VSensor Slope +type = number +default = 1.00 +description = Slope for internal voltage sensor (ESP32) +category = OBP60 Calibrations +capabilities = obp60:true + +[calInstance1] +label = Calibration Data Instance 1 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP60 Calibrations +capabilities = obp60:true + +[calOffset1] +label = Data Instance 1 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 1 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance1 IN %(calibration_fields)s + +[calSlope1] +label = Data Instance 1 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 1 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance1 IN %(calibration_fields)s + +[calSmooth1] +label = Data Instance 1 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance1 IN %(calibration_fields)s + +[calInstance2] +label = Calibration Data Instance 2 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP60 Calibrations +capabilities = obp60:true + +[calOffset2] +label = Data Instance 2 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 2 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance2 IN %(calibration_fields)s + +[calSlope2] +label = Data Instance 2 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 2 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance2 IN %(calibration_fields)s + +[calSmooth2] +label = Data Instance 2 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calInstance2 IN %(calibration_fields)s + +[calInstance3] +label = Calibration Data Instance 3 +type = list +default = --- +description = Data instance for calibration +list = ---, %(calibration_fields)s +category = OBP60 Calibrations +capabilities = obp60:true + +[calOffset3] +label = Data Instance 3 Calibration Offset +type = number +default = 0.00 +description = Offset for data instance 3 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calinstance3 IN %(calibration_fields)s + +[calSlope3] +label = Data Instance 3 Calibration Slope +type = number +default = 1.00 +description = Slope for data instance 3 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calinstance3 IN %(calibration_fields)s + +[calSmooth3] +label = Data Instance 3 Smoothing +type = number +default = 0 +description = Smoothing factor [0..10]; 0 = no smoothing +check = checkMinMax +min = 0 +max = 10 +category = OBP60 Calibrations +capabilities = obp60:true +condition = calinstance3 IN %(calibration_fields)s + +[display] +label = Display Mode +type = list +default = Logo + QR Code +description = Settings for startup display +list = White Screen, Logo, Logo + QR Code, Off +category = OBP60 Display +capabilities = obp60:true + +[displaycolor] +label = Inverted Display Mode +type = list +default = Normal +description = Invert display to white letters on black background [Normal|Inverse] +list = Normal, Inverse +category = OBP60 Display +capabilities = obp60:true + +[statusLine] +label = Status Line +type = boolean +default = true +description = Show status line [on|off] +category = OBP60 Display +capabilities = obp60:true + +[timeSource] +label = Status Time Source +type = list +default = GPS +description = Data source for date and time display in status line [RTC|GPS] +dict = + RTC:Real time clock (RTC) + GPS:Time via bus (GPS) +category = OBP60 Display +capabilities = obp60:true + +[refresh] +label = Refresh +type = boolean +default = true +description = Refresh e-paper display after each new page request to reduce ghost effects [on|off] +category = OBP60 Display +capabilities = obp60:true + +[fastRefresh] +label = Fast Refresh +type = boolean +default = false +description = Fast refresh for e-paper display [on|off] +category = OBP60 Display +capabilities = obp60:true + +[fullRefreshTime] +label = Full Refresh Time [min] +type = number +default = 1 +description = E-Paper full refresh time all [1...10 min] +check = checkMinMax +min = 1 +max = 10 +category = OBP60 Display +capabilities = obp60:true + +[holdvalues] +label = Hold Values +type = boolean +default = false +description = Retain old values when data stream stops [on|off] +category = OBP60 Display +capabilities = obp60:true + +[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 + +[headerFormat] +label = Header Format +type = list +default = TEXT +description = Header format: Text or Symbols +dict = + TEXT:Text + ICON:Symbols +category = OBP60 Pages +capabilities = obp60:true + +[backlight] +label = Backlight Mode +type = list +default = Control by Key +description = Settings for automatic backlight mode +list = Off, Control by Sun, Control by Bus, Control by Time, Control by Key, On +category = OBP60 Display +capabilities = obp60:true + +[blColor] +label = Backlight Color +type = list +default = Red +description = Backlight color +list = Red, Orange, Yellow, Green, Blue, Aqua, Violet, White +category = OBP60 Display +capabilities = obp60:true + +[blBrightness] +label = Brightness [%%] +type = number +default = 50 +description = Backlight brightness [20...100%%] +check = checkMinMax +min = 20 +max = 100 +category = OBP60 Display +capabilities = obp60:true + +[flashLED] +label = Flash LED Mode +type = list +default = Limit Violation +description = Settings for flash LED +list = Off, Bus Data, GPS Fix Lost, Limit Violation +category = OBP60 Display +capabilities = obp60:true + +[buzzerError] +label = Buzzer Error +type = boolean +default = false +description = Sound on error [on|off] +category = OBP60 Buzzer +capabilities = obp60:true + +[buzzerGps] +label = Buzzer GPS Fix +type = boolean +default = false +description = Sound on missing or lost GPS fix +category = OBP60 Buzzer +capabilities = obp60:true + +[buzzerLim] +label = Buzzer by Limits +type = boolean +default = false +description = Sound on limit violation +category = OBP60 Buzzer +capabilities = obp60:true + +[buzzerMode] +label = Buzzer Mode +type = list +default = Off +description = Settings for buzzer behaviour +list = Off, Short Single Beep, Longer Single Beep, Beep until Confirmation +category = OBP60 Buzzer +capabilities = obp60:true + +[buzzerPower] +label = Buzzer Power [%%] +type = number +default = 50 +description = Buzzer loudness [0...100%%] +check = checkMinMax +min = 0 +max = 100 +category = OBP60 Buzzer +capabilities = obp60:true + +[visiblePages] +label = Number of Pages +type = number +default = 10 +description = Number of visible data pages [1...10] +check = checkMinMax +min = 1 +max = 10 +category = OBP60 Pages +capabilities = obp60:true + +[startPage] +label = Start Page +type = number +default = 1 +description = First page number to display after device startup +check = checkMinMax +min = 1 +max = 10 +category = OBP60 Pages +capabilities = obp60:true + +[imageFormat] +label = Screenshot Format +type = list +default = PBM +description = Graphics file format for screenshots [GIF|PBM|BMP] +dict = + GIF:Compressed image (GIF) + PBM:Portable bitmap (PBM) + BMP:Windows bitmap (BMP) +category = OBP60 Pages +capabilities = obp60:true