本文整理汇总了C++中state::setId方法的典型用法代码示例。如果您正苦于以下问题:C++ state::setId方法的具体用法?C++ state::setId怎么用?C++ state::setId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类state
的用法示例。
在下文中一共展示了state::setId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: transitions
/**
* @brief eine Transition wird anhand der Eingabe durchgefuehrt
* Die IDs der Zustaende idle(IDLE), selected(SELECTED), amountset(AMOUNTSET) und finished(FINISHED) werden gesetzt.
*
* Anhand der ID des aktuellen Zustandes wird entschieden:
* -IDLE: Anhand der Eingabe wird entschieden:
* *SELECT: Der neue Zustand ist selected. Die Produkt ID wird (Aufruf getDetectedPid()) bestimmt.
* *sonst: Fehlermeldung
* -SELECTED: Anhand der Eingabe wird entschieden:
* *ONE: Der neue Zustand ist amountset. Die Produktmenge ist 1.
* *TWO: Der neue Zustand ist amountset. Die Produktmenge ist 2.
* *BACK: Der neue Zustand ist idle.
* *CANCEL: Der neue Zustand ist idle.
* *sonst: Fehlermeldung
* -AMOUNTSET: Anhand der Eingabe wird entschieden:
* *PUTINCART: der neue Zustand ist finished. Das Produkt wird in den Warenkorb abgelegt.
* *BACK: der neue Zustand ist selected. Die Produkt Menge wird zurueckgesetzt.
* *CANCEL: der neue Zustand ist idle. Die Produkt Menge wird zurueckgesetzt.
* *sonst: Fehlermeldung
* -FINISHED: Anhand der Eingabe wird entschieden:
* *MORE: der neue Zustand ist idle. Die Produkt Menge wird zurueckgesetzt.
* *sonst: Fehlermeldung
* @param input Eine Zahl, von der abhaengig ist, welche Aktion als naechstes ausgefuehrt wird.
* @return void
* @see IDLE 0
* @see SELECTED 1
* @see AMOUNTSET 2
* @see FINISHED 3
* @see ONE 1
* @see TWO 2
* @see SELECT 100
* @see PUTINCART 101
* @see BACK 102
* @see CANCEL 103
* @see MORE 104
*/
void automaton::transitions(int input){
idle.setId(IDLE);
selected.setId(SELECTED);
amountset.setId(AMOUNTSET);
finished.setId(FINISHED);
QMessageBox msgBox;
msgBox.setText("Die StateId ist: "+QString::number(currentState.getId())+"\nDer Input ist: "+QString::number(input));
msgBox.exec();
switch (currentState.getId()){
case IDLE:
switch (input) {
case SELECT:
// neue pid hier setzen
setState(selected);
this->setPid(connectedKinect->getDetectedPid());
break;
default:
qDebug() << "FEHLER: case IDLE";
break;
}
break;
case SELECTED:
switch (input) {
case ONE:
setState(amountset);
setAmount(1);
break;
case TWO:
setState(amountset);
setAmount(2);
break;
case BACK:
setState(idle);
break;
case CANCEL:
setState(idle);
break;
default:
qDebug() << "FEHLER: case SELECTED";
break;
}
break;
case AMOUNTSET:
switch (input) {
case PUTINCART:
{
setState(finished);
QSqlQuery query;
query.prepare("SELECT price, title FROM products WHERE id = :pid");
query.bindValue(":pid", pid);
query.exec();
query.next();
double price = query.value(0).toDouble();
QString title = query.value(1).toString();
connectedObj->addToCart(pid,amount,price,title);
break;
}
case BACK:
//.........这里部分代码省略.........