sock.bind((host, port)) print "server started %s:%s" % (host, port) cm = camera.init_camera(glparams['tmp_image_file']) print "camera initialized" ser = initserial() # wait for connections # terminate with try: while True: print "recving..." data, address = sock.recvfrom(size) message = data + "\0" print "datagram from %s:\t%s" % (address, message) if message.startswith("sensor"): # print "sensor:",data reply = "ack:sensor data received" elif message.startswith("carctl"): reply = "carctl:" + processCarCtlData(data) elif message.startswith("camera"): # print "camera request" reply = "cmr:" + getCameraData(cm) else: reply = "ack:" + data sock.sendto(reply, address) finally: sock.close() ser.close() camera.release_camera(cm)
def process_message(message, fromid, remotejids): global bot,glparams resp="" talkonly = -1 if fromid == remotejids['master_id']: if message.find("hello")>=0 or message.find("hi")>=0: resp = u'marvel,欢迎您' talkonly = 1 elif message.find(u"温度")>=0 or message.find(u"多热")>=0 or message.find(u"多冷")>=0 : code, temp = sensor.read_temperature() if code < 0: resp = temp talkonly = 1 else: resp = u'marvel,您家里当前温度是%s摄氏度'%temp elif message.find(u"亮度")>=0 or message.find(u"多亮")>=0: code, brightness = sensor.read_brightness() if code < 0: resp = brightness talkonly = 1 else: desc = sensor.get_brightness_description(brightness) resp = u'marvel,您家里当前亮度是%s,%s'%(brightness, desc) elif message.find(u"图片")>=0: cm = camera.init_camera(glparams['tmp_image_file']) if camera.capture_camera(bot.cm) > 0: resp = u'已经照完' else: resp = u'照相失败' camera.release_camera(bot.cm) talkonly = 1 else: talkonly = 1 resp = u'marvel,我看不懂您的话,blush' if message.find(u"谢谢")>=0: resp = resp+u',不客气//%s'%message else: resp = resp+"//%s"%message if message.find("talkonly")>=0: talkonly = 1 sys.stdout.write("I said:%s\n"%resp) if glparams['rep_gtalk']=='true': bot.send_master_message(resp) sys.stdout.write("gtalk message sent\n") if talkonly < 0 and ( glparams['rep_twitter']=='true' or message.find(u'推一下')>=0): send_twitter_message(resp) sys.stdout.write("twitter message sent\n") if talkonly < 0 and glparams['rep_weibo']=='true': bot.send_weibo_message(resp) sys.stdout.write("weibo message sent\n") #os.write(sys.stdin.fileno(), resp) elif fromid == remotejids['weibo_id']: if message.find(u'[评论]')>=0: print "new comment received" elif message.find(u'[私信]')>=0: print "new mail received" return
cm = camera.init_camera(glparams['tmp_image_file']) print "camera initialized" ser=initserial() # wait for connections # terminate with try: while True: print "recving..." data, address = sock.recvfrom(size) message = data + "\0" print "datagram from %s:\t%s"% (address, message) if message.startswith("sensor"): # print "sensor:",data reply = "ack:sensor data received" elif message.startswith("carctl"): reply = "carctl:"+processCarCtlData(data) elif message.startswith("camera"): # print "camera request" reply = "cmr:"+getCameraData(cm) else: reply = "ack:"+data sock.sendto(reply, address) finally: sock.close() ser.close() camera.release_camera(cm)
def process_message(message, fromid, remotejids): global bot, glparams resp = "" talkonly = -1 if fromid == remotejids['master_id']: if message.find("hello") >= 0 or message.find("hi") >= 0: resp = u'marvel,欢迎您' talkonly = 1 elif message.find(u"温度") >= 0 or message.find( u"多热") >= 0 or message.find(u"多冷") >= 0: code, temp = sensor.read_temperature() if code < 0: resp = temp talkonly = 1 else: resp = u'marvel,您家里当前温度是%s摄氏度' % temp elif message.find(u"亮度") >= 0 or message.find(u"多亮") >= 0: code, brightness = sensor.read_brightness() if code < 0: resp = brightness talkonly = 1 else: desc = sensor.get_brightness_description(brightness) resp = u'marvel,您家里当前亮度是%s,%s' % (brightness, desc) elif message.find(u"图片") >= 0: cm = camera.init_camera(glparams['tmp_image_file']) if camera.capture_camera(bot.cm) > 0: resp = u'已经照完' else: resp = u'照相失败' camera.release_camera(bot.cm) talkonly = 1 else: talkonly = 1 resp = u'marvel,我看不懂您的话,blush' if message.find(u"谢谢") >= 0: resp = resp + u',不客气//%s' % message else: resp = resp + "//%s" % message if message.find("talkonly") >= 0: talkonly = 1 sys.stdout.write("I said:%s\n" % resp) if glparams['rep_gtalk'] == 'true': bot.send_master_message(resp) sys.stdout.write("gtalk message sent\n") if talkonly < 0 and (glparams['rep_twitter'] == 'true' or message.find(u'推一下') >= 0): send_twitter_message(resp) sys.stdout.write("twitter message sent\n") if talkonly < 0 and glparams['rep_weibo'] == 'true': bot.send_weibo_message(resp) sys.stdout.write("weibo message sent\n") #os.write(sys.stdin.fileno(), resp) elif fromid == remotejids['weibo_id']: if message.find(u'[评论]') >= 0: print "new comment received" elif message.find(u'[私信]') >= 0: print "new mail received" return