WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 07-08-2013, 09:45 AM
mape2k mape2k is offline
Member
 
Join Date: Mar 2013
Posts: 60
Inconsistent timestamp while logging

Hi all,

I have come across a problem concerning the timestamps in a log file that I want to use to monitor the position and view angle of a subject during an experiment.

At the beginning of the experiment, I am calling the logging function with vizact.ontimer(fs,function), with fs being the desired sampling frequency. When I use this method, I am not getting timestamps with equal time spans in the log file. It seems that the time spans vary about the given fs with +-10ms.
I am using datetime.datetime.now() to get the current time. Is there any other way of producing accurate time readings? I have read that datetime essentially uses time.time(), which is supposed to be the most accurate function in Python.

Here is an example for an fs = 10:

Timestamp, Position, View Angle
18:42:41:056,[0.000,1.820,-0.000],[-0.000]
18:42:41:166,[0.000,1.820,-0.000],[-0.000]
18:42:41:259,[0.000,1.820,-0.000],[-0.000]
18:42:41:368,[0.000,1.820,-0.000],[-0.000]
18:42:41:462,[0.000,1.820,-0.000],[-0.000]
18:42:41:556,[0.000,1.820,-0.000],[-0.000]
18:42:41:665,[0.000,1.820,-0.000],[-0.000]
18:42:41:758,[0.000,1.820,-0.000],[-0.000]
18:42:41:868,[0.000,1.820,-0.000],[-0.000]
18:42:41:961,[0.000,1.820,-0.000],[-0.000]
18:42:42:070,[0.000,1.820,-0.000],[-0.000]
18:42:42:164,[0.000,1.820,-0.000],[-0.000]
18:42:42:258,[0.000,1.820,-0.000],[-0.000]

Also, I am including a minimum working example:

Code:
from __future__ import division
import viz
import vizact
import viztask
import os
import datetime

class myTimer():

	def __init__(self,number,dateFormat,timeFormat):
		
		self.nr = number
		self.dateFormat = dateFormat
		self.timeFormat = timeFormat
	
	def time(self):
		
		self.curDateTime = datetime.datetime.now()
		self.curTime = self.curDateTime.strftime(self.timeFormat)
		if self.timeFormat == '%H:%M:%S:%f':
			self.curTime = self.curTime[:-3]
		return self.curTime


logTime = myTimer(1,'%d.%m.%Y','%H:%M:%S:%f')	

file = open('test.txt', 'w')	
	
def posLogger():
	
	curAngle = viz.MainView.getEuler()
	curPos = viz.MainView.getPosition()
	file.write('%s,[%0.3f,%0.3f,%0.3f],[%0.3f]\n' % 
	(logTime.time(),curPos[0],curPos[1],curPos[2],curAngle[0]))

# -----
# Start
# -----

fs = 10
print 1/fs
logTimer = vizact.ontimer((1/fs),posLogger)	
viz.go()
Reply With Quote
 

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Head tracking logging & realtime data tmcw Vizard 2 08-18-2007 10:31 AM


All times are GMT -7. The time now is 08:49 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC