cmvr_head/applications/erpc/service/include/servo_service_impl.h

45 lines
1.1 KiB
C
Raw Normal View History

2026-04-23 09:53:17 +08:00
//
// Created by Administrator on 2025/12/24.
//
#ifndef RTTHREAD_HEAD_SERVICE_IMPL_H
#define RTTHREAD_HEAD_SERVICE_IMPL_H
#include <stdint.h>
#include <vector>
#include "erpc/proto/generated/servo_service_server.hpp"
#include "servo_manager/include/servo_manager.h"
extern "C" {
#include <rtthread.h>
}
class ServoServiceImpl : public erpcShim::servo_service_interface
{
public:
ServoServiceImpl();
~ServoServiceImpl() override;
bool setConstraints(const char* id,
float max_velocity_rad,
float max_acceleration_rad,
float max_jerk_rad) override;
2026-04-27 10:33:16 +08:00
bool setPositionGain(const char* id,
float position_gain) override;
2026-04-23 09:53:17 +08:00
bool setMode(RpcMotionMode mode) override;
bool setUpdatePeriodMs(uint32_t ms) override;
int32_t move(const list_ServoCmd_1_t* cmds) override;
int32_t moveJ(const list_float_1_t* angles_rad) override;
private:
ServoManager manager_;
rt_err_t init_err_;
MotionMode mode_;
rt_mutex_t mutex_;
static const std::vector<ServoDriver::Config> kServoCfg;
};
#endif // RTTHREAD_HEAD_SERVICE_IMPL_H