本文整理汇总了C++中AMListAction3::subActionCount方法的典型用法代码示例。如果您正苦于以下问题:C++ AMListAction3::subActionCount方法的具体用法?C++ AMListAction3::subActionCount怎么用?C++ AMListAction3::subActionCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AMListAction3
的用法示例。
在下文中一共展示了AMListAction3::subActionCount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findActionsOfType
QList<AMAction3*> findActionsOfType(AMAction3 *rootAction, AMAction3 *typeAction){
QList<AMAction3*> retVal;
AMListAction3 *castToListAction = qobject_cast<AMListAction3*>(rootAction);
if(castToListAction){
for(int x = 0; x < castToListAction->subActionCount(); x++){
if(typeAction->metaObject()->className() == castToListAction->subActionAt(x)->metaObject()->className())
retVal.append(castToListAction->subActionAt(x));
retVal.append((findActionsOfType(castToListAction->subActionAt(x), typeAction)));
}
}
return retVal;
}
示例2: findActionsWhereNameContains
QList<AMAction3*> findActionsWhereNameContains(AMAction3 *rootAction, const QString &searchString){
QList<AMAction3*> retVal;
AMListAction3 *castToListAction = qobject_cast<AMListAction3*>(rootAction);
if(castToListAction){
for(int x = 0; x < castToListAction->subActionCount(); x++){
AMListAction3 *subActionToListAction = qobject_cast<AMListAction3*>(castToListAction->subActionAt(x));
if(subActionToListAction && subActionToListAction->info()->shortDescription().contains(searchString))
retVal.append(subActionToListAction);
retVal.append((findActionsNamed(castToListAction->subActionAt(x), searchString)));
}
}
return retVal;
}
示例3: findActionsNamed
QList<AMAction3*> findActionsNamed(AMAction3 *rootAction, const QString &name){
QList<AMAction3*> retVal;
AMListAction3 *castToListAction = qobject_cast<AMListAction3*>(rootAction);
if(castToListAction){
for(int x = 0; x < castToListAction->subActionCount(); x++){
AMListAction3 *subActionToListAction = qobject_cast<AMListAction3*>(castToListAction->subActionAt(x));
if(subActionToListAction && subActionToListAction->info()->shortDescription() == name)
retVal.append(subActionToListAction);
retVal.append((findActionsNamed(castToListAction->subActionAt(x), name)));
}
}
return retVal;
}
示例4: createBeamOnActions
AMAction3* SXRMBBeamline::createBeamOnActions() const
{
if(!isConnected())
return 0;
// if all the valves are already open, we don't need to do that again
if (VVR16064B1003Valve_->isOpen() && VVR16064B1004Valve_->isOpen() && VVR16064B1006Valve_->isOpen() && VVR16064B1007Valve_->isOpen() && VVR16065B1001Valve_->isOpen() && PSH1406B1002Shutter_->isOpen())
return 0;
// stage 1: open / wait the valves action list
AMListAction3 *valveOpenActionsList = new AMListAction3(new AMListActionInfo3("SXRMB Valve Open action list", "SXRMB Valve Open"), AMListAction3::Sequential);
AMListAction3 *valveWaitActionsList = new AMListAction3(new AMListActionInfo3("SXRMB Valve Wait action list", "SXRMB Valve Wait"), AMListAction3::Parallel);
if (VVR16064B1003Valve_->isClosed()) {
AMAction3 *VVR16064B1003ValveSetpointOpenAction = AMActionSupport::buildControlMoveAction(VVR16064B1003Valve_, 1);
valveOpenActionsList->addSubAction(VVR16064B1003ValveSetpointOpenAction);
AMAction3 *VVR16064B1003ValveWaitAction = AMActionSupport::buildControlWaitAction(VVR16064B1003Valve_, 1);
valveWaitActionsList->addSubAction(VVR16064B1003ValveWaitAction);
}
if (VVR16064B1004Valve_->isClosed()) {
AMAction3 *VVR16064B1004ValveSetpointOpenAction = AMActionSupport::buildControlMoveAction(VVR16064B1004Valve_, 1);
valveOpenActionsList->addSubAction(VVR16064B1004ValveSetpointOpenAction);
AMAction3 *VVR16064B1004ValveWaitAction = AMActionSupport::buildControlWaitAction(VVR16064B1004Valve_, 1);
valveWaitActionsList->addSubAction(VVR16064B1004ValveWaitAction);
}
if (VVR16064B1006Valve_->isClosed()) {
AMAction3 *VVR16064B1006ValveSetpointOpenAction = AMActionSupport::buildControlMoveAction(VVR16064B1006Valve_, 1);
valveOpenActionsList->addSubAction(VVR16064B1006ValveSetpointOpenAction);
AMAction3 *VVR16064B1006ValveWaitAction = AMActionSupport::buildControlWaitAction(VVR16064B1006Valve_, 1);
valveWaitActionsList->addSubAction(VVR16064B1006ValveWaitAction);
}
if (VVR16064B1007Valve_->isClosed()) {
AMAction3 *VVR16064B1007ValveSetpointOpenAction = AMActionSupport::buildControlMoveAction(VVR16064B1007Valve_, 1);
valveOpenActionsList->addSubAction(VVR16064B1007ValveSetpointOpenAction);
AMAction3 *VVR16064B1007ValveWaitAction = AMActionSupport::buildControlWaitAction(VVR16064B1007Valve_, 1);
valveWaitActionsList->addSubAction(VVR16064B1007ValveWaitAction);
}
if (VVR16065B1001Valve_->isClosed()) {
AMAction3 *VVR16065B1001ValveSetpointOpenAction = AMActionSupport::buildControlMoveAction(VVR16065B1001Valve_, 1);
valveOpenActionsList->addSubAction(VVR16065B1001ValveSetpointOpenAction);
AMAction3 *VVR16065B1001ValveWaitAction = AMActionSupport::buildControlWaitAction(VVR16065B1001Valve_, 1);
valveWaitActionsList->addSubAction(VVR16065B1001ValveWaitAction);
}
AMListAction3 *openValvesActionsList = 0;
if (valveOpenActionsList->subActionCount() > 0) {
AMListAction3 *openValvesActionsList = new AMListAction3(new AMListActionInfo3("SXRMB Beam On", "SXRMB Beam On: stage 1"), AMListAction3::Parallel);
openValvesActionsList->addSubAction(valveOpenActionsList);
openValvesActionsList->addSubAction(valveWaitActionsList);
}
// stage 2: open/wait photon shutter action list, which MUST run after the valves open actions
AMListAction3 *openPhotonShutterActionsList = 0;
if (PSH1406B1002Shutter_->isClosed()) {
AMAction3 *PSH1406B1002ShutterOpenAction = AMActionSupport::buildControlMoveAction(PSH1406B1002Shutter_, 1);
AMAction3 *PSH1406B1002ShutterWaitAction = AMActionSupport::buildControlWaitAction(PSH1406B1002Shutter_, 1);
openPhotonShutterActionsList = new AMListAction3(new AMListActionInfo3("SXRMB Beam On", "SXRMB Beam On: stage 2"), AMListAction3::Parallel);
openPhotonShutterActionsList->addSubAction(PSH1406B1002ShutterOpenAction);
openPhotonShutterActionsList->addSubAction(PSH1406B1002ShutterWaitAction);
}
// create the beam on action list. The openValveActionsList and openPhotonShutterActionsList MUST run sequentially
AMListAction3 *beamOnActionsList = new AMListAction3(new AMListActionInfo3("SXRMB Beam On", "SXRMB Beam On"), AMListAction3::Sequential);
if (openValvesActionsList) {
beamOnActionsList->addSubAction(openValvesActionsList);
}
if (openPhotonShutterActionsList) {
beamOnActionsList->addSubAction(openPhotonShutterActionsList);
}
return beamOnActionsList;
}
示例5: generateActionTree
void AMScanActionControllerScanAssembler::generateActionTree(){
actionTree_ = generateActionTreeForAxis(controls_->at(0), axes_.at(0));
QList<AMAction3*> insertionPoints = findInsertionPoints(actionTree_);
for(int x = 1; x < axes_.count(); x++){
QList<AMAction3*> newInsertionPoints;
newInsertionPoints.clear();
for(int y = 0; y < insertionPoints.count(); y++){
AMListAction3 *castParentToListAction = qobject_cast<AMListAction3*>(insertionPoints.at(y)->parentAction());
if(castParentToListAction){
int indexOfAction = castParentToListAction->indexOfSubAction(insertionPoints.at(y));
castParentToListAction->insertSubAction(generateActionTreeForAxis(controls_->at(x), axes_.at(x)), indexOfAction);
castParentToListAction->deleteSubAction(indexOfAction+1);
newInsertionPoints.append(findInsertionPoints(castParentToListAction->subActionAt(indexOfAction)));
}
}
insertionPoints.clear();
insertionPoints = newInsertionPoints;
}
QList<AMAction3*> detectorInsertionPoints = findInsertionPoints(actionTree_);
for(int x = 0; x < detectorInsertionPoints.count(); x++){
AMListAction3 *castParentToListAction = qobject_cast<AMListAction3*>(detectorInsertionPoints.at(x)->parentAction());
if(castParentToListAction){
int indexOfAction = castParentToListAction->indexOfSubAction(detectorInsertionPoints.at(x));
castParentToListAction->insertSubAction(generateActionListForDetectorAcquisition(), indexOfAction);
castParentToListAction->deleteSubAction(indexOfAction+1);
}
}
AMListAction3 *castRetValToListAction = qobject_cast<AMListAction3*>(actionTree_);
if(castRetValToListAction){
AMListAction3 *castFirstToListAction = qobject_cast<AMListAction3*>(castRetValToListAction->subActionAt(1));
if(castFirstToListAction)
castFirstToListAction->addSubAction(generateActionListForDetectorInitialization());
AMListAction3 *castLastToListAction = qobject_cast<AMListAction3*>(castRetValToListAction->subActionAt(castRetValToListAction->subActionCount()-2));
if(castLastToListAction)
castLastToListAction->addSubAction(generateActionListForDetectorCleanup());
}
emit actionTreeGenerated(actionTree_);
}