You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.9 KiB
C++

#ifndef _MSGHANDLER_HPP_
#define _MSGHANDLER_HPP_
#include <queue>
#include <mutex>
#include <vector>
#include <map>
class MsgHandler {
public:
int fd;
std::string device;
std::vector<uint8_t> m_PrintData;
MsgHandler();
~MsgHandler() = default;
void HandleDdsMsg(const std::map<std::string, std::string>& msg);
void EncodeMsg(const std::map<std::string, std::string>& msg);
bool SetDevice(const std::string& device);
virtual bool OpenPort(const std::string& port, const std::string& baudrate);
virtual int SendDeviceMsg(const std::vector<uint8_t>& data);
virtual int RecvDeviceMsg(std::vector<uint8_t>& data, int timeoutMs);
int SendMsg(const std::vector<uint8_t>& data);
int RecvMsg(std::vector<uint8_t>& data, int timeoutMs);
bool isOpen() const {
return fd != -1;
}
void ClosePort();
private:
std::vector<char> BuildLine(int m_max, const std::map<int, std::string>& PointList, int no_line_min = 0, int no_line_max = 0); //行线条生成器
std::vector<char> BuildStringLine(std::map<int, std::string>& PointList); //行线条生成器
std::vector<char> BuildStringLine_HSK33(std::map<int, std::string>& PointList); //行线条生成器
void Page_ClearAndSet(std::vector<uint8_t>& Data, char * h1h2h3h4);
void Page_ESCL (std::vector<uint8_t>& 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<uint8_t>& 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<uint8_t>& Data, const char *n1n2, const char *str);
void Page_ESCH(std::vector<uint8_t>& Data, char n, char *x1x2x3x4, char *y1y2y3y4, char *bmp, int bmpsize);
void Page_Cut(std::vector<uint8_t>& Data);
void Page_End(std::vector<uint8_t>& Data);
void GtstrLength(int iVal, char *p);
void Print1_1(const std::map<std::string, std::string>& msg);
void Print1_2(const std::map<std::string, std::string>& msg);
void Print2_2(const std::map<std::string, std::string>& msg);
void Print3_2(const std::map<std::string, std::string>& msg);
void Print4_2(const std::map<std::string, std::string>& msg);
void Print5_2(const std::map<std::string, std::string>& msg);
void Print6_2(const std::map<std::string, std::string>& msg);
void Print1_3(const std::map<std::string, std::string>& msg);
void Print2_3(const std::map<std::string, std::string>& msg);
void Print4_3(const std::map<std::string, std::string>& msg);
void Print5_3(const std::map<std::string, std::string>& msg);
void Print6_3(const std::map<std::string, std::string>& msg);
void Print8_3(const std::map<std::string, std::string>& msg);
};
#endif