ROSBridge.cpp 1.24 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5
#include "ros_bridge/include/ROSBridge.h"

ROSBridge::ROSBridge::ROSBridge() :
    _casePacker(&_typeFactory, &_jsonFactory)
  , _rbc("localhost:9090")
6 7 8
  , _topicPublisher(_casePacker, _rbc)
  , _topicSubscriber(_casePacker, _rbc)
  , _server(_casePacker, _rbc)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
9 10 11 12
{

}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
13
void ROSBridge::ROSBridge::publish(ROSBridge::ROSBridge::JsonDocUPtr doc)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
14
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
15
    _topicPublisher.publish(std::move(doc));
Valentin Platzgummer's avatar
Valentin Platzgummer committed
16 17
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
18
void ROSBridge::ROSBridge::subscribe(const char *topic, const std::function<void(JsonDocUPtr)> &callBack)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
19
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
20
    _topicSubscriber.subscribe(topic, callBack);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
21 22
}

23 24 25 26 27 28 29
void ROSBridge::ROSBridge::advertiseService(const std::string &service,
                                            const std::string &type,
                                            const std::function<JsonDocUPtr(JsonDocUPtr)> &callback)
{
    _server.advertiseService(service, type, callback);
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
30
const ROSBridge::CasePacker *ROSBridge::ROSBridge::casePacker() const
Valentin Platzgummer's avatar
Valentin Platzgummer committed
31
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
32
    return &_casePacker;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
33 34
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
35
void ROSBridge::ROSBridge::start()
Valentin Platzgummer's avatar
Valentin Platzgummer committed
36
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
37 38
    _topicPublisher.start();
    _topicSubscriber.start();
39
    _server.start();
Valentin Platzgummer's avatar
Valentin Platzgummer committed
40 41
}

42
void ROSBridge::ROSBridge::reset()
Valentin Platzgummer's avatar
Valentin Platzgummer committed
43
{
44 45
    _topicPublisher.reset();
    _topicSubscriber.reset();
46
    _server.reset();
Valentin Platzgummer's avatar
Valentin Platzgummer committed
47 48
}

49 50 51 52 53
bool ROSBridge::ROSBridge::connected()
{
    return _rbc.connected();
}