BUG Fix: timeSerie: exacte tijd werd naar boven afgerond
This commit is contained in:
24
lmwsip.py
24
lmwsip.py
@@ -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))
|
||||
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:
|
||||
|
Reference in New Issue
Block a user