6#include "roo_logging.h"
9#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
26 float inGigaHertz()
const {
return frequency_ * 0.000000001f; }
35 float inHertz()
const {
return frequency_; }
57 bool isUnknown()
const {
return std::isnan(frequency_); }
60 return frequency_ < other.frequency_;
64 return frequency_ == other.frequency_;
68 return other.frequency_ < frequency_;
72 return !(other.frequency_ < frequency_);
76 return !(frequency_ < other.frequency_);
80 return !(frequency_ == other.frequency_);
93#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
95 std::string asString()
const;
99 String asArduinoString()
const;
107 explicit Frequency(
float frequency) : frequency_(frequency) {}
204roo_logging::Stream &
operator<<(roo_logging::Stream &os,
const Frequency &val);
Representation of frequency, internally stored as floating-point Hertz.
bool isUnknown() const
Returns whether the object represents an unknown frequency.
float inCyclesPerSecond() const
Returns the rotational frequency in cycles per second (equivalent to Hertz).
bool operator<(const Frequency &other) const
bool operator>=(const Frequency &other) const
float inRPM() const
Returns the rotational frequency in RPM.
float inMegaHertz() const
Returns the frequency in MegaHertz.
Frequency()
Creates a frequency object representing an 'unknown' frequency.
bool operator!=(const Frequency &other) const
float inHertz() const
Returns the frequency in Hertz.
float inRevolutionsPerMinute() const
Returns the rotational frequency in RPM.
float inMicroHertz() const
Returns the frequency in microHertz.
float inMilliHertz() const
Returns the frequency in milliHertz.
Frequency & operator/=(float div)
float inKiloHertz() const
Returns the frequency in kiloHertz.
Frequency & operator*=(float multi)
float inGigaHertz() const
Returns the frequency in GigaHertz.
bool operator<=(const Frequency &other) const
friend Frequency UnknownFrequency()
Returns a frequency object representing an unknown frequency.
friend Frequency FrequencyInHertz(float)
Returns a frequency object equivalent to the specified frequency expressed in Hertz.
bool operator>(const Frequency &other) const
bool operator==(const Frequency &other) const
float inRadiansPerSecond() const
Returns the rotational frequency in radians per second.
Representation of elapsed, internally stored as floating-point seconds.
float inSeconds() const
Returns the time in seconds.
For convenience conversion from roo_time::Duration.
Frequency FrequencyInRadiansPerSecond(float omega)
Returns a frequency object equivalent to the specified rotational frequency expressed in radians per ...
roo_logging::Stream & operator<<(roo_logging::Stream &os, const Area &val)
Frequency FrequencyInMegaHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in megaHertz.
Frequency FrequencyInKiloHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in kiloHertz.
Frequency FrequencyInMilliHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in milliHertz.
Frequency FrequencyInRPM(float frequency)
Returns a frequency object equivalent to the specified rotational frequency expressed in revolutions ...
Frequency UnknownFrequency()
Returns a frequency object representing an unknown frequency.
Frequency FrequencyInMicroHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in microHertz.
Time TimeInSeconds(float time)
Returns a time object equivalent to the specified time expressed in seconds.
Frequency FrequencyInGigaHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in gigaHertz.
Area operator/(Area a, float b)
Area operator*(Area a, float b)
Frequency FrequencyInRevolutionsPerMinute(float frequency)
Returns a frequency object equivalent to the specified rotational frequency expressed in revolutions ...
Frequency FrequencyInHertz(float frequency)
Returns a frequency object equivalent to the specified frequency expressed in Hertz.