当前位置: 首页 > news >正文

网站设置价格错误不愿意发货做个浏览器多少钱

网站设置价格错误不愿意发货,做个浏览器多少钱,wordpress给分类添加自定义文字,下载网站如何做LifecycleNode讲解及实例 文章目录 前言LifecycleNode是什么背景生命周期状态定义UnconfiguredInactiveActiveFinalized 转换逻辑图示标准接口 代码实现测试代码测试 总结 前言 本文用来记录什么是LifecycleNode#xff0c;做背景介绍及基本原理的介绍及分析如何使用。1…LifecycleNode讲解及实例 文章目录 前言LifecycleNode是什么背景生命周期状态定义UnconfiguredInactiveActiveFinalized 转换逻辑图示标准接口 代码实现测试代码测试 总结 前言 本文用来记录什么是LifecycleNode做背景介绍及基本原理的介绍及分析如何使用。1 LifecycleNode是什么 背景 节点的托管生命周期允许更好地控制ROS系统的状态。它将允许roslaunch在允许任何组件开始执行其行为之前确保所有组件都已正确实例化。它还允许重新启动或在线更换节点。 本文档最重要的概念是受管节点提供已知接口根据已知的生命周期状态机执行否则可被视为黑盒。这使得节点开发人员可以自由决定如何提供托管生命周期功能同时还确保为管理节点而创建的任何工具都可以与任何兼容的节点一起使用。 生命周期 有四个主要状态 UnconfiguredInactiveActiveFinalized 还存在6个过渡状态它们是在所请求的过渡期间的中间状态。 ConfiguringCleaningUpShuttingDownActivatingDeactivatingErrorProcessing 在转换状态中将执行逻辑以确定转换是否成功。成功或失败应通过生命周期管理界面传达给生命周期管理软件。 有7个过渡暴露于监督流程它们是 createconfigurecleanupactivatedeactivateshutdowndestroy 状态定义 Unconfigured 这是节点在实例化后立即处于的生命周期状态。这也是节点在发生错误后可能返回的状态。 节点可以经由 configure 转换转换到 Inactive 状态节点可以经由 shutdown 转换转换到 Finalized 状态 Inactive 此状态表示当前未执行任何处理的节点。 此状态的主要目的是允许节点在运行时进行配置更改配置参数、添加和删除主题发布/订阅等而不更改其行为。 当处于这种状态时节点将不会接收任何执行时间来读取主题、执行数据处理、响应功能服务请求等。 在非活动状态下将不会读取和/或处理到达托管主题的任何数据。数据保留将受为主题配置的QoS策略的约束。 对处于非活动状态的节点的任何托管服务请求都不会被应答对于调用者来说它们将立即失败。 节点可以经由 shutdown 转换转换到 Finalized 状态节点可以经由 cleanup 转换转换到 Unconfigured 状态节点可以经由 activate 转换转换到 Active 状态 Active 这是节点生命周期的主要状态。在这种状态下节点执行任何处理响应服务请求读取和处理数据产生输出等。 如果在此状态下发生节点/系统无法处理的错误则节点将转换到 ErrorProcessing。 节点可以经由 deactivate 转换转换到 Inactive 状态节点可以经由 shutdown 转换转换到 Finalized 状态 Finalized Finalized 状态是节点在被销毁之前立即结束的状态。这个状态总是终结的从这里开始的唯一转变就是被摧毁。 转换逻辑图示 下边这张图用来说明状态切换之间的关系如果看不懂也没关系可以根据后续的测试代码切换一遍流程即可理解。2 标准接口 服务Service3 /change_state - 调用触发合法转换 /get_available_transitions - 显示合法的转换 /get_state - 显示当前状态 /get_available_states - 列出所有状态 /get_transition_graph - 显示完整状态机 主题Topic /transition_event - 发布正在进行的转换 代码实现测试 代码 # CMakeLists.txt cmake_minimum_required(VERSION 3.8) project(my_lifecycle_node)if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang)add_compile_options(-Wall -Wextra -Wpedantic) endif()# find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_lifecycle REQUIRED) find_package(lifecycle_msgs REQUIRED) find_package(std_msgs REQUIRED)add_executable(my_lifecycle_nodesrc/my_lifecycle_node.cpp) ament_target_dependencies(my_lifecycle_node rclcpp rclcpp_lifecycle lifecycle_msgs std_msgs)install(TARGETSmy_lifecycle_nodeDESTINATION lib/${PROJECT_NAME} )if(BUILD_TESTING)find_package(ament_lint_auto REQUIRED)# the following line skips the linter which checks for copyrights# comment the line when a copyright and license is added to all source filesset(ament_cmake_copyright_FOUND TRUE)# the following line skips cpplint (only works in a git repo)# comment the line when this package is in a git repo and when# a copyright and license is added to all source filesset(ament_cmake_cpplint_FOUND TRUE)ament_lint_auto_find_test_dependencies() endif()ament_package() # package.xml?xml version1.0? ?xml-model hrefhttp://download.ros.org/schema/package_format3.xsd schematypenshttp://www.w3.org/2001/XMLSchema? package format3namemy_lifecycle_node/nameversion0.0.0/versiondescriptionTODO: Package description/descriptionmaintainer emailhttps://blog.csdn.net/Bing_Leedev/maintainerlicenseTODO: License declaration/licensebuildtool_dependament_cmake/buildtool_dependdependrclcpp/dependdependrclcpp_lifecycle/dependdependlifecycle_msgs/dependdependstd_msgs/dependtest_dependament_lint_auto/test_dependtest_dependament_lint_common/test_dependexportbuild_typeament_cmake/build_type/export /package #include iostream #include rclcpp/rclcpp.hpp #include rclcpp_lifecycle/lifecycle_node.hpp#include lifecycle_msgs/msg/transition.hpp #include std_msgs/msg/string.hppusing namespace std::chrono_literals;class my_lifecycle_node : public rclcpp_lifecycle::LifecycleNode { public:explicit my_lifecycle_node(const std::string node_name, bool intra_process_comms false): rclcpp_lifecycle::LifecycleNode(node_name, rclcpp::NodeOptions().use_intra_process_comms(intra_process_comms)) {}rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure(const rclcpp_lifecycle::State){RCLCPP_INFO(get_logger(), on_configure() is called.);return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;}rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_activate(const rclcpp_lifecycle::State){RCUTILS_LOG_INFO_NAMED(get_name(), on_activate() is called.);std::this_thread::sleep_for(2s);return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;}rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_deactivate(const rclcpp_lifecycle::State){RCUTILS_LOG_INFO_NAMED(get_name(), on_deactivate() is called.);return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;}rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_cleanup(const rclcpp_lifecycle::State){RCUTILS_LOG_INFO_NAMED(get_name(), on cleanup() is called.);return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;}rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_shutdown(const rclcpp_lifecycle::State state){RCUTILS_LOG_INFO_NAMED(get_name(), on shutdown() is called from state %s., state.label().c_str());return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;} };int main(int argc, char** argv) {rclcpp::init(argc, argv);auto node std::make_sharedmy_lifecycle_node(my_lifecycle_node);rclcpp::spin(node-get_node_base_interface());rclcpp::shutdown();return 0; } # 文件结构 $ tree my_lifecycle_node/ my_lifecycle_node/ ├── CMakeLists.txt ├── include │ └── my_lifecycle_node ├── package.xml └── src└── my_lifecycle_node.cpp测试 # 编译 $ colcon build --packages-up-to my_lifecycle_node # bash 安装配置 $ source install/setup.bash # 运行 $ ros2 run my_lifecycle_node my_lifecycle_node新开一个窗口 $ ros2 service list /my_lifecycle_node/change_state /my_lifecycle_node/describe_parameters /my_lifecycle_node/get_available_states /my_lifecycle_node/get_available_transitions /my_lifecycle_node/get_parameter_types /my_lifecycle_node/get_parameters /my_lifecycle_node/get_state /my_lifecycle_node/get_transition_graph /my_lifecycle_node/list_parameters /my_lifecycle_node/set_parameters /my_lifecycle_node/set_parameters_atomically$ ros2 topic list /my_lifecycle_node/transition_event /parameter_events /rosout状态切换 # 当前状态 $ ros2 lifecycle get /my_lifecycle_node unconfigured [1] # 配置节点 $ ros2 lifecycle set /my_lifecycle_node configure Transitioning successful$ ros2 lifecycle get /my_lifecycle_node inactive [2] # 激活节点 $ ros2 lifecycle set /my_lifecycle_node activate Transitioning successful$ ros2 lifecycle get /my_lifecycle_node active [3] # 停止节点 $ ros2 lifecycle set /my_lifecycle_node deactivate Transitioning successful$ ros2 lifecycle get /my_lifecycle_node inactive [2] # 获取当前节点可转换的状态 $ ros2 lifecycle list /my_lifecycle_node - cleanup [2]Start: inactiveGoal: cleaningup - activate [3]Start: inactiveGoal: activating - shutdown [6]Start: inactiveGoal: shuttingdown # 杀掉节点 $ ros2 lifecycle set /my_lifecycle_node shutdown Transitioning successful$ ros2 lifecycle get /my_lifecycle_node finalized [4] # 尝试切换杀掉的状态为finalized节点失败 $ ros2 lifecycle set /my_lifecycle_node configure Unknown transition requested, available ones are:总结 本文对于LifecycleNode做了整体的说明和测试说明了中间的变换关系方便大家理解和用于实际使用中。 ros.rog Class LifecycleNode ↩︎ Managed nodes (ros2.org) ↩︎ ROS2----LifecycleNode生命周期节点总结 ↩︎
http://www.zqtcl.cn/news/121226/

