You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.5 KiB
Python

7 months ago
from celery import Task, shared_task
import os
import sys
import pickle
import time
import sqlite3
from peewee import *
sys.path.append('../../../')
sys.path.append('../')
# from protocol.ModBus.rtumaster_example import RTUMaster
from protocol.Hart.HartProtocol import HartProtocol
from protocol.Celery.MBRTUMaster import app
from utils.DBModels.BaseModel import *
from utils.DBModels.ProjectBaseModel import *
from utils.DBModels.ClientModels import ClientDB
class HARTTask(Task):
_hartMaster = None
_cursor = None
_dbPath = None
def __init__(self):
super(HARTTask, self).__init__()
# @property
# def dbPath(self):
# if self._dbPath is None:
# dbPath = os.path.join('../../../', 'db', 'client.db')
# self.clientDB = SqliteDatabase(dbPath)
# self.client_proxy = client_proxy
# self.client_proxy.initialize(self.clientDB)
# self.clientDB.connect()
# name = ClientDB.getByName().value
# self._dbPath = os.path.join('../../../project', name, 'db', 'project.db')
# return self._dbPath
@property
def hartMaster(self):
if self._hartMaster is None:
hartMaster = HartProtocol()
self._hartMaster = hartMaster
return self._hartMaster
@shared_task(base = HARTTask, bind = True)
def readValues(self): # 读取变量
hartMaster = self.hartMaster
app.backend.set('HART', str(self.request.id))
lis = hartMaster.readValues()
return lis