ROS程式設計示例 加法服務端

2021-08-02 11:11:04 字數 978 閱讀 2414

#include 

#include //使用了自己建立的bigint_sum.srv

#include //使用string

/* *本來是想實現真正的大數加法運算的,然後發現如果我把bigsum定義成string型別,按照c++的邏輯,

*應該是可以直接轉換的,但是在這裡string a=argv[1]好像是不合法的,查了半天沒解決,就用了int64的整數,但是我的結果表達

*是可以計算出兩個最大int64整數之和的string型別,可這樣的話,傳遞的時候既然失效了,只能在服務端顯示,不能在

*客戶端顯示,這個好失敗。重新檢視了編譯srv這一節,實在找不到了

*/bool add(zhang::bigint_sum::request &req,zhang::bigint_sum::response &rep)

//儲存b到number2

for(int i=0;req.b!=0;i++)

int lenmax = ((len1 > len2) ? len1 : len2);//找到最「長」的乙個數,不是最大,方便下面計算結果

int len=0;

//計算sum

for(int i=lenmax-1;i>=0;i--)

//最後一位處理

if(carry!=0)

//這裡好奇怪,為什麼服務端會顯示兩個數的和在b的位置

ros_info("request: x=%ld, y=%ld",(long

int)req.a,(long

int)req.b);

//呼叫c_str輸出字串sum

ros_info("sending back response: [%s]",rep.sum.c_str());

//返回正常

return

true;

}int main(int argc,char** argv)

ROS服務端與客戶端

usr bin env python coding utf 8 import time,thread import rospy from geometry msgs.msg import twist from std srvs.srv import trigger,triggerresponse p...

TCP客戶 服務端程式示例

書中的例子中,作者自己封裝了很多方法和標頭檔案 本書有原始碼,需要按要求編譯執行 我做了修改,自己照著敲,可能方法上不太嚴謹,不會應當是可以執行的,自己敲出來也是一種學習。我們要實現如下的tcp客戶 伺服器 服務端 server.c include include include include i...

openssl程式設計之服務端

openssl程式設計之服務端 繼續上篇部落格,我們有了openssl的客戶端程式,本篇博文將詳細介紹服務端的openssl程式設計 服務端使用的證書相關檔案 ca.crt,server.crt,server.key,關於證書和key的生成,請參考 程式如下 include openssl bio....