aboutsummaryrefslogtreecommitdiff
path: root/Mcu.hpp
diff options
context:
space:
mode:
authorJán Sučan <sucanjan@fit.cvut.cz>2017-05-10 15:13:29 +0200
committerJán Sučan <sucanjan@fit.cvut.cz>2017-05-10 15:13:29 +0200
commit02e24f0f533fe904c3a5275c4060c10c38d7c17a (patch)
tree19d05c60e3d6a6782c4712de960a8f6705054063 /Mcu.hpp
Uvodny commit, subory su rovnake ako na CD prilozenom k vytlacenemu texu bakalarskej prace, naviac je pridany len subor LICENCIA
Diffstat (limited to 'Mcu.hpp')
-rwxr-xr-xMcu.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/Mcu.hpp b/Mcu.hpp
new file mode 100755
index 0000000..a05dafe
--- /dev/null
+++ b/Mcu.hpp
@@ -0,0 +1,37 @@
+#ifndef MCU_HPP
+#define MCU_HPP 1
+
+#include "SerialPort.hpp"
+#include "McuSpecifics.hpp"
+
+#include <cstdint>
+#include <vector>
+#include <memory>
+
+using std::vector;
+using std::unique_ptr;
+
+class CMcu {
+private:
+ CSerialPort & mSerialPort;
+ unique_ptr<IMcuSpecifics> mMcuSpecifics;
+ float mMcuFrequency;
+
+ void decodeIdentData(uint8_t data[4], uint16_t & idmanuf, uint16_t & idchip);
+ void setMcuSpecificsById(uint16_t idmanuf, uint16_t idchip);
+ string getMessageForRetCode(uint16_t ret);
+ void sendShellCommand(uint8_t cmd);
+
+public:
+ CMcu(CSerialPort & serialPort, float mcuFrequency);
+
+ void erase();
+ void erase(list<unsigned int> blockList);
+ void erase(uint32_t startAddr, uint32_t endAddr);
+ void write(vector<uint8_t> data, bool printProgress);
+ vector<uint8_t> read(bool printProgress);
+ vector<uint8_t> read(uint32_t size, bool printProgress);
+ string ident();
+};
+
+#endif