Compare commits
6 Commits
0.9.8
...
ef33fd252f
Author | SHA1 | Date | |
---|---|---|---|
ef33fd252f | |||
2cead40a74 | |||
ee8ca45a59 | |||
af04830dfb | |||
a8e70e793f | |||
0c07dcfd66 |
@@ -8,4 +8,4 @@ VERSION=$(grep version setup.cfg | sed 's/.*= *//')
|
||||
sed -i "s/^__version__ = .*/__version__ = '${VERSION}'/" src/lmwsip/__init__.py
|
||||
git add src/lmwsip/__init__.py
|
||||
|
||||
tox
|
||||
tox -p
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[metadata]
|
||||
name = lmwsip
|
||||
version = 0.9.8
|
||||
version = 0.9.10
|
||||
author = Marcel Nijenhof
|
||||
author_email = pypi@marceln.org
|
||||
description = Interface for the lmw sip protocol
|
||||
|
@@ -12,7 +12,7 @@ from datetime import datetime, timedelta
|
||||
from dateutil import tz
|
||||
|
||||
""" Version info changed by git hook """
|
||||
__version__ = '0.9.7'
|
||||
__version__ = '0.9.10'
|
||||
|
||||
class LmwSip:
|
||||
"""Class to connect to the LMW Standard Interface prototcol (sip)
|
||||
@@ -835,7 +835,7 @@ Returns:
|
||||
data: Values to be writen (e.g. 33/10;35/10).
|
||||
|
||||
Example:
|
||||
lmw.cmd("WNT", "HOEK", "H10", "+00:20", "13-08-2018", "16:00", "33/10;35/10")
|
||||
lmw.cmdWrite("WNT", "HOEK", "H10", "+00:20", "13-08-2018", "16:00", "33/10;35/10")
|
||||
|
||||
Returns:
|
||||
The LMW answer string
|
||||
@@ -862,7 +862,7 @@ Parameters:
|
||||
The default returns the last value string including quality.
|
||||
|
||||
Example:
|
||||
lmw.data_string("WN", "HOEK", "H10")
|
||||
lmw.valueStr("WN", "HOEK", "H10")
|
||||
|
||||
Returns a single string value with quality
|
||||
"""
|
||||
@@ -889,7 +889,7 @@ Parameters:
|
||||
The default returns the last value.
|
||||
|
||||
Example:
|
||||
lmw.data_string("WN", "HOEK", "H10")
|
||||
lmw.value("WN", "HOEK", "H10")
|
||||
|
||||
Returns a single string value or None
|
||||
"""
|
||||
@@ -904,6 +904,26 @@ Returns a single string value or None
|
||||
#
|
||||
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):
|
||||
h = 24*window.days + window.seconds // 3600
|
||||
m = (window.seconds % 3600)//60
|
||||
@@ -938,7 +958,7 @@ The times should have correct timezone information. Otherwise local timezone
|
||||
is assumed. Timezones are converted to 'GMT+1' for the sip commands.
|
||||
|
||||
Example:
|
||||
lmw.data_string("WN", "HOEK", "H10", ...)
|
||||
lmw.timeSerie("WN", "HOEK", "H10", ...)
|
||||
|
||||
Returns a LmwtimeSerie object
|
||||
|
||||
@@ -1100,4 +1120,4 @@ class LmwParmWarn(Warning):
|
||||
self.parameter = parameter
|
||||
|
||||
def __str__(self):
|
||||
return("Unknown parameter: %s" % parameter)
|
||||
return("Unknown parameter: %s" % self.parameter)
|
||||
|
@@ -79,12 +79,20 @@ class lmwsipTest(unittest.TestCase):
|
||||
|
||||
def test_cmdWrite(self):
|
||||
self.login()
|
||||
self.assertEqual(type(self.sip.cmdWrite("WN", "DUMMY", "H10", "+00:20", "2020-01-01", "00:00", "35/10;33/10")), str)
|
||||
self.assertEqual(type(self.sip.cmdWrite("WNT", "DUMMY", "H10", "+00:20", "2020-01-01", "00:00", "35/10;33/10")), str)
|
||||
|
||||
def test_value(self):
|
||||
self.login()
|
||||
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):
|
||||
self.login()
|
||||
self.assertEqual(type(self.sip.value("WN", "DUMMY", "H1")), str)
|
||||
|
@@ -13,6 +13,15 @@ Implements the following commands:
|
||||
CMD> TI LMW
|
||||
ANS< ! 20-JAN-01 00:00:00
|
||||
|
||||
CMD> WNT LMW,DUMMY,H1,+HH:MM,yyyy-mm-dd,HH:MM,NN/NN;NN/NN
|
||||
ANS< ! 1/10,;2/10;....
|
||||
|
||||
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
|
||||
ANS< ! 1/10,;2/10;....
|
||||
|
||||
@@ -48,7 +57,7 @@ logoutcount=0
|
||||
|
||||
class sipProtocol(socketserver.BaseRequestHandler):
|
||||
def match(self, m):
|
||||
return(self.data.find(m.encode()) == 0)
|
||||
return(self.data.find(m.encode()) != -1)
|
||||
|
||||
def send(self, a):
|
||||
a = "%s\r" % a
|
||||
@@ -86,12 +95,21 @@ class sipProtocol(socketserver.BaseRequestHandler):
|
||||
global logoutcount
|
||||
self.read()
|
||||
while self.data:
|
||||
if self.match("LI USER,PASS"):
|
||||
if self.match("CLOSE"):
|
||||
self.request.close()
|
||||
elif self.match("LI USER,PASS"):
|
||||
self.send("!")
|
||||
elif self.match("TI LMW"):
|
||||
self.send("! 20-JAN-01 00:00:00")
|
||||
elif self.match("WNT LMW,DUMMY,H10,"):
|
||||
self.send("!")
|
||||
elif self.match("WN LMW,DUMMY,H10,"):
|
||||
self.meting(10)
|
||||
if self.match("STAT"):
|
||||
self.send("! 20-JAN-01 00:00")
|
||||
else:
|
||||
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,"):
|
||||
self.meting(1)
|
||||
elif self.match("LOGOUTCOUNT"):
|
||||
@@ -99,8 +117,6 @@ class sipProtocol(socketserver.BaseRequestHandler):
|
||||
elif self.match("LO"):
|
||||
logoutcount+=1
|
||||
self.send("!")
|
||||
elif self.match("CLOSE"):
|
||||
self.request.close()
|
||||
else:
|
||||
self.send("? ERROR")
|
||||
self.read()
|
||||
|
Reference in New Issue
Block a user