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
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
|