update_device soll als thread laufen
This commit is contained in:
parent
b025d35fd8
commit
fdd7afd35b
3 changed files with 38 additions and 33 deletions
|
|
@ -29,10 +29,10 @@ class Buffer(object):
|
|||
|
||||
system = {
|
||||
'00_config' : conf,
|
||||
'0_request' : [],
|
||||
'0_done' : [],
|
||||
'device' : {},
|
||||
'error' : error,
|
||||
'request' : [],
|
||||
'done' : []
|
||||
'error' : error
|
||||
}
|
||||
|
||||
_instance = None
|
||||
|
|
@ -147,6 +147,7 @@ class Buffer(object):
|
|||
stderr.write('error wrong path: %s' % key)
|
||||
return
|
||||
sys.update(value)
|
||||
return key
|
||||
|
||||
def init_buffer(self):
|
||||
self.system['reqest'].append('init')
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class CANFilter(Thread):
|
|||
|
||||
if isinstance(self.conf["symfile"], str):
|
||||
sym = "%s/%s" % (self.conf["config_dictionary"], self.conf["symfile"])
|
||||
#Sym2Code(sym)
|
||||
Sym2Code(sym)
|
||||
Add2Adapter(self.pcan, sym)
|
||||
elif isinstance(self.conf["symfile"], list):
|
||||
for element in self.conf["symfile"]:
|
||||
|
|
|
|||
62
src/ems.py
62
src/ems.py
|
|
@ -5,6 +5,7 @@ Created on 15.11.2013
|
|||
@version: 0.02
|
||||
'''
|
||||
from threading import Thread, Timer
|
||||
import thread
|
||||
from switch import Switch, MYSQL
|
||||
from config import Config
|
||||
from time import sleep
|
||||
|
|
@ -26,15 +27,25 @@ def startSwitch():
|
|||
switch.start()
|
||||
return switch, queue, query
|
||||
|
||||
class Emulator(object):
|
||||
def __init__(self, func, time):
|
||||
self._func = func
|
||||
self._time = time
|
||||
def update_device(query, queue, buf):
|
||||
#query.put('/device')
|
||||
#buf.update_buffer(queue.get())
|
||||
keys = buf.system['device'].keys()
|
||||
for key in keys:
|
||||
if key.startswith("000"):
|
||||
continue
|
||||
query.put('/device/%s' % key)
|
||||
print 'GET:\t', buf.update_buffer(queue.get())
|
||||
sleep(0.5)
|
||||
|
||||
def run(self):
|
||||
self.threadTimer = Timer(self._time, self.runProfile)
|
||||
self.threadTimer.start()
|
||||
class Emulator(object):
|
||||
def __init__(self, func):
|
||||
self._func = func()
|
||||
|
||||
def run(self, time):
|
||||
self._func()
|
||||
self.threadTimer = Timer(time, self.run(time))
|
||||
self.threadTimer.start()
|
||||
|
||||
def stop(self):
|
||||
self.threadTimer.cancel()
|
||||
|
|
@ -48,35 +59,28 @@ class ems(Thread):
|
|||
self.switch, self.queue, self.query = startSwitch()
|
||||
if conf['config_debug']:
|
||||
print '\tEMS-BUFFER:\t', buf
|
||||
self.update = Emulator(self.update_device())
|
||||
self.update.run(conf['mySQL_speed'])
|
||||
#self.update = Emulator(update_device(self.query, self.queue, self.buffer))
|
||||
#self.update.run(conf['mySQL_speed'])
|
||||
self.query.put('/device')
|
||||
self.buffer.update_buffer(self.queue.get())
|
||||
update_device(self.query, self.queue, self.buffer)
|
||||
|
||||
def __del__(self):
|
||||
self.update.stop()
|
||||
self.switch.stop = True
|
||||
|
||||
def run(self):
|
||||
#while True
|
||||
# if self.getRequest():
|
||||
|
||||
old = None
|
||||
while True:
|
||||
new = self.getNewMsg(old)
|
||||
if conf['config_debug']:
|
||||
print 'GET:\t', new
|
||||
self.buffer.update_buffer(new)
|
||||
self.queue.task_done()
|
||||
old = new
|
||||
|
||||
def update_device(self):
|
||||
self.query.put('/device')
|
||||
self.buffer.update_buffer(self.queue.get())
|
||||
keys = self.buffer.system['device'].keys()
|
||||
for key in keys:
|
||||
if key.startswith("000"):
|
||||
continue
|
||||
self.query.put('/device/%s' % key)
|
||||
self.buffer.update_buffer(self.queue.get())
|
||||
# if self.getRequest():
|
||||
update_device(self.query, self.queue, self.buffer)
|
||||
#old = None
|
||||
#while True:
|
||||
# new = self.getNewMsg(old)
|
||||
# if conf['config_debug']:
|
||||
# print 'GET:\t', new
|
||||
# self.buffer.update_buffer(new)
|
||||
# self.queue.task_done()
|
||||
# old = new
|
||||
|
||||
def getNewMsg(self, old):
|
||||
'''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue