2025-08-22 16:57:29 +08:00
|
|
|
//
|
|
|
|
|
// Created by linbo on 2025/7/3.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#ifndef GRPC_DEXHAND_SERVICE_H
|
|
|
|
|
#define GRPC_DEXHAND_SERVICE_H
|
|
|
|
|
|
|
|
|
|
#include "cmvr/api/dexhand_service.grpc.pb.h"
|
2025-10-21 17:02:32 +08:00
|
|
|
#include "../../utils/base/grpc_utils.h"
|
2025-08-22 16:57:29 +08:00
|
|
|
#include "device_manager/device_manager.h"
|
|
|
|
|
namespace cmvr::service {
|
|
|
|
|
class gRPCDexHandServiceImpl final: public api::DexHandService::Service {
|
|
|
|
|
public:
|
|
|
|
|
gRPCDexHandServiceImpl();
|
|
|
|
|
~gRPCDexHandServiceImpl() override = default;
|
|
|
|
|
grpc::Status GetStatus(grpc::ServerContext* context, const api::GetDexHandStateCommand_Request* request,api::GetDexHandStateCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status SetDexHandPos(grpc::ServerContext* context, const cmvr::api::SetDexHandPositionsCommand_Request* request, cmvr::api::SetDexHandPositionsCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status SetDexHandAngle(grpc::ServerContext* context, const cmvr::api::SetDexHandAnglesCommand_Request* request, cmvr::api::SetDexHandAnglesCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status SetDexHandForce(grpc::ServerContext* context, const cmvr::api::SetDexHandForceCommand_Request* request, cmvr::api::SetDexHandForceCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status SetDexHandSpeed(grpc::ServerContext* context, const cmvr::api::SetDexHandSpeedCommand_Request* request, cmvr::api::SetDexHandSpeedCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status SetDexHandPresetAct(grpc::ServerContext* context, const cmvr::api::SetDexHandPresetActCommand_Request* request, cmvr::api::SetDexHandPresetActCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status GetSensorData(grpc::ServerContext* context, const cmvr::api::GetSensorDataCommand_Request* request, cmvr::api::GetSensorDataCommand_Feedback* response) override;
|
|
|
|
|
grpc::Status GetSensorDataStream(grpc::ServerContext* context, grpc::ServerReaderWriter<cmvr::api::GetSensorDataStreamCommand_Feedback, cmvr::api::GetSensorDataStreamCommand_Request>* stream) override;
|
|
|
|
|
private:
|
|
|
|
|
device::DeviceManager& dmgr_;
|
2025-10-21 10:32:18 +08:00
|
|
|
// 静态成员声明(关键!必须在类内声明)
|
|
|
|
|
static const std::unordered_map<std::string, int> kIdToIndex; // 字符串id→索引
|
|
|
|
|
static const std::vector<std::string> kIndexToId; // 索引→字符串id
|
2025-08-22 16:57:29 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif //GRPC_DEXHAND_SERVICE_H
|