Rearrange the file layout in preparation of becoming a monorepo

Move the documentation to `doc/plugin/CycleTimeReport.md`, sources under
`src/kaleidoscope/plugin/` (appropriately namespaced). This is in preparation of
merging plugins into a single monorepo.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
pull/389/head
Gergely Nagy 6 years ago
parent 0588193256
commit f0b51dfb00
No known key found for this signature in database
GPG Key ID: AC1E90BAC433F68F

@ -5,54 +5,4 @@
[travis:image]: https://travis-ci.org/keyboardio/Kaleidoscope-CycleTimeReport.svg?branch=master [travis:image]: https://travis-ci.org/keyboardio/Kaleidoscope-CycleTimeReport.svg?branch=master
[travis:status]: https://travis-ci.org/keyboardio/Kaleidoscope-CycleTimeReport [travis:status]: https://travis-ci.org/keyboardio/Kaleidoscope-CycleTimeReport
A development and debugging aid, this plugin will measure average mainloop times See [doc/plugin/CycleTimeReport.md](doc/plugin/CycleTimeReport.md) for documentation.
(in microseconds) and print it to `Serial` periodically. While not the most
reliable way to measure the speed of processing, it gives a reasonable
indication nevertheless.
## Using the plugin
The plugin comes with reasonable defaults (see below), and can be used out of
the box, without any further configuration:
```c++
#include <Kaleidoscope.h>
#include <Kaleidoscope-CycleTimeReport.h>
KALEIDOSCOPE_INIT_PLUGINS(CycleTimeReport);
void setup (void) {
Serial.begin(9600);
Kaleidoscope.setup ();
}
```
## Plugin methods
The plugin provides a single object, `CycleTimeReport`, with the following
property. All times are in milliseconds.
### `.average_loop_time`
> A read-only by contract value, the average time of main loop lengths between
> two reports.
## Overrideable methods
### `cycleTimeReport()`
> Reports the average loop time. By default, it does so over `Serial`, every
> time when the report period is up.
>
> It can be overridden, to change how the report looks, or to make the report
> toggleable, among other things.
>
> It takes no arguments, and returns nothing, but has access to
> `CycleTimeReport.average_loop_time` above.
## Further reading
Starting from the [example][plugin:example] is the recommended way of getting
started with the plugin.
[plugin:example]: https://github.com/keyboardio/Kaleidoscope-CycleTimeReport/blob/master/examples/CycleTimeReport/CycleTimeReport.ino

@ -0,0 +1,53 @@
# Kaleidoscope-CycleTimeReport
A development and debugging aid, this plugin will measure average mainloop times
(in microseconds) and print it to `Serial` periodically. While not the most
reliable way to measure the speed of processing, it gives a reasonable
indication nevertheless.
## Using the plugin
The plugin comes with reasonable defaults (see below), and can be used out of
the box, without any further configuration:
```c++
#include <Kaleidoscope.h>
#include <Kaleidoscope-CycleTimeReport.h>
KALEIDOSCOPE_INIT_PLUGINS(CycleTimeReport);
void setup (void) {
Serial.begin(9600);
Kaleidoscope.setup ();
}
```
## Plugin methods
The plugin provides a single object, `CycleTimeReport`, with the following
property. All times are in milliseconds.
### `.average_loop_time`
> A read-only by contract value, the average time of main loop lengths between
> two reports.
## Overrideable methods
### `cycleTimeReport()`
> Reports the average loop time. By default, it does so over `Serial`, every
> time when the report period is up.
>
> It can be overridden, to change how the report looks, or to make the report
> toggleable, among other things.
>
> It takes no arguments, and returns nothing, but has access to
> `CycleTimeReport.average_loop_time` above.
## Further reading
Starting from the [example][plugin:example] is the recommended way of getting
started with the plugin.
[plugin:example]: https://github.com/keyboardio/Kaleidoscope-CycleTimeReport/blob/master/examples/CycleTimeReport/CycleTimeReport.ino

@ -17,4 +17,4 @@
#pragma once #pragma once
#include <kaleidoscope/CycleTimeReport.h> #include <kaleidoscope/plugin/CycleTimeReport.h>

@ -18,6 +18,7 @@
#include <Kaleidoscope-CycleTimeReport.h> #include <Kaleidoscope-CycleTimeReport.h>
namespace kaleidoscope { namespace kaleidoscope {
namespace plugin {
uint32_t CycleTimeReport::next_report_time_; uint32_t CycleTimeReport::next_report_time_;
uint32_t CycleTimeReport::loop_start_time_; uint32_t CycleTimeReport::loop_start_time_;
uint32_t CycleTimeReport::average_loop_time; uint32_t CycleTimeReport::average_loop_time;
@ -50,6 +51,7 @@ EventHandlerResult CycleTimeReport::afterEachCycle() {
return EventHandlerResult::OK; return EventHandlerResult::OK;
} }
}
} }
__attribute__((weak)) void cycleTimeReport(void) { __attribute__((weak)) void cycleTimeReport(void) {
@ -57,4 +59,4 @@ __attribute__((weak)) void cycleTimeReport(void) {
Serial.println(CycleTimeReport.average_loop_time); Serial.println(CycleTimeReport.average_loop_time);
} }
kaleidoscope::CycleTimeReport CycleTimeReport; kaleidoscope::plugin::CycleTimeReport CycleTimeReport;

@ -20,6 +20,7 @@
#include <Kaleidoscope.h> #include <Kaleidoscope.h>
namespace kaleidoscope { namespace kaleidoscope {
namespace plugin {
class CycleTimeReport : public kaleidoscope::Plugin { class CycleTimeReport : public kaleidoscope::Plugin {
public: public:
CycleTimeReport() {} CycleTimeReport() {}
@ -35,7 +36,8 @@ class CycleTimeReport : public kaleidoscope::Plugin {
static uint32_t loop_start_time_; static uint32_t loop_start_time_;
}; };
} }
}
void cycleTimeReport(void); void cycleTimeReport(void);
extern kaleidoscope::CycleTimeReport CycleTimeReport; extern kaleidoscope::plugin::CycleTimeReport CycleTimeReport;
Loading…
Cancel
Save