#ifndef __PACKETIZER_H_ #define __PACKETIZER_H_ #include "communication/include/communication.h" #include #include #include namespace icsneo { class Packetizer { public: bool input(const std::vector& bytes); std::vector> output(); private: enum class ReadState { SearchForHeader, ParseHeader, ParseLongStylePacketHeader, GetData }; ReadState state = ReadState::SearchForHeader; int currentIndex = 0; int packetLength = 0; int headerSize = 0; bool checksum = false; bool gotGoodPackets = false; // Tracks whether we've ever gotten a good packet Packet packet; std::deque bytes; std::vector> processedPackets; }; } #endif