-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWeatherStationXml.py
67 lines (47 loc) · 2.33 KB
/
WeatherStationXml.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python
##
# @package weatherStationXml package contains the method to create the xml payload or the weather station
#
import logging
from ModbusConsts import ModbusConsts
class WeatherStationXml:
LOG = logging.getLogger( __name__ )
##
#
def createXmlTag( self, key, value ):
tag = '<' + key + ' V=\'' + str(value) + '\'/>'
return tag
##
#
def getXmlPayload( self, decodedData, recordTime ):
xmlPayload = '<WST id=\'' + decodedData.get( ModbusConsts.DEVICE_ID ) + '\' type=\'' + decodedData.get( ModbusConsts.DEVICE_TYPE ) + '\'>'
try:
data = decodedData.get( ModbusConsts.DATA )
if ModbusConsts.WST_WSNSR in data:
value = data.get( ModbusConsts.WST_WSNSR )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_WSNSR, value )
if ModbusConsts.WST_TEMP in data:
value = data.get( ModbusConsts.WST_TEMP )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_TEMP, value )
if ModbusConsts.WST_HUMI in data:
value = data.get( ModbusConsts.WST_HUMI )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_HUMI, value )
if ModbusConsts.WST_RELAY in data:
value = data.get( ModbusConsts.WST_RELAY )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_RELAY, value )
if ModbusConsts.WST_RAIN in data:
value = data.get( ModbusConsts.WST_RAIN )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_RAIN, value )
if ModbusConsts.WST_WINDS in data:
value = data.get( ModbusConsts.WST_WINDS )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_WINDS, value )
if ModbusConsts.WST_WINDD in data:
value = data.get( ModbusConsts.WST_WINDD )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_WINDD, value )
if ModbusConsts.WST_ANLG1 in data:
value = data.get( ModbusConsts.WST_ANLG1 )
xmlPayload = xmlPayload + self.createXmlTag( ModbusConsts.WST_ANLG1, value )
except Exception as e:
pass
xmlPayload = xmlPayload + '</WST>'
return xmlPayload