Summary Files Commits Branches @commit @diff @stats
path: root / src / main.cpp
diff options
context:
space:
mode:
1 files changed, 37 insertions, 1 deletions
-rw-r--r--src/main.cpp38
diff --git a/src/main.cpp b/src/main.cpp
index 15d32bd..97f1a5c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,5 +1,41 @@
#include <iostream>
+#include <fstream>
+#include <map>
+#include "message.h"
+#include "frame.h"
+
+using namespace std;
int main() {
- std::cout << "Hello" << std::endl;
+ ifstream msgFile("messages.txt");
+ if (!msgFile.is_open()) {
+ return 1;
+ }
+
+ map<unsigned int, Message> unfinished_messages;
+ string line;
+ unsigned int can_id;
+
+ while (getline(msgFile, line)) {
+ const char* data = line.c_str();
+ sscanf(data, "%3x", &can_id);
+ Frame frame(data + 3);
+
+ if (unfinished_messages.count(can_id)) {
+ Message& m = unfinished_messages[can_id];
+
+ m.receive_frame(frame);
+ cout << m << endl;
+
+ if (!m.expects_more_frames())
+ unfinished_messages.erase(can_id);
+ }
+ else {
+ Message m(can_id, frame);
+ cout << m << endl;
+
+ if (m.expects_more_frames())
+ unfinished_messages.insert({ can_id, m });
+ }
+ }
}