library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

use work.math_pkg.all;
use work.rtps_package.all;
use work.ros_package.all;

package GoalInfo_package is
    
    type GOALINFO_TYPE is record
        goal_id : UUID_TYPE;
        stamp   : ROS_TIME_TYPE;
    end record;
    
    constant GOAL_ID_MAX_DEPTH  : natural := 16;
    constant GOAL_ID_ADDR_WIDTH : natural := log2c(GOAL_ID_MAX_DEPTH);
    
    constant MAX_GOAL_ID_SIZE       : natural := GOAL_ID_MAX_DEPTH * 1;
    constant MAX_STAMP_SEC_SIZE     : natural := 4;
    constant MAX_STAMP_NANOSEC_SIZE : natural := 4;
    constant MAX_STAMP_SIZE         : natural := MAX_STAMP_SEC_SIZE + MAX_STAMP_NANOSEC_SIZE;
    
    constant MAX_GOALINFO_SIZE  : natural := MAX_GOAL_ID_SIZE + MAX_STAMP_SIZE;
end package;