void ManualTankState::onKeyPress(uint16_t keyCode) { Tank * tank = getTank(); if(tank == NULL) return; switch(keyCode) { case IR_BUTTON_A: tank->setMode(Auto); break; case IR_BUTTON_B: break; case IR_BUTTON_C: tank->setMode(Parking); break; case IR_BUTTON_D: break; case IR_BUTTON_E: break; case IR_BUTTON_F: break; case IR_BUTTON_SETTING: tank->stop(); break; case IR_BUTTON_UP: tank->getCurrentMove() == Forward ? tank->forward(_baseSpeed * 2): tank->forward(_baseSpeed); break; case IR_BUTTON_DOWN: tank->getCurrentMove() == Backward ? tank->backward(_baseSpeed * 2) : tank->backward(_baseSpeed); break; case IR_BUTTON_LEFT: tank->left(); break; case IR_BUTTON_RIGHT: tank->right(); break; case IR_BUTTON_0: break; case IR_BUTTON_1: break; case IR_BUTTON_2: break; case IR_BUTTON_3: break; case IR_BUTTON_4: break; case IR_BUTTON_5: break; case IR_BUTTON_6: break; case IR_BUTTON_7: break; case IR_BUTTON_8: break; case IR_BUTTON_9: break; default:break; } }