View Source mix rclex.gen.msgs (Rclex v0.8.0)
Generate codes of ROS 2 message type
Before generating, we have to specify message types in config.exs.
ex. config :rclex, ros2_message_types: ["std_msgs/msg/String"]
Be careful, ros2 message type is case sensitive.
how-to-generate
How to generate
$ mix rclex.gen.msgs
This task assumes that the environment variable ROS_DISTRO is set and refers to the message types from "/opt/ros/ROS_DISTRO/share".
We can also specify directly as follows
$ mix rclex.gen.msgs --from /opt/ros/foxy/share
how-to-clean
How to clean
$ mix rclex.gen.msgs --clean
Link to this section Summary
Functions
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.convert_package_name_to_capitalized("std_msgs") "StdMsgs"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_file_name_from_type("std_msgs/msg/String") "std_msgs/msg/string" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_file_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgs/msg/twist_with_covariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_function_name_from_type("std_msgs/msg/String") "std_msgs_msg_string" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_function_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgs_msg_twist_with_covariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_path("std_msgs/msg/String") "StdMsgs.Msg.String"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_type("std_msgs/msg/String") "Rclex.StdMsgs.Msg.String" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_type("geometry_msgs/msg/TwistWithCovariance") "Rclex.GeometryMsgs.Msg.TwistWithCovariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_impl(["std_msgs", "msg", "String"]) "StdMsgs.Msg.String" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_impl(["geometry_msgs", "msg", "TwistWithCovariance"]) "GeometryMsgs.Msg.TwistWithCovariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_struct_name_from_type("std_msgs/msg/String") "std_msgsmsgString" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_struct_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgsmsgTwistWithCovariance"
Callback implementation for Mix.Task.run/1
.
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.to_down_snake("Vector3") "vector3" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.to_down_snake("TwistWithCovariance") "twist_with_covariance"
Link to this section Functions
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.convert_package_name_to_capitalized("std_msgs") "StdMsgs"
create_fields_for_nifs_readdata_return(type, ros2_message_type_map, var \\ "data")
View Sourcecreate_fields_for_nifs_setdata_arg(type, ros2_message_type_map, var \\ "data")
View Sourcecreate_fields_for_read(type, ros2_message_type_map, var \\ "data")
View Sourcecreate_readdata_statements_impl_for_list(type, ros2_message_type_map, var)
View Sourcecreate_readdata_statements_impl_for_tuple(type, ros2_message_type_map, var)
View Sourcecreate_setdata_statements_impl(type, ros2_message_type_map, var_res, var_term, var_local)
View Sourcecreate_setdata_statements_impl_for_list(type, ros2_message_type_map, var, var_term, var_local)
View Sourcecreate_setdata_statements_impl_for_tuple(type, ros2_message_type_map, var, var_term, var_local)
View Sourceiex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_file_name_from_type("std_msgs/msg/String") "std_msgs/msg/string" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_file_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgs/msg/twist_with_covariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_function_name_from_type("std_msgs/msg/String") "std_msgs_msg_string" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_function_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgs_msg_twist_with_covariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_path("std_msgs/msg/String") "StdMsgs.Msg.String"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_type("std_msgs/msg/String") "Rclex.StdMsgs.Msg.String" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_from_type("geometry_msgs/msg/TwistWithCovariance") "Rclex.GeometryMsgs.Msg.TwistWithCovariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_impl(["std_msgs", "msg", "String"]) "StdMsgs.Msg.String" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_module_name_impl(["geometry_msgs", "msg", "TwistWithCovariance"]) "GeometryMsgs.Msg.TwistWithCovariance"
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_struct_name_from_type("std_msgs/msg/String") "std_msgsmsgString" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.get_struct_name_from_type("geometry_msgs/msg/TwistWithCovariance") "geometry_msgsmsgTwistWithCovariance"
Callback implementation for Mix.Task.run/1
.
iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.to_down_snake("Vector3") "vector3" iex> Elixir.Mix.Tasks.Rclex.Gen.Msgs.to_down_snake("TwistWithCovariance") "twist_with_covariance"