nucho / Mbed 2 deprecated rosserial_mbed

Dependencies:   rosserial_mbed_lib mbed Servo

Committer:
nucho
Date:
Fri Aug 19 09:06:16 2011 +0000
Revision:
0:06fc856e99ca
Child:
1:098e75fd5ad2

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:06fc856e99ca 1 /*
nucho 0:06fc856e99ca 2 * service_server.h
nucho 0:06fc856e99ca 3 *
nucho 0:06fc856e99ca 4 * Created on: Aug 5, 2011
nucho 0:06fc856e99ca 5 * Author: astambler
nucho 0:06fc856e99ca 6 */
nucho 0:06fc856e99ca 7
nucho 0:06fc856e99ca 8
nucho 0:06fc856e99ca 9 #ifndef SERVICE_SERVER_H_
nucho 0:06fc856e99ca 10 #define SERVICE_SERVER_H_
nucho 0:06fc856e99ca 11
nucho 0:06fc856e99ca 12
nucho 0:06fc856e99ca 13 #include "node_output.h"
nucho 0:06fc856e99ca 14
nucho 0:06fc856e99ca 15 namespace ros{
nucho 0:06fc856e99ca 16 template<typename SrvRequest , typename SrvResponse>
nucho 0:06fc856e99ca 17 class ServiceServer : MsgReceiver{
nucho 0:06fc856e99ca 18 public:
nucho 0:06fc856e99ca 19 typedef void(*CallbackT)(const SrvRequest&, SrvResponse&);
nucho 0:06fc856e99ca 20
nucho 0:06fc856e99ca 21 private:
nucho 0:06fc856e99ca 22 CallbackT cb_;
nucho 0:06fc856e99ca 23
nucho 0:06fc856e99ca 24 public:
nucho 0:06fc856e99ca 25 ServiceServer(const char* topic_name, CallbackT cb){
nucho 0:06fc856e99ca 26 this->topic_ = topic_name;
nucho 0:06fc856e99ca 27 this->cb_ = cb;
nucho 0:06fc856e99ca 28 }
nucho 0:06fc856e99ca 29
nucho 0:06fc856e99ca 30 ServiceServer(ServiceServer& srv){
nucho 0:06fc856e99ca 31 this->topic_ = srv.topic_;
nucho 0:06fc856e99ca 32 this->cb_ = srv.cb_;
nucho 0:06fc856e99ca 33 }
nucho 0:06fc856e99ca 34 virtual void receive(unsigned char * data){
nucho 0:06fc856e99ca 35 req.deserialize(data);
nucho 0:06fc856e99ca 36 this->cb_(req, resp);
nucho 0:06fc856e99ca 37 no_->publish(id_, &resp);
nucho 0:06fc856e99ca 38 }
nucho 0:06fc856e99ca 39
nucho 0:06fc856e99ca 40 virtual int _getType(){
nucho 0:06fc856e99ca 41 return 3;
nucho 0:06fc856e99ca 42 }
nucho 0:06fc856e99ca 43 virtual const char * getMsgType(){
nucho 0:06fc856e99ca 44 return req.getType();
nucho 0:06fc856e99ca 45 }
nucho 0:06fc856e99ca 46
nucho 0:06fc856e99ca 47 SrvRequest req;
nucho 0:06fc856e99ca 48 SrvResponse resp;
nucho 0:06fc856e99ca 49 NodeOutput_ * no_;
nucho 0:06fc856e99ca 50
nucho 0:06fc856e99ca 51 };
nucho 0:06fc856e99ca 52 }
nucho 0:06fc856e99ca 53
nucho 0:06fc856e99ca 54 #endif /* SERVICE_SERVER_H_ */