Skip to content

Commit 392eb12

Browse files
committed
load_mon: split out header
1 parent fd66d42 commit 392eb12

File tree

3 files changed

+99
-71
lines changed

3 files changed

+99
-71
lines changed

src/modules/load_mon/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ px4_add_module(
3535
MAIN load_mon
3636
COMPILE_FLAGS
3737
SRCS
38-
load_mon.cpp
38+
LoadMon.cpp
39+
LoadMon.hpp
3940
DEPENDS
4041
px4_work_queue
41-
)
42-
42+
)

src/modules/load_mon/load_mon.cpp src/modules/load_mon/LoadMon.cpp

+1-68
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,7 @@
3131
*
3232
****************************************************************************/
3333

34-
/**
35-
* @file load_mon.cpp
36-
*
37-
* @author Jonathan Challinger <[email protected]>
38-
* @author Julian Oes <[email protected]
39-
* @author Andreas Antener <[email protected]>
40-
*/
41-
42-
#include <drivers/drv_hrt.h>
43-
#include <lib/perf/perf_counter.h>
44-
#include <px4_platform_common/px4_config.h>
45-
#include <px4_platform_common/defines.h>
46-
#include <px4_platform_common/module.h>
47-
#include <px4_platform_common/module_params.h>
48-
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
49-
#include <systemlib/cpuload.h>
50-
#include <uORB/Publication.hpp>
51-
#include <uORB/topics/cpuload.h>
52-
#include <uORB/topics/task_stack_info.h>
53-
54-
#if defined(__PX4_NUTTX) && !defined(CONFIG_SCHED_INSTRUMENTATION)
55-
# error load_mon support requires CONFIG_SCHED_INSTRUMENTATION
56-
#endif
34+
#include "LoadMon.hpp"
5735

5836
// if free stack space falls below this, print a warning
5937
#if defined(CONFIG_ARMV7M_STACKCHECK)
@@ -69,50 +47,6 @@ using namespace time_literals;
6947
namespace load_mon
7048
{
7149

72-
class LoadMon : public ModuleBase<LoadMon>, public ModuleParams, public px4::ScheduledWorkItem
73-
{
74-
public:
75-
LoadMon();
76-
~LoadMon() override;
77-
78-
static int task_spawn(int argc, char *argv[]);
79-
80-
/** @see ModuleBase */
81-
static int custom_command(int argc, char *argv[])
82-
{
83-
return print_usage("unknown command");
84-
}
85-
86-
/** @see ModuleBase */
87-
static int print_usage(const char *reason = nullptr);
88-
89-
void start();
90-
91-
private:
92-
/** Do a compute and schedule the next cycle. */
93-
void Run() override;
94-
95-
/** Do a calculation of the CPU load and publish it. */
96-
void cpuload();
97-
98-
/* Calculate stack usage */
99-
void stack_usage();
100-
101-
int _stack_task_index{0};
102-
uORB::PublicationQueued<task_stack_info_s> _task_stack_info_pub{ORB_ID(task_stack_info)};
103-
104-
DEFINE_PARAMETERS(
105-
(ParamBool<px4::params::SYS_STCK_EN>) _param_sys_stck_en
106-
)
107-
108-
uORB::Publication<cpuload_s> _cpuload_pub{ORB_ID(cpuload)};
109-
110-
hrt_abstime _last_idle_time{0};
111-
hrt_abstime _last_idle_time_sample{0};
112-
113-
perf_counter_t _cycle_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": cycle")};
114-
};
115-
11650
LoadMon::LoadMon() :
11751
ModuleParams(nullptr),
11852
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::lp_default)
@@ -122,7 +56,6 @@ LoadMon::LoadMon() :
12256
LoadMon::~LoadMon()
12357
{
12458
ScheduleClear();
125-
12659
perf_free(_cycle_perf);
12760
}
12861

src/modules/load_mon/LoadMon.hpp

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/****************************************************************************
2+
*
3+
* Copyright (c) 2012-2020 PX4 Development Team. All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met:
8+
*
9+
* 1. Redistributions of source code must retain the above copyright
10+
* notice, this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright
12+
* notice, this list of conditions and the following disclaimer in
13+
* the documentation and/or other materials provided with the
14+
* distribution.
15+
* 3. Neither the name PX4 nor the names of its contributors may be
16+
* used to endorse or promote products derived from this software
17+
* without specific prior written permission.
18+
*
19+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26+
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30+
* POSSIBILITY OF SUCH DAMAGE.
31+
*
32+
****************************************************************************/
33+
34+
#pragma once
35+
36+
#include <drivers/drv_hrt.h>
37+
#include <lib/perf/perf_counter.h>
38+
#include <px4_platform_common/px4_config.h>
39+
#include <px4_platform_common/defines.h>
40+
#include <px4_platform_common/module.h>
41+
#include <px4_platform_common/module_params.h>
42+
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
43+
#include <systemlib/cpuload.h>
44+
#include <uORB/Publication.hpp>
45+
#include <uORB/topics/cpuload.h>
46+
#include <uORB/topics/task_stack_info.h>
47+
48+
namespace load_mon
49+
{
50+
51+
class LoadMon : public ModuleBase<LoadMon>, public ModuleParams, public px4::ScheduledWorkItem
52+
{
53+
public:
54+
LoadMon();
55+
~LoadMon() override;
56+
57+
static int task_spawn(int argc, char *argv[]);
58+
59+
/** @see ModuleBase */
60+
static int custom_command(int argc, char *argv[])
61+
{
62+
return print_usage("unknown command");
63+
}
64+
65+
/** @see ModuleBase */
66+
static int print_usage(const char *reason = nullptr);
67+
68+
void start();
69+
70+
private:
71+
/** Do a compute and schedule the next cycle. */
72+
void Run() override;
73+
74+
/** Do a calculation of the CPU load and publish it. */
75+
void cpuload();
76+
77+
/* Calculate stack usage */
78+
void stack_usage();
79+
80+
int _stack_task_index{0};
81+
82+
uORB::PublicationQueued<task_stack_info_s> _task_stack_info_pub{ORB_ID(task_stack_info)};
83+
uORB::Publication<cpuload_s> _cpuload_pub{ORB_ID(cpuload)};
84+
85+
hrt_abstime _last_idle_time{0};
86+
hrt_abstime _last_idle_time_sample{0};
87+
88+
perf_counter_t _cycle_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": cycle")};
89+
90+
DEFINE_PARAMETERS(
91+
(ParamBool<px4::params::SYS_STCK_EN>) _param_sys_stck_en
92+
)
93+
};
94+
95+
} // namespace load_mon

0 commit comments

Comments
 (0)