本文整理汇总了C++中iceutil::Time类的典型用法代码示例。如果您正苦于以下问题:C++ Time类的具体用法?C++ Time怎么用?C++ Time使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Time类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1:
std::string
ReplayConductor::toString( const IceUtil::Time &t )
{
stringstream ss;
ss << t.toSeconds() << ":" << t.toMicroSeconds()-t.toSeconds()*1e6;
return ss.str();
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:7,代码来源:replayconductor.cpp
示例2: convertSize
bool
CPatchDlg::patchProgress(Ice::Long, Ice::Long, Ice::Long totalProgress, Ice::Long totalSize)
{
IceUtil::Time elapsed = IceUtil::Time::now(IceUtil::Time::Monotonic) - _startTime;
if(elapsed.toSeconds() > 0)
{
CString speed;
speed.Format(L" %s/s", convertSize(totalProgress / elapsed.toSeconds()));
_speed->SetWindowText(speed);
}
int pcnt = 100;
if(totalSize > 0)
{
pcnt = static_cast<int>(totalProgress * 100 / totalSize);
}
CString percent;
percent.Format(L"%d%%", pcnt);
_percent->SetWindowText(percent);
CString total;
total.Format(L" %s / %s", convertSize(totalProgress), convertSize(totalSize));
_total->SetWindowText(total);
_progress->SetPos(pcnt);
processMessages();
return !_isCancel;
}
开发者ID:bholl,项目名称:zeroc-ice,代码行数:29,代码来源:PatchClientDlg.cpp
示例3: HardwareException
void
Driver::read( hydrointerfaces::LaserScanner2d::Data &data )
{
// tmp data storage
hokuyo_aist::HokuyoData hokuyoData;
try {
laser_->GetRanges( &hokuyoData );
// set the time stamp right away
IceUtil::Time t = IceUtil::Time::now();
data.timeStampSec = (int)t.toSeconds();
data.timeStampUsec = (int)t.toMicroSeconds() - data.timeStampSec*1000000;
//TODO: Michael 23/Sept/08
//this timeStamp is actually at the _end_ of the scan; also
//scan-time is _not_ negligable for the hokuyos (10-30Hz --> 100-33ms)
//
//--> need to keep track of delta time between scans, and use fieldOfView
//to calculate a backcorrection, assuming 1 rotation per scan (true for
//URG and UHG, unknown for TopURG). Also should put something like
//durationOfScan into the interface.
//
//This would allow to interpolate senor pose per individual range-reading.
//Yes, I really think this is neccessary.
}
catch (hokuyo_aist::HokuyoError &e)
{
std::stringstream ss;
ss << "Read on urg_nz failed. Errorcode: "
<< e.Code()
<< ", Errordescription: "
<< e.what()
<< " continuing";
//context_.tracer().error( ss.str() ,2 );
throw gbxutilacfr::HardwareException( ERROR_INFO, ss.str() );
}
const uint32_t* ranges = hokuyoData.Ranges();
//const uint32_t* intensities = hokuyoData.Intensities();
size_t length = hokuyoData.Length();
assert(config_.numberOfSamples == (int)length); // make sure the receiving end has enough space
double minRangeHokuyo = config_.minRange*1000.0; // convert to mm
for (unsigned int i=0; i<length; ++i )
{
if(ranges[i] < minRangeHokuyo){
//these guys are error-codes (per reading); setting to maxRange to get behavior similar to SICK
data.ranges[i] = config_.maxRange;
}else{
data.ranges[i] = ranges[i] / 1000.0;
}
}
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:52,代码来源:driver.cpp
示例4: run
void pointcloudClient::run(){
IceUtil::Time last;
last=IceUtil::Time::now();
while (!(_done)){
if (pauseStatus){
IceUtil::Mutex::Lock sync(this->controlMutex);
this->sem.wait(sync);
}
try{
jderobot::pointCloudDataPtr localCloud=this->prx->getCloudData();
this->controlMutex.lock();
this->newData=true;
this->data.resize(localCloud->p.size());
std::copy( localCloud->p.begin(), localCloud->p.end(), this->data.begin() );
this->controlMutex.unlock();
this->semBlock.broadcast();
}
catch(...){
jderobot::Logger::getInstance()->warning(prefix +"error during request (connection error)");
usleep(50000);
}
int process = this->cycle - (IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds());
if (process > (int)cycle ){
jderobot::Logger::getInstance()->warning(prefix + ": pointCloud adquisition timeout-");
}
else{
int delay = (int)cycle - process;
if (delay <1 || delay > (int)cycle)
delay = 1;
usleep(delay);
}
this->refreshRate=(int)(1000000/(IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
last=IceUtil::Time::now();
usleep(100);
}
this->data.clear();
}
开发者ID:AeroCano,项目名称:JdeRobot,代码行数:51,代码来源:pointcloudClient.cpp
示例5: convert
jderobot::ImageDataPtr CameraUtils::convert(const cv::Mat &image) {
jderobot::ImageDataPtr reply=jderobot::ImageDataPtr(new jderobot::ImageData());
reply->description = jderobot::ImageDescriptionPtr(new jderobot::ImageDescription());
IceUtil::Time t = IceUtil::Time::now();
reply->timeStamp.seconds = (long)t.toSeconds();
reply->timeStamp.useconds = (long)t.toMicroSeconds() - reply->timeStamp.seconds*1000000;
reply->description->format = colorspaces::ImageRGB8::FORMAT_RGB8.get()->name;
reply->description->width=image.size().width;
reply->description->height=image.size().height;
reply->pixelData.resize(image.rows*image.cols * image.channels());
memcpy(&(reply->pixelData[0]),(unsigned char *) image.data, image.rows*image.cols * image.channels());
return reply;
}
开发者ID:Diegojnb,项目名称:JdeRobot,代码行数:14,代码来源:CameraUtils.cpp
示例6: memcpy
void
Driver::read( hydrointerfaces::Image::Data &data )
{
context_.tracer().debug( "Copying image file data..." );
//Qt uses a uint32_t array not a byte aligned array so we must cut off the end of each scanline.
uint32_t bytesPerLine = static_cast<uint32_t>(image_.width()) * 3;
for(uint32_t i = 0; i < static_cast<uint32_t>(image_.height()); i++)
{
memcpy(data.pixelData+i*bytesPerLine, image_.scanLine(i), bytesPerLine);
}
IceUtil::Time t = IceUtil::Time::now();
data.timeStampSec = (int)t.toSeconds();
data.timeStampUsec = (int)t.toMicroSeconds() - data.timeStampSec*1000000;
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:16,代码来源:driver.cpp
示例7: sync
void Pose3dIceClient::run(){
JdeRobotTypes::Pose3d pose3d;
IceUtil::Time last;
last=IceUtil::Time::now();
while (this->on){
if (pauseStatus){
IceUtil::Mutex::Lock sync(this->controlMutex);
this->sem.wait(sync);
}
try{
jderobot::Pose3DDataPtr pose3ddata = this->prx->getPose3DData();
pose3d.x = pose3ddata->x;
pose3d.y = pose3ddata->y;
pose3d.z = pose3ddata->z;
pose3d.q[0] = pose3ddata->q0;
pose3d.q[1] = pose3ddata->q1;
pose3d.q[2] = pose3ddata->q2;
pose3d.q[3] = pose3ddata->q3;
pose3d.yaw = this->quat2Yaw(pose3d.q);
pose3d.pitch = this->quat2Pitch(pose3d.q);
pose3d.roll = this->quat2Roll(pose3d.q);
this->controlMutex.lock();
this->pose = pose3d;
this->controlMutex.unlock();
}
catch(...){
std::cerr << prefix +"error during request (connection error)" << std::endl;
usleep(5000);
}
if ((IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()) <= this->cycle ){
usleep(this->cycle - (IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
}
last=IceUtil::Time::now();
}
}
开发者ID:mazafrav,项目名称:JdeRobot,代码行数:45,代码来源:pose3dIceClient.cpp
示例8: run
void ReplyTask::run() {
jderobot::ImageDataPtr reply(new jderobot::ImageData);
::jderobot::Time t;
while (1) {
IceUtil::Time t = IceUtil::Time::now();
reply->timeStamp.seconds = (long) t.toSeconds();
reply->timeStamp.useconds = (long) t.toMicroSeconds()
- reply->timeStamp.seconds * 1000000;
{ //critical region start
IceUtil::Mutex::Lock sync(requestsMutex);
while (!requests.empty()) {
jderobot::AMD_ImageProvider_getImageDataPtr cb = requests.front();
requests.pop_front();
cb->ice_response(reply);
}
}
}
}
开发者ID:JdeRobot4Air,项目名称:v4l2server,代码行数:18,代码来源:imagei.cpp
示例9: handlePause
void
ReplayConductor::handleRewind( const IceUtil::Time &deltaT )
{
bool wasPlaying = isPlaying_;
if ( wasPlaying )
handlePause();
int sec, usec;
masterFileReader_.getCursorTime( sec, usec );
IceUtil::Time tNew = orcalog::iceUtilTime( sec, usec );
tNew -= deltaT;
masterFileReader_.placeCursorAtOrAfterTime( tNew.toSeconds(),
(int)(tNew.toMicroSeconds()-tNew.toSeconds()*1e6) );
if ( wasPlaying )
handleStart();
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:18,代码来源:replayconductor.cpp
示例10: ThreadSyscallException
bool
IceUtilInternal::Semaphore::timedWait(const IceUtil::Time& timeout) const
{
long msec = (long)timeout.toMilliSeconds();
int rc = WaitForSingleObject(_sem, msec);
if(rc != WAIT_TIMEOUT && rc != WAIT_OBJECT_0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
return rc != WAIT_TIMEOUT;
}
开发者ID:zzilla,项目名称:robocam,代码行数:12,代码来源:Cond.cpp
示例11: assert
chrono::system_clock::time_point
#else
IceUtil::Time
#endif
getX509Date(SecCertificateRef cert, CFTypeRef key)
{
assert(key == kSecOIDX509V1ValidityNotAfter || key == kSecOIDX509V1ValidityNotBefore);
UniqueRef<CFDictionaryRef> property(getCertificateProperty(cert, key));
CFAbsoluteTime seconds = 0;
if(property)
{
CFNumberRef date = static_cast<CFNumberRef>(CFDictionaryGetValue(property.get(), kSecPropertyKeyValue));
CFNumberGetValue(date, kCFNumberDoubleType, &seconds);
}
IceUtil::Time time = IceUtil::Time::secondsDouble(kCFAbsoluteTimeIntervalSince1970 + seconds);
#ifdef ICE_CPP11_MAPPING
return chrono::system_clock::time_point(chrono::microseconds(time.toMicroSeconds()));
#else
return time;
#endif
}
开发者ID:zeroc-ice,项目名称:ice-debian-packaging,代码行数:23,代码来源:SecureTransportCertificateI.cpp
示例12: run
void laserClient::run(){
IceUtil::Time last;
last=IceUtil::Time::now();
while (!(_done)){
if (pauseStatus){
IceUtil::Mutex::Lock sync(this->controlMutex);
this->sem.wait(sync);
}
try{
jderobot::LaserDataPtr localLaser=this->prx->getLaserData();
this->controlMutex.lock();
this->data.resize(localLaser->distanceData.size());
std::copy( localLaser->distanceData.begin(), localLaser->distanceData.end(), this->data.begin() );
this->controlMutex.unlock();
}
catch(...){
jderobot::Logger::getInstance()->warning(prefix +"error during request (connection error)");
usleep(5000);
}
if ((IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()) > this->cycle ){
jderobot::Logger::getInstance()->warning(prefix + ": pointCloud adquisition timeout-");
}
else{
usleep(this->cycle - (IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
}
this->refreshRate=(int)(1000000/(IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
last=IceUtil::Time::now();
}
}
开发者ID:AeroCano,项目名称:JdeRobot,代码行数:37,代码来源:laserClient.cpp
示例13: Exception
void
Driver::read( hydrointerfaces::MultiImage::Data& data )
{
context_.tracer().debug( "Grabbing frame(s) from camera(s)..." );
for( unsigned int i=0; i<cameras_.size(); ++i )
{
// This performs the grab and the retrieve with one cv function call
frames_.at(i) = cvQueryFrame( cameras_.at(i) );
if( frames_.at(i) == NULL )
{
stringstream ss;
ss << "Failed to retrieve frame from Camera " << i;
throw gbxutilacfr::Exception( ERROR_INFO, ss.str() );
}
memcpy( data.at(i).pixelData, frames_.at(i)->imageData, frames_.at(i)->imageSize );
IceUtil::Time t = IceUtil::Time::now();
data.at(i).timeStampSec = (int)t.toSeconds();
data.at(i).timeStampUsec = (int)t.toMicroSeconds() - data.at(i).timeStampSec*1000000;
}
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:24,代码来源:driver.cpp
示例14: InvalidTimeoutException
bool
IceUtilInternal::Semaphore::timedWait(const IceUtil::Time& timeout) const
{
IceUtil::Int64 msTimeout = timeout.toMilliSeconds();
if(msTimeout < 0 || msTimeout > 0x7FFFFFFF)
{
throw IceUtil::InvalidTimeoutException(__FILE__, __LINE__, timeout);
}
DWORD rc = WaitForSingleObject(_sem, static_cast<DWORD>(msTimeout));
if(rc != WAIT_TIMEOUT && rc != WAIT_OBJECT_0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
return rc != WAIT_TIMEOUT;
}
开发者ID:2008hatake,项目名称:zeroc-ice,代码行数:16,代码来源:Cond.cpp
示例15: checkedSleep
void checkedSleep( gbxutilacfr::Stoppable* activity, const IceUtil::Time& duration, int checkIntervalMs )
{
assert( activity && "Null activity pointer" );
// Handle durations less than the check interval
if ( duration.toMilliSeconds() < checkIntervalMs )
{
IceUtil::ThreadControl::sleep( duration );
return;
}
IceUtil::Time wakeupTime = IceUtil::Time::now() + duration;
IceUtil::Time checkInterval = IceUtil::Time::milliSeconds( checkIntervalMs );
while ( !activity->isStopping() && IceUtil::Time::now() < wakeupTime )
{
IceUtil::ThreadControl::sleep( checkInterval );
}
}
开发者ID:BayronP,项目名称:clam,代码行数:19,代码来源:threadutils.cpp
示例16: sync
void
CameraIceClient::run(){
jderobot::ImageDataPtr dataPtr;
colorspaces::Image::FormatPtr fmt;
IceUtil::Time last;
int iterIndex = 0;
int totalRefreshRate = 0;
int refrRate = 0;
JdeRobotTypes::Image img;
last=IceUtil::Time::now();
while (this->on){
iterIndex ++;
if (pauseStatus){
IceUtil::Mutex::Lock sync(this->controlMutex);
this->semWait.wait(sync);
}
try{
dataPtr = this->prx->getImageData(this->mImageFormat);
// Putting image data
img.data = CameraUtils::getImageFromCameraProxy(dataPtr);
img.format = dataPtr->description->format;
img.width = dataPtr->description->width;
img.height = dataPtr->description->height;
img.timeStamp = dataPtr->timeStamp.seconds + dataPtr->timeStamp.useconds * 1e-6;
}
catch(std::exception& e){
LOG(WARNING) << prefix +"error during request (connection error): " << e.what() << std::endl;
usleep(50000);
}
int process = (IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds());
if (process > (int)cycle ){
DLOG(WARNING) << "--------" + prefix + " adquisition timeout-";
}
else{
int delay = (int)cycle - process;
if (delay <1 || delay > (int)cycle)
delay = 1;
usleep(delay);
}
int rate =(int)(1000000/(IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
totalRefreshRate = totalRefreshRate + rate;
refrRate = totalRefreshRate / iterIndex;
last=IceUtil::Time::now();
if (iterIndex == INT_MAX)
{
iterIndex = 0;
DLOG(INFO) << "*** Counter reset";
}
this->controlMutex.lock();
this->image = img;
this->refreshRate = refrRate;
this->controlMutex.unlock();
}
this->image.data.release();
}
开发者ID:Diegojnb,项目名称:JdeRobot,代码行数:84,代码来源:cameraIceClient.cpp
示例17: double
void
LatencyPingerI::calcStats( const int objSize )
{
// RRT values
std::vector<double> rrt;
int lostCount = 0;
for ( int i=0; i<config_.count; ++i ) {
if ( ids_[i] != -1 ) {
IceUtil::Time dt = receives_[i] - sends_[i];
if ( dt < IceUtil::Time() ) {
std::cout<<i<<" : negative time! "<<std::endl;
}
rrt.push_back( dt.toSecondsDouble() / double(config_.preload) );
// debug
std::cout<<i<<" snd "<<sends_[i].toSeconds()<<":"<<sends_[i].toMicroSeconds()-sends_[i].toSeconds()*1000000
<<" rcv "<<receives_[i].toSeconds()<<":"<<receives_[i].toMicroSeconds()-receives_[i].toSeconds()*1000000
<<" rtt "<<rrt.back()<<" "<<std::endl;
// debug
//double dd = rrt.back();
//std::cout<<"object "<<i<<" rtt: "<<rrt.back()<<"s "<<dd<<"s "<<1000.0*dd<<"ms"<<std::endl;
}
else {
++lostCount;
//std::cout<<"object "<<i<<" was lost"<<std::endl;
}
}
// check for empty vector
if ( rrt.empty() ) {
std::cout<<"No statistics. All packets lost?"<<std::endl;
return;
}
#ifdef WIN32
// under windows, times under 1ms cannot be measured apparently
for ( unsigned int i=0; i<rrt.size(); ++i ) {
if ( rrt[i] == 0 ) {
// set to sensing limit: 1ms
rrt[i] = 1.0e-3;
}
}
#endif
// find min / max RRT's
double rrtmin = *(std::min_element( rrt.begin()+1, rrt.end() ));
double rrtmax = *(std::max_element( rrt.begin()+1, rrt.end() ));
// find average RRT
double rrtavg = 0.0;
// ignore the first result, it's always an outlier (because the Serializer is adjusting its size)
for ( unsigned int i=1; i<rrt.size(); ++i ) {
rrtavg += rrt[i];
}
rrtavg /= (rrt.size()-1);
// print out results (ping style)
std::cout<<"size "<<objSize<<" bytes"<<std::endl;
std::cout<<config_.count<<" packets transmitted, "
<<config_.count-lostCount<<" received, "
<<(double)lostCount/(double)config_.count*100.00<<"% packet loss, time "<<"?"<<"ms"<<std::endl;
std::cout<<"rtt min/avg/max/mdev = "
<<rrtmin*1000.0<<"/"<<rrtavg*1000.0<<"/"<<rrtmax*1000.0<<"/? ms"<<std::endl<<std::endl;
// log results
*logfile_ <<objSize<<" "
<< (rrtmin*1000.0)<<" "<<(rrtavg*1000.0)<<" "<<(rrtmax*1000.0)<<" "<<-1.0;
// log individual rrt's
for ( unsigned int i=1; i<rrt.size(); ++i ) {
*logfile_ << " " << rrt[i]*1000.0;
// debug
//std::cout<<rrt[i]<<" ";
}
for ( unsigned int i=0; i<(config_.count-rrt.size()); ++i ) {
*logfile_<< " " << -1;
}
*logfile_ << std::endl;
std::cout<<std::endl;
std::cout<<std::endl;
}
开发者ID:mjs513,项目名称:orca-robotics,代码行数:82,代码来源:latencypingerI.cpp
示例18: m
int
main(int argc, char* argv[])
{
Ice::InitializationData initData;
initData.properties = Ice::createProperties();
initData.properties->load("config");
Ice::CommunicatorPtr communicator = Ice::initialize(argc, argv, initData);
if(argc > 1)
{
cerr << argv[0] << ": too many arguments" << endl;
return EXIT_FAILURE;
}
Freeze::ConnectionPtr connection = Freeze::createConnection(communicator, "backup");
IntLongMap m(connection, "IntLongMap", true);
const int size = 10000;
if(m.size() == 0)
{
cout << "********* Creating new map ***********" << endl;
Freeze::TransactionHolder txHolder(connection);
IceUtil::Time time = IceUtil::Time::now();
IceUtil::Int64 ms = time.toMilliSeconds();
for(int i = 0; i < size; ++i)
{
m.insert(IntLongMap::value_type(i, ms));
}
txHolder.commit();
}
cout << "Updating map" << endl;
for(;;)
{
int count = 0;
Freeze::TransactionHolder txHolder(connection);
IceUtil::Time time = IceUtil::Time::now();
IceUtil::Int64 ms = time.toMilliSeconds();
IntLongMap::iterator p = m.begin();
IceUtil::Int64 oldMs = p->second;
do
{
if(p->second != oldMs)
{
cerr << "old time (ms) == " << oldMs << endl;
cerr << "current current (ms) == " << p->second << endl;
}
test(p->second == oldMs);
p.set(ms);
count++;
} while(++p != m.end());
cout << "Read " << IceUtil::Time::milliSeconds(oldMs).toDateTime() << " in all records;"
<< " updating with " << time.toDateTime() << " ... " << flush;
txHolder.commit();
cout << "done" << endl;
test(count == size);
}
connection->close();
communicator->destroy();
return EXIT_SUCCESS;
}
开发者ID:pedia,项目名称:zeroc-ice,代码行数:73,代码来源:Client.cpp
示例19: byteSeq
//.........这里部分代码省略.........
throughput->recvFixedSeq();
throughput->echoByteSeq(emptyBytes);
throughput->echoStringSeq(emptyStrings);
throughput->echoStructSeq(emptyStructs);
throughput->echoFixedSeq(emptyFixed);
}
throughput->endWarmup();
cout << " ok" << endl;
}
else
{
throughput->ice_ping(); // Initial ping to setup the connection.
}
menu();
//
// By default use byte sequence.
//
char currentType = '1';
int seqSize = ByteSeqSize;
char c;
do
{
try
{
cout << "==> ";
cin >> c;
IceUtil::Time tm = IceUtil::Time::now(IceUtil::Time::Monotonic);
const int repetitions = 1000;
if(c == '1' || c == '2' || c == '3' || c == '4')
{
currentType = c;
switch(c)
{
case '1':
{
cout << "using byte sequences" << endl;
seqSize = ByteSeqSize;
break;
}
case '2':
{
cout << "using string sequences" << endl;
seqSize = StringSeqSize;
break;
}
case '3':
{
cout << "using variable-length struct sequences" << endl;
seqSize = StringDoubleSeqSize;
break;
}
case '4':
{
cout << "using fixed-length struct sequences" << endl;
seqSize = FixedSeqSize;
开发者ID:dayongxie,项目名称:zeroc-ice-androidndk,代码行数:67,代码来源:Client.cpp
示例20: sync
void
cameraClient::run(){
jderobot::ImageDataPtr dataPtr;
IceUtil::Time last;
int iterIndex = 0;
int totalRefreshRate = 0;
last=IceUtil::Time::now();
while (!(_done)){
iterIndex ++;
if (pauseStatus){
IceUtil::Mutex::Lock sync(this->controlMutex);
this->semWait.wait(sync);
}
try{
dataPtr = this->prx->getImageData(this->mImageFormat);
cv::Mat image = CameraUtils::getImageFromCameraProxy(dataPtr);
this->controlMutex.lock();
image.copyTo(this->data);
this->newData=true;
this->semBlock.broadcast();
this->controlMutex.unlock();
}
catch(...){
LOG(WARNING) << prefix +"error during request (connection error)";
usleep(50000);
}
int process = (IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds());
if (process > (int)cycle ){
DLOG(WARNING) << "--------" + prefix + " adquisition timeout-";
}
else{
int delay = (int)cycle - process;
if (delay <1 || delay > (int)cycle)
delay = 1;
usleep(delay);
}
int rate =(int)(1000000/(IceUtil::Time::now().toMicroSeconds() - last.toMicroSeconds()));
totalRefreshRate = totalRefreshRate + rate;
this->refreshRate= totalRefreshRate / iterIndex;
last=IceUtil::Time::now();
if (iterIndex == INT_MAX)
{
iterIndex = 0;
DLOG(INFO) << "*** Counter reset";
}
}
this->data.release();
}
开发者ID:Diegojnb,项目名称:JdeRobot,代码行数:65,代码来源:cameraClient.cpp
注:本文中的iceutil::Time类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论