Skip to content
QGC.h 1.54 KiB
Newer Older
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

DonLakeFlyer's avatar
 
DonLakeFlyer committed
#pragma once
#include <QDateTime>
#include <QColor>
namespace QGC
{
/**
 * @brief Get the current ground time in microseconds.
 * @note This does not have microsecond precision, it is limited to millisecond precision.
 */
quint64 groundTimeUsecs();
/** @brief Get the current ground time in milliseconds */
quint64 groundTimeMilliseconds();
/** 
 * @brief Get the current ground time in fractional seconds
 * @note Precision is limited to milliseconds.
 */
/** @brief Returns the angle limited to -pi - pi */
float limitAngleToPMPIf(double angle);
/** @brief Returns the angle limited to -pi - pi */
double limitAngleToPMPId(double angle);
Gus Grubba's avatar
Gus Grubba committed
/** @brief Records boot time (called from main) */
void initTimer();
/** @brief Get the ground time since boot in milliseconds */
quint64 bootTimeMilliseconds();

DonLakeFlyer's avatar
 
DonLakeFlyer committed
/// Returns true if the two values are equal or close. Correctly handles 0 and NaN values.
bool fuzzyCompare(double value1, double value2);
class SLEEP : public QThread
{
Tomaz Canabrava's avatar
Tomaz Canabrava committed
    using QThread::sleep;
    using QThread::msleep;
    using QThread::usleep;
quint32 crc32(const quint8 *src, unsigned len, unsigned state);