import os from peewee import * from utils.DBModels.BaseModel import * from utils.DBModels.ClientModels import Project, ClientDB from utils.DBModels.DeviceParModels import * from utils import Globals class Client(object): """客户端逻辑类""" def __init__(self): super(Client, self).__init__() @classmethod def initDB(self): dbPath = os.path.join('db', 'client.db') if os.path.isfile(dbPath): self.clientDB = SqliteDatabase(dbPath) client_proxy.initialize(self.clientDB) self.clientDB.connect() else: self.clientDB = SqliteDatabase(dbPath) client_proxy.initialize(self.clientDB) modelsArr = [ Project, ClientDB, PressureTranslationBlock, PhysicalBlock, AIFunctionBlock, TemperatureTranslationBlock, LevelTranslationBlock, FlowTranslationBlock, WiKaLevelTranslationBlock, KaiFengFlowTranslationBlock, UnitTable ] self.clientDB.connect() self.clientDB.create_tables(modelsArr, safe = True) @classmethod def close(self): from model.ProjectModel.ProjectManage import ProjectManage popen = Globals.getValue('popen') popenBeat = Globals.getValue('beatPopen') histroyMan = Globals.getValue('historyDBManage') histroyMan.close() if popen: popen.kill() if popenBeat: popenBeat.kill() proType = Globals.getValue('currentProType') ProjectManage.closePopen() if proType == '7': Globals.getValue('FFThread').quitThread() return elif proType == '5': RTDTCThread= Globals.getValue('RTDTCThread') RTDTCThread.quitThread() return elif proType in ['6']: AnalogThread = Globals.getValue('AnalogThread') AnalogThread.quitThread() return elif proType in ['8']: FFSimulateThread = Globals.getValue('FFSimulateThread') FFSimulateThread.quitThread() return elif proType in ['9']: HartSimulateThread = Globals.getValue('HartSimulateThread') HartSimulateThread.quitThread() return # Client.initDB()