Added stat command to find last measurement/forecast times
This commit is contained in:
@@ -12,7 +12,7 @@ from datetime import datetime, timedelta
|
|||||||
from dateutil import tz
|
from dateutil import tz
|
||||||
|
|
||||||
""" Version info changed by git hook """
|
""" Version info changed by git hook """
|
||||||
__version__ = '0.9.7'
|
__version__ = '0.9.8'
|
||||||
|
|
||||||
class LmwSip:
|
class LmwSip:
|
||||||
"""Class to connect to the LMW Standard Interface prototcol (sip)
|
"""Class to connect to the LMW Standard Interface prototcol (sip)
|
||||||
@@ -904,6 +904,26 @@ Returns a single string value or None
|
|||||||
#
|
#
|
||||||
return(value)
|
return(value)
|
||||||
|
|
||||||
|
def stat(self, process, location, parameter):
|
||||||
|
"""Get the last measurement or the start en end of forecasts.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
process: <WN|VW|AS>
|
||||||
|
location: <lmw location (e.g. HOEK)>
|
||||||
|
parameter: <lmw parameter (e.g. H10)>
|
||||||
|
The default returns the last value.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
lmw.stat("WN", "HOEK", "H10")
|
||||||
|
|
||||||
|
Returns a single string value or None
|
||||||
|
"""
|
||||||
|
stat="%s %s,%s,%s,STAT\r" % (process, self.meetnet, location, parameter)
|
||||||
|
d = self.sendrecv(stat)
|
||||||
|
if d[0] != '!':
|
||||||
|
raise LmwCmdWarn(stat, d)
|
||||||
|
return (d[2:-1])
|
||||||
|
|
||||||
def _lmwdelta_(self, window):
|
def _lmwdelta_(self, window):
|
||||||
h = 24*window.days + window.seconds // 3600
|
h = 24*window.days + window.seconds // 3600
|
||||||
m = (window.seconds % 3600)//60
|
m = (window.seconds % 3600)//60
|
||||||
|
@@ -85,6 +85,14 @@ class lmwsipTest(unittest.TestCase):
|
|||||||
self.login()
|
self.login()
|
||||||
self.assertEqual(type(self.sip.value("WN", "DUMMY", "H10")), str)
|
self.assertEqual(type(self.sip.value("WN", "DUMMY", "H10")), str)
|
||||||
|
|
||||||
|
def test_stat_wn(self):
|
||||||
|
self.login()
|
||||||
|
self.assertEqual(type(self.sip.stat("WN", "DUMMY", "H10")), str)
|
||||||
|
|
||||||
|
def test_stat_vw(self):
|
||||||
|
self.login()
|
||||||
|
self.assertEqual(type(self.sip.stat("VW", "DUMMY", "H10V")), str)
|
||||||
|
|
||||||
def test_value1min(self):
|
def test_value1min(self):
|
||||||
self.login()
|
self.login()
|
||||||
self.assertEqual(type(self.sip.value("WN", "DUMMY", "H1")), str)
|
self.assertEqual(type(self.sip.value("WN", "DUMMY", "H1")), str)
|
||||||
|
@@ -13,6 +13,12 @@ Implements the following commands:
|
|||||||
CMD> TI LMW
|
CMD> TI LMW
|
||||||
ANS< ! 20-JAN-01 00:00:00
|
ANS< ! 20-JAN-01 00:00:00
|
||||||
|
|
||||||
|
CMD> WN LMW,DUMMY,H10,STAT
|
||||||
|
ANS< ! 20-JAN-01 00:00
|
||||||
|
|
||||||
|
CMD> VW LMW,DUMMY,H10V,STAT
|
||||||
|
ANS< ! 20-JAN-01 00:00;20-JAN-01 01:00
|
||||||
|
|
||||||
CMD> WN LMW,DUMMY,H10,+HH:MM,yyyy-mm-dd,HH:MM,DATA
|
CMD> WN LMW,DUMMY,H10,+HH:MM,yyyy-mm-dd,HH:MM,DATA
|
||||||
ANS< ! 1/10,;2/10;....
|
ANS< ! 1/10,;2/10;....
|
||||||
|
|
||||||
@@ -48,7 +54,7 @@ logoutcount=0
|
|||||||
|
|
||||||
class sipProtocol(socketserver.BaseRequestHandler):
|
class sipProtocol(socketserver.BaseRequestHandler):
|
||||||
def match(self, m):
|
def match(self, m):
|
||||||
return(self.data.find(m.encode()) == 0)
|
return(self.data.find(m.encode()) != -1)
|
||||||
|
|
||||||
def send(self, a):
|
def send(self, a):
|
||||||
a = "%s\r" % a
|
a = "%s\r" % a
|
||||||
@@ -86,12 +92,19 @@ class sipProtocol(socketserver.BaseRequestHandler):
|
|||||||
global logoutcount
|
global logoutcount
|
||||||
self.read()
|
self.read()
|
||||||
while self.data:
|
while self.data:
|
||||||
if self.match("LI USER,PASS"):
|
if self.match("CLOSE"):
|
||||||
|
self.request.close()
|
||||||
|
elif self.match("LI USER,PASS"):
|
||||||
self.send("!")
|
self.send("!")
|
||||||
elif self.match("TI LMW"):
|
elif self.match("TI LMW"):
|
||||||
self.send("! 20-JAN-01 00:00:00")
|
self.send("! 20-JAN-01 00:00:00")
|
||||||
elif self.match("WN LMW,DUMMY,H10,"):
|
elif self.match("WN LMW,DUMMY,H10,"):
|
||||||
|
if self.match("STAT"):
|
||||||
|
self.send("! 20-JAN-01 00:00")
|
||||||
|
else:
|
||||||
self.meting(10)
|
self.meting(10)
|
||||||
|
elif self.match("VW LMW,DUMMY,H10V,STAT"):
|
||||||
|
self.send("! 20-JAN-01 00:00;20-JAN-01 01:00")
|
||||||
elif self.match("WN LMW,DUMMY,H1,"):
|
elif self.match("WN LMW,DUMMY,H1,"):
|
||||||
self.meting(1)
|
self.meting(1)
|
||||||
elif self.match("LOGOUTCOUNT"):
|
elif self.match("LOGOUTCOUNT"):
|
||||||
@@ -99,8 +112,6 @@ class sipProtocol(socketserver.BaseRequestHandler):
|
|||||||
elif self.match("LO"):
|
elif self.match("LO"):
|
||||||
logoutcount+=1
|
logoutcount+=1
|
||||||
self.send("!")
|
self.send("!")
|
||||||
elif self.match("CLOSE"):
|
|
||||||
self.request.close()
|
|
||||||
else:
|
else:
|
||||||
self.send("? ERROR")
|
self.send("? ERROR")
|
||||||
self.read()
|
self.read()
|
||||||
|
Reference in New Issue
Block a user