#include #include #include #include "message.h" #include "frame.h" using namespace std; int main() { 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); // When the message is split into multiple frames (an FF and then multiple CFs) if (unfinished_messages.count(can_id)) { Message& m = unfinished_messages[can_id]; m.receive_frame(frame); if (!m.expects_more_frames()) { cout << m << endl; unfinished_messages.erase(can_id); } } else { Message m(can_id, frame); if (m.expects_more_frames()) unfinished_messages.insert({ can_id, m }); else cout << m << endl; } } }