#ifndef NV7_RANGEFINDER_H
|
#define NV7_RANGEFINDER_H
|
|
#include <Arduino.h>
|
#ifdef NV7_SERIAL0_MODE
|
#define NV7RANGEFINDER_USE_SERIAL0
|
#define NV7RANGEFINDER_DISABLE_LOGS
|
#else
|
#include <SoftwareSerial.h>
|
#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
|