diff --git a/UI/VarManages/AnalogModel.py b/UI/VarManages/AnalogModel.py index 3d0255d..7ed96ee 100644 --- a/UI/VarManages/AnalogModel.py +++ b/UI/VarManages/AnalogModel.py @@ -41,7 +41,6 @@ class AnalogModel(VarTableModel): proType = Globals.getValue('currentProType') # if proType in ['6']: varDatas = AnalogManage.getAllVar() - if not varDatas: # self.layoutChanged.emit() self.table.proxy.invalidate() @@ -144,7 +143,7 @@ class AnalogButtonDelegate(TcRtdButtonDelegate): model.editableList.append(source_row) else: varMes = model.datas[source_row] - name,channelNumber, des, varType, min, max = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]) + name,channelNumber, des, varType, min, max, unit = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9]) if not name or not varType: reply = QMessageBox.question(self.parent(), '警告', @@ -156,21 +155,21 @@ class AnalogButtonDelegate(TcRtdButtonDelegate): if sender.oldName: if sender.oldName == name: AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, - des=des, varType=varType, min=min, max=max) + des=des, varType=varType, min=min, max=max, unit=unit) else: if GlobalVarManager.isVarNameExist(name): QMessageBox.information(self.parent(), '提示', '已有同名变量') return else: AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, - des=des, varType=varType, min=min, max=max) + des=des, varType=varType, min=min, max=max, unit=unit) else: if GlobalVarManager.isVarNameExist(name): QMessageBox.information(self.parent(), '提示', '已有同名变量') return else: AnalogManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, - des=des, varType=varType, min=min, max=max) + des=des, varType=varType, min=min, max=max, unit=unit) sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2')) varMes = AnalogManage.getByName(name) diff --git a/UI/VarManages/ModbusModel.py b/UI/VarManages/ModbusModel.py index 62d5dd2..de6fdd3 100644 --- a/UI/VarManages/ModbusModel.py +++ b/UI/VarManages/ModbusModel.py @@ -606,7 +606,7 @@ class HartVarModelBox(ModbusVarModelBox): self.parent().model.datas[sender.index[0]][sender.index[1]] = text class TcRtdVarModelBox(ModbusVarModelBox): - def __init__(self, parent=None, comBoxColumn = 10): + def __init__(self, parent=None, comBoxColumn = 11): super(TcRtdVarModelBox, self).__init__(parent) self.comBoxColumn = comBoxColumn def indexChange(self): @@ -619,7 +619,7 @@ class TcRtdVarModelBox(ModbusVarModelBox): class AnalogVarModelBox(ModbusVarModelBox): - def __init__(self, parent=None, comBoxColumn = 9): + def __init__(self, parent=None, comBoxColumn = 10): super(AnalogVarModelBox, self).__init__(parent) self.comBoxColumn = comBoxColumn def indexChange(self): diff --git a/UI/VarManages/TCRTDModel.py b/UI/VarManages/TCRTDModel.py index 7d443a0..3b63206 100644 --- a/UI/VarManages/TCRTDModel.py +++ b/UI/VarManages/TCRTDModel.py @@ -42,7 +42,6 @@ class TcRtdModel(VarTableModel): # proType = Globals.getValue('currentProType') # if proType in ['5']: varDatas = TcRtdManage.getAllVar() - if not varDatas: # self.layoutChanged.emit() self.table.proxy.invalidate() @@ -89,7 +88,7 @@ class TcRtdModel(VarTableModel): varName = self.datas[QModelIndex.row()][3] # print(self.valueCache.get(varName, None)) return self.valueCache.get(varName, None) - + return QVariant(self.datas[QModelIndex.row()][QModelIndex.column()]) def flags(self, index): @@ -207,9 +206,8 @@ class TcRtdButtonDelegate(BaseButtonDelegate): varType = model.datas[source_row][6] min = model.datas[source_row][7] max = model.datas[source_row][8] - compensation = model.datas[source_row][9] + compensation = model.datas[source_row][10] pattern = re.compile(r'[^0-9\.-]+') - print(model.datas[source_row][3]) if not value or re.findall(pattern, str(value) + str(compensation)): reply = QMessageBox.question(self.parent(), '警告', @@ -274,7 +272,8 @@ class TcRtdButtonDelegate(BaseButtonDelegate): model.editableList.append(source_row) else: varMes = model.datas[source_row] - name, channelNumber, des, varType, min, max, compensationVar = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9]) + print(varMes,2222) + name, channelNumber, des, varType, min, max, compensationVar, unit = str(varMes[3]), str(varMes[4]), str(varMes[5]),str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[10]), str(varMes[9]) if not name or not varType: reply = QMessageBox.question(self.parent(), '警告', @@ -286,14 +285,14 @@ class TcRtdButtonDelegate(BaseButtonDelegate): if sender.oldName: if sender.oldName == name: TcRtdManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, des=des, - varType=varType, min=min, max=max, compensationVar = compensationVar) + varType=varType, min=min, max=max, compensationVar = compensationVar, unit = unit) else: if GlobalVarManager.isVarNameExist(name): QMessageBox.information(self.parent(), '提示', '已有同名变量') return else: TcRtdManage.editVar(name=sender.oldName, Nname=name, channelNumber = channelNumber, des=des, - varType=varType, min=min, max=max, compensationVar = compensationVar) + varType=varType, min=min, max=max, compensationVar = compensationVar, unit = unit) else: if GlobalVarManager.isVarNameExist(name): @@ -301,13 +300,14 @@ class TcRtdButtonDelegate(BaseButtonDelegate): return else: TcRtdManage.createVar(varName=name, channelNumber = channelNumber, varType=varType, des=des, - min=min, max=max, compensationVar = compensationVar) + min=min, max=max, compensationVar = compensationVar, unit = unit) sender.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2')) varMes = TcRtdManage.getByName(name) varMes.insert(1, '') varMes.insert(2, '') varMes.append('') + print(varMes, 1111) model.insert_data(varMes, source_row) model.remove_row(source_row + 1) diff --git a/UI/VarManages/VarTable.py b/UI/VarManages/VarTable.py index 3aba023..cacc49d 100644 --- a/UI/VarManages/VarTable.py +++ b/UI/VarManages/VarTable.py @@ -183,12 +183,12 @@ class TcRtdTableView(VarTableView): # self.workThread.getValueList.connect(self.getValueList) def setupColumnWidths(self): self.header.setSectionResizeMode(QHeaderView.Stretch) - self.setCustomColumnWidths([1.2, 0.9, 0.9, 1, 1, 1, 1, 1, 1, 1, 1]) + self.setCustomColumnWidths([1.2, 0.9, 0.9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) def setHeader(self): - self.setItemDelegateForColumn(11, TcRtdButtonDelegate(self)) - self.setItemDelegateForColumn(10, TcRtdVarModelBox(self)) - self.model = TcRtdModel([' ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '补偿值', '值类型','操作'], [], table=self) + self.setItemDelegateForColumn(12, TcRtdButtonDelegate(self)) + self.setItemDelegateForColumn(11, TcRtdVarModelBox(self)) + self.model = TcRtdModel([' ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '单位', '补偿值', '值类型', '操作', ], [], table=self) class AnalogTableView(VarTableView): def __init__(self, parent=None): @@ -202,12 +202,12 @@ class AnalogTableView(VarTableView): self.setupColumnWidths() def setupColumnWidths(self): - self.setCustomColumnWidths([0.8, 0.8, 0.8, 1.8, 1, 1.4, 0.8, 0.8, 1, 1, 1]) + self.setCustomColumnWidths([0.8, 0.8, 0.8, 1.8, 1, 1.4, 0.8, 0.8, 1, 1, 1, 1]) def setHeader(self): - self.setItemDelegateForColumn(10, AnalogButtonDelegate(self)) - self.setItemDelegateForColumn(9, AnalogVarModelBox(self)) - self.model = AnalogModel([' ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '值类型', '操作'], [], table=self) + self.setItemDelegateForColumn(11, AnalogButtonDelegate(self)) + self.setItemDelegateForColumn(10, AnalogVarModelBox(self)) + self.model = AnalogModel([' ID', '强制值', '当前值', '变量名', '通道序号', '变量描述', '变量类型', '工程量下限', '工程量上限', '单位', '值类型', '操作'], [], table=self) class HartSimulateTableView(VarTableView): diff --git a/model/ProjectModel/VarManage.py b/model/ProjectModel/VarManage.py index 7565660..1f847eb 100644 --- a/model/ProjectModel/VarManage.py +++ b/model/ProjectModel/VarManage.py @@ -339,7 +339,7 @@ class TcRtdManage(object): super(TcRtdManage, self).__init__() @classmethod - def createVar(self, varName, channelNumber, varType, des, min, max, compensationVar, varModel): + def createVar(self, varName, channelNumber, varType, des, min, max, compensationVar, varModel, unit): # 创建变量 name = str(varName) des = str(des) @@ -349,7 +349,7 @@ class TcRtdManage(object): print('已有同名变量') else: tcRtdVarType = TcRtdVar() - tcRtdVarType.createVar(varName = varName, channelNumber=channelNumber, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel) + tcRtdVarType.createVar(varName = varName, channelNumber=channelNumber, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel, unit=unit) # 操作后刷新缓存 refreshCache() @@ -361,7 +361,7 @@ class TcRtdManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.channelNumber,var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel]) + l.append([var.id, var.varName, var.channelNumber,var.description, var.varType, var.min, var.max, var.unit, var.compensationVar, var.varModel]) return l @@ -376,7 +376,7 @@ class TcRtdManage(object): @classmethod - def editVar(self, name, Nname, channelNumber, des, varType, min, max, compensationVar): + def editVar(self, name, Nname, channelNumber, des, varType, min, max, compensationVar, unit): # 修改变量信息 name = str(name) Nname = str(Nname) @@ -386,9 +386,10 @@ class TcRtdManage(object): min = str(min) max = str(max) compensationVar = str(compensationVar) + unit = str(unit) if Nname == name: - TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute() + TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, unit = unit).where(TcRtdVar.varName == name).execute() elif TcRtdVar.getByName(Nname): print('已有同名变量') return @@ -396,7 +397,7 @@ class TcRtdManage(object): print('不存在的变量') return else: - TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == name).execute() + TcRtdVar.update(varName=Nname, channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, unit = unit).where(TcRtdVar.varName == name).execute() # 操作后刷新缓存 refreshCache() @@ -406,7 +407,7 @@ class TcRtdManage(object): var = TcRtdVar.getByName(name) if var: - return [var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.compensationVar, var.varModel] + return [var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.unit, var.compensationVar, var.varModel] else: return False @@ -414,10 +415,10 @@ class TcRtdManage(object): # 创建变量 for i in range(1, 9): name = '热偶输出' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='R', des='TC', min='100', max='200', compensationVar = '0', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='R', des='TC', min='100', max='200', compensationVar = '0', varModel = '本地值', unit='℃') for i in range(1, 9): name = '热阻输出' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='PT100', des='RTD', min='100', max='200', compensationVar = '0', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='PT100', des='RTD', min='100', max='200', compensationVar = '0', varModel = '本地值', unit='℃') @classmethod def editvarType(self, name, varType): @@ -434,13 +435,13 @@ class TcRtdManage(object): refreshCache() @classmethod - def importVarForm(self, varName, channelNumber, varType, des, min, max, compensationVar, varModel): + def importVarForm(self, varName, channelNumber, varType, des, min, max, compensationVar, varModel, unit): if TcRtdVar.getByName(varName): # 如果变量已存在,更新其信息 - TcRtdVar.update(channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar).where(TcRtdVar.varName == varName).execute() + TcRtdVar.update(channelNumber = channelNumber, description=des, varType=varType, min=min, max=max, compensationVar = compensationVar, unit = unit).where(TcRtdVar.varName == varName).execute() else: tcRtdVarType = TcRtdVar() - tcRtdVarType.createVar(varName = varName, channelNumber=channelNumber, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel) + tcRtdVarType.createVar(varName = varName, channelNumber=channelNumber, des = des, varType = varType, min = min, max = max, compensationVar = compensationVar, varModel = varModel, unit = unit) # 操作后刷新缓存 refreshCache() @@ -449,17 +450,18 @@ class AnalogManage(object): super(AnalogManage, self).__init__() @classmethod - def createVar(self, varName, channelNumber, varType, des, min, max, varModel): + def createVar(self, varName, channelNumber, varType, des, min, max, varModel, unit): # 创建变量 name = str(varName) channelNumber = str(channelNumber) des = str(des) varModel = str(varModel) + unit = str(unit) # if AnalogVar.getByName(name): # print('已有同名变量') # else: analogVarType = AnalogVar() - analogVarType.createVar(varName = varName, channelNumber = channelNumber, des = des, varType = varType, min = min, max = max, varModel = varModel) + analogVarType.createVar(varName = name, channelNumber = channelNumber, des = des, varType = varType, min = min, max = max, varModel = varModel, unit=unit) # 操作后刷新缓存 refreshCache() @@ -471,7 +473,7 @@ class AnalogManage(object): return l = [] for var in vars: - l.append([var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.varModel]) + l.append([var.id, var.varName, var.channelNumber, var.description, var.varType, var.min, var.max, var.unit, var.varModel]) return l @@ -486,7 +488,7 @@ class AnalogManage(object): @classmethod - def editVar(self, name, Nname, channelNumber, des, varType, min, max): + def editVar(self, name, Nname, channelNumber, des, varType, min, max, unit): # 修改变量信息 name = str(name) Nname = str(Nname) @@ -495,8 +497,9 @@ class AnalogManage(object): varType = str(varType) min = str(min) max = str(max) + unit = str(unit) if Nname == name: - AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute() + AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max, unit = unit).where(AnalogVar.varName == name).execute() elif AnalogVar.getByName(Nname): print('已有同名变量') return @@ -504,7 +507,7 @@ class AnalogManage(object): print('不存在的变量') return else: - AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == name).execute() + AnalogVar.update(varName=Nname, channelNumber =channelNumber, description=des, varType=varType, min=min, max=max, unit = unit).where(AnalogVar.varName == name).execute() # 操作后刷新缓存 refreshCache() @@ -520,7 +523,7 @@ class AnalogManage(object): var = AnalogVar.getByName(name) if var: - return [var.id, var.varName, var. channelNumber, var.description, var.varType, var.min, var.max, var.varModel] + return [var.id, var.varName, var. channelNumber, var.description, var.varType, var.min, var.max, var.unit, var.varModel] else: return False @@ -528,41 +531,41 @@ class AnalogManage(object): for i in range(1, 13): name = '无源4-20mA输出通道' + str(i) des = '无源4-20mA输出' + str(i) - self.createVar(varName=name, channelNumber= str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值') + self.createVar(varName=name, channelNumber= str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值', unit='mA') for i in range(13, 17): name = '有源4-20mA输出通道' + str(i) des = '有源4-20mA输出' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='AO', des=des, min='100', max='200', varModel = '本地值', unit='mA') for i in range(1, 17): name = '有源24V数字输出通道' + str(i) des = '有源24V数字输出' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='DO', des=des, min='0', max='1', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='DO', des=des, min='0', max='1', varModel = '本地值', unit='V') for i in range(1, 9): name = '无源24V数字输入通道' + str(i) des = '无源24V数字输入' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='0', max='1', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='0', max='1', varModel = '本地值', unit='V') for i in range(9, 17): name = '有源48V数字输入通道' + str(i) des = '有源48V数字输入' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='0', max='1', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='DI', des=des, min='0', max='1', varModel = '本地值', unit='V') for i in range(1, 9): name = '有源/无源4-20mA输入通道' + str(i) des = '有源/无源4-20mA输入' + str(i) - self.createVar(varName=name, channelNumber=str(i), varType='AI', des=des, min='100', max='200', varModel = '本地值') + self.createVar(varName=name, channelNumber=str(i), varType='AI', des=des, min='100', max='200', varModel = '本地值', unit='mA') @classmethod - def importVarForm(self, varName, channelNumber, varType, des, min, max, varModel): + def importVarForm(self, varName, channelNumber, varType, des, min, max, varModel, unit): if AnalogVar.getByName(varName): # 如果变量已存在,更新其信息 - AnalogVar.update(channelNumber =channelNumber, description=des, varType=varType, min=min, max=max).where(AnalogVar.varName == varName).execute() + AnalogVar.update(channelNumber =channelNumber, description=des, varType=varType, min=min, max=max, unit = unit).where(AnalogVar.varName == varName).execute() else: analogVarType = AnalogVar() - analogVarType.createVar(varName = varName, channelNumber = channelNumber, des = des, varType = varType, min = min, max = max, varModel = varModel) + analogVarType.createVar(varName = varName, channelNumber = channelNumber, des = des, varType = varType, min = min, max = max, varModel = varModel,unit = unit) # 操作后刷新缓存 refreshCache() diff --git a/utils/DBModels/ProtocolModel.py b/utils/DBModels/ProtocolModel.py index ec8a713..ff4d2b9 100644 --- a/utils/DBModels/ProtocolModel.py +++ b/utils/DBModels/ProtocolModel.py @@ -177,7 +177,7 @@ class TcRtdVar(BaseModel): max = CharField() compensationVar = CharField() varModel = IntegerField() - + unit = CharField(default='') # 查询变量是否存在 @classmethod @@ -194,7 +194,7 @@ class TcRtdVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel): + def createVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel, unit=''): self.varName = varName self.channelNumber = channelNumber self.description = des @@ -204,10 +204,11 @@ class TcRtdVar(BaseModel): self.max = max self.compensationVar = compensationVar self.varModel = varModel + self.unit = unit # print(self.createTime) self.save() - def initVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel): + def initVar(self, varName, channelNumber, des, varType, min, max, compensationVar, varModel, unit=''): self.varName = varName self.channelNumber = channelNumber self.description = des @@ -217,6 +218,7 @@ class TcRtdVar(BaseModel): self.max = max self.compensationVar = compensationVar self.varModel = varModel + self.unit = unit self.save() class AnalogVar(BaseModel): @@ -228,6 +230,7 @@ class AnalogVar(BaseModel): min = CharField() max = CharField() varModel = IntegerField() + unit = CharField(default='') # 查询变量是否存在 @classmethod @@ -244,7 +247,7 @@ class AnalogVar(BaseModel): query.execute() # 创建变量 - def createVar(self, varName, channelNumber, des, varType, min, max, varModel): + def createVar(self, varName, channelNumber, des, varType, min, max, varModel, unit=''): self.varName = varName self.channelNumber = channelNumber self.description = des @@ -253,10 +256,11 @@ class AnalogVar(BaseModel): self.min = min self.max = max self.varModel = varModel + self.unit = unit # print(self.createTime) self.save() - def initVar(self, varName, channelNumber, des, varType, min, max, varModel): + def initVar(self, varName, channelNumber, des, varType, min, max, varModel, unit=''): self.varName = varName self.channelNumber = channelNumber self.description = des @@ -265,6 +269,7 @@ class AnalogVar(BaseModel): self.min = min self.max = max self.varModel = varModel + self.unit = unit # print(self.createTime) self.save()