diff --git a/UI/VarManages/HartModel.py b/UI/VarManages/HartModel.py index 785c586..349da73 100644 --- a/UI/VarManages/HartModel.py +++ b/UI/VarManages/HartModel.py @@ -6,6 +6,7 @@ from model.ProjectModel.VarManage import * from UI.VarManages.ModbusModel import * from utils import Globals + class HartModel(VarTableModel): def __init__(self, header, data: list, table = None): ''' @@ -19,14 +20,14 @@ class HartModel(VarTableModel): self.datas = [] varDatas = HartVarManage.getAllVar() - if not varDatas: # self.layoutChanged.emit() self.table.proxy.invalidate() return for x in varDatas: - for i in range(3, 9): + for i in range(3, 8): x.insert(i, '') + x.append('') self.datas.append(x) self.checkList = ['Unchecked'] * len(self.datas) # self.layoutChanged.emit() diff --git a/UI/VarManages/HartSimulateModel.py b/UI/VarManages/HartSimulateModel.py index 29dd894..ebae1b7 100644 --- a/UI/VarManages/HartSimulateModel.py +++ b/UI/VarManages/HartSimulateModel.py @@ -18,8 +18,7 @@ class HartSimulateModel(VarTableModel): def initTable(self): self.datas = [] - # varDatas = None - # if proType in ['9']: + varDatas = HartSimulateVarManage.getAllVar() @@ -28,8 +27,9 @@ class HartSimulateModel(VarTableModel): self.table.proxy.invalidate() return for x in varDatas: - for i in range(3, 10): + for i in range(3, 9): x.insert(i, '') + x.append('') self.datas.append(x) self.checkList = ['Unchecked'] * len(self.datas) # self.layoutChanged.emit() @@ -158,9 +158,6 @@ class HartSimulateButtonDelegate(VarButtonDelegate): def start_action(self): sender = self.sender() model = self.parent().model - # value2 = model.datas[sender.index[0]][4] - # value3 = model.datas[sender.index[0]][5] - # value4 = model.datas[sender.index[0]][5] value1 = model.datas[sender.index[0]][3] minSpan = model.datas[sender.index[0]][7] maxSpan = model.datas[sender.index[0]][8] diff --git a/UI/VarManages/ModbusModel.py b/UI/VarManages/ModbusModel.py index 98fbc27..e39fde3 100644 --- a/UI/VarManages/ModbusModel.py +++ b/UI/VarManages/ModbusModel.py @@ -1,4 +1,6 @@ +from ast import Mod +from math import comb import typing import sys from numpy import var @@ -283,7 +285,7 @@ class VarButtonDelegate(QItemDelegate): comboBox.index = [index.row(), index.column()] data = self.parent().model.datas[index.row()] - for x in data[:-2]: + for x in data[:-3]: if x != '': break else: @@ -375,31 +377,21 @@ class VarButtonDelegate(QItemDelegate): fucationDelegate = self.parent().itemDelegate(fucationIndex) fucationCheckbox = getattr(fucationDelegate, fucationCbRow) - varModelCbRow = str('cb' + str(sender.index[0]) + str(10)) - varModelIndex = self.parent().model.index(sender.index[0], 10) - varModelDelegate = self.parent().itemDelegate(varModelIndex) - varModelCheckbox = getattr(varModelDelegate, varModelCbRow) - if sender.isEdit: sender.setIcon(qtawesome.icon('fa.save', color='#1fbb6f')) sender.isEdit = False sender.oldName = model.datas[sender.index[0]][3] model.editableList.append(sender.index[0]) fucationCheckbox.setEnabled(True) - varModelCheckbox.setEnabled(True) self.parent().viewport().update() else: varMes = model.datas[sender.index[0]] - name, des, varType, slaveID, address, min, max, varModel, order = str(varMes[3]), str(varMes[4]), str(varMes[5]), str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9]), str(varMes[10]), str(varMes[-1]) - # print(name, des, varType, slaveID, address, min, max, order) + name, des, varType, slaveID, address, min, max, varModel, order = str(varMes[3]), str(varMes[4]), str(varMes[5]), str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9]), str(varMes[-2]), str(varMes[-1]) if varType == '': varType = 0 - if varModel == '': - varModel = 0 - if not name: reply = QMessageBox.question(self.parent(), '警告', @@ -426,6 +418,7 @@ class VarButtonDelegate(QItemDelegate): sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2')) rowIndex = sender.index[0] varMes = ModbusVarManage.getByName(name, modbusType) + varMes.append('本地值') varMes.append('int') varMes.insert(1, '') varMes.insert(2, '') @@ -434,7 +427,7 @@ class VarButtonDelegate(QItemDelegate): sender.isEdit = True fucationCheckbox.setEnabled(False) - varModelCheckbox.setEnabled(False) + # varModelCheckbox.setEnabled(False) model.editableList.remove(sender.index[0]) self.parent().viewport().update() @@ -512,36 +505,32 @@ class ModbusTypeBox(QItemDelegate): self.parent().model.datas[sender.index[0]][sender.index[1]] = index -class VarModelBox(QItemDelegate): +class ModbusVarModelBox(QItemDelegate): def __init__(self, parent=None, comBoxColumn = 10): - super(VarModelBox, self).__init__(parent) + super(ModbusVarModelBox, self).__init__(parent) self.comBoxColumn = comBoxColumn + + def paint(self, painter, option, index): #本地值、模拟值、远程值 对应 0, 1, 2 - if (index.column() == self.comBoxColumn) and index.row() not in self.parent().model.editableList: + if (index.column() == self.comBoxColumn) and not self.parent().indexWidget(index): data = self.parent().model.datas[index.row()] comBox = str('cb' + str(index.row()) + str(index.column())) setattr(self, comBox, QComboBox()) comboBox = getattr(self, comBox) + comboBox = QComboBox(self.parent()) items = ['本地值', '模拟值', '远程值'] comboBox.addItems(items) - comboxIndex = self.parent().model.datas[index.row()][index.column()] - if comboxIndex in [0, 1, 2]: - comboBox.setCurrentIndex(int(comboxIndex)) - else: - comboBox.setCurrentIndex(0) - + comboBox.setCurrentText(str(self.parent().model.datas[index.row()][index.column()])) + comboBox.currentIndexChanged.connect( self.indexChange) comboBox.setObjectName('ModbusTypeBox') comboBox.setEditable(True) comboBox.lineEdit().setAlignment(Qt.AlignCenter) - # comboBox.setMinimumWidth(200) - # comboBox.setEnabled(False) hboxLayout = QHBoxLayout() hboxLayout.addWidget(comboBox) hboxLayout.setContentsMargins(0, 0, 0, 0) - # hboxLayout.setAlignment(Qt.AlignCenter) comboBox.index = [index.row(), index.column()] row = index.row() if row % 2 == 0: @@ -549,10 +538,6 @@ class VarModelBox(QItemDelegate): else: comboBox.setStyleSheet("QComboBox { background-color: #e9e7e3; height: 40px; }") - if str(data[index.column()]): - comboBox.setEnabled(False) - else: - comboBox.setEnabled(True) widget = QWidget() widget.setLayout(hboxLayout) self.parent().setIndexWidget( @@ -561,7 +546,62 @@ class VarModelBox(QItemDelegate): ) self.parent().openPersistentEditor(index) + def indexChange(self): + sender = self.sender() + modbusType = self.parent().modbusType + index = sender.currentIndex() + text = sender.itemText(index) + name = self.parent().model.datas[sender.index[0]][3] + ModbusVarManage.editVarModel(name, text, modbusType) + self.parent().model.datas[sender.index[0]][sender.index[1]] = text + +class HartVarModelBox(ModbusVarModelBox): + def __init__(self, parent=None, comBoxColumn = 8): + super(HartVarModelBox, self).__init__(parent) + self.comBoxColumn = comBoxColumn + def indexChange(self): + sender = self.sender() + index = sender.currentIndex() + text = sender.itemText(index) + name = self.parent().model.datas[sender.index[0]][1] + HartVarManage.editVarModel(name, text) + self.parent().model.datas[sender.index[0]][sender.index[1]] = text + +class TcRtdVarModelBox(ModbusVarModelBox): + def __init__(self, parent=None, comBoxColumn = 9): + super(TcRtdVarModelBox, self).__init__(parent) + self.comBoxColumn = comBoxColumn def indexChange(self): sender = self.sender() index = sender.currentIndex() - self.parent().model.datas[sender.index[0]][sender.index[1]] = index \ No newline at end of file + text = sender.itemText(index) + name = self.parent().model.datas[sender.index[0]][3] + TcRtdManage.editVarModel(name, text) + self.parent().model.datas[sender.index[0]][sender.index[1]] = text + + +class AnalogVarModelBox(ModbusVarModelBox): + def __init__(self, parent=None, comBoxColumn = 8): + super(AnalogVarModelBox, self).__init__(parent) + self.comBoxColumn = comBoxColumn + def indexChange(self): + sender = self.sender() + index = sender.currentIndex() + text = sender.itemText(index) + name = self.parent().model.datas[sender.index[0]][3] + AnalogManage.editVarModel(name, text, ) + self.parent().model.datas[sender.index[0]][sender.index[1]] = text + +class HartSimulateVarModelBox(ModbusVarModelBox): + def __init__(self, parent=None, comBoxColumn = 9): + super(HartSimulateVarModelBox, self).__init__(parent) + self.comBoxColumn = comBoxColumn + + + def indexChange(self): + sender = self.sender() + index = sender.currentIndex() + text = sender.itemText(index) + name = self.parent().model.datas[sender.index[0]][1] + HartSimulateVarManage.editVarModel(name, text) + self.parent().model.datas[sender.index[0]][sender.index[1]] = text \ No newline at end of file diff --git a/UI/VarManages/VarTable.py b/UI/VarManages/VarTable.py index 2984138..cb16470 100644 --- a/UI/VarManages/VarTable.py +++ b/UI/VarManages/VarTable.py @@ -13,7 +13,7 @@ from .HartSimulateModel import * from .TCRTDModel import * - +from model.ProjectModel.VarManage import * from UI.VarManages.Thread import RTDTCThread, AnalogThread, HartSimulateThread from utils import Globals @@ -80,7 +80,7 @@ class VarTableView(QTableView): def setHeader(self): self.setItemDelegateForColumn(11, VarButtonDelegate(self)) self.setItemDelegateForColumn(5, ModbusTypeBox(self)) - self.setItemDelegateForColumn(10, VarModelBox(self, 10)) + self.setItemDelegateForColumn(10, ModbusVarModelBox(self)) self.model = VarTableModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '从站地址', '寄存器地址', '工程量下限', '工程量上限', '值类型', '操作'], [], modbusType = self.modbusType, table = self) @@ -108,8 +108,9 @@ class HartTableView(VarTableView): super(HartTableView, self).__init__(parent) def setHeader(self): - self.setItemDelegateForColumn(8, HartButtonDelegate(self)) - self.model = HartModel([' ID', '仪器名', '描述', '电流值', '参数1', '参数2','参数3', '参数4','操作'], [], table=self) + self.setItemDelegateForColumn(9, HartButtonDelegate(self)) + self.setItemDelegateForColumn(8, HartVarModelBox(self)) + self.model = HartModel([' ID', '仪器名', '描述', '电流值', '参数1', '参数2','参数3', '参数4', '值类型','操作'], [], table=self) class TcRtdTableView(VarTableView): @@ -123,8 +124,9 @@ class TcRtdTableView(VarTableView): # self.workThread.getValueList.connect(self.getValueList) def setHeader(self): - self.setItemDelegateForColumn(9, TcRtdButtonDelegate(self)) - self.model = TcRtdModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '补偿值', '操作'], [], table=self) + self.setItemDelegateForColumn(10, TcRtdButtonDelegate(self)) + self.setItemDelegateForColumn(9, TcRtdVarModelBox(self)) + self.model = TcRtdModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '补偿值', '值类型','操作'], [], table=self) class AnalogTableView(VarTableView): def __init__(self, parent=None): @@ -135,8 +137,9 @@ class AnalogTableView(VarTableView): Globals.setValue('AnalogThread', self.workThread) def setHeader(self): - self.setItemDelegateForColumn(8, AnalogButtonDelegate(self)) - self.model = AnalogModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '操作'], [], table=self) + self.setItemDelegateForColumn(9, AnalogButtonDelegate(self)) + self.setItemDelegateForColumn(8, AnalogVarModelBox(self)) + self.model = AnalogModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '值类型', '操作'], [], table=self) class HartSimulateTableView(VarTableView): @@ -148,5 +151,6 @@ class HartSimulateTableView(VarTableView): Globals.setValue('HartSimulateThread', self.workThread) def setHeader(self): - self.setItemDelegateForColumn(9, HartSimulateButtonDelegate(self)) - self.model = HartSimulateModel([' ID', '仪器名', '描述', '主变量', '过程变量1', '过程变量2', '过程变量3', '工程量下限', '工程量上限', '操作'], [], table=self) + self.setItemDelegateForColumn(10, HartSimulateButtonDelegate(self)) + self.setItemDelegateForColumn(9, HartSimulateVarModelBox(self)) + self.model = HartSimulateModel([' ID', '仪器名', '描述', '主变量', '过程变量1', '过程变量2', '过程变量3', '工程量下限', '工程量上限', '值类型','操作'], [], table=self) diff --git a/UI/VarManages/VarWidget.py b/UI/VarManages/VarWidget.py index e89b95f..f45c220 100644 --- a/UI/VarManages/VarWidget.py +++ b/UI/VarManages/VarWidget.py @@ -207,7 +207,7 @@ class VarWidgets(QtWidgets.QWidget): action.text(), action.isChecked()) for action in self.menuValues.actions()])) def createVar(self): - self.varView.model.append_data(['', '', '', '', '', '', '', '', '', '', '','','int']) + self.varView.model.append_data(['', '', '', '', '', '', '', '', '', '', '','本地值','int']) def forceVar(self): check = [i for i,x in enumerate(self.varView.model.checkList) if x == 'Checked'] diff --git a/model/ProjectModel/VarManage.py b/model/ProjectModel/VarManage.py index 246273b..83efd30 100644 --- a/model/ProjectModel/VarManage.py +++ b/model/ProjectModel/VarManage.py @@ -1,7 +1,8 @@ + import openpyxl from utils.DBModels.ProtocolModel import ModbusTcpMasterVar, ModbusRtuMasterVar, ModbusRtuSlaveVar,\ - ModbusTcpSlaveVar, HartVar, TcRtdVar, AnalogVar, FFSimulateVar, HartSimulateVar + ModbusTcpSlaveVar, HartVar, TcRtdVar, AnalogVar, HartSimulateVar # ID 从站地址 变量名 变量描述 功能码 寄存器地址 工程量下限 工程量上限 @@ -9,9 +10,9 @@ from utils.DBModels.ProtocolModel import ModbusTcpMasterVar, ModbusRtuMasterVar, class ModbusVarManage(object): ModBusVarClass = { 'ModbusTcpMaster': ModbusTcpMasterVar, - 'ModbusTcpSlave': ModbusRtuMasterVar, - 'ModbusRtuMaster': ModbusRtuSlaveVar, - 'ModbusRtuSlave': ModbusTcpSlaveVar, + 'ModbusTcpSlave': ModbusTcpSlaveVar, + 'ModbusRtuMaster': ModbusRtuMasterVar, + 'ModbusRtuSlave': ModbusRtuSlaveVar, } def __init__(self): super().__init__() @@ -167,6 +168,12 @@ class ModbusVarManage(object): name = str(name) order = str(order) self.getVarClass(modbusType).update(order = order).where(self.getVarClass(modbusType).varName == name).execute() + + @classmethod + def editVarModel(self, name, varModel, modbusType): + name = str(name) + varModel = str(varModel) + self.getVarClass(modbusType).update(varModel = varModel).where(self.getVarClass(modbusType).varName == name).execute() @classmethod def getAllVar(self, modbusType): @@ -194,15 +201,15 @@ class HartVarManage(object): super(HartVarManage, self).__init__() @classmethod - def createVar(self, varName, des): + def createVar(self, varName, des, varModel): # 创建变量 name = str(varName) des = str(des) if HartVar.getByName(name): print('已有同名变量') else: - varModel = HartVar() - varModel.createVar(varName = varName, des = des) + hartVarType = HartVar() + hartVarType.createVar(varName = varName, des = des, varModel = varModel) @classmethod def getAllVar(self): @@ -212,7 +219,7 @@ class HartVarManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.description]) + l.append([var.id, var.varName, var.description, var.varModel]) return l @@ -225,14 +232,15 @@ class HartVarManage(object): @classmethod - def editVar(self, name, Nname, des): + def editVar(self, name, Nname, des, varModel): # 修改变量信息 name = str(name) Nname = str(Nname) des = str(des) + varModel = str(varModel) if Nname == name: - HartVar.update(varName = Nname, description = des).where(HartVar.varName == name).execute() + HartVar.update(varName = Nname, description = des, varModel = varModel).where(HartVar.varName == name).execute() elif HartVar.getByName(Nname): print('已有同名变量') return @@ -240,21 +248,28 @@ class HartVarManage(object): print('不存在的变量') return else: - HartVar.update(varName = Nname, description = des).where(HartVar.varName == name).execute() + HartVar.update(varName = Nname, description = des, varModel = varModel).where(HartVar.varName == name).execute() + + @classmethod + def editVarModel(self, name, varModel): + name = str(name) + print('修改变量模型',name) + HartVar.update(varModel = str(varModel)).where(HartVar.varName == name).execute() + @classmethod def getByName(self, name): # 查询指定变量信息 var = HartVar.getByName(name) if var: - varMes = [var.id, var.varName, var.description] + varMes = [var.id, var.varName, var.description, var.varModel] [varMes.append('') for x in range(10)] return varMes else: return False def initVar(self): - self.createVar(varName='name', des='TC') + self.createVar(varName='name', des='TC', varModel='本地值') class TcRtdManage(object): @@ -262,15 +277,16 @@ class TcRtdManage(object): super(TcRtdManage, self).__init__() @classmethod - def createVar(self, varName, varType, des, min, max, compensationVar): + def createVar(self, varName, varType, des, min, max, compensationVar, varModel): # 创建变量 name = str(varName) des = str(des) + varModel = str(varModel) if TcRtdVar.getByName(name): print('已有同名变量') else: - varModel = TcRtdVar() - varModel.createVar(varName = varName, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar) + tcRtdVarType = TcRtdVar() + tcRtdVarType.createVar(varName = varName, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel) @classmethod def getAllVar(self): @@ -280,7 +296,7 @@ class TcRtdManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar]) + l.append([var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel]) return l @@ -293,7 +309,7 @@ class TcRtdManage(object): @classmethod - def editVar(self, name, Nname, des, varType, min, max, compensationVar): + def editVar(self, name, Nname, des, varType, min, max, compensationVar, varModel): # 修改变量信息 name = str(name) Nname = str(Nname) @@ -302,8 +318,9 @@ class TcRtdManage(object): min = str(min) max = str(max) compensationVar = str(compensationVar) + varModel = str(varModel) if Nname == name: - TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute() + TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, varModel = varModel).where(TcRtdVar.varName == name).execute() elif TcRtdVar.getByName(Nname): print('已有同名变量') return @@ -311,7 +328,7 @@ class TcRtdManage(object): print('不存在的变量') return else: - TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute() + TcRtdVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, varModel = varModel).where(TcRtdVar.varName == name).execute() @classmethod def getByName(self, name): @@ -319,7 +336,7 @@ class TcRtdManage(object): var = TcRtdVar.getByName(name) if var: - return [var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar] + return [var.id, var.varName, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel] else: return False @@ -327,30 +344,36 @@ class TcRtdManage(object): # 创建变量 for i in range(1, 9): name = 'Value' + str(i) - self.createVar(varName=name, varType='R', des='TC', min='100', max='200', compensationVar = '0') + self.createVar(varName=name, varType='R', des='TC', min='100', max='200', compensationVar = '0', varModel = '本地值') for i in range(9, 17): name = 'Value' + str(i) - self.createVar(varName=name, varType='PT100', des='RTD', min='100', max='200', compensationVar = '0') + self.createVar(varName=name, varType='PT100', des='RTD', min='100', max='200', compensationVar = '0', varModel = '本地值') @classmethod def editvarType(self, name, varType): name = str(name) TcRtdVar.update(varType = str(varType)).where(TcRtdVar.varName == name).execute() + + @classmethod + def editVarModel(self, name, varModel): + name = str(name) + TcRtdVar.update(varModel = str(varModel)).where(TcRtdVar.varName == name).execute() class AnalogManage(object): def __init__(self): super(AnalogManage, self).__init__() @classmethod - def createVar(self, varName, varType, des, min, max): + def createVar(self, varName, varType, des, min, max, varModel): # 创建变量 name = str(varName) des = str(des) + varModel = str(varModel) if AnalogVar.getByName(name): print('已有同名变量') else: - varModel = AnalogVar() - varModel.createVar(varName = varName, des = des, varType = varType, min = min, max = max) + analogVarType = AnalogVar() + analogVarType.createVar(varName = varName, des = des, varType = varType, min = min, max = max, varModel = varModel) @classmethod def getAllVar(self): @@ -360,7 +383,7 @@ class AnalogManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.description, var.varType, var.min, var.max]) + l.append([var.id, var.varName, var.description, var.varType, var.min, var.max, var.varModel]) return l @@ -373,7 +396,7 @@ class AnalogManage(object): @classmethod - def editVar(self, name, Nname, des, varType, min, max): + def editVar(self, name, Nname, des, varType, min, max, varModel): # 修改变量信息 name = str(name) Nname = str(Nname) @@ -381,8 +404,9 @@ class AnalogManage(object): varType = str(varType) min = str(min) max = str(max) + varModel = str(varModel) if Nname == name: - AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute() + AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, varModel = varModel).where(AnalogVar.varName == name).execute() elif AnalogVar.getByName(Nname): print('已有同名变量') return @@ -390,15 +414,19 @@ class AnalogManage(object): print('不存在的变量') return else: - AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute() + AnalogVar.update(varName=Nname, description=des, varType=varType, min=min, max=max, varModel = varModel).where(AnalogVar.varName == name).execute() @classmethod + def editVarModel(self, name, varModel): + name = str(name) + AnalogVar.update(varModel = str(varModel)).where(AnalogVar.varName == name).execute() + @classmethod def getByName(self, name): # 查询指定变量信息 var = AnalogVar.getByName(name) if var: - return [var.id, var.varName, var.description, var.varType, var.min, var.max] + return [var.id, var.varName, var.description, var.varType, var.min, var.max, var.varModel] else: return False @@ -407,117 +435,41 @@ class AnalogManage(object): name = 'Value' + str(i) if i < 5: des = '有源4-20mA输出' + str(i) - self.createVar(varName=name, varType='AO', des=des, min='100', max='200') + self.createVar(varName=name, varType='AO', des=des, min='100', max='200', varModel = '本地值') else: des = '无源4-20mA输出' + str(i) - self.createVar(varName=name, varType='AO', des=des, min='100', max='200') + self.createVar(varName=name, varType='AO', des=des, min='100', max='200', varModel = '本地值') for i in range(1, 9): name = 'Value' + str(i + 8) if i < 5: des = '有源频率输出' + str(i) - self.createVar(varName=name, varType='Hz', des=des, min='100', max='200') + self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值') elif i < 7: des = '无源NPN频率输出' + str(i) - self.createVar(varName=name, varType='Hz', des=des, min='100', max='200') + self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值') else: des = '无源PNP频率输出' + str(i) - self.createVar(varName=name, varType='Hz', des=des, min='100', max='200') + self.createVar(varName=name, varType='Hz', des=des, min='100', max='200', varModel = '本地值') for i in range(1, 9): name = 'Value' + str(i + 16) - self.createVar(varName=name, varType='DO', des='DO', min='0', max='1') - -class FFSimulateManage(object): - def __init__(self): - super(FFSimulateManage, self).__init__() + self.createVar(varName=name, varType='DO', des='DO', min='0', max='1', varModel = '本地值') - @classmethod - def createVar(self, varName, varType, des): - # 创建变量 - name = str(varName) - des = str(des) - if FFSimulateVar.getByName(name): - print('已有同名变量') - else: - varModel = FFSimulateVar() - varModel.createVar(varName = varName, des = des, varType = varType) - - @classmethod - def getAllVar(self): - # 查询所有变量 - vars = FFSimulateVar.get_all() - if vars is 'error': - return - l = [] - for var in vars: - l.append([var.id, var.varName, var.description, var.varType]) - return l - - - @classmethod - def deleteVar(self, name): - # 删除变量 - name = str(name) - # print(name) - FFSimulateVar.deleteVar(name = name) - - - @classmethod - def editVar(self, name, Nname, des, varType): - # 修改变量信息 - name = str(name) - Nname = str(Nname) - des = str(des) - varType = str(varType) - - if Nname == name: - FFSimulateVar.update(varName=Nname, description=des, varType=varType).where(FFSimulateVar.varName == name).execute() - elif FFSimulateVar.getByName(Nname): - print('已有同名变量') - return - elif not FFSimulateVar.getByName(name): - print('不存在的变量') - return - else: - FFSimulateVar.update(varName=Nname, description=des, varType=varType).where(FFSimulateVar.varName == name).execute() - - @classmethod - def getByName(self, name): - # 查询指定变量信息 - var = FFSimulateVar.getByName(name) - if var: - - return [var.id, var.varName, var.description, var.varType] - else: - return False - - def initVar(self): - for i in range(1, 9): - name = 'Value' + str(i) - if i < 5: - self.createVar(varName=name, varType='AI', des='AI') - else: - self.createVar(varName=name, varType='DI', des='DI') - for i in range(9, 17): - name = 'Value' + str(i) - if i < 13: - self.createVar(varName=name, varType='AO', des='AO') - else: - self.createVar(varName=name, varType='DO', des='DO') class HartSimulateVarManage(object): def __init__(self): super(HartSimulateVarManage, self).__init__() @classmethod - def createVar(self, varName, des): + def createVar(self, varName, des, varModel): # 创建变量 name = str(varName) des = str(des) + varModel = str(varModel) if HartSimulateVar.getByName(name): print('已有同名变量') else: - varModel = HartSimulateVar() - varModel.createVar(varName = varName, des = des) + hartSimulateVarType = HartSimulateVar() + hartSimulateVarType.createVar(varName = varName, des = des,varModel = varModel) @classmethod def getAllVar(self): @@ -527,7 +479,7 @@ class HartSimulateVarManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.description]) + l.append([var.id, var.varName, var.description, var.varModel]) return l @@ -540,14 +492,14 @@ class HartSimulateVarManage(object): @classmethod - def editVar(self, name, Nname, des): + def editVar(self, name, Nname, des, varModel): # 修改变量信息 name = str(name) Nname = str(Nname) des = str(des) if Nname == name: - HartSimulateVar.update(varName = Nname, description = des).where(HartSimulateVar.varName == name).execute() + HartSimulateVar.update(varName = Nname, description = des, varModel = varModel).where(HartSimulateVar.varName == name).execute() elif HartSimulateVar.getByName(Nname): print('已有同名变量') return @@ -555,18 +507,22 @@ class HartSimulateVarManage(object): print('不存在的变量') return else: - HartSimulateVar.update(varName = Nname, description = des).where(HartSimulateVar.varName == name).execute() - + HartSimulateVar.update(varName = Nname, description = des, varModel = varModel).where(HartSimulateVar.varName == name).execute() + + @classmethod + def editVarModel(self, name, varModel): + name = str(name) + HartSimulateVar.update(varModel = str(varModel)).where(HartSimulateVar.varName == name).execute() @classmethod def getByName(self, name): # 查询指定变量信息 var = HartSimulateVar.getByName(name) if var: - varMes = [var.id, var.varName, var.description] + varMes = [var.id, var.varName, var.description, var.varModel] [varMes.append('') for x in range(10)] return varMes else: return False def initVar(self): - self.createVar(varName='name', des='TC') \ No newline at end of file + self.createVar(varName='name', des='TC', varModel='本地值') \ No newline at end of file diff --git a/utils/DBModels/ProtocolModel.py b/utils/DBModels/ProtocolModel.py index 70a6afa..d9796f2 100644 --- a/utils/DBModels/ProtocolModel.py +++ b/utils/DBModels/ProtocolModel.py @@ -1,5 +1,6 @@ import sys import datetime +from numpy import var from peewee import * sys.path.append('../') @@ -133,6 +134,7 @@ class HartVar(BaseModel): varName = CharField() createTime = CharField() description = CharField() + varModel = IntegerField() # 查询变量是否存在 @classmethod @@ -149,17 +151,19 @@ class HartVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, des): + def createVar(self, varName, des, varModel): self.varName = varName self.description = des self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') + self.varModel = varModel # print(self.createTime) self.save() - def initVar(self, varName, des): + def initVar(self, varName, des, varModel): self.varName = varName self.description = des self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') + self.varModel = varModel self.save() @@ -171,6 +175,7 @@ class TcRtdVar(BaseModel): min = CharField() max = CharField() compensationVar = CharField() + varModel = IntegerField() # 查询变量是否存在 @@ -188,7 +193,7 @@ class TcRtdVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, des, varType, min, max, compensationVar): + def createVar(self, varName, des, varType, min, max, compensationVar, varModel): self.varName = varName self.description = des self.varType = varType @@ -196,10 +201,11 @@ class TcRtdVar(BaseModel): self.min = min self.max = max self.compensationVar = compensationVar + self.varModel = varModel # print(self.createTime) self.save() - def initVar(self, varName, des, varType, min, max, compensationVar): + def initVar(self, varName, des, varType, min, max, compensationVar, varModel): self.varName = varName self.description = des self.varType = varType @@ -207,6 +213,7 @@ class TcRtdVar(BaseModel): self.min = min self.max = max self.compensationVar = compensationVar + self.varModel = varModel self.save() class AnalogVar(BaseModel): @@ -216,6 +223,7 @@ class AnalogVar(BaseModel): varType = IntegerField() min = CharField() max = CharField() + varModel = IntegerField() # 查询变量是否存在 @classmethod @@ -232,68 +240,35 @@ class AnalogVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, des, varType, min, max): + def createVar(self, varName, des, varType, min, max, varModel): self.varName = varName self.description = des self.varType = varType self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.min = min self.max = max + self.varModel = varModel # print(self.createTime) self.save() - def initVar(self, varName, des, varType, min, max): + def initVar(self, varName, des, varType, min, max, varModel): self.varName = varName self.description = des self.varType = varType self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') self.min = min self.max = max + self.varModel = varModel # print(self.createTime) self.save() -class FFSimulateVar(BaseModel): - varName = CharField() - createTime = CharField() - description = CharField() - varType = IntegerField() - # 查询变量是否存在 - @classmethod - def getByName(cls, varName): - try: - return cls.get(cls.varName == str(varName)) - except: - return False - - # 删除变量 - @classmethod - def deleteVar(cls, name): - query = cls.delete().where(cls.varName == name) - query.execute() - - # 创建变量 - def createVar(self, varName, des, varType): - self.varName = varName - self.description = des - self.varType = varType - self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') - # print(self.createTime) - self.save() - - def initVar(self, varName, des, varType): - self.varName = varName - self.description = des - self.varType = varType - self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') - # print(self.createTime) - self.save() - class HartSimulateVar(BaseModel): varName = CharField() createTime = CharField() description = CharField() + varModel = IntegerField() # 查询变量是否存在 @classmethod @@ -310,15 +285,17 @@ class HartSimulateVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, des): + def createVar(self, varName, des, varModel): self.varName = varName self.description = des self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') + self.varModel = varModel # print(self.createTime) self.save() - def initVar(self, varName, des): + def initVar(self, varName, des, varModel): self.varName = varName self.description = des self.createTime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') + self.varModel = varModel self.save() \ No newline at end of file