예제 #1
0
def initiateUserInfo(userName, userNumber, activityType, dateTime):
    fileName = "ProgramDataFiles\userInfo.csv"
    writeLine = userName + ", " + str(userNumber) + ", " + activityType + ", " +dateTime
    FileUtilitiy.writeTextLine(fileName, writeLine)
    FileUtilitiy.makeFolder("ProgramDataFiles\\" + str(userNumber) + "_" + userName)

    return writeLine
예제 #2
0
	def showData(self, showText):
		fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.usersName + "\\" + str(self.userNumber)  + "_" + self.usersName +"_Appraisals.txt"
		if showText != "":
			print showText
		writeText =  "currentFSMState: " + str(self.s) + " "
		writeText += showText
		FileUtilitiy.writeTextLine(fileName, writeText)
예제 #3
0
    def updateUserFSMVariables(self):
        fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Vars.txt"
        jsonVars = FileUtilitiy.readLinesToJSON(fileName)
        jsonVars = jsonVars[-1]
        print jsonVars
        jsonVars['exerciseSets'] = self.exerciseSets

        jsonRow = json.dumps(jsonVars)
        print jsonRow
        FileUtilitiy.writeTextLine(fileName, jsonRow)
예제 #4
0
 def naoWasPickedUp(self):
     if not self.naoIsPickedUp:
         print "**********************************"
         print "I was PICKED UP !!"
         print "**********************************"
         self.naoIsSafe = False
         self.naoIsPickedUp = True
         self.stopNAOActions()
         self.naoMotions.naoAliveOff()
         self.showScaredEyes('scared1')
         if self.waitingForInput:
             FileUtilitiy.hitEnterOnConsole()
         self.showScaredVoice("I was Picked up!")
     else:
         print " ********************************** I was already picked up"
예제 #5
0
 def naoWasTouched(self, touchedWhere = ""):
     if not self.naoIsTouched:
         print "**********************************"
         print "I was TOUCHED !!"
         print "**********************************"
         self.naoIsSafe = False
         self.naoIsTouched = True
         self.stopNAOActions()
         self.naoMotions.naoAliveOff()
         self.showScaredEyes('scared2')
         if self.waitingForInput:
             FileUtilitiy.hitEnterOnConsole()
         self.showScaredVoice("I was Touched! " + touchedWhere)
     else:
         print "********************************** I was already touched"
예제 #6
0
    def __init__(self):
        dbDir = "ProgramDataFiles\\foodDB.db"
        if os.path.isfile(dbDir):
            self.conn = sqlite3.connect(dbDir)
        else:
            self.conn = sqlite3.connect(dbDir.replace('\\', '/'))
        self.c = self.conn.cursor()

        foodItemsFile = "ProgramDataFiles\\foodItemsJSON.txt"
        foodItemsJSON = FileUtilitiy.readLinesToJSON(foodItemsFile)

        self.c.execute("select name from sqlite_master where type='table'")
        # print self.c.fetchall()

        self.dbName = "foodItems"
        sqlStr = "DROP TABLE " + self.dbName
        self.c.execute(sqlStr)
        sqlStr =  "CREATE TABLE " +  self.dbName + " "
        sqlStr += "(id, name, hasPoultry, hasGluten, calories, buyFrom, mealType, hasFish)"
        self.c.execute(sqlStr)

        for food in foodItemsJSON:
            sqlStr =  "INSERT INTO " + self.dbName + " VALUES "
            sqlStr += "('" + str(food['id']) + "', '" + str(food['name']) + "', '" + str(food['hasPoultry'])
            sqlStr += "', '" + str(food['hasGluten']) + "', '" + str(food['calories'])
            sqlStr += "', '" + str(food['buyFrom']) + "', '" + str(food['mealType'])
            sqlStr += "', '" + str(food['hasFish']) + "')"
            self.c.execute(sqlStr)
        self.conn.commit()
예제 #7
0
    def writeUserFSMVariables(self):
        fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Vars.txt"
        varNames = ["weatherIsNice", "canEatPoultry", "canEatGluten", "canEatFish",
                    "exerciseSets", "exerciseSuggested",
                    "meal1Suggested", "meal2Suggested", "meal3Suggested",
                    "hasAskedBreakfast", "hasTalkedJapan", "hasTalkedParis",
                    "dateTime", "activityInteractionType"]

        varVals = self.getFSMVariables()
        varVals.append(self.genUtil.getDateTime())
        varVals.append(self.activityInteractionType)
        jsonRow = {varNames[0]:varVals[0]}
        for i in range(1, len(varNames)):
            jsonRow[varNames[i]] = varVals[i]

        jsonRow = json.dumps(jsonRow)
        print jsonRow
        FileUtilitiy.writeTextLine(fileName, jsonRow)
        print "Wrote users VARS to file"
