Beispiel #1
0
def associations():
    if flask_request.method == 'POST':
        try:
            #register the associations here.
            gestureDict = {}
            gestureDict['gest_1'] = flask_request.form['gest_1']
            gestureDict['gest_2'] = flask_request.form['gest_2']
            gestureDict['gest_3'] = flask_request.form['gest_3']
            gestureDict['gest_4'] = flask_request.form['gest_4']
            gestureDict['gest_5'] = flask_request.form['gest_5']

            print(str(gestureDict))
            print(comms.user)

            db = DBHelper(True)  #open in passive mode
            for key in gestureDict:
                db.addGesture(comms.user, key, gestureDict[key])
            db.disconnect()
            return render_template('active.html')
        except:
            return "Error processing form. "

    else:
        SRO = comms.getSRO()
        states = ujson.loads(SRO)['lab-cam']['States']
        states_str = ','.join(states)
        db = DBHelper(True)
        current_states = []
        for x in range(1, 6):
            gest = db.getGestureFunction(comms.user, 'gest_' + str(x))
            current_states.append(
                gest) if gest != None else current_states.append('')
        current_states = ','.join(current_states)

        resp = make_response(
            render_template('associations.html',
                            default=states_str,
                            data=current_states))
        return resp
Beispiel #2
0
    def onMessage(self, data, isBinary):
        """
                Description: Decodes the image sent from the camera 
                """
        #STEP 1: Load in, convert, and decompress frame for use
        frame = ujson.loads(data.decode("utf8"))
        frame = np.asarray(frame, np.uint8)
        frame = cv2.imdecode(frame, cv2.IMREAD_COLOR)
        #post users client name here.

        #frame = message

        if (self.factory.bridge.user is not None):
            print(self.factory.bridge.user)
            frame, username, gesture = self.factory.rec.processFrame(
                frame, self.factory.bridge.user)
            if (gesture != '0'):  #gesture is '0' by default
                db = DBHelper(True)
                gest_func = db.getGestureFunction(username,
                                                  "gest_" + str(gesture))

                acu = db.getACUByUsername(username)
                tag = acu + ",," + str(gest_func)
                if gest_func != None:
                    self.factory.bridge.sendTag(tag)

        if (self.factory.rec.is_registering == False
                and self.factory.rec.reg_complete == True):
            self.factory.bridge.web_factory.connections["client1"].sendMessage(
                "registration".encode("UTF8"))
        frame = cv2.UMat(frame)
        frame = cv2.imencode('.jpg', frame, [cv2.IMWRITE_JPEG_QUALITY, 20])[1]
        frame = base64.b64encode(frame)

        #send to web factory
        self.factory.bridge.web_factory.post(self.factory.bridge.user, frame)