void AMActionRunnerAddActionBar3::addActionToQueue(ActionQueue::QueueOperation operation)
{
	AMAction3 * action = repeatScansEnabled_ ? createMultipleScans() : createScan();
	if (!action)
		return;

	AMActionRunner3* workflow = AMActionRunner3::workflow();

	if (operation == ActionQueue::RunOnlyThisOne) {
		workflow->runActionImmediatelyInQueue(action);

	} else {
		// add actions to queue
		int insertIndex = ActionQueue::insertTaskToBeginning(operation) ? 0: -1;
		workflow->insertActionInQueue(action, insertIndex);

		// start the queue
		if (ActionQueue::startQueue(operation)) {
			workflow->setQueuePaused(false);
		}
	}

	if(goToWorkflowOption_->isChecked())
		emit showWorkflowRequested();
}
Esempio n. 2
0
void AMActionRunnerAddActionBar::onAddToQueueRequested() {

	AMAction* action = createAction();
	if(!action)
		return;

	AMActionRunner::s()->addActionToQueue(action);

	if(goToWorkflowOption_->isChecked())
		emit showWorkflowRequested();
}
Esempio n. 3
0
void AMScanConfigurationViewHolder::onAddToQueueRequested() {

	if(!view_ || !view_->configuration())
		return;

	AMScanConfiguration *config = view_->configuration()->createCopy();
	/*
	config->setUserScanName(scanNameDictionaryLineEdit_->text());
	config->setUserExportNmae(exportNameDictionaryLineEdit_->text());
	*/
	AMBeamlineScanAction* action = new AMBeamlineScanAction(config);
	workflow_->insertBeamlineAction(-1, action);

	if(goToWorkflowOption_->isChecked())
		emit showWorkflowRequested();
}
Esempio n. 4
0
void REIXSAppController::createScanConfigurationPanes()
{
	// Sets up xes scan configuration view and view holder
	xesScanConfigurationView_ = new REIXSXESScanConfigurationDetailedView(REIXSBeamline::bl()->mcpDetector());
	xesScanConfigurationViewHolder_ = new AMScanConfigurationViewHolder3(xesScanConfigurationView_);
	mw_->addPane(xesScanConfigurationViewHolder_, scanPaneCategoryName_, "Emission Scan", scanPaneIcon_);

	// Sets up reix scan configuration  view and view holder
	REIXSRIXSScanConfigurationView* rixsConfigView = new REIXSRIXSScanConfigurationView();
	rixsScanConfigurationViewHolder_ = new AMScanConfigurationViewHolder3(rixsConfigView);
	mw_->addPane(rixsScanConfigurationViewHolder_, scanPaneCategoryName_, "RIXS Scan", scanPaneIcon_);

	// Sets up XAS scan configuration view and view holder
	REIXSXASScanConfigurationView* xasConfigView = new REIXSXASScanConfigurationView(xasScanConfiguration_);
	xasScanConfigurationViewHolder_ = new AMScanConfigurationViewHolder3(xasConfigView, true);
	mw_->addPane(xasScanConfigurationViewHolder_, scanPaneCategoryName_, "Absorption Scan", scanPaneIcon_);

	// Sets up generic scan configuration view and view holder
	genericScanConfigurationView_ = new AMGenericStepScanConfigurationView(genericScanConfiguration_,
										   REIXSBeamline::bl()->exposedControls(),
										   REIXSBeamline::bl()->exposedDetectors());
	genericScanConfigurationViewHolder_ = new AMScanConfigurationViewHolder3("Generic Scan", false, true, genericScanConfigurationView_);
	mw_->addPane(genericScanConfigurationViewHolder_, scanPaneCategoryName_, "Generic Scan", scanPaneIcon_);

	// Sets up spectrometer view
	spectrometerPanel_ = new REIXSXESSpectrometerControlPanel(REIXSBeamline::bl()->mcpDetector(), 0);
	mw_->addPane(spectrometerPanel_, scanPaneCategoryName_, "Spectromter Setup", ":/22x22/gnome-display-properties.png");

	// Sets up sample chamber view
	sampleChamberButtonPanel_ = new REIXSSampleChamberButtonPanel();
	REIXSSampleManagementPre2013Widget* sampleManagementPane = new REIXSSampleManagementPre2013Widget(sampleChamberButtonPanel_,
																				  QUrl("http://v2e1610-401.clsi.ca/mjpg/1/video.mjpg"),
																				  QUrl("http://v2e1610-401.clsi.ca/mjpg/2/video.mjpg"),
																				  REIXSBeamline::bl()->samplePlate(),
																				  new REIXSSampleManipulator(),
																				  0);
	mw_->addPane(sampleManagementPane, scanPaneCategoryName_, "Sample Positions", ":/22x22/gnome-display-properties.png");

	////////////////// Temporary testing/commissioning widgets ////////////////////
	 /*
	QWidget* spectrometerControlWidget = new QWidget();
	QHBoxLayout* hl = new QHBoxLayout();
	hl->addWidget(new REIXSXESHexapodControlEditor(REIXSBeamline::bl()->spectrometer()->hexapod()));

	QGroupBox* gb = new QGroupBox("Motors");
	QVBoxLayout* vl = new QVBoxLayout();
	vl->addWidget(new QLabel("Spectrometer Rotation"));
	vl->addWidget(new AMControlEditor(REIXSBeamline::bl()->spectrometer()->spectrometerRotationDrive()));

	vl->addWidget(new QLabel("Detector Translation"));
	vl->addWidget(new AMControlEditor(REIXSBeamline::bl()->spectrometer()->detectorTranslation()));

	vl->addWidget(new QLabel("Detector Tilt"));
	vl->addWidget(new AMControlEditor(REIXSBeamline::bl()->spectrometer()->detectorTiltDrive()));

	gb->setLayout(vl);

	hl->addWidget(gb);

	hl->addWidget(new REIXSXESSpectrometerControlEditor(REIXSBeamline::bl()->spectrometer()));

	hl->addStretch(1);

	spectrometerControlWidget->setLayout(hl);
	mw_->addPane(spectrometerControlWidget, "Experiment Setup", "Spectrometer controls", ":/utilities-system-monitor.png");
	*/
	////////////////// End of Temporary testing/commissioning widgets ////////////////////

	connect(xasScanConfiguration_, SIGNAL(totalTimeChanged(double)), xasScanConfigurationViewHolder_, SLOT(updateOverallScanTime(double)));
	xasScanConfigurationViewHolder_->updateOverallScanTime(xasScanConfiguration_->totalTime());

	connect(xasScanConfigurationViewHolder_, SIGNAL(showWorkflowRequested()), this, SLOT(goToWorkflow()));
	connect(xesScanConfigurationViewHolder_, SIGNAL(showWorkflowRequested()), this, SLOT(goToWorkflow()));
	connect(rixsScanConfigurationViewHolder_, SIGNAL(showWorkflowRequested()), this, SLOT(goToWorkflow()));
}