Summary Files Commits Branches @commit @diff @stats
path: root / src / main.cpp
diff options
context:
space:
mode:
Commit30a999f1aea6bfe57de10ad4a01b3f4e2f3fbb3a (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-07-03 14:34:53 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-07-03 14:34:53 +0300
Files6f821062a2152b26c5b7d44bf3ea3b8d9fa3ac63 /src/main.cpp
iso-tp-parser-carista-30a999f1aea6bfe57de10ad4a01b3f4e2f3fbb3a.tar
iso-tp-parser-carista-30a999f1aea6bfe57de10ad4a01b3f4e2f3fbb3a.tar.gz
iso-tp-parser-carista-30a999f1aea6bfe57de10ad4a01b3f4e2f3fbb3a.zip
Parent0730f70725f88e042a5b8dee9bf83fa2c4fbeda4 (diff)
feat(main): Implement file reading and parsing
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 });
+ }
+ }
}