Avoid weird float addition, aaah

This commit is contained in:
Phil Howard
2020-09-02 17:13:57 +01:00
parent 447bfa73d0
commit d956a2fd5e
2 changed files with 14 additions and 7 deletions

View File

@@ -306,6 +306,8 @@ class EditView(View):
inc = option["inc"] inc = option["inc"]
limit = option["min"] limit = option["min"]
value -= inc value -= inc
if mode == "float":
value = round(value, option.get("round", 1))
if value < limit: if value < limit:
value = limit value = limit
setattr(object, prop, value) setattr(object, prop, value)
@@ -337,6 +339,8 @@ class EditView(View):
inc = option["inc"] inc = option["inc"]
limit = option["max"] limit = option["max"]
value += inc value += inc
if mode == "float":
value = round(value, option.get("round", 1))
if value > limit: if value > limit:
value = limit value = limit
setattr(object, prop, value) setattr(object, prop, value)
@@ -459,6 +463,7 @@ class ChannelEditView(ChannelView, EditView):
"inc": 0.05, "inc": 0.05,
"min": 0, "min": 0,
"max": 1.0, "max": 1.0,
"mode": "float",
"format": lambda value: f"{value * 100:0.2f}%", "format": lambda value: f"{value * 100:0.2f}%",
"help": "Saturation at which alarm is triggered", "help": "Saturation at which alarm is triggered",
}, },
@@ -475,6 +480,7 @@ class ChannelEditView(ChannelView, EditView):
"inc": 0.5, "inc": 0.5,
"min": 1, "min": 1,
"max": 27, "max": 27,
"mode": "float",
"format": lambda value: f"{value:0.2f}Hz", "format": lambda value: f"{value:0.2f}Hz",
"help": "Frequency for fully saturated soil", "help": "Frequency for fully saturated soil",
}, },
@@ -484,6 +490,7 @@ class ChannelEditView(ChannelView, EditView):
"inc": 0.5, "inc": 0.5,
"min": 1, "min": 1,
"max": 27, "max": 27,
"mode": "float",
"format": lambda value: f"{value:0.2f}Hz", "format": lambda value: f"{value:0.2f}Hz",
"help": "Frequency for fully dried soil", "help": "Frequency for fully dried soil",
}, },

View File

@@ -1,18 +1,18 @@
channel1: channel1:
dry_point: 27.5 dry_point: 27
enabled: true enabled: true
warn_level: 0.4 warn_level: 0.4
wet_point: 3.0 wet_point: 3
channel2: channel2:
dry_point: 27.5 dry_point: 27
enabled: true enabled: true
warn_level: 0.4 warn_level: 0.4
wet_point: 3.0 wet_point: 3
channel3: channel3:
dry_point: 27.5 dry_point: 27
enabled: true enabled: true
warn_level: 0.4 warn_level: 0.4
wet_point: 3.0 wet_point: 3
general: general:
alarm_enable: true alarm_enable: true
alarm_interval: 10.0 alarm_interval: 10