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

use work.math_pkg.all;
use work.ros_package.all;
use work.GoalInfo_package;
use work.GoalStatus_package;

package GoalStatusArray_package is
    
    constant STATUS_LIST_MAX_DEPTH                      : natural := 100;
    constant STATUS_LIST_ADDR_WIDTH                     : natural := log2c(STATUS_LIST_MAX_DEPTH);
    constant STATUS_LIST_GOAL_INFO_GOAL_ID_MAX_DEPTH    : natural := GoalInfo_package.GOAL_ID_MAX_DEPTH;
    constant STATUS_LIST_GOAL_INFO_GOAL_ID_ADDR_WIDTH   : natural := GoalInfo_package.GOAL_ID_ADDR_WIDTH;
    
    constant MAX_STATUS_LIST_GOAL_INFO_GOAL_ID_SIZE         : natural := GoalInfo_package.MAX_GOAL_ID_SIZE;
    constant MAX_STATUS_LIST_GOAL_INFO_STAMP_SEC_SIZE       : natural := GoalInfo_package.MAX_STAMP_SEC_SIZE;
    constant MAX_STATUS_LIST_GOAL_INFO_STAMP_NANOSEC_SIZE   : natural := GoalInfo_package.MAX_STAMP_NANOSEC_SIZE;
    constant MAX_STATUS_LIST_GOAL_INFO_STAMP_SIZE           : natural := GoalInfo_package.MAX_STAMP_SIZE;
    constant MAX_STATUS_LIST_GOAL_INFO_SIZE                 : natural := GoalInfo_package.MAX_GOALINFO_SIZE;
    constant MAX_STATUS_LIST_STATUS_SIZE                    : natural := GoalStatus_package.MAX_STATUS_SIZE;
    constant MAX_STATUS_LIST_SIZE                           : natural := STATUS_LIST_MAX_DEPTH * (GoalStatus_package.MAX_GOALSTATUS_SIZE);
    
    constant MAX_GOALSTATUSARRAY_SIZE   : natural := MAX_STATUS_LIST_SIZE;
    
end package;