Skip to content
This repository was archived by the owner on Jul 28, 2021. It is now read-only.

Commit 7cf0517

Browse files
Transitioned to new mocapExperiment using logger
1 parent 1304722 commit 7cf0517

3 files changed

Lines changed: 49 additions & 30 deletions

File tree

Utils/mocapInterface.py

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,8 @@ def __init__(self, config = None):
539539
self.loggingData = False
540540
self.outFilePath = []
541541

542-
self.logger = []
543-
self.fhandler = []
542+
self.logger = False
543+
self.fhandler = False
544544

545545
###
546546

@@ -1059,35 +1059,24 @@ def saveRigid(self,fileName):
10591059
rigidBody.save()
10601060
else: print 'Error: Rigid body not initialized'
10611061

1062-
1063-
def startLogging(self,outFilePath):
1064-
1065-
self.outFilePath = outFilePath
1066-
self.createLog(outFilePath)
1067-
self.loggingData = True
1068-
1069-
def stopLogging(self):
1070-
# shut 'er down
1071-
self.logger.removeHandler(self.fhandler)
1072-
self.fhandler.flush()
1073-
self.fhandler.close()
1074-
10751062
def createLog(self,outFileDir):
10761063

1064+
self.outFilePath = outFileDir
10771065
self.logger = logging.getLogger()
1078-
import datetime
1079-
now = datetime.datetime.now()
1066+
1067+
fhandlerPath = outFileDir #+ '\\' + dateTimeStr + '\\'
10801068

1081-
dateTimeStr = str(now.year) + '-' + str(now.month) + '-' + str(now.day) + '-' + str(now.hour) + '-' + str(now.minute)
10821069
import os
1083-
1084-
fhandlerPath = outFileDir + '\\' + dateTimeStr + '\\'
1085-
10861070
try:
10871071
os.stat(fhandlerPath)
10881072
except:
1073+
10891074
os.mkdir(fhandlerPath)
10901075

1076+
import datetime
1077+
now = datetime.datetime.now()
1078+
dateTimeStr = str(now.year) + '-' + str(now.month) + '-' + str(now.day) + '-' + str(now.hour) + '-' + str(now.minute)
1079+
10911080
fhandlerFileLoc = fhandlerPath +'mocap_data-' + dateTimeStr + '.log'
10921081

10931082
self.fhandler = logging.FileHandler(filename=fhandlerFileLoc, mode='w')
@@ -1096,6 +1085,33 @@ def createLog(self,outFileDir):
10961085
self.logger.addHandler(self.fhandler)
10971086
self.logger.setLevel(logging.DEBUG)
10981087

1088+
def startLogging(self):
1089+
1090+
if( self.logger):
1091+
self.loggingData = True
1092+
else:
1093+
print 'Must create Logger using mocap.createLog'
1094+
1095+
def stopLogging(self):
1096+
1097+
self.loggingData = False
1098+
1099+
def removeLog(self):
1100+
1101+
if( self.logger):
1102+
# shut 'er down
1103+
self.logger.removeHandler(self.fhandler)
1104+
1105+
if( self.fhandler):
1106+
self.fhandler.flush()
1107+
self.fhandler.close()
1108+
1109+
1110+
def writeStringToLog(self,stringOut):
1111+
1112+
if( self.logger ):
1113+
logging.info(str(stringOut))
1114+
10991115
def logData(self,rb):
11001116
# rigid body marker data
11011117

@@ -1120,7 +1136,7 @@ def logData(self,rb):
11201136
timeStamp = time.time()
11211137
pos_XYZ = m.pos
11221138

1123-
mPositionOutString = mPositionOutString + '<< ' + rb.filename + '-M' + str(mID) +'_XYZ ' + ' ''[ %f %f %f %f ] >> ' % (timeStamp, pos_XYZ[0], pos_XYZ[1], pos_XYZ[2])
1139+
mPositionOutString = mPositionOutString + '<< ' + rb.filename + '-M' + str(rb.marker_ids[mID]) +'_XYZ ' + ' ''[ %f %f %f %f ] >> ' % (timeStamp, pos_XYZ[0], pos_XYZ[1], pos_XYZ[2])
11241140

11251141
logging.info(str(tformOutString + posOutString + mPositionOutString))
11261142

main.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,8 @@ def __init__(self, expConfigFileName):
495495
self.expDataFile.write(expMetaDataStr + '\n')
496496

497497
# MocapInterface handles writing mocap data in a seperate thread.
498-
self.config.mocap.startLogging('F:\Data\Stepover')
498+
#self.config.mocap.startLogging('F:\Data\Stepover')
499+
self.config.mocap.createLog(dataOutPutDir)
499500

500501
from shutil import copyfile
501502

@@ -506,7 +507,6 @@ def __init__(self, expConfigFileName):
506507
copyfile('.\\'+os.environ['COMPUTERNAME'] + '.cfg', dataOutPutDir+os.environ['COMPUTERNAME'] + '.cfg')# system config
507508
copyfile('.\\sysCfgSpec.ini', dataOutPutDir+ 'sysCfgSpec.ini') # system config spec
508509

509-
510510
##############################################################
511511
## Event flag
512512

@@ -517,8 +517,6 @@ def __init__(self, expConfigFileName):
517517

518518
self.eventFlag = eventFlag()
519519

520-
521-
522520
def _timerCallback(self,timerID):
523521

524522
mainViewPos_XYZ = viz.MainView.getPosition()
@@ -868,8 +866,6 @@ def getOutput(self):
868866

869867
mocap = self.config.mocap
870868
#trialDuration = time.time() - self.currentTrial.startTime
871-
872-
mocap.writer.writeDataFromTime = self.currentTrial.startTime
873869

874870
return outputString #%f %d' % (viz.getFrameTime(), self.inCalibrateMode)
875871

@@ -937,6 +933,8 @@ def endTrial(self):
937933
if( type(self.currentTrial.trialTimeoutTimerObj) is not list ):
938934
self.currentTrial.trialTimeoutTimerObj.remove()
939935

936+
# Stop loggging mocap data
937+
self.config.mocap.stopLogging()
940938

941939
if( self.trialNumber == endOfTrialList ):
942940

@@ -1031,7 +1029,12 @@ def giveGoSignal(self):
10311029
# Change the Obstacle Color to Green as a visual feedback for the subject
10321030
if( self.currentTrial.objIsVirtual):
10331031
self.currentTrial.obsObj.setColor(viz.WHITE)
1034-
1032+
1033+
# Start logging data
1034+
self.config.mocap.writeStringToLog('Trial: ' + str(self.trialNumber+1))
1035+
self.config.mocap.startLogging()
1036+
1037+
10351038
def inputLegLength(self):
10361039

10371040
#print('SETTING LEG LENGTH TO 100!')

performLabVR2.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ vizconfigFileName = 'virtualPlane'
4747

4848
owlParamInterp = 0
4949
owlParamPostProcess = 0
50-
owlParamFrequ = 0 # 0 = max frequency
50+
owlParamFrequ = 420 # 0 = max frequency
5151
owlParamMarkerCount = 18
5252
owlParamMarkerCondThresh = 50
5353
owlParamModeNum = 3

0 commit comments

Comments
 (0)