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
33using std::string;
34using std::stringstream;
35
36namespace Boardcore
37{
38
43{
44public:
45protected:
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
#define TRACE(...)
Definition Debug.h:58
Utility class to manually post events to specific topics.
static EventBroker & getInstance()
Definition Singleton.h:52
This file includes all the types the logdecoder script will decode.
Definition WIZ5500.h:318