rabin 8 years ago
parent
commit
34773e4df6
6 changed files with 23 additions and 4 deletions
  1. 12 2
      admin/page/device.py
  2. 3 0
      front/page/__load__.py
  3. 2 1
      model/data.py
  4. 4 1
      model/device_info.py
  5. 1 0
      service/record.py
  6. 1 0
      web/page/farm.py

+ 12 - 2
admin/page/device.py

@@ -183,6 +183,14 @@ class info_update_path(Load):
 				,update_farm_id = Demeter.config['setting']['farmList']
 				,update_gateway_id = self.service('common').list('device_gateway')
 			)
+		elif self.data['info']['hardware_type'] in (2,4):
+			self.common(
+				path = 'info'
+				#,label = (u'设备名称', u'设备id', u'计算公式', u'实时计算公式')
+				#,update = ('name-input-required','hardware_id-show-',u'exp-text--{n}为当前数据,只处理最新数据',u'out_exp-text--处理所有数据,比较消耗服务器资源')
+				,label = (u'设备名称', u'设备id', u'计算公式')
+				,update = ('name-input-required','hardware_id-show-',u'exp-text--{n}为当前数据,只处理最新数据')
+			)
 		else:
 			self.common(
 				path = 'info'
@@ -329,8 +337,10 @@ class type_update_path(Load):
 	def get(self):
 		self.common(
 			path = 'type'
-			,label = (u'类型名称', u'类型标识',u'类型单位',u'表达式')
-			,update = ('name-input-required','key-input-required','unit-input-',u'exp-text--请输入表达式,{n}代表当前数据')
+			#,label = (u'类型名称', u'类型标识',u'类型单位',u'表达式')
+			#,update = ('name-input-required','key-input-required','unit-input-',u'exp-text--请输入表达式,{n}代表当前数据')
+			,label = (u'类型名称', u'类型标识',u'类型单位')
+			,update = ('name-input-required','key-input-required','unit-input-')
 		)
 		self.commonOne('device_type')
 		self.commonView('update')

+ 3 - 0
front/page/__load__.py

@@ -182,6 +182,7 @@ class Device(object):
 					power.append(value)
 				# 获取电源设备
 				if value['hardware_type'] == 4:
+					#value['value'] = Demeter.exp(value['out_exp'], value['value'])
 					power.append(value)
 					"""
 					if not self.data['stat']:
@@ -189,6 +190,7 @@ class Device(object):
 					"""
 				# 获取采集设备
 				if value['hardware_type'] == 2:
+					#value['value'] = Demeter.exp(value['out_exp'], value['value'])
 					sensor.append(value)
 					if not self.data['stat']:
 						self.data['stat'] = value
@@ -227,6 +229,7 @@ class Device(object):
 				if self.data['group'][key]['device']:
 					for k, v in enumerate(self.data['group'][key]['device']):
 						if v['hardware_type'] == 2 or v['hardware_type'] == 4:
+							#v['value'] = Demeter.exp(v['out_exp'], v['value'])
 							if v['hardware_type'] == 2 and self.data['info']['stat'] == True and not self.data['stat']:
 								self.data['stat'] = v
 							self.data['show'] = True

+ 2 - 1
model/data.py

@@ -37,7 +37,7 @@ class Data(Model):
 		}]
 		return json
 
-	def get(self, farm, device, col='value', search=''):
+	def get(self, farm, device, col='value', search='', exp=''):
 		data = {}
 		data['farm'] = farm
 		data['device'] = device
@@ -55,6 +55,7 @@ class Data(Model):
 			for values in data.raw['series'][0]['values']:
 				if values[1]:
 					v = float(round(values[1], 2))
+					v = Demeter.exp(exp, v)
 					temp = values[0].split('.')
 					uformat = utc_format
 					if len(temp) <= 1:

+ 4 - 1
model/device_info.py

@@ -18,6 +18,7 @@ class Device_info(Model):
 	gateway_id = Fields(type='uuid', comment='网关id')
 	type_id = Fields(type='int', comment='设备类型')
 	value = Fields(type='varchar(1000)', comment='设备传过来的值')
+	exp = Fields(type='varchar(500)', comment='表达式')
 	max = Fields(type='float', comment='最大上限', match='number|最大上限必须是数字')
 	min = Fields(type='float', comment='最小下限', match='number|最小下限必须是数字')
 	cxnum = Fields(type='int', comment='超限次数')
@@ -26,4 +27,6 @@ class Device_info(Model):
 	status = Fields(type='boolean', default='False', comment='设备连接状态')
 	state = Fields(type='boolean', default='True', comment='数据存在状态')
 	cdate = Fields(type='int', default='time', comment='创建时间')
-	udate = Fields(type='int', default='time', comment='接入时间')
+	udate = Fields(type='int', default='time', comment='接入时间')
+
+	#ALTER TABLE demeter_device_info ADD exp varchar(500); 

+ 1 - 0
service/record.py

@@ -51,6 +51,7 @@ class Record(object):
 				#update
 				model.id = device['id']
 				id = device['id']
+				value = Demeter.exp(device['exp'], value)
 				model.update(farm_id=gateway['farm_id'], value=value,status=True,cdate='time')
 				# 上下限判断
 				# 条件判断

+ 1 - 0
web/page/farm.py

@@ -18,6 +18,7 @@ class index_path(Load):
 		if self.data['env']:
 			for key, value in enumerate(self.data['env']):
 				info = self.service('common').one('device_info', id=value['device_id'])
+				#info['value'] = Demeter.exp(info['out_exp'], info['value'])
 				self.data['env'][key]['device'] = info
 				info = self.service('common').one('device_type', id=value['type_id'])
 				self.data['env'][key]['type'] = info