Skip to content
Snippets Groups Projects
Commit 20f98460 authored by sveseli's avatar sveseli
Browse files

DAQ interfaces changed in order to allow simultaneous daqs for the same experiment

parent e0ccb58d
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ class ExperimentRouteDescriptor:
# Start experiment daq
{
'name' : 'startDaq',
'path' : '%s/experiments/startDaq' % contextRoot,
'path' : '%s/experimentsByName/:(experimentName)/startDaq/:(dataDirectory)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'startDaq',
'method' : ['POST']
......@@ -31,16 +31,25 @@ class ExperimentRouteDescriptor:
# Stop experiment daq
{
'name' : 'stopDaq',
'path' : '%s/experiments/stopDaq' % contextRoot,
'path' : '%s/experimentsByName/:(experimentName)/stopDaq/:(dataDirectory)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'stopDaq',
'method' : ['POST']
},
# Get daq info
{
'name' : 'getDaqInfo',
'path' : '%s/experimentDaqs/:(id)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getDaqInfo',
'method' : ['GET']
},
# Upload experiment data
{
'name' : 'upload',
'path' : '%s/experiments/upload' % contextRoot,
'path' : '%s/experimentsByName/:(experimentName)/upload/:(dataDirectory)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'upload',
'method' : ['POST']
......@@ -49,7 +58,7 @@ class ExperimentRouteDescriptor:
# Get upload info
{
'name' : 'getUploadInfo',
'path' : '%s/experiments/upload/:(id)' % contextRoot,
'path' : '%s/experimentUploads/:(id)' % contextRoot,
'controller' : experimentSessionController,
'action' : 'getUploadInfo',
'method' : ['GET']
......
......@@ -19,12 +19,10 @@ class ExperimentSessionController(DmSessionController):
@cherrypy.expose
@DmSessionController.require(DmSessionController.isAdministrator())
@DmSessionController.execute
def startDaq(self, **kwargs):
experimentName = kwargs.get('experimentName')
def startDaq(self, experimentName, dataDirectory, **kwargs):
if not experimentName:
raise InvalidRequest('Missing experiment name.')
experimentName = Encoder.decode(experimentName)
dataDirectory = kwargs.get('dataDirectory')
if not dataDirectory:
raise InvalidRequest('Missing data directory.')
dataDirectory = Encoder.decode(dataDirectory)
......@@ -32,9 +30,6 @@ class ExperimentSessionController(DmSessionController):
encodedDaqInfo = kwargs.get('daqInfo')
if encodedDaqInfo is not None:
daqInfo = json.loads(Encoder.decode(encodedDaqInfo))
else:
daqInfo['experimentName'] = experimentName
daqInfo['dataDirectory'] = dataDirectory
response = self.experimentSessionControllerImpl.startDaq(experimentName, dataDirectory, daqInfo).getFullJsonRep()
self.logger.debug('Returning: %s' % response)
return response
......@@ -42,29 +37,40 @@ class ExperimentSessionController(DmSessionController):
@cherrypy.expose
@DmSessionController.require(DmSessionController.isAdministrator())
@DmSessionController.execute
def stopDaq(self, **kwargs):
experimentName = kwargs.get('experimentName')
def stopDaq(self, experimentName, dataDirectory, **kwargs):
if not experimentName:
raise InvalidRequest('Missing experiment name.')
experimentName = Encoder.decode(experimentName)
response = self.experimentSessionControllerImpl.stopDaq(experimentName).getFullJsonRep()
if not dataDirectory:
raise InvalidRequest('Missing data directory.')
dataDirectory = Encoder.decode(dataDirectory)
response = self.experimentSessionControllerImpl.stopDaq(experimentName, dataDirectory).getFullJsonRep()
self.logger.debug('Returning: %s' % response)
return response
@cherrypy.expose
@DmSessionController.require(DmSessionController.isAdministrator())
@DmSessionController.execute
def upload(self, **kwargs):
encodedDaqInfo = kwargs.get('daqInfo')
if not encodedDaqInfo:
raise InvalidRequest('Invalid DAQ info provided.')
daqInfo = json.loads(Encoder.decode(encodedDaqInfo))
def getDaqInfo(self, id, **kwargs):
response = self.experimentSessionControllerImpl.getDaqInfo(id).getFullJsonRep()
self.logger.debug('Returning: %s' % response)
return response
if not daqInfo.has_key('experimentName'):
raise InvalidRequest('Experiment name is missing.')
if not daqInfo.has_key('dataDirectory'):
raise InvalidRequest('Data directory is missing.')
response = self.experimentSessionControllerImpl.upload(daqInfo).getFullJsonRep()
@cherrypy.expose
@DmSessionController.require(DmSessionController.isAdministrator())
@DmSessionController.execute
def upload(self, experimentName, dataDirectory, **kwargs):
if not experimentName:
raise InvalidRequest('Missing experiment name.')
experimentName = Encoder.decode(experimentName)
if not dataDirectory:
raise InvalidRequest('Missing data directory.')
dataDirectory = Encoder.decode(dataDirectory)
daqInfo = {}
encodedDaqInfo = kwargs.get('daqInfo')
if encodedDaqInfo:
daqInfo = json.loads(Encoder.decode(encodedDaqInfo))
response = self.experimentSessionControllerImpl.upload(experimentName, dataDirectory, daqInfo).getFullJsonRep()
self.logger.debug('Returning: %s' % response)
return response
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment