Fixed potential change during iteration
parent
1054ddf1c4
commit
6a56d02afb
|
@ -120,9 +120,11 @@ class Telemeter():
|
||||||
|
|
||||||
def stop_all(self):
|
def stop_all(self):
|
||||||
if not self.from_packed:
|
if not self.from_packed:
|
||||||
for sensor in self.sensors:
|
sensors = self.sensors.copy()
|
||||||
|
for sensor in sensors:
|
||||||
if not sensor == "time":
|
if not sensor == "time":
|
||||||
self.sensors[sensor].stop()
|
self.sensors[sensor].stop()
|
||||||
|
del sensors
|
||||||
|
|
||||||
def read(self, sensor):
|
def read(self, sensor):
|
||||||
if not self.from_packed:
|
if not self.from_packed:
|
||||||
|
@ -137,31 +139,38 @@ class Telemeter():
|
||||||
|
|
||||||
def read_all(self):
|
def read_all(self):
|
||||||
readings = {}
|
readings = {}
|
||||||
for sensor in self.sensors:
|
sensors = self.sensors.copy()
|
||||||
|
for sensor in sensors:
|
||||||
if self.sensors[sensor].active:
|
if self.sensors[sensor].active:
|
||||||
if not self.from_packed:
|
if not self.from_packed:
|
||||||
readings[sensor] = self.sensors[sensor].data
|
readings[sensor] = self.sensors[sensor].data
|
||||||
else:
|
else:
|
||||||
readings[sensor] = self.sensors[sensor]._data
|
readings[sensor] = self.sensors[sensor]._data
|
||||||
|
|
||||||
|
del sensors
|
||||||
return readings
|
return readings
|
||||||
|
|
||||||
def packed(self):
|
def packed(self):
|
||||||
packed = {}
|
packed = {}
|
||||||
packed[Sensor.SID_TIME] = int(time.time())
|
packed[Sensor.SID_TIME] = int(time.time())
|
||||||
for sensor in self.sensors:
|
sensors = self.sensors.copy()
|
||||||
|
for sensor in sensors:
|
||||||
if self.sensors[sensor].active:
|
if self.sensors[sensor].active:
|
||||||
packed[self.sensors[sensor].sid] = self.sensors[sensor].pack()
|
packed[self.sensors[sensor].sid] = self.sensors[sensor].pack()
|
||||||
|
|
||||||
|
del sensors
|
||||||
return umsgpack.packb(packed)
|
return umsgpack.packb(packed)
|
||||||
|
|
||||||
def render(self, relative_to=None):
|
def render(self, relative_to=None):
|
||||||
rendered = []
|
rendered = []
|
||||||
for sensor in self.sensors:
|
sensors = self.sensors.copy()
|
||||||
|
for sensor in sensors:
|
||||||
s = self.sensors[sensor]
|
s = self.sensors[sensor]
|
||||||
if s.active:
|
if s.active:
|
||||||
r = s.render(relative_to)
|
r = s.render(relative_to)
|
||||||
if r: rendered.append(r)
|
if r: rendered.append(r)
|
||||||
|
|
||||||
|
del sensors
|
||||||
return rendered
|
return rendered
|
||||||
|
|
||||||
def check_permission(self, permission):
|
def check_permission(self, permission):
|
||||||
|
|
Loading…
Reference in New Issue