# ATOF\_POINT\_DATA

### ID: 3012

### Payload Definition

<table><thead><tr><th width="188">Data Type</th><th width="164">Name</th><th>Description</th></tr></thead><tbody><tr><td>u32</td><td>pwr_up_msec</td><td>time at start of ping, milliseconds since power on</td></tr><tr><td>u64</td><td>utc_msec</td><td>time at start of ping, UTC milliseconds (1970 epoch). Will be 0 if not available.</td></tr><tr><td>float</td><td>listening_sec</td><td>time from start of ping to last range bin</td></tr><tr><td>float</td><td>sos_mps</td><td>speed of sound (meters per second) used in angle calculations</td></tr><tr><td>u32</td><td>ping_number</td><td>assigned sequentially from power on</td></tr><tr><td>u32</td><td>ping_hz</td><td>frequency of the ping signal (hertz)</td></tr><tr><td>float</td><td>pulse_sec</td><td>pulse length in seconds</td></tr><tr><td>u32</td><td>flags</td><td>reserved</td></tr><tr><td>u16</td><td>num_points</td><td>number of points reported in the points field</td></tr><tr><td>u16</td><td>reserved</td><td></td></tr><tr><td>atof_t[num_points]</td><td>atof_point_data</td><td>see below for atof_t definition</td></tr></tbody></table>

```
struct atof_t {
    float    angle;            // radians, positive to port
    float    tof;              // seconds, time of flight
    u32      reserved[2];
}
// float distance = 0.5 * speed_of_sound * tof_sec;
// float y = distance * sin(angle);
// float z = -distance * cos(angle);
```
