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
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)
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)
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"
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"
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()
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"
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
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']
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)
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]
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]
def getNAOIP(): fileName = "ProgramDataFiles\_FSM_INPUT.json" jsInput = FileUtilitiy.readFileToJSON(fileName) naoIP = str(jsInput['naoIP']) return naoIP
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)
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)