elite-cs-series-sdk (1.5.0-resolute-multiarch) resolute; urgency=medium

  * Resolute upload for SDK version 1.5.0.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-noble-multiarch) noble; urgency=medium

  * Noble upload for SDK version 1.5.0.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-jammy-multiarch) jammy; urgency=medium

  * Jammy upload for SDK version 1.5.0.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-focal-multiarch) focal; urgency=medium

  * Focal upload for SDK version 1.5.0.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-bionic-multiarch) bionic; urgency=medium

  * Bionic upload for SDK version 1.5.0.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-xenial-multiarch-1) xenial; urgency=medium

  * Fixed Xenial PPA builds by using a GCC 5-compatible pose matrix
    initializer and detecting and linking libssh without requiring a
    CMake package configuration file.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 18:34:19 +0800

elite-cs-series-sdk (1.5.0-xenial-multiarch) xenial; urgency=medium

  [Add]
  * Added `DashboardClient::remoteControl()` overloads to query, enable, and disable remote control mode, plus `DashboardClient::remoteControlMode()` and the `RemoteControlMode` enum to query the current control mode.
  * Added `EliteDriver` and `ScriptCommandInterface` APIs to enable or disable collision detection, set collision sensitivity, and configure the robot mounting plane; updated the external control script protocol and related documentation accordingly.

  [Changed]
  * Exported the SDK include directory, shared library, and Boost dependency through the ament package configuration so downstream ROS 2 packages can consume the SDK with `ament_target_dependencies()`.
  * Enabled the kinematics and pose algebra plug-ins in Debian/PPA builds, including compatibility with the CMake and Eigen versions provided by Ubuntu 16.04.

 -- Elite Robots <elite@elibot.cn>  Fri, 28 Aug 2026 17:41:51 +0800

elite-cs-series-sdk (1.4.7-focal-multiarch-1) focal; urgency=medium

  * Focal upload for SDK version 1.4.7.
  * Re-upload.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-resolute-multiarch) resolute; urgency=medium

  * Resolute upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-noble-multiarch) noble; urgency=medium

  * Noble upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-jammy-multiarch) jammy; urgency=medium

  * Jammy upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-focal-multiarch) focal; urgency=medium

  * Focal upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-bionic-multiarch) bionic; urgency=medium

  * Bionic upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.7-xenial-multiarch) xenial; urgency=medium

  * Xenial upload for SDK version 1.4.7.

 -- Elite Robots <elite@elibot.cn>  Fri, 17 Jul 2026 10:00:00 +0800

elite-cs-series-sdk (1.4.6-noble-multiarch) noble; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 16:00:00 +0800

elite-cs-series-sdk (1.4.6-jammy-multiarch) jammy; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 16:00:00 +0800

elite-cs-series-sdk (1.4.6-focal-multiarch) focal; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 16:00:00 +0800

elite-cs-series-sdk (1.4.6-bionic-multiarch) bionic; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 16:00:00 +0800

elite-cs-series-sdk (1.4.6-xenial-multiarch) xenial; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 16:00:00 +0800

elite-cs-series-sdk (1.4.6-resolute-multiarch) resolute; urgency=medium

  * Fix GCC 15 build failure by using std::round from <cmath>.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 09:30:00 +0800

elite-cs-series-sdk (1.4.5-resolute-multiarch) resolute; urgency=medium

  * Resolute upload.
  * Keep Jammy builds on C++17 without a Boost runtime dependency.
  * Do not require Boost from the exported CMake package when Boost.System is
    not linked.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 09:30:00 +0800

elite-cs-series-sdk (1.4.5-focal-multiarch) focal; urgency=medium

  * Focal upload.
  * Keep Jammy builds on C++17 without a Boost runtime dependency.
  * Do not require Boost from the exported CMake package when Boost.System is
    not linked.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 09:30:00 +0800

elite-cs-series-sdk (1.4.5-noble-multiarch) noble; urgency=medium

  * Noble upload.
  * Keep Jammy builds on C++17 without a Boost runtime dependency.
  * Do not require Boost from the exported CMake package when Boost.System is
    not linked.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 09:30:00 +0800

elite-cs-series-sdk (1.4.5-jammy-multiarch) jammy; urgency=medium

  * Jammy upload.
  * Keep Jammy builds on C++17 without a Boost runtime dependency.
  * Do not require Boost from the exported CMake package when Boost.System is
    not linked.

 -- Elite Robots <elite@elibot.cn>  Wed, 15 Jul 2026 09:30:00 +0800

elite-cs-series-sdk (1.4.5-bionic-multiarch) bionic; urgency=medium

  * Bionic upload.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 21:20:00 +0800

