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

搜索引擎营销网站lamp环境wordpress

搜索引擎营销网站,lamp环境wordpress,刷赞网站建设,晋江文学网文章目录 前言一、 ROS 文件系统级1). 工作空间 Ws2). 功能包3). 消息 msg4). 服务 srv 二、计算图级1). 动态加载节点 nodelet2). 主题 topic3). 服务 srv4). 消息 msg5). 试用练习5). 创建工作空间6). 创建 ROS 功能包和元功能包7). 编译ROS功能包8). 使用 ROS 节点9). 使用主… 文章目录 前言一、 ROS 文件系统级1). 工作空间 Ws2). 功能包3). 消息 msg4). 服务 srv 二、计算图级1). 动态加载节点 nodelet2). 主题 topic3). 服务 srv4). 消息 msg5). 试用练习5). 创建工作空间6). 创建 ROS 功能包和元功能包7). 编译ROS功能包8). 使用 ROS 节点9). 使用主题与节点交互 rostopic10). 使用服务 rosservice11). 使用参数服务器 rosparam12). 创建节点13). 编译节点14). 创建 msg 和 srv 文件15). 使用 srv 和 msg 文件16). launch17). 动态参数 前言 本文为 11 月 11 日 ROS 学习笔记——ROS 架构及概念分为 ROS 文件系统级和计算图级两节。 一、 ROS 文件系统级 功能包 package用于创建ROS程序的最小结构和最少内容包含ROS运行进程节点、配置文件等功能包清单 package.xml提供关于功能包、 许可证、依赖关系、编译标志等的信息元功能包 Metapackage: 几个具有某些功能的包组织在一起元功能包清单消息类型 msg type: 进程发送到其他进程的信息,服务类型 srv type: 为 ROS 中由每个进程提供的服务定义请求和响应数据结构。 1). 工作空间 Ws 工作空间就是一个文件夹包含功能包功能包又包含源文件和环境或工作空间提供编译这些功能包的一种方式. 源文件空间 src放置功能包、项目、复制的包等。最重要的一个文件是 CMakeLists.txt编译空间 build为功能包和项目保存缓存信息、配置和其他中间文件。开发空间 devel用来保存编译后的程序无须安装就能用来测试的程序。 2). 功能包 功能包是一种特定结构的文件和文件夹组合结构如下 include/package_name/包含需要的库的头文件,msg/: 存放非标准信息scripts/: 存放Bash、Python或任何其他脚本语言的可执行脚本src/: 存储程序源文件srv/: 服务类型package.xml: 功能包清单文件。 package.xml 必须在每个功能包中用来说明此包相关的各类信息包括包的名称、依赖关系等信息。两个典型标记 build_depend 和 run_depend: build_depend: 显示当前功能包安装之前必须先安装哪些功能包run_depend: 显示运行功能包中代码所需要的包. 3). 消息 msg 消息类型必须具有字段 field 和常量 constant如 int32 idfloat32 velstring name 4). 服务 srv 用以实现节点之间的请求/响应通信。 二、计算图级 ROS 创建一个连接到所有进程的网络。在系统中的任何节点都可以访问此网络并通过该网络与其他节点交互获取其他节点发送的信息并将自身数据发布到网络上。 节点 node计算执行进程与其他节点进行交互。最好让众多节点都具有单一的功能而不是在系统中创建一个包罗万象的大节点。节点管理器 master用于节点的名称注册和查找等也设置节点间的通信。如果在整个ROS中没有节点管理器就无法与节点、服务、消息等通信。参数服务器 parameter server: 通过参数就能够在运行时配置节点或改变节点的工作任务。消息 message: 节点通过消息完成彼此的沟通。消息包含一个节点发送到其他节点的信息数据。主题 topic每个消息都必须有一个名称以便被 ROS 网络分发。节点可以通过订阅某个主题接收来自其他节点的消息。一个节点可以订阅一个主题而不需要任何其他节点同时发布该主题。服务 service服务能够允许我们直接与某个节点进行交互。消息记录包 bag用于保存和回放ROS消息 数据的文件格式。 1). 动态加载节点 nodelet 内部可通信的多个节点可以在单个进程中运行多个节点每个nodelet为一个线程。可以在不使用 ROS 网络的情况下与其他节点通信节点通信效率更高。 nodelet 对于摄像头和3D传感器这类数据传输量非常大的设备特别有用。 2). 主题 topic 节点间用来传输数据的总线。通过主题进行消息传输不需要节点之间直接连接发布者和订阅者之间不需要知道彼此是否存在。一个主题可以有多个订阅者也可以有多个发布者。每个主题都是强类型的发布到主题上的消息必须与主题的 ROS 消息类型相匹配并且节点只能接收类型匹配的消息 TCP/IP基于 TCP 传输称为 TCPROS使用 TCP/IP 长连接是ROS默认的传输方式UDPUDPROS是一种低延迟高效率的传输方式 但可能产生数据丢失最适合远程操控之类的任务。 3). 服务 srv 当需要直接与节点通信并以 RPC 方式获得应答时将无法通过主题实现而需要使用服务。服务需要由用户开发节点并不提供标准服务。包含消息源代码的 文件存储在 srv 文件夹中。 服务类型是包名和 .srv 文件名的组合。例如 chapter2_tutorials/srv/chapter2_srv1.srv 文件的服务类型是 chapter2_tutorials/chapter2_srv1 4). 消息 msg 一个节点通过向特定主题发布消息将信息发送到另一个节点。消息的类型在遵循以下标准命名方式包名/文件名.msg, 例 如std_msgs/msg/String.msg 的消息类型是 std_msgs/String 5). 试用练习 查找 turtlesim 包的路径 rospack find turtlesim/opt/ros/noetic/share/turtlesim查找在系统中安装过的某个元功能包 rosstack find ros_comm/opt/ros/noetic/share/ros_comm获得功能包或功能包集下面的文件列表 rosls turtlesim/cmake images msg package.xml srv更改当前工作目录 roscd turtlesim/ pwd/opt/ros/noetic/share/turtlesim5). 创建工作空间 查看 ROS 正在使用的工作空间 echo $ROS_PACKAGE_PATH /home/li/Documents/Demo01_Ws/src:/opt/ros/noetic/share新建此文件夹 mkdir -p ~/dev/catkin_ws/src cd ~/dev/catkin_ws/src/ catkin_init_workspace编译工作空间 cd ~/dev/catkin_ws/ catkin_make完成配置 source devel/setup.bash6). 创建 ROS 功能包和元功能包 cd ~/dev/catkin_ws/src/ catkin_create_pkg chapter2_tut std_msgs roscpp7). 编译ROS功能包 cd ~/dev/catkin_ws/ catkin_make8). 使用 ROS 节点 启动一个新的节点 rosrun turtlesim turtlesim_node查看用于程序调试的信息 rosnode info /turtlesim9). 使用主题与节点交互 rostopic 使用箭头键移动海龟 rosrun turtlesim turtle_teleop_key使用以下命令行查看主题清单 rostopic list/rosout/rosout_agg/turtle1/cmd_vel/turtle1/color_sensor/turtle1/pose运行以下命令行并使用箭头键查看消息产生时发送了哪些数据 rostopic echo /turtle1/cmd_vellinear: x: 2.0y: 0.0z: 0.0angular: x: 0.0y: 0.0z: 0.0 ---使用以下命令行查看由主题发送的消息类型 rostopic type /turtle1/cmd_velgeometry_msgs/Twist使用以下命令查看消息字段 rosmsg show geometry_msgs/Twistgeometry_msgs/Vector3 linearfloat64 xfloat64 yfloat64 zgeometry_msgs/Vector3 angularfloat64 xfloat64 yfloat64 z直接发布主题使海龟做圆周运动 rostopic pub /turtle1/cmd_vel geometry_msgs/Twist linear:x: 1.0y: 0.0z: 0.0 angular:x: 0.0y: 0.0z: 1.0 10). 使用服务 rosservice 服务是能够使节点之间相互通信的另一种方法。服务允许节点发送请求和接收响应 列出活动服务 rosservice list/clear/kill/reset/rosout/get_loggers/rosout/set_logger_level/spawn/turtle1/set_pen/turtle1/teleport_absolute/turtle1/teleport_relative/turtlesim/get_loggers/turtlesim/set_logger_level查看某个服务的类型 rosservice type /clearstd_srvs/Empty调用服务 rosservice call /clear 以不同的方向在另一个位置创建另一只海龟 rosservice type /spawn | rossrv show // 查看该服务的类型float32 xfloat32 yfloat32 thetastring name---string namerosservice call /spawn 3 3 0.2 new_turtle // 调用服务11). 使用参数服务器 rosparam 参数服务器用于存储所有节点均可访问的数据。ROS中用来管理参数服务器的工具称为 rosparam. 查看所有节点使用的服务器参数 rosparam list/rosdistro/roslaunch/uris/host_li_alienware__41685/rosversion/run_id/turtlesim/background_b/turtlesim/background_g/turtlesim/background_r读取参数的某个值 rosparam get /turtlesim/background_b255设定一个新的值 rosparam set /turtlesim/background_b 100使用 dump 参数保存或加载参数服务器的内容 rosparam dump save.yaml使用 load 向参数服务器加载新的数据文件 rosparam load load.yaml namespace12). 创建节点 创建两个节点一个发布数据另一个接收数据. #include ros/ros.h #include std_msgs/String.h #include sstream/*发布方 */int main(int argc, char **argv) {// 初始化节点ros::init(argc, argv, example_a);// 进程的处理程序它允许我们与环境交互ros::NodeHandle n;// 将节点实例化成发布者将发布的主题和类型的名称告知节点管理器ros::Publisher chatter_pub n.advertisestd_msgs::String(message, 1000);// 设置发送数据的频率ros::Rate loop_rate(10);while (ros::ok()) {// 创建消息变量std_msgs::String msg;std::stringstream ss;ss I am the example_a_node;msg.data ss.str();// 继续发布消息chatter_pub.publish(msg);// spinOnce 在主循环中执行一次迭代允许用户执行操作ros::spinOnce();// 将程序挂起loop_rate.sleep();}return 0; }#include ros/ros.h #include std_msgs/String.h/*订阅方 */// 回调函数 // 每次节点收到一条消息时调用该函数处理数据 void chatterCallback(const std_msgs::String::ConstPtr msg) {ROS_INFO(I heard: [%s], msg-data.c_str());}int main(int argc, char **argv) {ros::init(argc, argv, example_b);ros::NodeHandle n;// 创建一个订阅者并从主题获取以message为名称的消息数据ros::Subscriber sub n.subscribe(message, 1000,chatterCallback);// 运行到这里时调用 chatterCallback 回调函数ros::spin();return 0; }13). 编译节点 修改 CMakeLists.txt add_executable(example1_a src/example1_a.cpp) add_executable(example1_b src/example1_b.cpp)add_dependencies(example1_a ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) add_dependencies(example1_b ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})target_link_libraries(example1_a${catkin_LIBRARIES} ) target_link_libraries(example1_b${catkin_LIBRARIES} )启动 roscore并在不同的命令行窗口下分别运行两个节点 roscore rosrun demo01_pub_cli example1_arosrun demo01_pub_cli example1_b [ INFO] [1700051508.077304984]: I heard: [I am the example_a_node][ INFO] [1700051508.177173843]: I heard: [I am the example_a_node][ INFO] [1700051508.277239966]: I heard: [I am the example_a_node]...使用 rosnode 和 rostopic 命令来调试和查看当前节点的运行状况 rosnode info /example_bNode [/example_b]Publications: * /rosout [rosgraph_msgs/Log]Subscriptions: * /message [std_msgs/String]Services: * /example_b/get_loggers* /example_b/set_logger_levelrostopic info /message Type: std_msgs/StringPublishers: * /example_aSubscribers: * /example_brostopic type /messagestd_msgs/Stringrostopic bw /messagesubscribed to [/message]average: 296.19B/smean: 27.00B min: 27.00B max: 27.00B window: 1014). 创建 msg 和 srv 文件 首先创建一个新的 .msg 文件添加 int32 A int32 B int32 C编辑 package.xml 取消注释 build_dependmessage_generation/build_depend exec_dependmessage_runtime/exec_depend编辑 CMakeList.txt并编译 find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation )generate_messages(DEPENDENCIESstd_msgs )# Generate messages in the msg folder add_message_files(FILESchapter2_msg1.msg )# Generate added messages and services with any dependencies listed here generate_messages(DEPENDENCIESstd_msgs )检查编译是否成功如果看到与 .msg 文件中看到一样的内容说明编译正确 rosmsg show demo01_pub_cli/chapter2_msg1int32 Aint32 Bint32 C创建一个新的 .srv 文件 int32 A int32 B int32 C --- int32 sum编辑 package.xml 取消注释 build_dependmessage_generation/build_depend exec_dependmessage_runtime/exec_depend编辑 CMakeList.txt并编译 catkin_package( # INCLUDE_DIRS include # LIBRARIES demo01_pub_cliCATKIN_DEPENDS message_runtime # DEPENDS system_lib )# Generate messages in the msg folder add_message_files(FILESchapter2_msg1.msg )# Generate services in the srv folder add_service_files(FILESchapter2_srv1.srv )# Generate added messages and services with any dependencies listed here generate_messages(DEPENDENCIESstd_msgs )检查编译是否成功如果看到与 .msg 文件中看到一样的内容说明编译正确 rossrv show demo01_pub_cli/chapter2_srv1int32 Aint32 Bint32 C---int32 sum15). 使用 srv 和 msg 文件 该服务将对三个整数求和需要两个节点一个 服务器 和一个 客户端 。 #include ros/ros.h #include demo01_pub_cli/chapter2_srv1.h/*服务端 */// 回调函数 bool add(demo01_pub_cli::chapter2_srv1::Request req,demo01_pub_cli::chapter2_srv1::Response res) {res.sum req.A req.B req.C;ROS_INFO(request: A%d, B%d, C%d, (int)req.A, (int)req.B,(int)req.C);ROS_INFO(sending back response: [%d], (int)res.sum);return true;}int main(int argc, char **argv) {ros::init(argc, argv, add_3_ints_server);ros::NodeHandle n;// 创建服务并在 ROS 中发布广播ros::ServiceServer service n.advertiseService(add_3_ints, add);ROS_INFO(Ready to add 3 ints.);ros::spin();return 0; }#include ros/ros.h #include demo01_pub_cli/chapter2_srv1.h #include cstdlib/*客户端 */int main(int argc, char **argv) {ros::init(argc, argv, add_3_ints_client);if (argc ! 4) {ROS_INFO(usage: add_3_ints_client A B C);return 1;}ros::NodeHandle n;// 创建客户端名为 add_3_intsros::ServiceClient client n.serviceClientdemo01_pub_cli::chapter2_srv1(add_3_ints);// 创建 srv 请求类型的实例// 加入需要发送的数据值demo01_pub_cli::chapter2_srv1 srv;srv.request.A atoll(argv[1]);srv.request.B atoll(argv[2]);srv.request.C atoll(argv[3]);// 调用服务并发送数据if (client.call(srv)) {ROS_INFO(Sum: %ld, (long int)srv.response.sum);} else {ROS_ERROR(Failed to call service add_3_ints);return 1;}return 0; }编译 CMakeList.txt add_executable(example2_a src/example2_a.cpp) add_executable(example2_b src/example2_b.cpp)add_dependencies(example2_a ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) add_dependencies(example2_b ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})target_link_libraries(example2_a${catkin_LIBRARIES} ) target_link_libraries(example2_b${catkin_LIBRARIES} )启动节点 rosrun demo01_pub_cli example2_a[ INFO] [1700059229.228592862]: Ready to add 3 ints.[ INFO] [1700059253.580802115]: request: A1, B2, C3[ INFO] [1700059253.580825139]: sending back response: [6]rosrun demo01_pub_cli example2_b 1 2 3[ INFO] [1700059253.580914856]: Sum: 6创建发布和订阅节点 #include ros/ros.h #include demo01_pub_cli/chapter2_msg1.h #include sstreamint main(int argc, char **argv) {ros::init(argc, argv, example3_a);ros::NodeHandle n;ros::Publisher pub n.advertisedemo01_pub_cli::chapter2_msg1(message, 1000);ros::Rate loop_rate(10);while (ros::ok()) {demo01_pub_cli::chapter2_msg1 msg;msg.A 1;msg.B 2;msg.C 3;pub.publish(msg);ros::spinOnce();loop_rate.sleep();}return 0; }#include ros/ros.h #include demo01_pub_cli/chapter2_msg1.hvoid messageCallback(const demo01_pub_cli::chapter2_msg1::ConstPtr msg) {ROS_INFO(I heard: [%d] [%d] [%d], msg-A, msg-B, msg-C);}int main(int argc, char **argv) {ros::init(argc, argv, example3_b);ros::NodeHandle n;ros::Subscriber sub n.subscribe(message, 1000, messageCallback);ros::spin();return 0; }编译 CMakeList.txt add_executable(example3_a src/example3_a.cpp) add_executable(example3_b src/example3_b.cpp)add_dependencies(example3_a ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) add_dependencies(example3_b ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})target_link_libraries(example3_a${catkin_LIBRARIES} ) target_link_libraries(example3_b${catkin_LIBRARIES} )启动节点 rosrun demo01_pub_cli example3_arosrun demo01_pub_cli example3_b[ INFO] [1700061493.409080424]: I heard: [1] [2] [3][ INFO] [1700061493.509095136]: I heard: [1] [2] [3][ INFO] [1700061493.609056521]: I heard: [1] [2] [3]...16). launch 用于启动多个节点。 当执行启动文件时并不需要在 roscore 命令前启动roslaunch 会启动它。当在 shell中只运行一个节点时可以看到 ROS_INFO 输出的消息。但是当运行启动文件时则看不到。 创建 .launch 文件 launchnode nameexample1_a pkgdemo01_pub_cli typeexample1_a /node nameexample1_b pkgdemo01_pub_cli typeexample1_b / /launch启动 .launch 文件 roslaunch demo01_pub_cli chapter2.launch查看运行的节点 rosnode list/example1_a/example1_b/rosout运行 rqt_console 程序看到信息 rqt_console17). 动态参数 配置一个包含动态重配置实用程序功能的基本节点。 创建配置文件 .cfg #! /usr/bin/env python PACKAGE demo01_pub_cli# 初始化参数生成器 from dynamic_reconfigure.parameter_generator_catkin import *gen ParameterGenerator()# 加入不同的参数类型并设置默认值、描述、范围等 gen.add()- name: 参数的名称- type: 参数值的类型- level: 一个传递给回调的位掩码- description: 描述- default: 节点启动时的默认值- min: 参数最小值- max: 参数最大值gen.add(double_param, double_t, 0, A double parameter,.1, 0, 1) gen.add(str_param, str_t, 0, A string parameter, Chapter2_dynamic_reconfigure) gen.add(int_param, int_t, 0, An Integer parameter, 1, 0, 100) gen.add(bool_param, bool_t, 0, A Boolean parameter, True)size_enum gen.enum([gen.const(Low, int_t, 0, Low is 0),gen.const(Medium, int_t, 1, Medium is 1),gen.const(High, int_t, 2, High is 2)],Select from the list)gen.add(size, int_t, 0, Select from the list, 1, 0, 3, edit_methodsize_enum)# 生成必要的文件并退出程序 exit(gen.generate(PACKAGE, demo01_pub_cli, chapter2_))修改执行文件的权限 chmod x *.cfg修改 CMakeList.txt 并编译 find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generationdynamic_reconfigure )generate_dynamic_reconfigure_options(cfg/chapter2.cfg )add_dependencies(example4 demo01_pub_cli_gencfg)写具有动态重配置支持的新节点 #include ros/ros.h #include dynamic_reconfigure/server.h #include demo01_pub_cli/chapter2_Config.h// 参数访问的方式, 将输出参数的新值 void callback(demo01_pub_cli::chapter2_Config config, uint32_t level) {ROS_INFO(Reconfigure Request: %d, %f, %s %s %d,config.int_param,config.double_param,config.str_param.c_str(),config.bool_param?True:False,config.size);}int main(int argc, char **argv) {ros::init(argc, argv, example4_dynamic_reconfigure);// 初始化服务器dynamic_reconfigure::Serverdemo01_pub_cli::chapter2_Config server;dynamic_reconfigure::Serverdemo01_pub_cli::chapter2_Config::CallbackType f;f boost::bind(callback, _1, _2);// 向服务器发送callback函数。当服务器得到重新配置请求时调用 callback 函数server.setCallback(f);ros::spin();return 0; }修改 CMakeLists.txt , 编译并运行节点和动态重配置 GUI add_executable(example4 src/example4.cpp) add_dependencies(example4 demo01_pub_cli_gencfg)rosrun demo01_pub_cli example4[ INFO] [1700312052.497444818]: Reconfigure Request: 1, 0.100000, Chapter2_dynamic_reconfigure True 1rosrun rqt_reconfigure rqt_reconfigure[ INFO] [1700312097.307494990]: Reconfigure Request: 42, 0.100000, Chapter2_dynamic_reconfigure True 1[ INFO] [1700312099.355379827]: Reconfigure Request: 42, 0.470000, Chapter2_dynamic_reconfigure True 1[ INFO] [1700312101.253127436]: Reconfigure Request: 73, 0.470000, Chapter2_dynamic_reconfigure True 1[ INFO] [1700312103.210104907]: Reconfigure Request: 73, 0.710000, Chapter2_dynamic_reconfigure True 1
文章转载自:
http://www.morning.wnhgb.cn.gov.cn.wnhgb.cn
http://www.morning.rqnml.cn.gov.cn.rqnml.cn
http://www.morning.sfmqm.cn.gov.cn.sfmqm.cn
http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn
http://www.morning.phxdc.cn.gov.cn.phxdc.cn
http://www.morning.jxcwn.cn.gov.cn.jxcwn.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.dqwkm.cn.gov.cn.dqwkm.cn
http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn
http://www.morning.tqygx.cn.gov.cn.tqygx.cn
http://www.morning.ktmnq.cn.gov.cn.ktmnq.cn
http://www.morning.syglx.cn.gov.cn.syglx.cn
http://www.morning.zxznh.cn.gov.cn.zxznh.cn
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn
http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn
http://www.morning.rcjwl.cn.gov.cn.rcjwl.cn
http://www.morning.fwnqq.cn.gov.cn.fwnqq.cn
http://www.morning.nqgff.cn.gov.cn.nqgff.cn
http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn
http://www.morning.kfcz.cn.gov.cn.kfcz.cn
http://www.morning.lhhdy.cn.gov.cn.lhhdy.cn
http://www.morning.jyzqn.cn.gov.cn.jyzqn.cn
http://www.morning.rcyrm.cn.gov.cn.rcyrm.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn
http://www.morning.brcdf.cn.gov.cn.brcdf.cn
http://www.morning.tqgx.cn.gov.cn.tqgx.cn
http://www.morning.plqkz.cn.gov.cn.plqkz.cn
http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn
http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn
http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn
http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn
http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn
http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn
http://www.morning.yzktr.cn.gov.cn.yzktr.cn
http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn
http://www.morning.trplf.cn.gov.cn.trplf.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.tqqfj.cn.gov.cn.tqqfj.cn
http://www.morning.xpqdf.cn.gov.cn.xpqdf.cn
http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn
http://www.morning.nhrkc.cn.gov.cn.nhrkc.cn
http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn
http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn
http://www.morning.pypbz.cn.gov.cn.pypbz.cn
http://www.morning.bplqh.cn.gov.cn.bplqh.cn
http://www.morning.wdpbq.cn.gov.cn.wdpbq.cn
http://www.morning.swlwf.cn.gov.cn.swlwf.cn
http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn
http://www.morning.mnslh.cn.gov.cn.mnslh.cn
http://www.morning.jpbpc.cn.gov.cn.jpbpc.cn
http://www.morning.bpmtx.cn.gov.cn.bpmtx.cn
http://www.morning.qttg.cn.gov.cn.qttg.cn
http://www.morning.jgnjl.cn.gov.cn.jgnjl.cn
http://www.morning.pghfy.cn.gov.cn.pghfy.cn
http://www.morning.pmptm.cn.gov.cn.pmptm.cn
http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn
http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn
http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn
http://www.morning.drqrl.cn.gov.cn.drqrl.cn
http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn
http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn
http://www.morning.pwbps.cn.gov.cn.pwbps.cn
http://www.morning.srrrz.cn.gov.cn.srrrz.cn
http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn
http://www.morning.lcplz.cn.gov.cn.lcplz.cn
http://www.morning.xptkl.cn.gov.cn.xptkl.cn
http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn
http://www.morning.kzpy.cn.gov.cn.kzpy.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.wsyst.cn.gov.cn.wsyst.cn
http://www.morning.dmldp.cn.gov.cn.dmldp.cn
http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn
http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn
http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn
http://www.morning.jlnlr.cn.gov.cn.jlnlr.cn
http://www.morning.fplwz.cn.gov.cn.fplwz.cn
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.morning.pshtf.cn.gov.cn.pshtf.cn
http://www.tj-hxxt.cn/news/276757.html

