Esempio n. 1
0
def ModelStartCamera( refTime=None, raceFileName=None ):
	Shutdown()
	
	race = Model.race
	if race and race.enableUSBCamera:
		if refTime is None:
			refTime = race.startTime
		if raceFileName is None:
			raceFileName = Utils.getFileName()
		
		assert refTime is not None and raceFileName is not None
	
		if race.enableJChipIntegration:
			StartVideoBuffer( refTime, raceFileName )
		else:
			PhotoFinish.SetCameraState( True )
		return True
	
	return False
Esempio n. 2
0
def StartVideoBuffer( refTime, raceFileName ):
	global videoBuffer
	
	if not videoBuffer:
		camera = PhotoFinish.SetCameraState( True )
		if not camera:
			return False
			
		dirName = PhotoFinish.getPhotoDirName( raceFileName )
		if not os.path.isdir( dirName ):
			try:
				os.makedirs( dirName )
			except Exception as e:
				logException( e, sys.exc_info() )
				return False
				
		videoBuffer = VideoBuffer( camera, refTime, dirName )
		videoBuffer.start()
	return True
Esempio n. 3
0
if __name__ == '__main__':
	import time
	import shutil
	
	race = Model.newRace()
	race._populate()

	app = wx.App(False)
	
	dirName = 'VideoBufferTest_Photos'
	if os.path.isdir(dirName):
		shutil.rmtree( dirName, True )
	os.mkdir( dirName )
	
	tRef = datetime.datetime.now()
	camera = PhotoFinish.SetCameraState( True )
	vb = VideoBuffer.VideoBuffer( camera, tRef, dirName )
	vb.start()
	time.sleep( 1.0 )
	
	mainWin = wx.Frame(None, title="CrossMan", size=(600,400))
	mainWin.Show()
	photoSyncDialog = PhotoSyncViewerDialog( mainWin, title = u"PhotoSyncViewer", size=(600,400) )
	def doRefresh( bib ):
		t = (datetime.datetime.now() - tRef).total_seconds()
		wx.CallLater( 300, photoSyncDialog.refresh, vb, t, bib )
		
	photoSyncDialog.Show()
	photoSyncDialog.reset()
	bib = 100
	for d in xrange(0, 1000*60, 1000):
Esempio n. 4
0
def Shutdown():
	global videoBuffer
	if videoBuffer:
		videoBuffer.stop()
		videoBuffer = None
	PhotoFinish.SetCameraState( False )