SMACC2
Loading...
Searching...
No Matches
smacc2_client_library
cl_px4_mr
include
cl_px4_mr
components
cp_micro_ros_agent.hpp
Go to the documentation of this file.
1
// Copyright 2025 Robosoft Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#pragma once
16
17
#include <sys/types.h>
18
#include <atomic>
19
#include <mutex>
20
#include <
smacc2/smacc.hpp
>
21
#include <string>
22
23
namespace
cl_px4_mr
24
{
25
26
class
CpMicroRosAgent
:
public
smacc2::ISmaccComponent
27
{
28
public
:
29
CpMicroRosAgent
(
30
std::string command =
31
"ros2 run micro_ros_agent micro_ros_agent udp4 -p 8888 2>&1 | tee /tmp/xrce_agent.log"
,
32
std::string nodeName =
"/px4_micro_xrce_dds"
);
33
virtual
~CpMicroRosAgent
();
34
35
void
launch
();
36
void
shutdown
();
37
bool
isLaunched
()
const
;
38
pid_t
getPid
()
const
;
39
std::string
getNodeName
()
const
;
40
41
private
:
42
static
void
killProcessesRecursive
(pid_t pid);
43
44
pid_t
agentPid_
= -1;
45
std::atomic<bool>
launched_
{
false
};
46
std::atomic<bool>
shutdownRequested_
{
false
};
47
std::string
command_
;
48
std::string
nodeName_
;
49
mutable
std::mutex
mutex_
;
50
int
pipeFd_
= -1;
51
};
52
53
}
// namespace cl_px4_mr
cl_px4_mr::CpMicroRosAgent
Definition
cp_micro_ros_agent.hpp:27
cl_px4_mr::CpMicroRosAgent::CpMicroRosAgent
CpMicroRosAgent(std::string command="ros2 run micro_ros_agent micro_ros_agent udp4 -p 8888 2>&1 | tee /tmp/xrce_agent.log", std::string nodeName="/px4_micro_xrce_dds")
Definition
cp_micro_ros_agent.cpp:32
cl_px4_mr::CpMicroRosAgent::command_
std::string command_
Definition
cp_micro_ros_agent.hpp:47
cl_px4_mr::CpMicroRosAgent::nodeName_
std::string nodeName_
Definition
cp_micro_ros_agent.hpp:48
cl_px4_mr::CpMicroRosAgent::launch
void launch()
Definition
cp_micro_ros_agent.cpp:39
cl_px4_mr::CpMicroRosAgent::mutex_
std::mutex mutex_
Definition
cp_micro_ros_agent.hpp:49
cl_px4_mr::CpMicroRosAgent::~CpMicroRosAgent
virtual ~CpMicroRosAgent()
Definition
cp_micro_ros_agent.cpp:37
cl_px4_mr::CpMicroRosAgent::getNodeName
std::string getNodeName() const
Definition
cp_micro_ros_agent.cpp:166
cl_px4_mr::CpMicroRosAgent::shutdownRequested_
std::atomic< bool > shutdownRequested_
Definition
cp_micro_ros_agent.hpp:46
cl_px4_mr::CpMicroRosAgent::isLaunched
bool isLaunched() const
Definition
cp_micro_ros_agent.cpp:158
cl_px4_mr::CpMicroRosAgent::getPid
pid_t getPid() const
Definition
cp_micro_ros_agent.cpp:160
cl_px4_mr::CpMicroRosAgent::pipeFd_
int pipeFd_
Definition
cp_micro_ros_agent.hpp:50
cl_px4_mr::CpMicroRosAgent::shutdown
void shutdown()
Definition
cp_micro_ros_agent.cpp:117
cl_px4_mr::CpMicroRosAgent::launched_
std::atomic< bool > launched_
Definition
cp_micro_ros_agent.hpp:45
cl_px4_mr::CpMicroRosAgent::agentPid_
pid_t agentPid_
Definition
cp_micro_ros_agent.hpp:44
cl_px4_mr::CpMicroRosAgent::killProcessesRecursive
static void killProcessesRecursive(pid_t pid)
Definition
cp_micro_ros_agent.cpp:168
smacc2::ISmaccComponent
Definition
component.hpp:30
cl_px4_mr
Definition
cl_px4_mr.hpp:29
smacc.hpp
Generated by
1.12.0