Libspinscale: Initial top-level SMO port to coroutine framework

We haven't ported everything. Just the top-level methods. We'll
dig in to the leaf stuff later. Surprisingly, this all went without
any real difficulties.

Runs like a charm on first try.
This commit is contained in:
2026-05-24 16:12:29 -04:00
parent c539e6e924
commit cde2737876
44 changed files with 1296 additions and 1530 deletions
+10 -10
View File
@@ -18,7 +18,7 @@
#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/posix/stream_descriptor.hpp>
#include "protocol.h"
#include <spinscale/callback.h>
#include <spinscale/cps/callback.h>
#include <spinscale/spinLock.h>
// Custom hash function for std::pair<uint8_t, uint8_t>
@@ -163,20 +163,20 @@ public:
getReturnModeReqCbFn;
// Async connection methods
void connectReq(sscl::Callback<connectReqCbFn> callback);
void connectReq(sscl::cps::Callback<connectReqCbFn> callback);
void connectToKnownDeviceReq(
sscl::Callback<connectToKnownDeviceReqCbFn> callback);
sscl::cps::Callback<connectToKnownDeviceReqCbFn> callback);
void connectByDeviceIdentifierReq(
sscl::Callback<connectByDeviceIdentifierReqCbFn> callback);
sscl::cps::Callback<connectByDeviceIdentifierReqCbFn> callback);
void executeHandshakeReq(
const std::string& deviceIP,
sscl::Callback<executeHandshakeReqCbFn> callback);
void disconnectReq(sscl::Callback<disconnectReqCbFn> callback);
void enablePcloudDataReq(sscl::Callback<enablePcloudDataReqCbFn> callback);
void disablePcloudDataReq(sscl::Callback<disablePcloudDataReqCbFn> callback);
sscl::cps::Callback<executeHandshakeReqCbFn> callback);
void disconnectReq(sscl::cps::Callback<disconnectReqCbFn> callback);
void enablePcloudDataReq(sscl::cps::Callback<enablePcloudDataReqCbFn> callback);
void disablePcloudDataReq(sscl::cps::Callback<disablePcloudDataReqCbFn> callback);
void setReturnModeReq(
uint8_t returnMode, sscl::Callback<setReturnModeReqCbFn> callback);
void getReturnModeReq(sscl::Callback<getReturnModeReqCbFn> callback);
uint8_t returnMode, sscl::cps::Callback<setReturnModeReqCbFn> callback);
void getReturnModeReq(sscl::cps::Callback<getReturnModeReqCbFn> callback);
public:
comms::DiscoveredDevice discoveredDevice;