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

【服务通信自定义srv调用3----客户端的优化】

客户端的优化

服务通信自定义srv调用,客户端随意提交两个数,完成数的相加。也就是实现参数的动态提交:
1.格式:rosrun xxxx xxxx 12 34
2.节点执行时候,需要获取命令中的参数,并且组织进 request
代码中应该加入

//优化实现。获取命令的参数if (argc !=3){ROS_INFO("提交的参数不对");return 1;}

改掉固定输入值:

 // 5.组织请求数据plumbing_server_client::AddInts ai;ai.request.num1 = atoi(argv[1]);ai.request.num2 = atoi(argv[2]);

总体代码在demo02里面改动,demo01服务端不改动。

/*需求: 编写两个节点实现服务通信,客户端节点需要提交两个整数到服务器服务器需要解析客户端提交的数据,相加后,将结果响应回客户端,客户端再解析服务器实现:1.包含头文件2.初始化 ROS 节点3.创建 ROS 句柄4.创建 客户端 对象5.请求服务,接收响应实现参数的动态提交:1.格式:rosrun xxxx xxxx 12 342.节点执行时候,需要获取命令中的参数,并且组织进 request*/
// 1.包含头文件
#include "ros/ros.h"
#include "plumbing_server_client/AddInts.h"
int main(int argc, char *argv[])
{setlocale(LC_ALL,"");//优化实现。获取命令的参数if (argc !=3){ROS_INFO("提交的参数不对");return 1;}// 2.初始化 ROS 节点ros::init(argc,argv,"dabao");// 3.创建 ROS 句柄ros::NodeHandle nh;// 4.创建 客户端 对象ros::ServiceClient client = nh.serviceClient<plumbing_server_client::AddInts>("addints");// 5.组织请求数据plumbing_server_client::AddInts ai;ai.request.num1 = atoi(argv[1]);ai.request.num2 = atoi(argv[2]);// 6.处理响应bool flag = client.call(ai);// 7.处理响应if (flag){ROS_INFO("响应成功");ROS_INFO("请求正常处理,响应结果:%d",ai.response.sum);}else{ROS_ERROR("请求处理失败....");return 1;}return 0;
}