예제 #8
0
 def getUserFSMVars(self):
     fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Vars.txt"
     if FileUtilitiy.checkFileExists(fileName):
         jsonVars = FileUtilitiy.readLinesToJSON(fileName)
         jsonVars = jsonVars[-1]
         
         print "Loaded old VARS"
         print jsonVars
         print
         
         self.canEatPoultry = jsonVars['canEatPoultry']
         self.canEatGluten = jsonVars['canEatGluten']
         self.canEatFish = jsonVars['canEatFish']
         self.hasTalkedJapan = jsonVars['hasTalkedJapan']
         self.hasTalkedParis = jsonVars['hasTalkedParis']
         self.exerciseSets = jsonVars['exerciseSets']
     else:
         # keep own files
         print "Didn't need to grab VARS"
         pass
예제 #9
0
 def getUserFSMVariables(self):
     fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Vars.txt"
     print fileName
     jsonVars = FileUtilitiy.readLinesToJSON(fileName)
     jsonVars = jsonVars[-1]
     print jsonVars
     self.weatherIsNice = jsonVars['weatherIsNice']
     self.canEatPoultry = jsonVars['canEatPoultry']
     self.canEatGluten = jsonVars['canEatGluten']
     self.canEatFish = jsonVars['canEatFish']
     self.exerciseSets = jsonVars['exerciseSets']
     self.exerciseSuggested = jsonVars['exerciseSuggested']
     self.meal1Suggested = jsonVars['meal1Suggested']
     self.meal2Suggested = jsonVars['meal2Suggested']
     self.meal3Suggested = jsonVars['meal3Suggested']
예제 #10
0
def writeUserHistories(userName, userNumber, userInfo, dateTime,
                       stateTimeStamp, stateDateTime, fsmStateHist, reHist, oeHist, driveStatHist, fsmStateNameHist):
    fileName = "ProgramDataFiles\\" + str(userNumber) + "_" + userName + "\\" + str(userNumber)  + "_" + userName +"_Flow_" + str(dateTime) + ".csv"
    FileUtilitiy.writeTextLine(fileName, userInfo + " \n")
    writeLine = "State Time Stamp, State Date Time, FSM State, FSM State Name, Robot Emotion, Observable Expression, Drive Statuses"
    FileUtilitiy.writeTextLine(fileName, writeLine + " \n")
    for i in range(len(stateTimeStamp)):
        writeLine = str(stateTimeStamp[i]) + ", " + stateDateTime[i] + ", " + str(fsmStateHist[i]) + ", " + fsmStateNameHist[i] + ", "
        writeLine += str(reHist[i]) + ", " + str(oeHist[i]) + ", " + str(driveStatHist[i]).replace(",", "")
        FileUtilitiy.writeTextLine(fileName, writeLine)
예제 #11
0
	def getUserEmotion(self):
		# userEmotionFileName = "ProgramDataFiles\userEmotionTextDump.txt"
		# userEmotionFileName = "..\\Data_Files\\out_emotionmodelJSON_test.txt"
		userEmotionFileName = "..\\Data_Files\\out_emotionmodelJSON.txt"

		ueFileLines = FileUtilitiy.readTextLines(userEmotionFileName)
		# print "********************************************"
		# print ueFileLines
		ueJsonLines = ueFileLines[-3:]
		ueValence = 0
		ueArousal = 0
		for row in ueJsonLines:
			ueJson = json.loads(row)
			ueValence += ueJson["valence"] / 3.0
			ueArousal += ueJson["arousal"] / 3.0

		print "Valence: ", ueValence, ", Arousal: ", ueArousal
		return [ueValence, ueArousal]
예제 #12
0
def getFSMInputVars():
    fileName = "ProgramDataFiles\_FSM_INPUT.json"
    jsInput = FileUtilitiy.readFileToJSON(fileName)
    # print jsInput
    userName = jsInput['userName']
    userNumber = jsInput['userNumber']
    interactionType = jsInput['interactionType']
    lastInteraction = jsInput['lastInteraction']
    print
    print "userName: "******" | userNumber: ", userNumber, " | interactionType: ", interactionType, " | lastInteraction: ", lastInteraction
    print
    # select your activity to run
    # activityConsultant = "Consultant By Appointment"
    if 'morning' in interactionType.lower():
        activityInteractionType = "Daily Companion Morning"
    else:
        activityInteractionType = "Daily Companion End of Day"

    return [userName, userNumber, activityInteractionType, lastInteraction]
예제 #13
0
def getNAOIP():
    fileName = "ProgramDataFiles\_FSM_INPUT.json"
    jsInput = FileUtilitiy.readFileToJSON(fileName)
    naoIP = str(jsInput['naoIP'])
    return naoIP
예제 #14
0
	def showAppraisal(self, EV, name = ""):
		showText = str(EV)
		if showText != "":
			print showText
		fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Appraisals.txt"
		FileUtilitiy.writeTextLine(fileName, "currentFSMState: " + str(self.currentFSMState) + " " + name + " " + showText)
예제 #15
0
	def showDriveAppraisal(self, appraisal, driveName = "", likelihood = ""):
		showText = driveName + ": " + str(likelihood) + " Appraised: " + str(appraisal)
		print showText

		fileName = "ProgramDataFiles\\" + str(self.userNumber) + "_" + self.userName + "\\" + str(self.userNumber)  + "_" + self.userName +"_Appraisals.txt"
		FileUtilitiy.writeTextLine(fileName, "currentFSMState: " + str(self.currentFSMState) + " " + showText)