conveyor-belt-new/ConveyorBeltAbility/include/ConveyorBeltAbility.h.old
2025-03-27 22:29:43 +08:00

31 lines
1.1 KiB
C

#include "ability_sdk/AbilityStub.hpp"
#include "conveyorBeltGrpcServer.h"
class ConveyorBeltAbility : public ability_sdk::AbilityStub<ConveyorBeltStatus> {
public:
using AbilityTemplate::AbilityTemplate;
void create_ability_server() {
ConveyorBeltServer service_ability;
ServerBuilder builder;
builder.AddListeningPort("0.0.0.0:0", grpc::InsecureServerCredentials(), &g_abilityPort);
cout << "add listening port" << endl;
builder.RegisterService(&service_ability);
cout << "register service" << endl;
ability_cq = builder.AddCompletionQueue();
ability_server = builder.BuildAndStart();
std::cout << "Server listening on port: " << g_abilityPort << std::endl;
sendStateMsg();
ability_server->Wait();
std::cout << "finish ipc server" << std::endl;
}
void runServer() {
g_GLOBAL_STATUS = STATUS_INIT;
std::cout << "NOW GLOBAL STATUS IS: " << global2string(g_GLOBAL_STATUS) << std::endl;
std::thread heartbeat_thread(&ConveyorBeltAbility::heartbeat_loop, this);
heartbeat_thread.detach();
}
};