Skyward boardcore
Loading...
Searching...
No Matches
EventInjector.h
Go to the documentation of this file.
1
/* Copyright (c) 2019-2021 Skyward Experimental Rocketry
2
* Author: Luca Erbetta
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a copy
5
* of this software and associated documentation files (the "Software"), to deal
6
* in the Software without restriction, including without limitation the rights
7
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
* copies of the Software, and to permit persons to whom the Software is
9
* furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice shall be included in
12
* all copies or substantial portions of the Software.
13
*
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
* THE SOFTWARE.
21
*/
22
23
#pragma once
24
25
#include <
ActiveObject.h
>
26
#include <
events/EventBroker.h
>
27
#include <
utils/Debug.h
>
28
29
#include <iostream>
30
#include <sstream>
31
#include <string>
32
33
using
std::string;
34
using
std::stringstream;
35
36
namespace
Boardcore
37
{
38
42
class
EventInjector
:
public
ActiveObject
43
{
44
public
:
45
protected
:
46
void
run
()
override
47
{
48
using namespace
std
;
49
50
int
ev, topic;
51
52
for
(;;)
53
{
54
TRACE
(
"[EventInjector] Insert Event & Topic:\n"
);
55
56
string
temp;
57
getline(cin, temp);
58
stringstream(temp) >> ev >> topic;
59
60
EventBroker::getInstance
().post({(uint8_t)ev}, topic);
61
}
62
}
63
};
64
65
}
// namespace Boardcore
ActiveObject.h
Debug.h
TRACE
#define TRACE(...)
Definition
Debug.h:58
EventBroker.h
Boardcore::ActiveObject
Definition
ActiveObject.h:39
Boardcore::EventInjector
Utility class to manually post events to specific topics.
Definition
EventInjector.h:43
Boardcore::EventInjector::run
void run() override
Definition
EventInjector.h:46
Boardcore::Singleton< EventBroker >::getInstance
static EventBroker & getInstance()
Definition
Singleton.h:52
Boardcore
This file includes all the types the logdecoder script will decode.
Definition
ActiveObject.h:31
std
Definition
WIZ5500.h:318
src
shared
events
utils
EventInjector.h
Generated by
1.10.0