完毕之后ctrl+shift+b进行编译。
然后ctrl+alt+t打开终端
输入roscore启动ros
然后新开一个终端
输入```bash
source ./devel/setup.bash
rosrun plumbing_server_client demo01_server

然后新开一个终端
输入

source ./devel/setup.bash
rosrun plumbing_server_client demo02_client 12 334

输出结果如下:
在这里插入图片描述
1.格式:rosrun xxxx xxxx 12 34
注意rosrun的格式在客户端的格式如果后面没有两个数,就会变成提交的参数不对。

相关文章:

【服务通信自定义srv调用3----客户端的优化】

客户端的优化 服务通信自定义srv调用&#xff0c;客户端随意提交两个数&#xff0c;完成数的相加。也就是实现参数的动态提交&#xff1a; 1.格式&#xff1a;rosrun xxxx xxxx 12 34 2.节点执行时候&#xff0c;需要获取命令中的参数&#xff0c;并且组织进 request 代码中应…...

React跨域解决方案

一、跨域日志报错 我们由于项目需要经常会需要对不同域名、不同子域的网站接口发起请求&#xff0c;有时甚至是对于同一域名的不同端口发起请求&#xff0c;此时我们经常看到以下报错&#xff1a; Access to XMLHttpRequest at xxx from origin xxx has been blocked by COR…...

内存五区的概念,内存池技术的诞生。

首先提出一道经典的面试题来引出今天的主角&#xff1a; 进程的虚拟空间分布是什么样的&#xff0c;全局变量放在哪里&#xff1f; 在数据初始化之后&#xff0c;全局变量放在.data段 在数据未初始化时&#xff0c;全局变量放在.bss段 内存五区 进程虚拟内存主要分为五个部分…...

力扣:字符串中的第一个唯一字符(C++实现)

题目部分&#xff1a; 解题思路&#xff1a; 方案一&#xff1a; 首先认真审题的小伙伴们一定会发现就是题目给了提示只包含小写字母&#xff0c;也就是说我们的排查范围是小写的26个字母。为了怕有的友友们一时短路想不起来&#xff0c;我就其按照顺序列出来吧。 即&#x…...

攻防世界 favorite_number mfw、[BJDCTF2020]ZJCTF,不过如此

favorite_number 进入环境得到源码 <?php //php5.5.9 $stuff $_POST["stuff"]; $array [admin, user]; if($stuff $array && $stuff[0] ! admin) {$num $_POST["num"];if (preg_match("/^\d$/im",$num)){if (!preg_match("…...

SummingMergeTree

假设有这样⼀种查询需求&#xff1a;终端⽤户只需要查询数据的汇总结果&#xff0c;不关⼼明细数据&#xff0c;并且数据的汇总条件是预先明确的&#xff08;GROUP BY 条件明确&#xff0c;且不会随意改变&#xff09;。 对于这样的查询场景&#xff0c;在ClickHouse中如何解决…...

JUC并发编程基础篇第一章之进程/并发/异步的概念[理解基本概念]

1. 进程和线程的概念 进程: 系统正在运行的一个应用程序;程序一旦运行就是一个进程;进程是资源分配的最小单位 线程: 是进程的实际运行单位;一个人进程可以并发控制多个线程,每条线程并行执行不同的任务 区别: 进程基本上相互独立的;而线程存在于进程内&#xff0c;是进程…...

c语言—指针进阶

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...

总结二分法

杨辉三角形&#xff08;快速查找唯一值,mid型) //二分法解//流程&#xff1a;最大列->起点行->2k--n之间究竟哪一行&#xff08;二分排列组合&#xff09;->找到行数就等差数列对应位置#include<stdio.h> #include<stdlib.h>//注意排列组合的规律是建立在…...

二叉搜索树和AVL树

目录 一、二叉搜索树 1.什么是二叉搜索树 2.二叉搜索树的实现 &#xff08;1&#xff09;构建类 &#xff08;2&#xff09;查找函数 &#xff08;3&#xff09;插入函数 &#xff08;4&#xff09;删除函数 &#xff08;5&#xff09;补齐默认成员函数 &#xff08;6…...

计算机体系结构量化研究方法【2】高速缓存Cache

目录1.计算机存储层次结构2.缓存相关概念3.缓存组织方式4.Cache回写机制5.Cache性能量化1.计算机存储层次结构 计算机存储层次结构可以看作是一个金字塔&#xff0c;越靠上层&#xff0c;容量越小&#xff0c;速度越快 L0&#xff1a;寄存器----CPU的寄存器保存着Cache取出的…...

初识设计模式 - 迭代器模式

简介 迭代器设计模式&#xff08;Iterator Design Pattern&#xff09;&#xff0c;也叫作游标设计模式&#xff08;Cursor Design Pattern&#xff09;。 迭代器模式将集合对象的遍历操作从集合类中拆分出来&#xff0c;放到迭代器类中&#xff0c;让两者的职责更加单一。 …...

三路快排(基于三指针单趟排序的快速排序)+快排时间复杂度再分析

目录 一.前言 二. 三路快排 &#x1f60d;算法思想: &#x1f60d;算法实现步骤: &#x1f60d;三指针单趟排序的实现:​ &#x1f60d;非递归快排完全体: &#x1f914;与C标准库里的快排进行对比测试: 三.快排时间复杂度再分析 一.前言 http://t.csdn.cn/mz8dghttp://…...

Eyeshot Ultimate 2023 Crack

Eyeshot Ultimate 2023 Crack 已经引入了文档类。 工作区。文档现在包含绘制场景内容所需的所有数据。 2022版GEntities已被删除。 最后&#xff0c;一个真正的跨平台中立核心产品是可用的。 新功能 曲线、平面、曲面和体积网格。 屏幕空间环境光遮挡。 托管ReadDWG和ReadDXF类…...

JAVA-8-[SpringBoot]入门程序案例和原理分析

Spring Boot框架入门教程&#xff08;快速学习版&#xff09; Spring Boot教程BooTWiki.COM 1 Spring Boot Spring Boot是Pivotal(关键性的)团队在Spring的基础上提供的一套全新的开源框架&#xff0c;其目的是为了简化Spring应用的搭建和开发过程。Spring Boot去除了大量的X…...

前端工程化

一、AST &#xff08;抽象语法树&#xff0c;Abstract Syntax Tree&#xff09; 手把手带你走进Babel的编译世界 - 掘金 (juejin.cn) 1、概念 我们所写的代码转换为机器能识别的一种树形结构&#xff0c;本身是由一堆节点&#xff08;Node&#xff09;组成&#xff0c;每个节…...

【redis】单线程 VS 多线程(入门)

【redis】单线程 VS 多线程&#xff08;入门&#xff09; 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#…...

2023蓝桥杯Java研究生组赛题

蓝桥杯Java研究生组、JavaA组看过来&#xff0c;这两个组别题目基本一样 第一次参加了Java研究生组&#xff0c;Java组应该没有C/C那么卷吧&#xff0c;主要是觉得Java组可以避开很多ACM大佬&#xff0c;前面几题感觉难度还行没有特别难&#xff0c;后面几个大题依旧是没法做&a…...

多维时序 | MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测

多维时序 | MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测 目录多维时序 | MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测&#xff0c;CNN-BiLSTM-Atte…...

微积分——Rolle定理的理解(罗尔定理)

极值定理(Extreme Value Theorem)指出&#xff0c;闭区间[a,b]上连续的函数既有最大值&#xff0c;也有最小值。然而&#xff0c;其最大最小值都可能发生在端点。罗尔定理(Rolle’s Theorem)以法国数学家Michel Rolle(1652-1719)的名字命名&#xff0c;它给出了极值存在于闭区间…...

别再乱放模型文件了!手把手教你用Simulink Project管理MBD项目(附目录结构最佳实践)

从混乱到秩序&#xff1a;Simulink Project工程化管理实战指南 在模型驱动开发&#xff08;MBD&#xff09;的世界里&#xff0c;一个整洁有序的项目结构就像建筑师的蓝图——它不仅是工作的基础&#xff0c;更是团队协作和长期维护的保障。许多工程师在初次接触Simulink时&…...

基于I2C总线与ATtiny85的RGB LCD时钟:在5个GPIO上实现多设备驱动

1. 项目概述&#xff1a;当微型控制器遇上彩色显示屏几年前&#xff0c;我在为一个智能花盆项目寻找显示方案时遇到了一个经典难题&#xff1a;手头的Adafruit Trinket&#xff08;基于ATtiny85&#xff09;只有5个可用GPIO&#xff0c;而一个能显示温湿度、时间的16x2字符LCD屏…...

LaTeX列表排版避坑指南:用enumitem包轻松解决编号重置、缩进和对齐问题

LaTeX列表排版避坑指南&#xff1a;用enumitem包轻松解决编号重置、缩进和对齐问题 在撰写学术论文、技术文档或法律条款时&#xff0c;列表结构是组织内容的重要工具。但LaTeX默认的列表环境往往让用户陷入编号混乱、缩进不一致的泥潭。本文将深入剖析这些痛点的根源&#xff…...

如何在10分钟内搭建自己的游戏串流服务器:Sunshine开源游戏串流完整教程

如何在10分钟内搭建自己的游戏串流服务器&#xff1a;Sunshine开源游戏串流完整教程 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想在任何设备上玩PC游戏吗&#xff1f;Sunshin…...

冻肉切丁机性价比排名:企业采购选型策略深度解析

冻肉切丁机性价比排名与企业采购选型策略&#xff1a;FAQ深度解析“不是越贵越好&#xff0c;适合才是王道——冻肉切丁机采购需平衡性能、成本与场景适配性”企业采购冻肉切丁机时&#xff0c;常被市场上五花八门的性价比排名绕晕&#xff0c;既担心买贵了浪费成本&#xff0c…...

中小企业如何通过Taotoken的Token Plan套餐控制AI集成成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 中小企业如何通过Taotoken的Token Plan套餐控制AI集成成本 应用场景类&#xff0c;中小企业在为官网或CRM系统集成AI功能时&#x…...

PPTist:5分钟创建专业演示文稿的免费开源在线PPT制作工具终极指南

PPTist&#xff1a;5分钟创建专业演示文稿的免费开源在线PPT制作工具终极指南 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, …...

ZYNQ PS-PL协同实战:如何设计一个带触发与延时的多通道数据采集卡?

ZYNQ PS-PL协同实战&#xff1a;工业级多通道数据采集卡架构设计精要 在工业自动化与测试测量领域&#xff0c;数据采集系统的性能直接决定了整个系统的可靠性与精度。Xilinx ZYNQ系列SoC凭借其独特的ARM处理器(PS)与可编程逻辑(PL)协同架构&#xff0c;成为构建高性能数据采集…...

别再只调XGBoost参数了!试试阿里PAI这篇AAAI 2024新作AMFormer,用Transformer做表格数据效果真香

突破表格数据建模瓶颈&#xff1a;AMFormer如何用算术特征交互重塑深度学习方法 在金融风控、医疗诊断和推荐系统等实际业务场景中&#xff0c;结构化表格数据始终占据着核心地位。传统树模型如XGBoost和LightGBM凭借对特征缺失和噪声的鲁棒性&#xff0c;长期统治着这一领域。…...

CST 2023 GPU加速实战:从硬件选型到性能验证,一份给仿真工程师的避坑清单

CST 2023 GPU加速实战&#xff1a;从硬件选型到性能验证&#xff0c;一份给仿真工程师的避坑清单 当电磁仿真项目规模从实验室级别扩展到工业级应用时&#xff0c;计算资源的需求往往呈指数级增长。我曾见证过一个汽车雷达天线阵列的仿真案例&#xff1a;采用传统CPU计算需要72…...