rabin 7 år sedan
förälder
incheckning
1da241c1e9
3 ändrade filer med 54 tillägg och 19 borttagningar
  1. 12 1
      mqtt/connect.py
  2. 40 16
      pub.py
  3. 2 2
      service/record_msg.py

+ 12 - 1
mqtt/connect.py

@@ -7,6 +7,8 @@
 """
 from demeter import *
 import paho.mqtt.client as mqtt
+from gevent import monkey; monkey.patch_all()
+import gevent
 
 class Connect(object):
 
@@ -30,7 +32,16 @@ class Connect(object):
 	def connect(self, client, userdata, flags, rc):
 		#print("Connected with result code "+str(rc))
 		#client.subscribe("sensor/temperature/#")
-		client.subscribe("sensor/#")
+		
+		gevent.joinall([
+			gevent.spawn(self.subscribe, client, 'sensor/#'),
+			gevent.spawn(self.subscribe, client, 'pic/#'),
+			gevent.spawn(self.subscribe, client, 'msg/#'),
+		])
+
+	@staticmethod
+	def subscribe(client, key):
+		client.subscribe(key)
 
 	def handle(self, key, value):
 		Demeter.record(key, value)

+ 40 - 16
pub.py

@@ -8,20 +8,44 @@
 from mqtt.pub import *
 import random
 import time
-# 模拟设备数据
-gateway = '10086'
-def device():
-	return str(random.randint(100000, 100010))
-def val():
-	return str(random.randint(1, 50))
+import struct
 
-hard = 'sensor'
-pubType = ('temperature', 'humidity')
-pub = Pub()
-while True:
-	for v in pubType:
-		key = hard+'/'+v+'/'+gateway+'/'+device()
-		value = val()
-		print 'key:' + key + ' value:' + value
-		pub.push(key, value)
-	time.sleep(1)
+def sensor():
+	# 模拟设备数据
+	gateway = '10086'
+	def device():
+		return str(random.randint(100000, 100010))
+	def val():
+		return str(random.randint(1, 50))
+
+	hard = 'sensor'
+	pubType = ('temperature', 'humidity')
+	pub = Pub()
+	while True:
+		for v in pubType:
+			key = hard+'/'+v+'/'+gateway+'/'+device()
+			value = val()
+			print 'key:' + key + ' value:' + value
+			pub.push(key, value)
+		time.sleep(1)
+
+def pic():
+	gateway = '10086'
+	pub = Pub()
+	key = 'pic/'
+
+	with open('admin/static/images/banner.png', 'rb') as f:
+		for data in f:
+			print struct.pack('c', data)
+
+	"""
+	handle = open('admin/static/images/banner.png', 'rb')
+	img = handle.read(1)
+	handle.close()
+	data = struct.pack('c', img)
+	print data
+	"""
+	#pub.push(key, value)
+
+#sensor()
+pic()

+ 2 - 2
service/record_sms.py → service/record_msg.py

@@ -2,14 +2,14 @@
 # -*- coding: utf-8 -*-
 """
     demeter service
-    name:record_sms.py 处理消息数据
+    name:record_msg.py 处理消息数据
     author:rabin
     key:msg/type_key/farm_id/uid
 """
 import time
 import json
 from demeter import *
-class Record_sms(object):
+class Record_msg(object):
 
 	def handle(self, config, value):
 		model = Demeter.model('msg_type')