YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
JoypadControlServer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_DEV_JOYPADCONTROLSERVER_JOYPADCONTROLSERVER_H
7#define YARP_DEV_JOYPADCONTROLSERVER_JOYPADCONTROLSERVER_H
8
13#include <yarp/dev/PolyDriver.h>
16#include <yarp/os/Bottle.h>
17#include <map>
20
23{
24private:
25 typedef bool (yarp::dev::IJoypadController::*getcountmethod)(unsigned int&);
26
27 std::map<int, getcountmethod> m_countGetters;
29public:
31 ~JoypadCtrlParser() override = default;
32
34 bool respond(const yarp::os::Bottle& cmd, yarp::os::Bottle& response) override;
35};
36
51{
55
56 template<typename T>
58
59 JoypadCtrlParser m_parser;
60 yarp::dev::IJoypadController* m_IJoypad = nullptr;
61 yarp::os::Port m_rpcPort;
62 std::string m_rpcPortName;
63 JoyPort<Vector> m_portAxis;
64 JoyPort<Vector> m_portStick;
65 JoyPort<Vector> m_portTouch;
66 JoyPort<Vector> m_portButtons;
67 JoyPort<VecOfChar> m_portHats;
68 JoyPort<Vector> m_portTrackball;
69 yarp::os::BufferedPort<JoyData> m_godPort; //TODO: single port purpose
71
72
73 bool openAndAttachSubDevice(yarp::os::Searchable& prop);
74 bool openPorts();
75 void profile();
76
77public:
83 ~JoypadControlServer() override;
84
85 bool open(yarp::os::Searchable& params) override;
86 bool close() override;
87 bool attach(yarp::dev::PolyDriver* poly) override;
88 bool detach() override;
89 bool threadInit() override;
90 void threadRelease() override;
91 void run() override;
92};
93
94#endif
This class is the parameters parser for class JoypadControlServer.
JoypadControlServer: joypad input network wrapper on server side
JoypadControlServer & operator=(const JoypadControlServer &)=delete
JoypadControlServer & operator=(JoypadControlServer &&)=delete
bool open(yarp::os::Searchable &params) override
Open the DeviceDriver.
JoypadControlServer(JoypadControlServer &&)=delete
void threadRelease() override
Release method.
bool attach(yarp::dev::PolyDriver *poly) override
Attach to another object.
bool close() override
Close the DeviceDriver.
JoypadControlServer(const JoypadControlServer &)=delete
bool detach() override
Detach the object (you must have first called attach).
void run() override
Loop function.
bool threadInit() override
Initialization method.
bool configure(yarp::dev::IJoypadController *interface)
~JoypadCtrlParser() override=default
bool respond(const yarp::os::Bottle &cmd, yarp::os::Bottle &response) override
Respond to a message.
Interface implemented by all device drivers.
A cheap and cheerful framework for human readable/writable forms of messages to devices.
A container for a device driver.
Definition PolyDriver.h:23
Helper interface for an object that can wrap/or "attach" to a single other device.
A simple collection of objects that can be described and transmitted in a portable way.
Definition Bottle.h:64
A mini-server for performing network communication in the background.
An abstraction for a periodic thread.
A mini-server for network communication.
Definition Port.h:46
A base class for nested structures that can be searched.
Definition Searchable.h:31