diff --git a/src/anlogicBitParser.cpp b/src/anlogicBitParser.cpp index e4dda9b..3aa7568 100644 --- a/src/anlogicBitParser.cpp +++ b/src/anlogicBitParser.cpp @@ -31,8 +31,10 @@ using namespace std; -AnlogicBitParser::AnlogicBitParser(const string &filename, bool verbose): - ConfigBitstreamParser(filename, ConfigBitstreamParser::BIN_MODE, verbose) +AnlogicBitParser::AnlogicBitParser(const string &filename, bool reverseOrder, + bool verbose): + ConfigBitstreamParser(filename, ConfigBitstreamParser::BIN_MODE, verbose), + _reverseOrder(reverseOrder) {} AnlogicBitParser::~AnlogicBitParser() @@ -136,7 +138,10 @@ int AnlogicBitParser::parse() _bit_data.clear(); for (auto it = blocks.begin(); it != blocks.end(); it++) { for (size_t pos = 0; pos < it->size(); pos++) { - _bit_data += reverseByte(((*it)[pos])); + if (_reverseOrder == true) + _bit_data += reverseByte(((*it)[pos])); + else + _bit_data += ((*it)[pos]); } } _bit_length = _bit_data.size() * 8; diff --git a/src/anlogicBitParser.hpp b/src/anlogicBitParser.hpp index 8851ea9..ca8e071 100644 --- a/src/anlogicBitParser.hpp +++ b/src/anlogicBitParser.hpp @@ -30,13 +30,15 @@ */ class AnlogicBitParser: public ConfigBitstreamParser { public: - AnlogicBitParser(const std::string &filename, bool verbose = false); + AnlogicBitParser(const std::string &filename, bool reverseOrder, + bool verbose = false); ~AnlogicBitParser(); int parse() override; void displayHeader(); private: int parseHeader(); + bool _reverseOrder; }; #endif // SRC_ANLOGICBITPARSER_HPP_