本文整理汇总了C++中ArKeyHandler::restore方法的典型用法代码示例。如果您正苦于以下问题:C++ ArKeyHandler::restore方法的具体用法?C++ ArKeyHandler::restore怎么用?C++ ArKeyHandler::restore使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArKeyHandler
的用法示例。
在下文中一共展示了ArKeyHandler::restore方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char** argv)
{
// set up our simpleConnector
ArSimpleConnector simpleConnector(&argc, argv);
// robot
ArRobot robot;
// a key handler so we can do our key handling
ArKeyHandler keyHandler;
ArLog::init(ArLog::StdOut,ArLog::Verbose);
// if there are more arguments left then it means we didn't
// understand an option
if (!simpleConnector.parseArgs() || argc > 1)
{
simpleConnector.logOptions();
keyHandler.restore();
exit(1);
}
// mandatory init
Aria::init();
ArLog::init(ArLog::StdOut, ArLog::Terse, NULL, true);
// let the global aria stuff know about it
Aria::setKeyHandler(&keyHandler);
// toss it on the robot
robot.attachKeyHandler(&keyHandler);
// set up the robot for connecting
if (!simpleConnector.connectRobot(&robot))
{
printf("Could not connect to robot... exiting\n");
Aria::shutdown();
keyHandler.restore();
return 1;
}
// turn on the motors for the velocity response test
robot.comInt(ArCommands::ENABLE, 1);
velTime.setToNow();
// turn off the sonar
robot.comInt(ArCommands::SONAR, 0);
ArGlobalFunctor1<ArRobot *> userTaskCB(&userTask, &robot);
robot.addUserTask("iotest", 100, &userTaskCB);
robot.comInt(ArCommands::IOREQUEST, 1);
requestTime.setToNow();
//start the robot running, true so that if we lose connection the run stops
robot.run(true);
// now exit
Aria::shutdown();
return 0;
}
示例2:
/*!
* Callback function for the q key.
*/
void
quitCB(void)
{
roundRobinFlag = false;
keyHandler.restore();
advancedptr->shutDown();
}
示例3: main
int main(int argc, char **argv)
{
char* host = "localhost";
if(argc > 1)
host = argv[1];
Aria::init();
ArClientBase client;
ArGlobalFunctor escapeCB(&escape);
ArKeyHandler keyHandler;
Aria::setKeyHandler(&keyHandler);
printf("Connecting to standaloneServerDemo at %s:%d...\n", host, 7272);
if (!client.blockingConnect(host, 7272))
{
printf("Could not connect to server, exiting\n");
exit(1);
}
InputHandler inputHandler(&client, &keyHandler);
OutputHandler outputHandler(&client);
keyHandler.addKeyHandler(ArKeyHandler::ESCAPE, &escapeCB);
client.runAsync();
while (client.getRunningWithLock())
{
keyHandler.checkKeys();
ArUtil::sleep(1);
}
keyHandler.restore();
Aria::shutdown();
return 0;
}
示例4: hardExit
void hardExit(void)
{
ArKeyHandler *keyHandler;
robot->disconnect();
if ((keyHandler = Aria::getKeyHandler()) != NULL)
keyHandler->restore();
else
printf("Could not restore keyboard settings.");
exit(0);
}
示例5: main
//.........这里部分代码省略.........
//ArAnalogGyro gyro(&robot);
// if we're not using the sim, make a serial connection and set it up
if (!useSim)
{
ArSerialConnection *serCon;
serCon = new ArSerialConnection;
serCon->setPort();
//serCon->setBaud(38400);
con = serCon;
}
// if we are using the sim, set up a tcp connection
else
{
ArTcpConnection *tcpCon;
tcpCon = new ArTcpConnection;
tcpCon->setPort();
con = tcpCon;
}
// set the connection on the robot
robot.setDeviceConnection(con);
// try to connect, if we fail exit
if (!robot.blockingConnect())
{
printf("Could not connect to robot... exiting\n");
Aria::shutdown();
return 1;
}
// set up a key handler so escape exits and attach to the robot
ArKeyHandler keyHandler;
robot.attachKeyHandler(&keyHandler);
// run the robot, true here so that the run will exit if connection lost
robot.runAsync(true);
// if we're not using the sim, set up the port for the laser
if (!useSim)
{
laserCon.setPort(ArUtil::COM3);
sick.setDeviceConnection(&laserCon);
}
// now that we're connected to the robot, connect to the laser
sick.runAsync();
if (!sick.blockingConnect())
{
printf("Could not connect to SICK laser... exiting\n");
robot.disconnect();
Aria::shutdown();
return 1;
}
#ifdef WIN32
// wait until someone pushes the motor button to go
while (1)
{
robot.lock();
if (!robot.isRunning())
exit(0);
if (robot.areMotorsEnabled())
{
robot.unlock();
break;
}
robot.unlock();
ArUtil::sleep(100);
}
#endif
// basically from here on down the robot just cruises around a bit
robot.lock();
// enable the motors, disable amigobot sounds
robot.comInt(ArCommands::ENABLE, 1);
// move a couple meters
robot.setRotVel(3000);
robot.unlock();
ArUtil::sleep(15 * 1000);
robot.lock();
robot.disconnect();
robot.unlock();
keyHandler.restore();
exit(1);
// now exit
return 0;
}
示例6: main
int main(int argc, char **argv)
{
bool done;
double distToTravel = 3000;
int spinTime = 0;
// set up our simpleConnector
ArSimpleConnector simpleConnector(&argc, argv);
// set up a key handler so escape exits and attach to the robot
ArKeyHandler keyHandler;
Aria::init();
robot = new ArRobot;
printf("You can press the escape key to exit this program\n");
// parse its arguments
if (simpleConnector.parseArgs())
{
simpleConnector.logOptions();
exit(1);
}
// if there are more arguments left then it means we didn't
// understand an option
/*
if (argc > 1)
{
simpleConnector.logOptions();
keyHandler.restore();
exit(1);
}
*/
ArGlobalFunctor exitCB(&hardExit);
ArGlobalFunctor printerCB(&printer);
keyHandler.addKeyHandler(ArKeyHandler::ESCAPE, &exitCB);
robot->attachKeyHandler(&keyHandler);
Aria::setKeyHandler(&keyHandler);
// set up the robot for connecting
if (!simpleConnector.connectRobot(robot))
{
printf("Could not connect to robot... exiting\n");
Aria::shutdown();
keyHandler.restore();
return 1;
}
//robot->addUserTask("printer", 50, &printerCB);
// run the robot, true here so that the run will exit if connection lost
robot->runAsync(true);
#ifdef WIN32
// wait until someone pushes the motor button to go
printf("Press the motor button to start the robot moving\n");
while (1)
{
robot->lock();
if (!robot->isRunning())
hardExit();
if (robot->areMotorsEnabled())
{
robot->unlock();
break;
}
robot->unlock();
ArUtil::sleep(100);
}
#endif
ArAnalogGyro *gyro;
if (argc == 1)
{
printf("Gyro\n");
gyro = new ArAnalogGyro(robot);
}
printf("Waiting for inertial to stabilize for 5 seconds.\n");
// wait a bit for the inertial to warm up
ArUtil::sleep(5000);
// basically from here on down the robot just cruises around a bit
robot->lock();
// enable the motors, disable amigobot sounds
robot->comInt(ArCommands::SONAR, 0);
robot->comInt(ArCommands::ENABLE, 1);
robot->setMoveDoneDist(200);
// move a couple meters
printf("Driving out\n");
robot->move(distToTravel);
robot->setHeading(0);
robot->unlock();
do {
ArUtil::sleep(100);
robot->lock();
//robot->setHeading(0);
//.........这里部分代码省略.........
示例7: main
int main(int argc, char **argv)
{
int key;
ArKeyHandler keyHandler;
Aria::init();
printf("type away... (ESC to quit)\n");
while (1)
{
//keyHandler.checkKeys();
key = keyHandler.getKey();
if(key == -1)
{
ArUtil::sleep(100);
continue;
}
printf("keyHandler.getKey() returned %d.\n", key);
switch (key) {
case ArKeyHandler::UP:
printf("Up\n");
break;
case ArKeyHandler::DOWN:
printf("Down\n");
break;
case ArKeyHandler::LEFT:
printf("Left\n");
break;
case ArKeyHandler::RIGHT:
printf("Right\n");
break;
case ArKeyHandler::ESCAPE:
printf("Escape\n");
printf("Exiting\n");
keyHandler.restore();
exit(0);
case ArKeyHandler::F1:
printf("F1\n");
break;
case ArKeyHandler::F2:
printf("F2\n");
break;
case ArKeyHandler::F3:
printf("F3\n");
break;
case ArKeyHandler::F4:
printf("F4\n");
break;
case ArKeyHandler::F5:
printf("F5\n");
break;
case ArKeyHandler::F6:
printf("F6\n");
break;
case ArKeyHandler::F7:
printf("F7\n");
break;
case ArKeyHandler::F8:
printf("F8\n");
break;
case ArKeyHandler::F9:
printf("F9\n");
break;
case ArKeyHandler::F10:
printf("F10\n");
break;
case ArKeyHandler::F11:
printf("F11\n");
break;
case ArKeyHandler::F12:
printf("F12\n");
break;
case ArKeyHandler::HOME:
printf("HOME\n");
break;
case ArKeyHandler::END:
printf("END\n");
break;
case ArKeyHandler::INSERT:
printf("INSERT\n");
break;
case ArKeyHandler::DEL:
printf("DELETE\n");
break;
case ArKeyHandler::PAGEUP:
printf("PAGEUP\n");
break;
case ArKeyHandler::PAGEDOWN:
printf("PAGEDOWN\n");
break;
case ArKeyHandler::SPACE:
printf("Space\n");
break;
case ArKeyHandler::TAB:
printf("Tab\n");
break;
case ArKeyHandler::ENTER:
printf("Enter\n");
break;
case ArKeyHandler::BACKSPACE:
printf("Backspace\n");
//.........这里部分代码省略.........
示例8: main
int main(int argc, char **argv)
{
double speed = 1000;
double squareSide = 2000;
// whether to use the sim for the laser or not, if you use the sim
// for hte laser, you have to use the sim for the robot too
// robot
robot = new ArRobot;
// the laser
ArSick sick;
// set up our simpleConnector
ArSimpleConnector simpleConnector(&argc, argv);
// set up a key handler so escape exits and attach to the robot
ArKeyHandler keyHandler;
robot->attachKeyHandler(&keyHandler);
// parse its arguments
if (simpleConnector.parseArgs())
{
simpleConnector.logOptions();
keyHandler.restore();
exit(1);
}
// if there are more arguments left then it means we didn't
// understand an option
/*
if (argc > 1)
{
simpleConnector.logOptions();
keyHandler.restore();
exit(1);
}
*/
// set a default filename
//std::string filename = "c:\\log\\1scans.2d";
std::string filename = "1scans.2d";
// see if we want to use a different filename
//if (argc > 1)
//Lfilename = argv[1];
printf("Logging to file %s\n", filename.c_str());
// start the logger with good values
//sick.configureShort(useSim, ArSick::BAUD38400, ArSick::DEGREES180, ArSick::INCREMENT_HALF);
ArSickLogger logger(robot, &sick, 300, 25, filename.c_str());
// mandatory init
Aria::init();
// add it to the robot
robot->addRangeDevice(&sick);
//ArAnalogGyro gyro(robot);
// set up the robot for connecting
if (!simpleConnector.connectRobot(robot))
{
printf("Could not connect to robot->.. exiting\n");
Aria::shutdown();
return 1;
}
robot->setRotVelMax(300);
robot->setRotAccel(300);
robot->setRotDecel(300);
robot->setAbsoluteMaxTransVel(2000);
robot->setTransVelMax(2000);
robot->setTransAccel(500);
robot->setTransDecel(500);
/*
robot->comInt(82, 30); // rotkp
robot->comInt(83, 200); // rotkv
robot->comInt(84, 0); // rotki
robot->comInt(85, 15); // transkp
robot->comInt(86, 450); // transkv
robot->comInt(87, 4); // transki
*/
robot->comInt(82, 30); // rotkp
robot->comInt(83, 200); // rotkv
robot->comInt(84, 0); // rotki
robot->comInt(85, 30); // transkp
robot->comInt(86, 450); // transkv
robot->comInt(87, 4); // transki
// run the robot, true here so that the run will exit if connection lost
robot->runAsync(true);
// set up the laser before handing it to the laser mode
simpleConnector.setupLaser(&sick);
// now that we're connected to the robot, connect to the laser
sick.runAsync();
if (!sick.blockingConnect())
//.........这里部分代码省略.........