27 #include <unordered_map>
68 void addDevice(std::shared_ptr<ArduinoDevice> device);
92 uint16_t calcCCittFalse(
const std::vector<uint8_t> &data,
size_t len);
118 std::vector<uint8_t> waitForMessage(
const std::vector<uint8_t> &prefix,
int timeoutMs);
122 virtual void open() = 0;
123 virtual void close() = 0;
124 virtual bool isOpen() = 0;
125 virtual int available() = 0;
126 virtual uint8_t readOne() = 0;
127 virtual std::vector<uint8_t> readAll() = 0;
128 virtual void write(
const uint8_t &b) = 0;
129 virtual std::string getDeviceName() = 0;
133 static bool msgStartsWith(
const std::vector<uint8_t> &msg,
const std::vector<uint8_t> &prefix);
134 static bool msgEquals(
const std::vector<uint8_t> &msg1,
const std::vector<uint8_t> &msg2);
136 std::vector<uint8_t> workingBuffer;
137 std::vector<uint8_t> readDataset;
138 bool parseStarted =
false;
139 bool parseEscaped =
false;
140 std::thread *processThread =
nullptr;
141 std::vector<std::shared_ptr<ArduinoDevice>> devices;
142 bool initialized =
false;
143 bool arduinoReady =
false;
145 const static uint8_t START_BYTE;
146 const static uint8_t END_BYTE;
147 const static uint8_t ESCAPE_BYTE;
149 const static std::vector<uint8_t> MSG_START;
150 const static std::vector<uint8_t> MSG_ADD;
151 const static std::vector<uint8_t> MSG_ADDSUCCESS;
153 const static std::vector<uint8_t> CMD_RESET;
154 const static std::vector<uint8_t> CMD_END;
Definition: ArduinoDevice.hpp:35
Definition: BaseArduinoInterface.hpp:41
void writeData(const std::vector< uint8_t > &data)
void sendFromDevice(uint8_t deviceId, std::vector< uint8_t > data)
void addDevice(std::shared_ptr< ArduinoDevice > device)
void addDevice(ArduinoDevice &device)
Definition: ArduinoDevice.hpp:27