相关文章:

  • 企业推广网站的方法辽宁建筑信息网查询
  • 义乌外贸建网站黄页网站大全
  • 网站编辑器是怎么做的网站建设记入什么科目
  • dns 本地 网站建设东营微信网站制作
  • 叫别人做网站要多久如何做平台网站
  • 做加盟正规网站怎样下载模板网站
  • 重庆建设厅的网站网页浏览
  • 企业手机网站建设方案网页小游戏手机版
  • 网站建设后的专人维护wordpress的安装步骤
  • 网站建设和运行遇到的问题网站建设论坛报告
  • dw个人网站建立教学徐州企业网站制作
  • 哪个网站是做安全教育网站优化工具分析工具
  • 推广网站的方法有搜索制作小网站
  • 美食网站php源码青岛北方现货交易平台代理
  • 上海团购网站建设yahoo网站提交
  • 怎样免费建自己的网站青少年编程培训教育
  • 沈阳网站建设策划莱芜金点子招工招聘
  • 网站空间租用价格怀柔网站建设优化seo
  • 江苏省建设厅网站360优化大师app下载
  • php彩票网站建设源码海南旅游网网页制作
  • 上海网站设计要多少钱成都网站定制开发
  • php网站怎么做302玉林网站制作
  • 怎样用自己的电脑,做网站网页版传奇手游
  • 网站建设培训相关资料网站建设驻地开发合同
  • 营销网站制作企业十句经典广告语
  • 中国建设银行公司网站官网本地网站开发
  • 全景网站制作网站加速器
  • 四川网站推广河南郑州网站关键词排名系统
  • 网站关键词一般设置几个制作一个网站需要哪些人
  • 淄博网站的建设企业网站功效