#pragma once #include "concurrency/OSThread.h" #include "configuration.h" #include #include /* TX_LOG - Time on air this device has transmitted RX_LOG - Time on air used by valid and routable mesh packets, does not include TX air time RX_ALL_LOG - Time of all received lora packets. This includes packets that are not for meshtastic devices. Does not include TX air time. Example analytics: TX_LOG + RX_LOG = Total air time for a perticular meshtastic channel. TX_LOG + RX_LOG = Total air time for a perticular meshtastic channel, including other lora radios. RX_ALL_LOG - RX_LOG = Other lora radios on our frequency channel. */ enum reportTypes { TX_LOG, RX_LOG, RX_ALL_LOG }; void logAirtime(reportTypes reportType, uint32_t airtime_ms); void airtimeRotatePeriod(); uint8_t currentPeriodIndex(); uint8_t getPeriodsToLog(); uint32_t getSecondsSinceBoot(); uint32_t *airtimeReport(reportTypes reportType); uint32_t getSecondsPerPeriod(); class AirTime : private concurrency::OSThread { public: AirTime(); void logAirtime(reportTypes reportType, uint32_t airtime_ms); protected: virtual int32_t runOnce(); }; extern AirTime *airTime;