Move/RN computeNSlotsPerDgram to Device::getNSlotsPerDgram
This commit is contained in:
@@ -4,11 +4,13 @@
|
||||
#include <boostAsioLinkageFix.h>
|
||||
#include <string>
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <memory>
|
||||
#include <atomic>
|
||||
#include <optional>
|
||||
#include <functional>
|
||||
#include <unordered_map>
|
||||
#include <stdexcept>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
@@ -113,6 +115,34 @@ public:
|
||||
Triple = 0x03
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the number of points per datagram based on return mode
|
||||
* @param returnMode The return mode (0=SingleFirst, 1=SingleStrongest, 2=Dual, 3=Triple)
|
||||
* @return Number of points per datagram
|
||||
*/
|
||||
static inline size_t getNPointsPerDgram(int returnMode)
|
||||
{
|
||||
/*
|
||||
* Map modes to points per datagram based on Livox docs
|
||||
* 1: first, 2: strongest -> 96 samples => 96 points
|
||||
* 3: dual -> 48 samples * 2 points = 96
|
||||
* 4: triple -> 30 samples * 3 points = 90
|
||||
*/
|
||||
switch (returnMode)
|
||||
{
|
||||
case static_cast<int>(ReturnMode::SingleFirst):
|
||||
case static_cast<int>(ReturnMode::SingleStrongest):
|
||||
case static_cast<int>(ReturnMode::Dual):
|
||||
return 96u;
|
||||
case static_cast<int>(ReturnMode::Triple):
|
||||
return 90u;
|
||||
default:
|
||||
throw std::runtime_error(
|
||||
std::string(__func__) + ": Unknown returnMode "
|
||||
+ std::to_string(returnMode));
|
||||
}
|
||||
}
|
||||
|
||||
// Utility methods
|
||||
std::optional<std::string> getSmoIp(const std::string& deviceIP);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user