radio_tool 0.2.1
Loading...
Searching...
No Matches
serial_radio_factory.hpp
1
18#pragma once
19
20#include <radio_tool/radio/radio_factory.hpp>
21#include <radio_tool/radio/radio.hpp>
22#include <radio_tool/util.hpp>
23
24#include <string>
25#include <vector>
26#include <functional>
27
28namespace radio_tool::radio
29{
31 {
32 public:
34 const CreateRadioOps l,
35 const std::string &p,
36 const uint16_t &idx)
37 : loader(l), index(idx), port(p) {}
38
39 auto ToString() const -> const std::wstring override
40 {
41 std::wstringstream os;
42 os << L"[" << std::wstring(port.begin(), port.end()) << "]: idx=" << std::to_wstring(index) << L", "
43 << L"Generic serial radio";
44
45 return os.str();
46 }
47
48 auto OpenDevice() const -> RadioOperations * override
49 {
50 return loader();
51 }
52
53 private:
54 const CreateRadioOps loader;
55 const uint16_t index;
56 const std::string port;
57 };
58
60 {
61 public:
62 auto ListDevices(const uint16_t &idx_offset) const -> const std::vector<RadioInfo *> override;
63
64 private:
65 auto OpDeviceList(std::function<void(const std::string &, const uint16_t &)>) const -> void;
66 };
67}