#ifndef _MSGHANDLER_HPP_ #define _MSGHANDLER_HPP_ #include #include #include #include class MsgHandler { public: int fd; std::string device; std::vector m_PrintData; MsgHandler(); ~MsgHandler() = default; void HandleDdsMsg(const std::map& msg); void EncodeMsg(const std::map& msg); bool SetDevice(const std::string& device); virtual bool OpenPort(const std::string& port, const std::string& baudrate); virtual int SendDeviceMsg(const std::vector& data); virtual int RecvDeviceMsg(std::vector& data, int timeoutMs); int SendMsg(const std::vector& data); int RecvMsg(std::vector& data, int timeoutMs); bool isOpen() const { return fd != -1; } void ClosePort(); private: std::vector BuildLine(int m_max, const std::map& PointList, int no_line_min = 0, int no_line_max = 0); //行线条生成器 std::vector BuildStringLine(std::map& PointList); //行线条生成器 std::vector BuildStringLine_HSK33(std::map& PointList); //行线条生成器 void Page_ClearAndSet(std::vector& Data, char * h1h2h3h4); void Page_ESCL (std::vector& Data, const char *n1n2, const char *x1x2x3x4, const char *y1y2y3y4, const char *x5x6x7x8, const char *y5y6y7y8, char d, char w); void Page_ESCPC(std::vector& Data, const char *n1n2, const char *x1x2x3x4, const char *y1y2y3y4, char w, char h, char c, const char * r1r2, const char * s1s2); void Page_ESCRC(std::vector& Data, const char *n1n2, const char *str); void Page_ESCH(std::vector& Data, char n, char *x1x2x3x4, char *y1y2y3y4, char *bmp, int bmpsize); void Page_Cut(std::vector& Data); void Page_End(std::vector& Data); void GtstrLength(int iVal, char *p); void Print1_3(const std::map& msg); }; #endif