/*===================================================================== QGroundControl Open Source Ground Control Station (c) 2009, 2010 QGROUNDCONTROL PROJECT This file is part of the QGROUNDCONTROL project QGROUNDCONTROL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. QGROUNDCONTROL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with QGROUNDCONTROL. If not, see . ======================================================================*/ #include "QGC.h" #include #include namespace QGC { quint64 groundTimeUsecs() { QDateTime time = QDateTime::currentDateTime(); time = time.toUTC(); /* Return seconds and milliseconds, in milliseconds unit */ quint64 microseconds = time.toTime_t() * static_cast(1000000); return static_cast(microseconds + (time.time().msec()*1000)); } quint64 groundTimeMilliseconds() { QDateTime time = QDateTime::currentDateTime(); time = time.toUTC(); /* Return seconds and milliseconds, in milliseconds unit */ quint64 seconds = time.toTime_t() * static_cast(1000); return static_cast(seconds + (time.time().msec())); } float limitAngleToPMPIf(float angle) { while (angle > ((float)M_PI+FLT_EPSILON)) { angle -= 2.0f * (float)M_PI; } while (angle <= -((float)M_PI+FLT_EPSILON)) { angle += 2.0f * (float)M_PI; } return angle; } double limitAngleToPMPId(double angle) { if (angle < -M_PI) { while (angle < -M_PI) { angle += M_PI; } } else if (angle > M_PI) { while (angle > M_PI) { angle -= M_PI; } } return angle; } int applicationVersion() { return APPLICATIONVERSION; } }