mirror of
https://github.com/FAUSheppy/ths-datenlogger
synced 2025-12-06 04:11:34 +01:00
only warn on errors/missing values in external data
This commit is contained in:
@@ -3,6 +3,7 @@ from config_parse import CFG
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import requests
|
import requests
|
||||||
import os
|
import os
|
||||||
|
import localization.de as de
|
||||||
|
|
||||||
from dbfread import DBF
|
from dbfread import DBF
|
||||||
import timeutils
|
import timeutils
|
||||||
@@ -131,6 +132,7 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
|
|||||||
content = f.read()
|
content = f.read()
|
||||||
|
|
||||||
skipBecauseFirstLine = True
|
skipBecauseFirstLine = True
|
||||||
|
error = None
|
||||||
for l in content.split("\n"):
|
for l in content.split("\n"):
|
||||||
if not ";" in l:
|
if not ";" in l:
|
||||||
continue
|
continue
|
||||||
@@ -152,8 +154,10 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
|
|||||||
datapoints[plotNameKey].data += [float(cleanFloat)]
|
datapoints[plotNameKey].data += [float(cleanFloat)]
|
||||||
datapoints[plotNameKey].times += [timestamp]
|
datapoints[plotNameKey].times += [timestamp]
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
print(l)
|
error = de.warning_ext_data
|
||||||
raise e
|
|
||||||
|
# return a warning indication for qt #
|
||||||
|
return error
|
||||||
|
|
||||||
|
|
||||||
def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, plotOutsideHum=True):
|
def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, plotOutsideHum=True):
|
||||||
@@ -213,15 +217,22 @@ def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, pl
|
|||||||
raise NotImplementedError("Cannot determine filetype, cannot continue. Exit.")
|
raise NotImplementedError("Cannot determine filetype, cannot continue. Exit.")
|
||||||
|
|
||||||
# if nessesary download and process external data #
|
# if nessesary download and process external data #
|
||||||
|
error = None
|
||||||
if outsideData:
|
if outsideData:
|
||||||
|
|
||||||
fromTime = datapoints[CFG("plot_temperatur_key")].getFirstTime()
|
fromTime = datapoints[CFG("plot_temperatur_key")].getFirstTime()
|
||||||
toTime = datapoints[CFG("plot_temperatur_key")].getLastTime()
|
toTime = datapoints[CFG("plot_temperatur_key")].getLastTime()
|
||||||
|
|
||||||
processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur"))
|
error1 = processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur"))
|
||||||
processExternalData(datapoints, pho, fromTime, toTime, CFG("dtype_humidity"))
|
error2 = processExternalData(datapoints, pho, fromTime, toTime, CFG("dtype_humidity"))
|
||||||
|
|
||||||
return datapoints
|
# pass on warnings #
|
||||||
|
if error1:
|
||||||
|
error = error1;
|
||||||
|
else:
|
||||||
|
error = error2
|
||||||
|
|
||||||
|
return (datapoints, error)
|
||||||
|
|
||||||
def dbfread(path,datapoints,pt,ph,pd):
|
def dbfread(path,datapoints,pt,ph,pd):
|
||||||
for record in DBF(path):
|
for record in DBF(path):
|
||||||
|
|||||||
@@ -20,3 +20,6 @@ start_section = "Ausführen"
|
|||||||
close = "Schließen"
|
close = "Schließen"
|
||||||
open_pic = "Bild öffnen.."
|
open_pic = "Bild öffnen.."
|
||||||
bad_time = "Fehlerhafte Zeitangabe!"
|
bad_time = "Fehlerhafte Zeitangabe!"
|
||||||
|
warning = "Warnung"
|
||||||
|
button_idc = "Egal, weiter!"
|
||||||
|
warning_ext_data = "Fehlerhafte oder fehlende Werte in externen Daten für angegebenen Zeitraum."
|
||||||
|
|||||||
@@ -153,11 +153,18 @@ class WidgetGallery(QDialog):
|
|||||||
|
|
||||||
# workaround for checkboxes changed #
|
# workaround for checkboxes changed #
|
||||||
outsideDataNeeded = self.boxOTemp.isChecked() or self.boxOHumidity.isChecked()
|
outsideDataNeeded = self.boxOTemp.isChecked() or self.boxOHumidity.isChecked()
|
||||||
self.datapoints = input_backend.read_in_file(self.srcFileString,
|
self.datapoints, error = input_backend.read_in_file(self.srcFileString,
|
||||||
outsideData=outsideDataNeeded,
|
outsideData=outsideDataNeeded,
|
||||||
plotOutsideTemp=self.boxOTemp.isChecked(),
|
plotOutsideTemp=self.boxOTemp.isChecked(),
|
||||||
plotOutsideHum=self.boxOHumidity.isChecked())
|
plotOutsideHum=self.boxOHumidity.isChecked())
|
||||||
|
|
||||||
|
if error:
|
||||||
|
errorBox = QMessageBox(self)
|
||||||
|
errorBox.setAttribute(PyQt5.QtCore.Qt.WA_DeleteOnClose)
|
||||||
|
errorBox.setText(self.localization.warning)
|
||||||
|
errorBox.setDetailedText(error)
|
||||||
|
errorBox.show()
|
||||||
|
|
||||||
# build dates #
|
# build dates #
|
||||||
try:
|
try:
|
||||||
startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M")
|
startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M")
|
||||||
@@ -212,7 +219,7 @@ class WidgetGallery(QDialog):
|
|||||||
waitDialog.setText(self.localization.wait_dialog_text)
|
waitDialog.setText(self.localization.wait_dialog_text)
|
||||||
waitDialog.show()
|
waitDialog.show()
|
||||||
try:
|
try:
|
||||||
self.datapoints = input_backend.read_in_file(self.srcFileString,
|
self.datapoints, error = input_backend.read_in_file(self.srcFileString,
|
||||||
outsideData=False,
|
outsideData=False,
|
||||||
plotOutsideTemp=False,
|
plotOutsideTemp=False,
|
||||||
plotOutsideHum=False)
|
plotOutsideHum=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user