update_device soll als thread laufen

This commit is contained in:
Philipp Rauch 2014-01-23 16:32:18 +01:00
parent b025d35fd8
commit fdd7afd35b
3 changed files with 38 additions and 33 deletions

View file

@ -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')

View file

@ -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"]:

View file

@ -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):
'''