/* * File: M10GeneralParser.h * Author: Viproz * Used code from rs1729 * Created on December 12, 2018, 10:52 PM */ #ifndef M10GENERALDECODER_H #define M10GENERALDECODER_H #define FRAME_LEN (100+1) // 0x64+1 #define AUX_LEN 20 #define DATA_LENGTH (FRAME_LEN + AUX_LEN + 2) #include class M10GeneralParser { public: M10GeneralParser(); virtual ~M10GeneralParser(); virtual void changeData(std::array data, bool good); void setRaw(bool b) {dispRaw = b;} virtual double getLatitude(); virtual double getLongitude(); virtual double getAltitude(); virtual int getDay(); virtual int getMonth(); virtual int getYear(); virtual int getHours(); virtual int getMinutes(); virtual int getSeconds(); virtual double getVerticalSpeed(); virtual double getHorizontalSpeed(); virtual double getDirection(); virtual std::string getSerialNumber(); std::array getFrameBytes() {return frame_bytes;} virtual std::array replaceWithPrevious(std::array data); virtual void addToStats(); virtual void printStatsFrame(); virtual void printFrame() = 0; protected: std::array frame_bytes; std::array, DATA_LENGTH> statValues = {}; bool correctCRC; bool dispRaw = false; int frameLength = 0; }; #endif /* M10GENERALDECODER_H */