BUG Fix: timeSerie: exacte tijd werd naar boven afgerond

This commit is contained in:
Marcel Nijenhof
2020-07-29 20:28:26 +02:00
parent 51ac3676d4
commit e2966f52ef

View File

@@ -286,6 +286,15 @@ Returns a single string value or None
m = (window.seconds % 3600)//60
return("+%02i:%02i" % (h, m))
def _roundtime_(self, time, parameter):
if time.microsecond != 0:
time += timedelta(microseconds=1000000-time.microsecond)
if time.second != 0:
time += timedelta(seconds=60-time.second)
if (parameter.find("10") != -1) and (time.minute % 10 != 0):
time += timedelta(minutes=(10-time.minute%10))
return(time)
def timeSerie(self, process, location, parameter,
startTime, endTime, cmd_type="DATB"):
"""timeSerie(process, location, parameter, startTime, endTime, cmd_type="DATA")
@@ -314,30 +323,33 @@ Errors:
endTime - startTime > 24 hour
now - startTime < 30 days
"""
startTime = startTime.astimezone(tz.gettz('GMT+1'))
startTime = self._roundtime_(startTime.astimezone(tz.gettz('GMT+1')), parameter)
endTime = endTime.astimezone(tz.gettz('GMT+1'))
startTime += timedelta(microseconds=1000000-startTime.microsecond)
startTime += timedelta(seconds=60-startTime.second)
if (parameter.find("10") != -1):
if startTime.minute % 10 != 0:
delta = timedelta(minutes=10)
startTime += timedelta(minutes=(10-startTime.minute%10))
delta = timedelta(minutes=10)
else:
delta = timedelta(minutes=1)
if startTime > endTime:
self.log.warn("starttime > endtime: %s > %s", startTime, endTime)
raise sipTimeSeriesError(startTime, endTime,
"starttime > endtime")
if datetime.now(tz=tz.gettz('GMT+1')) - startTime > timedelta(days=30):
self.log.warn("now() - starttime > 30 days: %s", startTime)
raise sipTimeSeriesError(startTime, endTime,
"now - starttime > 30 days")
self.log.debug("LmwSip.timeSerie: startTime: %s" % startTime)
self.log.debug("LmwSip.timeSerie: endTime: %s" % endTime)
if process == "VW":
cmd_type="DATA"
res = lmwTimeSerie(startTime, delta, "")
while startTime < endTime:
while startTime <= endTime:
if endTime - startTime > timedelta(days=1):
window = timedelta(days=1) - delta
else: