tarask
6 days ago 532005c6573d95199ce0ffbc33df4c7a0a4c3ef9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#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