-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdevice_init.py
186 lines (149 loc) · 6.63 KB
/
device_init.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
from util import *
import globals
import meter_drv
import init
def init_devices():
COMports = []
for i in globals.METERS_IP_MAP:
if globals.METERS_IP_MAP[i][1] not in COMports:
COMports.append(globals.METERS_IP_MAP[i][1])
for i in COMports:
meter = meter_drv.Meters()
try:
if not meter.init(i, init.INIT_BAUD):
logger.fatal("COM port %s init fail" % i)
exit("COM_INIT_FAIL")
except Exception as e:
logger.fatal("COM port %s init fail, %s" % e)
exit("COM_INIT_FAIL")
globals.COM_SHARD[i] = meter
if not init.INIT_BAUD == init.TARGET_BAUD:
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
power = meter.read_power(sn)
if not power is None:
logger.info("Serial %s-%s-Check OK, Power %sW" % (dev, sn, power))
meter.change_meter_baud(sn, init.TARGET_BAUD)
else:
logger.fatal("Serial %s, Meter %s Check FAIL ;will retry another baud rate.!\n" % (dev, sn))
for i in globals.COM_SHARD:
result = globals.COM_SHARD[i].change_ser_baud(init.TARGET_BAUD)
if not result:
if read_ignore_self_check():
logger.fatal("Serial %s-baud rate change fail! IGNORE.!" % (i))
else:
logger.fatal("Serial %s-baud rate change fail! exit.!" % (i))
exit("SELF_CHECK_FAIL")
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
power = meter.read_power(sn)
if not power is None:
logger.info("Serial %s-%s-Check OK, Power %sW" % (dev, sn, power))
else:
if read_ignore_self_check():
logger.fatal("Serial %s-%s-Check FAIL Ignore.!" % (dev, sn))
else:
logger.fatal("Serial %s-%s-Check FAIL exit.!" % (dev, sn))
exit("SELF_CHECK_FAIL")
for i in globals.TEMP_MAP:
addr, dev = tuple(globals.TEMP_MAP[i])
com = globals.COM_SHARD[dev]
temp, humi = com.read_env(addr)
if not temp == humi is None:
logger.info("Temper \"%s\" %s-%s-Check OK, Temp %sC, RH%s" % (i, dev, addr, temp,humi))
else:
if read_ignore_self_check():
logger.info("Temper \"%s\" %s-%s-Check Fail Ignore" % (i, dev, addr))
else:
logger.info("Temper \"%s\" %s-%s-Check Fail ,exit" % (i, dev, addr))
exit("SELF_CHECK_FAIL")
def self_check_n_init_ports():
COMports = []
for i in globals.METERS_IP_MAP:
if globals.METERS_IP_MAP[i][1] not in COMports:
COMports.append(globals.METERS_IP_MAP[i][1])
for i in COMports:
meter = meter_drv.Meters()
meter.COM_PORT = i
try:
if not meter.init(init.INIT_BAUD):
logger.fatal("COM port %s init fail")
exit("COM_INIT_FAIL")
except Exception as e:
logger.fatal("COM port %s init fail, %s" % e)
exit("COM_INIT_FAIL")
globals.COM_SHARD[i] = meter
for i in globals.COM_SHARD:
if not globals.COM_SHARD[i].chn.isOpen():
logger.error("COM open fail! %s" % globals.COM_SHARD[i].COM_PORT)
exit("COM_INIT_FAIL")
if not read_meter_done_flag():
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
power = meter.read_power(sn)
if not power is None:
logger.info("Serial %s-%s-Check OK, Power %sW" % (dev, sn, power))
else:
logger.fatal("Serial %s-%s-Check FAIL will retry another baud rate.!" % (dev, sn))
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
result = meter.change_meter_baud(sn,init.TARGET_BAUD)
if not result:
logger.fatal("Meter %s-%s-baud rate change fail!" % (dev, sn))
for i in globals.COM_SHARD:
result = globals.COM_SHARD[i].change_ser_baud(init.TARGET_BAUD)
if not result:
if read_ignore_self_check():
logger.fatal("Serial %s-baud rate change fail! IGNORE.!" % (i))
else:
logger.fatal("Serial %s-baud rate change fail! exit.!" % (i))
exit("SELF_CHECK_FAIL")
for i in globals.COM_SHARD:
if not globals.COM_SHARD[i].chn.isOpen():
if read_ignore_self_check():
logger.error("COM open fail after change baud! %s Ignore" % globals.COM_SHARD[i].COM_PORT)
else:
logger.error("COM open fail after change baud! %s EXIT" % globals.COM_SHARD[i].COM_PORT)
exit("SELF_CHECK_FAIL")
else:
for i in globals.COM_SHARD:
result = globals.COM_SHARD[i].change_ser_baud(init.TARGET_BAUD)
if not result:
if read_ignore_self_check():
logger.fatal("Serial %s-baud rate change fail! IGNORE.!" % (i))
else:
logger.fatal("Serial %s-baud rate change fail! exit.!" % (i))
exit("SELF_CHECK_FAIL")
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
power = meter.read_power(sn)
if not power is None:
logger.info("Serial %s-%s-Check OK, Power %sW" % (dev, sn, power))
else:
if read_ignore_self_check():
logger.fatal("Serial %s-%s-Check FAIL Ignore.!" % (dev, sn))
else:
logger.fatal("Serial %s-%s-Check FAIL exit.!" % (dev, sn))
exit("SELF_CHECK_FAIL")
set_meter_done_flag(True)
import time
for i in globals.METERS_IP_MAP:
sn, dev = tuple(globals.METERS_IP_MAP[i])
meter = globals.COM_SHARD[dev]
elapsed = time.time()
power = meter.read_power(sn)
elapsed = time.time()-elapsed
if not power is None:
logger.info("Serial %s-%s-Check OK, Power %sW TIME %sms" % (dev, sn, power, elapsed*1000))
else:
if read_ignore_self_check():
logger.fatal("Serial %s-%s-Check FAIL Ignore.!" % (dev, sn))
else:
logger.fatal("Serial %s-%s-Check FAIL exit.!" % (dev, sn))
exit("SELF_CHECK_FAIL")
logger.critical("All device check OK!!")