API mission
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
#include "app/lidar_manager_app.hpp"
|
||||
|
||||
#include "mission/mission_enqueue.hpp"
|
||||
#include "mission/mission_queue.hpp"
|
||||
#include "mission/mission_scheduler.hpp"
|
||||
#include "mission/mission_store.hpp"
|
||||
#include "mission/modbus_trigger_service.hpp"
|
||||
#include "server/api_server.hpp"
|
||||
#include "server/static_file_server.hpp"
|
||||
#include "storage/state_repository.hpp"
|
||||
@@ -23,10 +27,22 @@ int LidarManagerApp::run()
|
||||
repo.load();
|
||||
|
||||
const std::filesystem::path mission_queue_path = data_path_.parent_path() / "mission_queue.json";
|
||||
const std::filesystem::path missions_store_path = data_path_.parent_path() / "missions.json";
|
||||
MissionQueue mission_queue(mission_queue_path);
|
||||
MissionStore mission_store(missions_store_path);
|
||||
|
||||
const auto enqueue_fn = [&mission_store, &mission_queue](const nlohmann::json& request, std::string& err) -> bool {
|
||||
nlohmann::json payload;
|
||||
if (!MissionEnqueue::buildPayload(mission_store, request, payload, err))
|
||||
return false;
|
||||
return static_cast<bool>(mission_queue.enqueue(payload, err));
|
||||
};
|
||||
|
||||
ModbusTriggerService modbus(mission_store, enqueue_fn, 5502);
|
||||
MissionScheduler scheduler(mission_store, enqueue_fn);
|
||||
|
||||
httplib::Server svr;
|
||||
ApiServer api(repo, mission_queue);
|
||||
ApiServer api(repo, mission_queue, mission_store, modbus, scheduler);
|
||||
api.registerRoutes(svr);
|
||||
StaticFileServer::mount(svr, www_root_);
|
||||
|
||||
@@ -36,6 +52,8 @@ int LidarManagerApp::run()
|
||||
www_root_.string().c_str(),
|
||||
data_path_.string().c_str(),
|
||||
(data_path_.parent_path() / "models").string().c_str());
|
||||
std::fprintf(stderr, "MiR REST API: http://0.0.0.0:%d/api/v2.0.0/mission_queue\n", port_);
|
||||
std::fprintf(stderr, "Modbus TCP triggers: port 5502 (coils 1001-2000)\n");
|
||||
|
||||
svr.listen("0.0.0.0", port_);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user