*die readConf wurde verbessert *Standartwerte wurden hinterlegt *In den Modulen wird das Configfile verwendet
81 lines
1.8 KiB
Python
81 lines
1.8 KiB
Python
'''
|
|
Created on 15.11.2013
|
|
|
|
@author: Philipp Rauch
|
|
@version: 0.1
|
|
'''
|
|
|
|
from threading import Thread
|
|
from Queue import Queue
|
|
#from CANFilter import CANFilter
|
|
from time import sleep
|
|
from config import readConf
|
|
from MySQLdb import connect
|
|
|
|
MYSQL = 0
|
|
CSV = 1
|
|
XML = 2
|
|
JSON = 3
|
|
|
|
conf = readConf()
|
|
|
|
class Swich(Thread):
|
|
|
|
_isInit = False
|
|
|
|
def __init__(self, source = MYSQL):
|
|
Thread.__init__(self)
|
|
self.source = source
|
|
|
|
def __del__(self):
|
|
if self.source == MYSQL:
|
|
self.CAN.join()
|
|
|
|
def initialisiere(self):
|
|
if self.source == MYSQL:
|
|
_isInit = True
|
|
|
|
### start CAN ###
|
|
# self.CAN = CANFilter()
|
|
# self.CAN.start()
|
|
self.CAN = None
|
|
|
|
### connect to DB ###
|
|
self.connection = connect(host = conf['mySQL_server'],
|
|
user = conf['mySQL_user'],
|
|
passwd = conf['mySQL_pass'],
|
|
db = conf['mySQL_database'])
|
|
self.cursor = self.connection.cursor()
|
|
|
|
### init Queue ###
|
|
self.queue = Queue()
|
|
print '\tSWICH:\t', self.queue
|
|
return self.queue, self.CAN
|
|
|
|
elif self.source == CSV:
|
|
pass
|
|
|
|
elif self.source == XML:
|
|
pass
|
|
|
|
elif self.source == JSON:
|
|
pass
|
|
|
|
else:
|
|
return
|
|
|
|
def run(self):
|
|
while True:
|
|
sql = 'SELECT * FROM %s ORDER BY timestamp DESC LIMIT 1'
|
|
# item = Swich.queue.get(block = True)
|
|
item = 'EMS-TEST'
|
|
|
|
# data = self.cursor.execute(sql % item)
|
|
self.setQueue(item)
|
|
sleep(0.5)
|
|
|
|
def setQueue(self, item):
|
|
self.queue.put(item)
|
|
|
|
def getItem(self, block = False):
|
|
return self.queue.get(block)
|