66 lines
1.6 KiB
C++
66 lines
1.6 KiB
C++
#include <stdexcept>
|
|
#include <callback.h>
|
|
#include "livoxProto1.h"
|
|
#include "device.h"
|
|
#include "core.h"
|
|
|
|
|
|
extern "C" {
|
|
|
|
void livoxProto1_getOrCreateDeviceReq(
|
|
const std::string& deviceIdentifier,
|
|
const std::shared_ptr<smo::ComponentThread>& componentThread,
|
|
int handshakeTimeoutMs, int retryDelayMs,
|
|
const std::string& smoIp, uint8_t smoSubnetNbits,
|
|
uint16_t dataPort, uint16_t cmdPort, uint16_t imuPort,
|
|
smo::Callback<livoxProto1_getOrCreateDeviceReqCbFn> callback
|
|
)
|
|
{
|
|
// Get the global DeviceManager instance
|
|
auto& protoState = livoxProto1::getProtoState();
|
|
if (!protoState.deviceManager)
|
|
{
|
|
throw std::runtime_error(
|
|
std::string(__func__) + ": LivoxProto1 not initialized - call "
|
|
"livoxProto1_main first");
|
|
}
|
|
|
|
// Delegate to DeviceManager
|
|
protoState.deviceManager->getOrCreateDeviceReq(
|
|
deviceIdentifier, componentThread,
|
|
handshakeTimeoutMs, retryDelayMs,
|
|
smoIp, smoSubnetNbits,
|
|
dataPort, cmdPort, imuPort,
|
|
callback);
|
|
}
|
|
|
|
void livoxProto1_destroyDeviceReq(
|
|
std::shared_ptr<livoxProto1::Device> device,
|
|
smo::Callback<livoxProto1_destroyDeviceReqCbFn> callback
|
|
)
|
|
{
|
|
auto& protoState = livoxProto1::getProtoState();
|
|
if (!protoState.deviceManager)
|
|
{
|
|
throw std::runtime_error(std::string(__func__)
|
|
+ ": DeviceManager not initialized");
|
|
}
|
|
|
|
protoState.deviceManager->destroyDeviceReq(
|
|
device, callback);
|
|
}
|
|
|
|
void livoxProto1_main(
|
|
const std::shared_ptr<smo::ComponentThread>& componentThread,
|
|
const smo::stim_buff::SmoCallbacks& smoCallbacks)
|
|
{
|
|
livoxProto1::main(componentThread, smoCallbacks);
|
|
}
|
|
|
|
void livoxProto1_exit(void)
|
|
{
|
|
livoxProto1::exit();
|
|
}
|
|
|
|
} // extern "C"
|