rtps-fpga/syn/syn_ros_action_config.vhd
2022-03-13 12:43:12 +01:00

98 lines
4.0 KiB
VHDL

-- altera vhdl_input_version vhdl_2008
-- XXX: QSYS Fix (https://www.intel.com/content/www/us/en/support/programmable/articles/000079458.html)
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use work.rtps_package.all;
use work.ros_package.all;
use work.Fibonacci_package.all;
package ros_config is
-- Period of ros system clock
constant ROS_CLOCK_PERIOD : time := 20 ns; -- 50 MHz
-- IPv4 Address of ROS System [192.168.0.90]
constant ROS_ADDRESS : std_logic_vector(IPv4_ADDRESS_WIDTH-1 downto 0) := x"C0A8005A";
-- Random Key used to generate GUIDs
constant ROS_RAND_KEY : std_logic_vector(47 downto 0) := x"E2A53AA91CC5";
constant NUM_NODES : natural := 1;
constant ROS_NODES : ROS_NODE_ARRAY_TYPE(0 to NUM_NODES-1) := (
0 => (
name => gen_user_string("fibonacci_action_server"),
namespace => gen_user_string(""),
domain_id => 0,
NUM_PUBS => 0,
NUM_SUBS => 0,
NUM_SERVICES => 0,
NUM_ACTIONS => 1
)
);
constant NUM_PUBS : natural := get_num_pubs(ROS_NODES);
constant NUM_SUBS : natural := get_num_subs(ROS_NODES);
constant NUM_SERVICES : natural := get_num_services(ROS_NODES);
constant NUM_ACTIONS : natural := get_num_actions(ROS_NODES);
constant ROS_PUBLICATIONS : ROS_TOPIC_ARRAY_TYPE(0 to NUM_PUBS-1) := (
others => (
node_id => 0,
TOPICNAME => gen_user_string(""),
TYPENAME => gen_user_string(""),
QOS => ROS_QOS_PROFILE_DEFAULT,
MAX_SIZE => 0
)
);
constant ROS_SUBSCRIPTIONS : ROS_TOPIC_ARRAY_TYPE(0 to NUM_SUBS-1) := (
others => (
node_id => 0,
TOPICNAME => gen_user_string(""),
TYPENAME => gen_user_string(""),
QOS => ROS_QOS_PROFILE_DEFAULT,
MAX_SIZE => 0
)
);
constant ROS_SERVICES : ROS_SERVICE_ARRAY_TYPE(0 to NUM_SERVICES-1) := (
others => (
node_id => 0,
SERVICENAME => gen_user_string(""),
RQ_TYPENAME => gen_user_string(""),
RR_TYPENAME => gen_user_string(""),
QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
MAX_RQ_SIZE => 0,
MAX_RR_SIZE => 0,
is_client => FALSE
)
);
constant ROS_ACTIONS : ROS_ACTION_ARRAY_TYPE(0 to NUM_ACTIONS-1) := (
0 => (
node_id => 0,
ACTIONNAME => gen_user_string("fibonacci"),
GOAL_RQ_TYPENAME => gen_user_string("action_tutorials_interfaces::action::dds_::Fibonacci_SendGoal_Request_"),
GOAL_RR_TYPENAME => gen_user_string("action_tutorials_interfaces::action::dds_::Fibonacci_SendGoal_Response_"),
RESULT_RQ_TYPENAME => gen_user_string("action_tutorials_interfaces::action::dds_::Fibonacci_GetResult_Request_"),
RESULT_RR_TYPENAME => gen_user_string("action_tutorials_interfaces::action::dds_::Fibonacci_GetResult_Response_"),
FEEDBACK_TYPENAME => gen_user_string("action_tutorials_interfaces::action::dds_::Fibonacci_FeedbackMessage_"),
GOAL_QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
RESULT_QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
FEEDBACK_QOS => ROS_QOS_PROFILE_DEFAULT,
CANCEL_QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
MAX_GOAL_RQ_SIZE => G_RQ_MAX_FIBONACCI_SIZE,
MAX_GOAL_RR_SIZE => G_RR_MAX_FIBONACCI_SIZE,
MAX_RESULT_RQ_SIZE => R_RQ_MAX_FIBONACCI_SIZE,
MAX_RESULT_RR_SIZE => R_RR_MAX_FIBONACCI_SIZE,
MAX_FEEDBACK_SIZE => F_MAX_FIBONACCI_SIZE,
is_client => FALSE,
enable_feedback => TRUE
)
);
-- Defines sensible RTPS timings for simulation
constant SIMULATION_TIMING : boolean := FALSE;
end package;