Roboruka
Knihovna pro obsluhu RoboRuky.
_librk_context.h
1#pragma once
2
3#include <atomic>
4
5#include "RBControl_arm.hpp"
6
7#include "mcp3008_linesensor.h"
8
9#include "_librk_arm.h"
10#include "_librk_motors.h"
11#include "_librk_wifi.h"
12
13namespace rk {
14
15class Context {
16public:
17 Context();
18 ~Context();
19
20 void setup(const rkConfig& cfg);
21
22 rb::Protocol* prot() const { return m_prot; }
23 ArmWrapper& arm() { return m_arm; }
24 Motors& motors() { return m_motors; }
25 mcp3008::LineSensor& line();
26
27 void saveLineCalibration();
28
29private:
30 void handleRbcontrollerMessage(const std::string& cmd, rbjson::Object* pkt);
31 bool loadLineCalibration(mcp3008::LineSensor::CalibrationData& data);
32
33 ArmWrapper m_arm;
34 Motors m_motors;
35 WiFi m_wifi;
36 rb::Protocol* m_prot;
37
38 std::atomic<bool> m_initialized;
39
40 std::atomic<bool> m_line_installed;
41 mcp3008::Driver::Config m_line_cfg;
42 mcp3008::LineSensor m_line;
43};
44
45extern Context gCtx;
46
47};
Nastavení SW pro Roboruku.
Definition: roboruka.h:62