sleep.cpp
Go to the documentation of this file.
00001 
00002 // The roscpp_tutorials package tries to show off the roscpp c++ client library 
00003 //
00004 // Copyright (C) 2008, Morgan Quigley
00005 //
00006 // Redistribution and use in source and binary forms, with or without 
00007 // modification, are permitted provided that the following conditions are met:
00008 //   * Redistributions of source code must retain the above copyright notice, 
00009 //     this list of conditions and the following disclaimer.
00010 //   * Redistributions in binary form must reproduce the above copyright 
00011 //     notice, this list of conditions and the following disclaimer in the 
00012 //     documentation and/or other materials provided with the distribution.
00013 //   * Neither the name of Stanford University nor the names of its 
00014 //     contributors may be used to endorse or promote products derived from 
00015 //     this software without specific prior written permission.
00016 //   
00017 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
00018 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
00019 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
00020 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
00021 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
00022 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
00023 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
00024 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
00025 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
00026 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
00027 // POSSIBILITY OF SUCH DAMAGE.
00029 
00030 #include <cstdio>
00031 #include "ros/time.h"
00032 
00033 int main(int /*argc*/, char **/*argv*/)
00034 {
00035   ros::Time::init();
00036   // ros::Duration objects are constructed with two parameters: the first
00037   // is the number of seconds in the duration, and the second is the number
00038   // of nanoseconds.
00039   // Once you have this object constructed, you can call its sleep() method
00040   // to sleep for its duration. (The underlying implementation is nanosleep)
00041   printf("sleeping for one second\n");
00042   ros::Duration(1, 0).sleep();
00043 
00044   // This just shows how you have to have to use a lot of zeros to get a half
00045   // second in nanoseconds.
00046   printf("sleeping for a half second\n");
00047   ros::Duration(0, 500000000).sleep();
00048 
00049   // This usage constructs a ros::Duration object and keeps it around, calling
00050   // the sleep() function repeatedly.
00051   ros::Duration tenth(0, 100000000); // 0.1 seconds
00052   for (int i = 0; i < 5; i++)
00053   {
00054     printf("sleeping for a tenth of a second\n");
00055     tenth.sleep();
00056   }
00057 
00058   
00059   return 0;
00060 }
00061 


roscpp_tutorials
Author(s): Morgan Quigley
autogenerated on Sun Mar 20 2016 04:51:17