LivoxProto1: Add en/disablePcloudDataReq()
Untested, but this should enable us to enable and disable data from the device.
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <boost/asio/deadline_timer.hpp>
|
||||
#include <boost/asio/posix/stream_descriptor.hpp>
|
||||
#include "protocol.h"
|
||||
#include <callback.h>
|
||||
|
||||
@@ -95,6 +96,8 @@ private:
|
||||
class ConnectByDeviceIdentifierReq;
|
||||
class ExecuteHandshakeReq;
|
||||
class DisconnectReq;
|
||||
class EnablePcloudDataReq;
|
||||
class DisablePcloudDataReq;
|
||||
|
||||
public:
|
||||
// Utility methods
|
||||
@@ -110,6 +113,8 @@ public:
|
||||
connectByDeviceIdentifierReqCbFn;
|
||||
typedef std::function<void(bool success, int fd)> executeHandshakeReqCbFn;
|
||||
typedef std::function<void(bool success)> disconnectReqCbFn;
|
||||
typedef std::function<void(bool success)> enablePcloudDataReqCbFn;
|
||||
typedef std::function<void(bool success)> disablePcloudDataReqCbFn;
|
||||
|
||||
// Async connection methods
|
||||
void connectReq(smo::Callback<connectReqCbFn> callback);
|
||||
@@ -121,11 +126,24 @@ public:
|
||||
const std::string& deviceIP,
|
||||
smo::Callback<executeHandshakeReqCbFn> callback);
|
||||
void disconnectReq(smo::Callback<disconnectReqCbFn> callback);
|
||||
void enablePcloudDataReq(smo::Callback<enablePcloudDataReqCbFn> callback);
|
||||
void disablePcloudDataReq(smo::Callback<disablePcloudDataReqCbFn> callback);
|
||||
|
||||
// Heartbeat state
|
||||
std::unique_ptr<boost::asio::deadline_timer> heartbeatTimer;
|
||||
// FIXME: Might be useful to rename this to commandAndHeartbeatFd.
|
||||
int heartbeatFd; // Socket file descriptor used for heartbeat
|
||||
std::atomic<bool> heartbeatActive;
|
||||
|
||||
// Point cloud data state
|
||||
std::unique_ptr<boost::asio::posix::stream_descriptor> pcloudDataSocketDesc;
|
||||
std::atomic<bool> pcloudDataActive;
|
||||
int pcloudDataFd; // Socket file descriptor for point cloud data reception
|
||||
|
||||
private:
|
||||
// Point cloud data setup
|
||||
bool setupPcloudDataSocket();
|
||||
void cleanupPcloudDataSocket();
|
||||
};
|
||||
|
||||
} // namespace livoxProto1
|
||||
|
||||
Reference in New Issue
Block a user