From 30a999f1aea6bfe57de10ad4a01b3f4e2f3fbb3a Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 3 Jul 2025 14:34:53 +0300 Subject: feat(main): Implement file reading and parsing --- src/main.cpp | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'src/main.cpp') 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 +#include +#include +#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 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 }); + } + } } -- cgit v1.3.1-23-gd82d