#ifndef LIVOX_GEN1_INTERNAL_H #define LIVOX_GEN1_INTERNAL_H #include #include #include #include #include #include #include #include #include "livoxGen1.h" #include "pcloudStimulusProducer.h" namespace smo::stim_buff { struct LivoxProviderParams { int commandTimeoutMs = 5; // Default: 5ms int retryDelayMs = 5250; // Default: 5250ms uint8_t smoSubnetNbits = 24; // Default: /24 subnet uint16_t dataPort = 56000; // Default data port uint16_t cmdPort = 56001; // Default command port uint16_t imuPort = 56002; // Default IMU port std::string smoIp; // Default: empty string (will trigger IP auto-detection) }; extern const SmoCallbacks *smoHooksPtr; extern SmoThreadingModelDesc smoThreadingModelDesc; extern std::vector> attachedStimulusProducers; std::shared_ptr getStimulusProducer( const std::shared_ptr &spec); size_t parseNDgramsPerFrame( const std::shared_ptr &spec); LivoxProviderParams parseLivoxProviderParams( const std::shared_ptr &desc); bool ensureStimBufferAttachedWithoutDuplicates( const std::shared_ptr &stimProducer, const std::shared_ptr &spec); sscl::co::ViralNonPostingInvoker livoxGen1_initializeCInd(); sscl::co::ViralNonPostingInvoker livoxGen1_finalizeCInd(); sscl::co::DynamicViralPostingInvoker livoxGen1_attachDeviceCReq( sscl::co::ExplicitPostTarget postTarget, const std::shared_ptr &desc, const std::shared_ptr &componentThread); sscl::co::DynamicViralPostingInvoker livoxGen1_detachDeviceCReq( sscl::co::ExplicitPostTarget postTarget, const std::shared_ptr &desc); } // namespace smo::stim_buff #endif // LIVOX_GEN1_INTERNAL_H