87 lines
5.1 KiB
C++
87 lines
5.1 KiB
C++
#ifndef CMVR_ES_GRPC_AGV_SERVICE_H
|
|
#define CMVR_ES_GRPC_AGV_SERVICE_H
|
|
|
|
#include "cmvr/api/agv_service.grpc.pb.h"
|
|
#include "devices/agv/abstract_agv.h"
|
|
#include "manager/device_manager/include/device_manager.h"
|
|
|
|
namespace cmvr::service {
|
|
|
|
class gRPCAgvServiceImpl final : public api::AgvService::Service {
|
|
public:
|
|
gRPCAgvServiceImpl();
|
|
~gRPCAgvServiceImpl() override = default;
|
|
|
|
grpc::Status getRuntimeState(grpc::ServerContext* context,
|
|
const api::AgvRuntimeStateCommand_Request* request,
|
|
api::AgvRuntimeStateCommand_Feedback* response) override;
|
|
grpc::Status getNavigationStatus(grpc::ServerContext* context,
|
|
const api::AgvNavigationStatusCommand_Request* request,
|
|
api::AgvNavigationStatusCommand_Feedback* response) override;
|
|
grpc::Status emergencyStop(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status clearFault(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status navigateToPose(grpc::ServerContext* context,
|
|
const api::AgvNavigateToPoseCommand_Request* request,
|
|
api::AgvNavigateToPoseCommand_Feedback* response) override;
|
|
grpc::Status navigateToStation(grpc::ServerContext* context,
|
|
const api::AgvNavigateToStationCommand_Request* request,
|
|
api::AgvNavigateToStationCommand_Feedback* response) override;
|
|
grpc::Status followPath(grpc::ServerContext* context,
|
|
const api::AgvFollowPathCommand_Request* request,
|
|
api::AgvFollowPathCommand_Feedback* response) override;
|
|
grpc::Status pauseNavigation(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status resumeNavigation(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status cancelNavigation(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status setVelocity(grpc::ServerContext* context,
|
|
const api::AgvSetVelocityCommand_Request* request,
|
|
api::AgvSetVelocityCommand_Feedback* response) override;
|
|
grpc::Status stopVelocityControl(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status listMaps(grpc::ServerContext* context,
|
|
const api::AgvListMapsCommand_Request* request,
|
|
api::AgvListMapsCommand_Feedback* response) override;
|
|
grpc::Status listStations(grpc::ServerContext* context,
|
|
const api::AgvListStationsCommand_Request* request,
|
|
api::AgvListStationsCommand_Feedback* response) override;
|
|
grpc::Status switchMap(grpc::ServerContext* context,
|
|
const api::AgvMapCommand_Request* request,
|
|
api::AgvMapCommand_Feedback* response) override;
|
|
grpc::Status uploadMap(grpc::ServerContext* context,
|
|
const api::AgvMapCommand_Request* request,
|
|
api::AgvMapCommand_Feedback* response) override;
|
|
grpc::Status downloadMap(grpc::ServerContext* context,
|
|
const api::AgvMapCommand_Request* request,
|
|
api::AgvMapCommand_Feedback* response) override;
|
|
grpc::Status startMapping(grpc::ServerContext* context,
|
|
const api::AgvStartMappingCommand_Request* request,
|
|
api::AgvStartMappingCommand_Feedback* response) override;
|
|
grpc::Status streamMap(grpc::ServerContext* context,
|
|
const api::AgvMapStreamCommand_Request* request,
|
|
grpc::ServerWriter<api::AgvMapStreamCommand_Feedback>* writer) override;
|
|
grpc::Status stopMapping(grpc::ServerContext* context,
|
|
const api::CommandHeader_Request* request,
|
|
api::CommandHeader_Feedback* response) override;
|
|
grpc::Status translate(
|
|
grpc::ServerContext* context,
|
|
const api::AgvTranslateCommand_Request* request,
|
|
api::AgvTranslateCommand_Feedback* response) override;
|
|
|
|
private:
|
|
device::DeviceManager& dmgr_;
|
|
};
|
|
|
|
} // namespace cmvr::service
|
|
|
|
#endif // CMVR_ES_GRPC_AGV_SERVICE_H
|