elite-cs-series-sdk (1.4.5-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Fix find_package error.
  * Auto install boost.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 17:34:00 +0800

elite-cs-series-sdk (1.4.4-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 17:34:00 +0800

elite-cs-series-sdk (1.4.3-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 17:34:00 +0800

elite-cs-series-sdk (1.4.2-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 16:34:00 +0800

elite-cs-series-sdk (1.4.1-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 16:20:00 +0800

elite-cs-series-sdk (1.4.0-xenial-multiarch) xenial; urgency=medium

  * Xenial upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 13:22:54 +0800

elite-cs-series-sdk (1.4.0-focal-multiarch) focal; urgency=medium

  * Focal upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 13:22:54 +0800

elite-cs-series-sdk (1.4.0-noble-multiarch) noble; urgency=medium

  * Noble upload.
  * Same as 1.4.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 13:22:54 +0800

elite-cs-series-sdk (1.4.0-jammy-multiarch) jammy; urgency=medium

  [ Added ]
  * Added the `ClassLoader` module, registration macros, and documentation to support plug-in functionality.
  * Added a kinematics plug-in; enable the `ELITE_COMPILE_KIN_PLUGIN` option during compilation to build this module.
  * Added a pose geometry plug-in; enable the `ELITE_COMPILE_POSE_ALG_PLUGIN` option during compilation to build this module.
  * Add configurable servo extrapolation and hold-lock parameters (`servoj_extrapolate_max_time`, `servoj_decelerate_time`, `servoj_hold_velocity_threshold`, `servoj_hold_stable_time`, and the corrected `servoj_lookahead_time`) to `EliteDriverConfig` along with the updated script integration and tuning guidance.
  * Add `EliteDriverReconstructTest` for testing struct reconstruction scenarios.
  * Add `TcpServerPortOccupyTest` for testing TCP server port occupation handling.
  * Added an overload of `EliteDriver::writeTrajectoryPoint()` to support setting velocity and acceleration parameters.
  * Added the `EliteDriver::primaryPort()` interface.
  * Added the following interfaces to `PrimaryPortInterface`:
    * `powerOn()`
    * `powerOff()`
    * `brakeRelease()`
    * `pauseProgram()`
    * `stopProgram()`
    * `unlockProtectiveStop()`
    * `safetySystemRestart()`
    * `setSpeedScaling()`

  [ Changed ]
  * Document the plugin build option, its dependency requirements (`orocos-kdl`, `Eigen3`, etc.), and the updated build status messages so users know how to enable the kinematics plugin.
  * Update `external_control.script` to consume the new extrapolation/hold-lock parameters, add helper functions for joint stability checks, and keep the script synchronized with the driver configuration for improved robustness.
  * Move struct reconstruct scenario to test suite for better coverage.

  [ Fixed ]
  * Fixed the issue where, on some compilers, joint angles in `EliteDriver::writeTrajectoryPoint()` and `EliteDriver::writeJointServoj()` would become 0 when they were negative.
  * Harden TCP server port reuse coverage: add bind retry mechanism when TCP port is in use (retry up to 30 times with 10ms interval).

 -- Elite Robots <elite@elibot.cn>  Tue, 14 Jul 2026 10:35:26 +0800

elite-cs-series-sdk (1.3.0-focal-multiarch) focal; urgency=medium

  * Focal upload.
  * Same as 1.3.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 27 Jan 2026 13:58:55 +0800

elite-cs-series-sdk (1.3.0-noble-multiarch) noble; urgency=medium

  * Noble upload.
  * Same as 1.3.0-jammy-multiarch.

 -- Elite Robots <elite@elibot.cn>  Tue, 27 Jan 2026 13:58:55 +0800

elite-cs-series-sdk (1.3.0-jammy-multiarch) jammy; urgency=medium

  [ Added ]
  * Add a "servoj" example with speed planning.
  * The `RtsiIOInterface`:
    * Adds a string list constructor.
    * Add an interface to determine if connected: `isConnected()`.
    * Add an interface to determine if data synchronization has started: `isStarted()`.
    * Added interfaces `getActualTCPPose()`, `getActualTCPVelocity()`, and `getActualTCPForce()` (corrected previous spelling errors).
  * `DashboardClient`
    * Added interface to get robot type: `robotType()`
    * Added interface to get robot serial number: `robotSerialNumber()`
    * Added interface to get robot ID: `robotID()`
  * Add timestamp information to the default log handler.
  * Add serial communication interface.
  * Added a script to launch the Docker simulation.
  * Add this project as a ROS2 package.

  [ Changed ]
  * Adjust the "timeout" value of "trajectory_socket" in `external_control.script`.
  * The `RtsiIOInterface` allows input of empty paths and empty lists.

  [ Fixed ]
  * Fix the issue where the step size calculated by the `extrapolate()` function in `external_control.script` is a fixed steptime.
  * Fix the error of missing the "float" type when parsing the 30001 robot error exception message.
  * Fix the issue where the error level was incorrect when parsing the 30001 robot error exception message.
  * Fix the memory issue that occurs after receiving incomplete messages from 30001.
  * Fix the issue where static resources in `TcpServer` are destructed prematurely.
  * Fixed the issue where the `EliteDriver::registerRobotExceptionCallback()` interface was not implemented.
  * Fix the crash issue during destruction.
  * Fix `EliteDriver::startForceMode()` not work.

  [ Deprecated ]
  * Deprecated `DashboardClient::robot()` it will be removed in future versions. Please use `DashboardClient::robotType()` instead.
  * Due to spelling errors, the following interfaces have been deprecated and will be removed in future versions. Please use the corresponding new interfaces:
    * `RtsiIOInterface::getAcutalTCPPose()` -> `RtsiIOInterface::getActualTCPPose()`
    * `RtsiIOInterface::getAcutalTCPVelocity()` -> `RtsiIOInterface::getActualTCPVelocity()`
    * `RtsiIOInterface::getAcutalTCPForce()` -> `RtsiIOInterface::getActualTCPForce()`

  [ Removed ]
  * Remove the `queue_mode` parameter from `EliteDriver::writeServoj()`.

 -- Elite Robots <elite@elibot.cn>  Tue, 27 Jan 2026 13:58:55 +0800

elite-cs-series-sdk (1.2.0-focal-multiarch-1) focal; urgency=medium

  * Focal upload
  * Same as 1.2.0-focal-multiarch, but add libssh-dev dependency.

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.2.0-noble-multiarch-1) noble; urgency=medium

  * Noble upload
  * Same as 1.2.0-noble-multiarch, but add libssh-dev dependency.

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.2.0-jammy-multiarch-1) jammy; urgency=medium

  * Jammy upload
  * Same as 1.2.0-jammy-multiarch, but add libssh-dev dependency.

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.2.0-focal-multiarch) focal; urgency=medium

  * focal upload

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.2.0-noble-multiarch) noble; urgency=medium

  * noble upload

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.2.0-jammy-multiarch) jammy; urgency=medium

  [ Added ]
  * `ControllerLog::downloadSystemLog()`: Interface for downloading robot system logs.
  * `UPGRADE::upgradeControlSoftware()`: Interface for remotely upgrading robot control software.
  * `EliteDriver`:
    * `writeFreedrive()`: New interface for Freedrive control.
    * `registerRobotExceptionCallback()`: New interface for registering robot exception callbacks.
    * `EliteDriver()`: Constructor updated with new `stopj_acc` parameter (acceleration for stopping motion).
    * `writeServoj()`: Added `cartesian` and `queue_mode` parameters.
  * `EliteDriverConfig`: New configuration class for more flexible initialization.
    * Local IP is no longer required when constructing via `EliteDriver(const EliteDriverConfig& config)`.
    * Added `servoj_queue_pre_recv_size` and `servoj_queue_pre_recv_timeout` parameters.
  * `PrimaryPortInterface`:
    * `getLocalIP()`: New interface for retrieving the local IP address.
    * `registerRobotExceptionCallback()`: New interface for registering robot exception callbacks.
  * New robot exception interfaces added:
    * `RobotException`: Base class.
    * `RobotError`: Robot errors.
    * `RobotRuntimeException`: Runtime errors in robot scripts.
    * Changed `RtsiIOInterface` to protected inheritance.
  * `DashboardClient`
    * Add `sendAndReceive()` interface.
  * Complete API documentation (Markdown) added.
  * Compilation guide documentation added.

  [ Changed ]
  * Refactored `TcpServer` multi-port listening logic to handle these ports in a single thread:
    * Reverse port
    * Trajectory port
    * Script sender port
    * Script command port
  * Optimized `PrimaryPortInterface`:
    * Switched to synchronous data reception and parsing
    * Added automatic reconnection after disconnection
  * Improved RTSI module performance:
    * Reduced socket data copy operations in `RtsiClientInterface`
    * Simplified background thread loop logic in `RtsiIOInterface.hpp`
    * Changed `RtsiIOInterface::getRecipeValue()` and `RtsiIOInterface::setInputRecipeValue()` from private to public, with added explicit instantiation declarations
  * Restructured project Readme documentation
  * Enhance the thread safety of `external_control.script`.
  * Use `boost::program_options` to parse the input parameters of the sample program.

  [ Fixed ]
  * Fixed crash issue caused by dangling pointers during `EliteDriver` destruction
  * Fixed the issue where the `DashboardClient::setSpeedScaling()` interface returns failure when setting a new value.

  [ Deprecated ]
  * Legacy `EliteDriver` constructor is now deprecated and will be removed in future versions - migrate to `EliteDriverConfig`

  [ Removed ]
  * Removed `EliteException::Code::SOCKET_OPT_CANCEL`.

 -- Elite Robots <elite@elibot.cn>  Thu, 14 Aug 2025 15:03:25 +0800

elite-cs-series-sdk (1.1.0-focal-1) focal; urgency=medium
  * Version 1.1.0 release on focal.

 -- Elite Robots <elite@elibot.cn>  Fri, 20 Dec 2024 14:29:14 +0800

elite-cs-series-sdk (1.1.0-2) noble; urgency=medium
  * Version 1.1.0 release on noble.

 -- Elite Robots <elite@elibot.cn>  Fri, 20 Dec 2024 14:29:14 +0800

elite-cs-series-sdk (1.1.0-1) jammy; urgency=medium
  * Version 1.1.0 release on jammy.

 -- Elite Robots <elite@elibot.cn>  Fri, 20 Dec 2024 14:29:14 +0800
