LCOV - code coverage report
Current view: top level - AP_RangeFinder - AP_RangeFinder_JRE_Serial.h (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 6 0.0 %
Date: 2026-09-09 11:02:08 Functions: 0 3 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "AP_RangeFinder_config.h"
       4             : 
       5             : #if AP_RANGEFINDER_JRE_SERIAL_ENABLED
       6             : 
       7             : #include "AP_RangeFinder.h"
       8             : #include "AP_RangeFinder_Backend_Serial.h"
       9             : 
      10             : /*
      11             : The data received from the radio altimeter is as follows.
      12             : The format of the received data frame varies depending on the mode, and is stored in "read_buff" with a fixed value of 16 bytes, 32 bytes, or 48 bytes.
      13             : 
      14             : [1]
      15             : Measurement mode: 1 data mode
      16             : Packet length: 16 bytes
      17             : Altitude data used: 4,5 bytes
      18             : |----------------------------------------------------------------------------------------------------------------------------------------------------|
      19             : | BYTE |   0    |   1    |    2     |    3     |    4     |    5     | 6 | 7 | 8 | 9 |     10    |     11    |    12     |    13     |  14   |  15   |
      20             : |------|---------------------------------------------------------------------------------------------------------------------------------------------|
      21             : | NAME | header | header | version  |  frame   | altitude | altitude |    reserved   | FFT value | FFT value |  status   |  status   |  CRC  |  CRC  |
      22             : |      |  (H)   |  (L)   |          |  count   |    (H)   |    (L)   |               |    (H)    |    (L)    |   (H)     |   (L)     |  (L)  |  (H)  |
      23             : |------|---------------------------------------------------------------------------------------------------------------------------------------------|
      24             : |      |        |        |          |          |                     |               |                       | BIT 15to8: reserved   |               |
      25             : |      |        |        |          | unsigned |       unsigned      |               |       unsigned        | BIT 7to4: GAIN detail |   CRC result  |
      26             : | DATA |  'R'   |  'A'   | 0 to 255 | 0 to 255 |      LSB;0.01 m     |      N/A      |        LSB:1          | BIT 3-2: reserved     |   from BYTE   |
      27             : |      |        |        |          |          |      0 to 65535     |               |      0 to 65535       | BIT 1: TRK / NTRK     |    0 to 13    |
      28             : |      |        |        |          |          |                     |               |                       | BIT 0: GAIN LOW/HIGH  |               |
      29             : |----------------------------------------------------------------------------------------------------------------------------------------------------|
      30             : 
      31             : [2]
      32             : Measurement mode: 3 data mode
      33             : Packet length: 32 bytes
      34             : Altitude data used: 4,5 bytes
      35             : |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      36             : | BYTE |   0    |   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   |
      37             : |------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      38             : | NAME | header | header | version  |  frame   | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value |  status   |  status   |  CRC  |  CRC  |
      39             : |      |  (H)   |  (L)   |          |  count   |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)    |    (L)    |  (L)  |  (H)  |
      40             : |------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      41             : |      |        |        |          |          |                     |               |                       |                     |               |                       |                     |               |                       | BIT 15to8: reserved   |               |
      42             : |      |        |        |          | unsigned |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        | BIT 7to4: GAIN detail |   CRC result  |
      43             : | DATA |  'R'   |  'B'   | 0 to 255 | 0 to 255 |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          | BIT 3-2: reserved     |   from BYTE   |
      44             : |      |        |        |          |          |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       | BIT 1: TRK / NTRK     |    0 to 13    |
      45             : |      |        |        |          |          |                     |               |                       |                     |               |                       |                     |               |                       | BIT 0: GAIN LOW/HIGH  |               |
      46             : |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      47             : 
      48             : [3]
      49             : Measurement mode: 5 data mode
      50             : Packet length: 48 bytes
      51             : Altitude data used: 4,5 bytes
      52             : |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      53             : | BYTE |   0    |   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    |    44     |    45     |  46   |  47   |
      54             : |------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      55             : | NAME | header | header | version  |  frame   | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value | altitude | altitude |    reserved   | FFT value | FFT value |  status   |  status   |  CRC  |  CRC  |
      56             : |      |  (H)   |  (L)   |          |  count   |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)   |    (L)   |               |    (H)    |    (L)    |    (H)    |    (L)    |  (L)  |  (H)  |
      57             : |------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      58             : |      |        |        |          |          |                     |               |                       |                     |               |                       |                     |               |                       |                     |               |                       |                     |               |                       | BIT 15to8: reserved   |               |
      59             : |      |        |        |          | unsigned |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        |       unsigned      |               |       unsigned        | BIT 7to4: GAIN detail |   CRC result  |
      60             : | DATA |  'R'   |  'C'   | 0 to 255 | 0 to 255 |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          |      LSB;0.01 m     |      N/A      |        LSB:1          | BIT 3-2: reserved     |   from BYTE   |
      61             : |      |        |        |          |          |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       |      0 to 65535     |               |      0 to 65535       | BIT 1: TRK / NTRK     |    0 to 13    |
      62             : |      |        |        |          |          |                     |               |                       |                     |               |                       |                     |               |                       |                     |               |                       |                     |               |                       | BIT 0: GAIN LOW/HIGH  |               |
      63             : |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      64             : */
      65             : class AP_RangeFinder_JRE_Serial : public AP_RangeFinder_Backend_Serial
      66             : {
      67             : 
      68             : public:
      69           0 :     static AP_RangeFinder_Backend_Serial *create(
      70             :         RangeFinder::RangeFinder_State &_state,
      71             :         AP_RangeFinder_Params &_params)
      72             :     {
      73           0 :         return NEW_NOTHROW AP_RangeFinder_JRE_Serial(_state, _params);
      74             :     }
      75             : 
      76             : protected:
      77             : 
      78             :     using AP_RangeFinder_Backend_Serial::AP_RangeFinder_Backend_Serial;
      79             : 
      80           0 :     MAV_DISTANCE_SENSOR _get_mav_distance_sensor_type() const override
      81             :     {
      82           0 :         return MAV_DISTANCE_SENSOR_RADAR;
      83             :     }
      84             : 
      85           0 :     int8_t get_signal_quality_pct() const override
      86             :     {
      87           0 :         return no_signal ? RangeFinder::SIGNAL_QUALITY_MIN : signal_quality_pct;
      88             :     }
      89             : 
      90             : private:
      91             : 
      92             :     // get a reading
      93             :     bool get_reading(float &reading_m) override;
      94             : 
      95             :     void move_preamble_in_buffer(uint8_t search_start_pos);
      96             : 
      97             :     uint8_t data_buff[48 * 3];  // 48 is longest possible packet
      98             :     uint8_t data_buff_ofs;      // index where next item will be added in data_buff
      99             : 
     100             :     bool no_signal;     // true if the latest read attempt found no valid distances
     101             : 
     102             :     int8_t signal_quality_pct;
     103             : };
     104             : #endif  // AP_RANGEFINDER_JRE_SERIAL_ENABLED

Generated by: LCOV version 1.14