#ifndef MULTI_ECHO_LASER_SCAN_H
#define MULTI_ECHO_LASER_SCAN_H

#include <vector>
#include "std_msgs/Header.h"
#include "sensor_msgs/LaserEcho.h"   // Định nghĩa struct LaserEcho (float32[] echoes)

namespace sensor_msgs
{

struct MultiEchoLaserScan
{
    std_msgs::Header header;           // Thông tin thời gian & frame của phép đo

    float angle_min = 0.0f;            // Góc bắt đầu quét (radians)
    float angle_max = 0.0f;            // Góc kết thúc quét (radians)
    float angle_increment = 0.0f;      // Độ tăng góc giữa 2 tia liên tiếp (radians)

    float time_increment = 0.0f;       // Thời gian giữa 2 phép đo (seconds)
    float scan_time = 0.0f;            // Thời gian quét toàn bộ (seconds)

    float range_min = 0.0f;            // Khoảng cách đo nhỏ nhất (m)
    float range_max = 0.0f;            // Khoảng cách đo lớn nhất (m)

    std::vector<LaserEcho> ranges;     // Dữ liệu khoảng cách (m)
    std::vector<LaserEcho> intensities; // Dữ liệu cường độ (tùy chọn)

    MultiEchoLaserScan() = default;
};

}
#endif // MULTI_ECHO_LASER_SCAN_H
