Exemple #1
0
    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)
Exemple #2
0
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
Exemple #3
0
    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)


Exemple #4
0
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