dever 5 years ago
parent
commit
62e6fe4c33
3 changed files with 22 additions and 6 deletions
  1. 1 5
      cron.py
  2. 20 1
      service/device.py
  3. 1 0
      service/record.py

+ 1 - 5
cron.py

@@ -56,7 +56,6 @@ def control():
 					msg = '1'
 					service.mul(v, '', True)
 					model.update(exp=msg, oper=False, operdate=Demeter.time())
-				gevent.sleep(1)
 
 		gevent.sleep(1)
 		
@@ -109,7 +108,6 @@ def mulQueue():
 						mul_model.update(oper='', value=v['old'])
 					else:
 						mul_model.update(oper='')
-				gevent.sleep(1)
 
 		gevent.sleep(1)
 
@@ -137,7 +135,6 @@ def timing():
 				switch(value)
 				model.id = value['id']
 				model.update(status=1)
-				gevent.sleep(1)
 		gevent.sleep(timeSleep)
 
 def loop():
@@ -164,7 +161,6 @@ def loop():
 						state = True
 				if state:
 					switch(value)
-				gevent.sleep(1)
 		gevent.sleep(timeSleep)
 
 def savePic():
@@ -187,7 +183,7 @@ def handle():
 		gevent.spawn(loop),
 		gevent.spawn(device),
 		gevent.spawn(savePic),
-		#gevent.spawn(control),
+		gevent.spawn(control),
 		gevent.spawn(timeSync),
 		gevent.spawn(mulQueue),
 		gevent.spawn(mulQueueDrop),

+ 20 - 1
service/device.py

@@ -49,8 +49,24 @@ class Device(object):
 				switch = 1
 			else:
 				switch = 2
+			# 直到执行成功才执行下一个
 			for v in value['devices']:
-				self.switch(v, switch)
+				feedback = self.switch(v, switch)
+				if feedback:
+					state = False
+					while(state == False):
+						state = self.check(v);
+
+	# 验证按钮执行状态 1为成功了
+	def switchCheck(self, device_id):
+		model = Demeter.model('device_info')
+		model.id = device_id
+		model.exp = '1'
+		info = model.select(type='fetchone')
+		if info:
+			return True
+		return False
+
 
 	# 处理开关-向设备发送请求
 	def switch(self, device_id, switch=1, mul=False, queue=False):
@@ -107,12 +123,15 @@ class Device(object):
 					value = switch
 					#pub.push(update, value, qos=0, callback=self.switchAction, param={'info':info, 'key':feedback, 'switch':switch}, feedback=True)
 					pub.push(update, value)
+
+					return feedback
 		else:
 			msg = self.notice('offline')
 			model.id = device_id
 			model.update(exp=msg, cxnum=switch, oper=True, operdate=Demeter.time())
 			self.mul(info, info['name'] + '失败:' + msg, False)
 			#Demeter.error('offline')
+		return ''
 
 	# 处理开关-响应
 	def switchAction(self, param, client, userdata, mid, msg='ok'):

+ 1 - 0
service/record.py

@@ -7,6 +7,7 @@
 """
 from demeter.core import *
 import json
+import time
 class Record(object):
 
 	def topic(self, key):