#ifndef NV7_RANGEFINDER_H #define NV7_RANGEFINDER_H #include #ifdef NV7_SERIAL0_MODE #define NV7RANGEFINDER_USE_SERIAL0 #define NV7RANGEFINDER_DISABLE_LOGS #else #include #endif #define RANGEFINDER_NV7_MAX_DISTANCE (60000) class NV7Rangefinder { public: static void TaskNV7Rangefinder(void* pvParameters); struct Measurement { int16_t elevation; float distance; int16_t sineHeight, horizDistance, twoPointHeight, azimuth; int16_t horizAngle, span, speed; uint8_t unit; int16_t secondElevation; bool isValid; }; NV7Rangefinder(); void singleMeasure(Stream& port); void startContinuousMeasure(Stream& port); void stopContinuousMeasure(Stream& port); Measurement getLastMeasurement(); private: unsigned long baudrate; TaskHandle_t taskHandle; Measurement lastMeasurement; }; #endif // NV7_RANGEFINDER_H