Replace boost features with C++11 equivalents (#58)

* Replace boost features with C++11 equivalents

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Include <cmath> in util.h

Needed for std::abs

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
This commit is contained in:
Jacob Perron 2020-11-01 18:05:17 -08:00 committed by GitHub
parent 850b011a55
commit 2b9591f0f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 95 additions and 87 deletions

View file

@ -35,19 +35,20 @@ POSSIBILITY OF SUCH DAMAGE.
#ifndef CREATE_SERIAL_H
#define CREATE_SERIAL_H
#include <condition_variable>
#include <functional>
#include <memory>
#include <mutex>
#include <thread>
#include <boost/asio.hpp>
#include <boost/thread.hpp>
#include <boost/thread/condition_variable.hpp>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include "create/data.h"
#include "create/types.h"
#include "create/util.h"
namespace create {
class Serial : public boost::enable_shared_from_this<Serial> {
class Serial : public std::enable_shared_from_this<Serial> {
protected:
boost::asio::io_service io;
@ -55,9 +56,9 @@ namespace create {
boost::asio::serial_port port;
private:
boost::thread ioThread;
boost::condition_variable dataReadyCond;
boost::mutex dataReadyMut;
std::thread ioThread;
std::condition_variable dataReadyCond;
std::mutex dataReadyMut;
bool dataReady;
bool isReading;
bool firstRead;
@ -66,13 +67,13 @@ namespace create {
// Callback executed when data arrives from Create
void onData(const boost::system::error_code& e, const std::size_t& size);
// Callback to execute once data arrives
boost::function<void()> callback;
std::function<void()> callback;
// Start and stop reading data from Create
bool startReading();
void stopReading();
protected:
boost::shared_ptr<Data> data;
std::shared_ptr<Data> data;
// These are for possible diagnostics
uint64_t corruptPackets;
uint64_t totalPackets;
@ -85,9 +86,9 @@ namespace create {
void notifyDataReady();
public:
Serial(boost::shared_ptr<Data> data);
Serial(std::shared_ptr<Data> data);
~Serial();
bool connect(const std::string& port, const int& baud = 115200, boost::function<void()> cb = 0);
bool connect(const std::string& port, const int& baud = 115200, std::function<void()> cb = 0);
void disconnect();
inline bool connected() const { return port.is_open(); };
bool send(const uint8_t* bytes, const uint32_t numBytes);