refactor: rename driver_sick_code plugin to driver_sick_tim

The driver targets the SICK TiM 5xx/7xx family over CoLa-A; "code" described
neither the devices nor the protocol. driver_id stays sick_tim_driver.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 06:21:45 +07:00
parent 5b2c74bd36
commit f02d81c031
6 changed files with 21 additions and 21 deletions

View File

@@ -23,7 +23,7 @@ function(xlidar_add_plugin name)
endfunction()
add_subdirectory(driver_olei)
add_subdirectory(driver_sick_code)
add_subdirectory(driver_sick_tim)
add_subdirectory(driver_sick_safety)
add_subdirectory(driver_espe)
add_subdirectory(driver_rplidar)

View File

@@ -1 +0,0 @@
xlidar_add_plugin(driver_sick_code sick_code_driver.cpp)

View File

@@ -0,0 +1 @@
xlidar_add_plugin(driver_sick_tim sick_tim_driver.cpp)

View File

@@ -1,6 +1,6 @@
// SICK TiM 5xx/7xx — SOPAS/CoLa-A ASCII telegrams over TCP ("sSN/sRA
// LMDscandata" parsing).
#include "sick_code_driver.hpp"
#include "sick_tim_driver.hpp"
#include "plugin_helpers.hpp"
#include <cctype>
@@ -42,14 +42,14 @@ std::vector<std::string> tokenize(const std::string& s) {
}
} // namespace
SickCodeDriver::SickCodeDriver(const ModelConfig& cfg, const std::string& ip, uint16_t port,
SickTimDriver::SickTimDriver(const ModelConfig& cfg, const std::string& ip, uint16_t port,
bool inverted)
: cfg_(cfg), detected_model_name_(cfg.name ? cfg.name : ""), ip_(ip), port_(port),
inverted_(inverted) {}
SickCodeDriver::~SickCodeDriver() { close(); }
SickTimDriver::~SickTimDriver() { close(); }
ErrorCode SickCodeDriver::open() {
ErrorCode SickTimDriver::open() {
if (is_open()) return set_error(ErrorCode::AlreadyOpen);
sockaddr_in addr{};
@@ -79,7 +79,7 @@ ErrorCode SickCodeDriver::open() {
return set_error(ErrorCode::Ok);
}
void SickCodeDriver::close() {
void SickTimDriver::close() {
if (sock_fd_ >= 0) {
send_telegram("sEN LMDscandata 0"); // best-effort
::close(sock_fd_);
@@ -87,7 +87,7 @@ void SickCodeDriver::close() {
}
}
bool SickCodeDriver::send_telegram(const std::string& body) {
bool SickTimDriver::send_telegram(const std::string& body) {
if (sock_fd_ < 0) return false;
std::string framed;
framed.reserve(body.size() + 2);
@@ -106,7 +106,7 @@ bool SickCodeDriver::send_telegram(const std::string& body) {
// CoLa-A has no length prefix, so ETX is the only frame boundary; recv_buf_
// carries leftover bytes across calls.
bool SickCodeDriver::read_telegram(std::string& out, int timeout_ms) {
bool SickTimDriver::read_telegram(std::string& out, int timeout_ms) {
if (!is_open()) { set_error(ErrorCode::NotOpen); return false; }
for (;;) {
@@ -139,7 +139,7 @@ bool SickCodeDriver::read_telegram(std::string& out, int timeout_ms) {
}
}
bool SickCodeDriver::recv_scan(ScanResult& out, int timeout_ms) {
bool SickTimDriver::recv_scan(ScanResult& out, int timeout_ms) {
for (;;) {
std::string telegram;
if (!read_telegram(telegram, timeout_ms)) return false;
@@ -148,7 +148,7 @@ bool SickCodeDriver::recv_scan(ScanResult& out, int timeout_ms) {
}
}
bool SickCodeDriver::spin_once() {
bool SickTimDriver::spin_once() {
std::string telegram;
if (!read_telegram(telegram, 0)) return false;
@@ -160,7 +160,7 @@ bool SickCodeDriver::spin_once() {
// CoLa-A "sSN/sRA LMDscandata": space-separated ASCII hex tokens, field order
// per SICK's Telegram Listing. "DIST1" → ranges, "RSSI1" → intensities.
bool SickCodeDriver::parse_lmdscandata(const std::string& telegram, ScanResult& out) {
bool SickTimDriver::parse_lmdscandata(const std::string& telegram, ScanResult& out) {
std::vector<std::string> tok = tokenize(telegram);
if (tok.size() < 20) return false;
if (tok[0] != "sSN" && tok[0] != "sRA") return false;
@@ -301,7 +301,7 @@ const ModelConfig* model_by_name(const std::string& name) {
} // namespace
DriverInfo SickCodeDriver::get_driver_info() const { return kDriverInfo; }
DriverInfo SickTimDriver::get_driver_info() const { return kDriverInfo; }
} // namespace xlidar
@@ -315,5 +315,5 @@ create_driver_instance(const xlidar::DeviceConfig* cfg) {
const ModelConfig* preset = model_by_name(cfg->model);
if (!preset) preset = &MODEL_SICK_TIM571; // brand default
const uint16_t port = cfg->port ? cfg->port : 2111;
return new SickCodeDriver(apply_device_config(*preset, *cfg), cfg->ip, port, cfg->inverted);
return new SickTimDriver(apply_device_config(*preset, *cfg), cfg->ip, port, cfg->inverted);
}

View File

@@ -17,17 +17,17 @@ inline constexpr ModelConfig MODEL_SICK_TIM7XX { "SICK-TIM7xx", -135.f, 135.f, 0
// SICK TiM5xx/7xx over SOPAS/CoLa-A (TCP, default port 2111).
// Verified against a real TiM781S (FW V5.11). NOT verified: NumEncoders > 0,
// the 8-bit channel branch, and the TIM5xx/TIM571 FOV/range numbers.
class SickCodeDriver : public LidarDriverInterface {
class SickTimDriver : public LidarDriverInterface {
public:
// inverted: unit mounted upside-down → mirror the scan.
explicit SickCodeDriver(const ModelConfig& cfg,
explicit SickTimDriver(const ModelConfig& cfg,
const std::string& ip,
uint16_t port = 2111,
bool inverted = false);
~SickCodeDriver();
~SickTimDriver();
SickCodeDriver(const SickCodeDriver&) = delete;
SickCodeDriver& operator=(const SickCodeDriver&) = delete;
SickTimDriver(const SickTimDriver&) = delete;
SickTimDriver& operator=(const SickTimDriver&) = delete;
DriverInfo get_driver_info() const override;