相关文章:

  • c .net怎么做网站如何进行账号推广
  • 网站建设丨金手指谷哥12怎么看网站做的外链
  • 一个空间建多个网站青海培训网站建设公司
  • 网站国际联网备案大型外贸网站建设
  • 淮南 小学网站建设软件技术主要学什么就业前景
  • 微网站建设网站洛阳制作网站公司哪家好
  • 凤翔做网站wordpress分销商城
  • 网站产品网页设计模板企业网站优化关键词
  • 电商网站建设去迅法网网站管理与建设试题
  • 做网站必须知道的问题wordpress制作论坛
  • 怎样在建设部网站查资质证书网页设计有哪些岗位
  • 安徽中色十二冶金建设有限公司网站cad制图初学入门
  • 开发网站监控工具网上开店怎么找货源
  • 标准网站建设报价单私密浏览器直播
  • wordpress焦点图网站seo分析
  • 域名申请哪个网站好江西有色建设集团有限公司网站
  • 新乡市做网站的公司百度推广开户费用多少
  • 免费建网站哪个平台好php 未定义函数wordpress
  • 个人网站 域名选择郑州那家做网站便宜
  • 网站建设技术合伙人的技术股份全国免费发布信息网站大全
  • 兼职网站平台有哪些新手怎么学做网站
  • 有没有直接做网站的软件iis一个文件夹配置多个网站
  • 网站怎么屏蔽ip访问信息发布网站建设
  • 陕西省住房城乡建设厅网站管理中心电信服务器
  • 外国优秀网站设计程序员做任务的网站
  • 购物网站项目经验开发一个游戏软件需要多少钱
  • 专业的大连网站建设电商网站支付方案
  • 手机如何建设网站首页株洲搜索引擎优化
  • 辉县市建设局网站制作网站站用的软件下载
  • 什么网站广告做多有没有不花钱建设网站的方法