diff --git a/core/Publisher.cxx b/core/Publisher.cxx index 9116eb7..8617d7f 100644 --- a/core/Publisher.cxx +++ b/core/Publisher.cxx @@ -448,7 +448,7 @@ void PublisherApp::run() { std::map print_msg; - print_msg["Title"] = "过衡单"; + print_msg["Title"] = "五彩湾"; print_msg["GrossDeviceID"] = std::to_string(info.GrossDeviceID()); print_msg["GrossDeviceName"] = info.GrossDeviceName(); print_msg["TareDeviceID"] = std::to_string(info.TareDeviceID()); diff --git a/print/MsgHandler.cxx b/print/MsgHandler.cxx index 581ae47..41fd35e 100644 --- a/print/MsgHandler.cxx +++ b/print/MsgHandler.cxx @@ -140,9 +140,9 @@ void MsgHandler::EncodeMsg(const std::map& msg) auto it = msg.find("Title"); if(it != msg.end()) { - if(it->second == "过衡单") + if(it->second == "五彩湾") { - Print1_3(msg); + Print1_1(msg); } } } @@ -614,8 +614,30 @@ std::vector MsgHandler::split_utf8_by_width(const std::string& str, return result; } +bool MsgHandler::check_odd(const std::string date) +{ + if (!date.empty()) + { + char lastChar = date.back(); // 获取最后一个字符 + if (std::isdigit(lastChar)) + { + int lastDigit = lastChar - '0'; // 将字符转换为数字 + if (lastDigit % 2 == 0) + { + return false; + } + else + { + return true; + } + } + return false; + } + return false; +} + //NP80A打印通用称重 -void MsgHandler::Print1_3(const std::map& msg) +void MsgHandler::Print1_1(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; @@ -628,34 +650,8 @@ void MsgHandler::Print1_3(const std::map& msg) m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - // m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - // m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印转煤单 - // it = msg.find("TitleCorp"); - // if(it != msg.end()) - // { - // szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("磅单"); //过衡单 - // } - // szTemp = ot::UTF8ToGB2312("中电投新疆能源化工集团"); - // m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - // m_PrintData.insert(m_PrintData.end(), {0x0A}); - // szTemp = ot::UTF8ToGB2312("五彩湾发电有限责任公司"); - // m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - // m_PrintData.insert(m_PrintData.end(), {0x0A}); - // szTemp = ot::UTF8ToGB2312("计量单"); - // m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - // m_PrintData.insert(m_PrintData.end(), {0x0A}); - // m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - // szTemp=ot::UTF8ToGB2312(" "); - // m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - // m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - // m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 @@ -770,6 +766,7 @@ void MsgHandler::Print1_3(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[7] = ("┄");//防伪 m_newObj[8] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); @@ -873,11 +870,18 @@ void MsgHandler::Print1_3(const std::map& msg) m_newObj[0] = ("│"); m_newObj[26] = ("一次称重时间"); m_newObj[168] = ("│"); - it = msg.find("GrossTime"); if (it != msg.end()) { - m_newObj[190] = it->second; + //防伪 + if (check_odd(it->second) == true) + { + m_newObj[196] = it->second; + } + else + { + m_newObj[190] = it->second; + } } m_newObj[528] = ("│"); @@ -944,7 +948,15 @@ void MsgHandler::Print1_3(const std::map& msg) it = msg.find("TareTime"); if (it != msg.end()) { - m_newObj[190] = it->second; + //防伪 + if (check_odd(it->second) == true) + { + m_newObj[196] = it->second; + } + else + { + m_newObj[190] = it->second; + } } m_newObj[528] = ("│"); @@ -1004,7 +1016,7 @@ void MsgHandler::Print1_3(const std::map& msg) m_newObj[384] = ("│"); m_newObj[404] = ("kg"); - m_newObj[528] = ("│"); + m_newObj[528] = ("┆");//防伪 blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); @@ -1090,6 +1102,7 @@ void MsgHandler::Print1_3(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[8] = ("┴"); + m_newObj[9] = ("┄");//防伪 m_newObj[23] = ("┘"); blTemp = BuildLine(24, m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); diff --git a/print/MsgHandler.hpp b/print/MsgHandler.hpp index 9627c3a..1d9e15e 100644 --- a/print/MsgHandler.hpp +++ b/print/MsgHandler.hpp @@ -48,8 +48,9 @@ private: int get_utf8_char_width(const std::string& str, size_t start_byte); size_t get_utf8_display_width(const std::string& str); std::vector split_utf8_by_width(const std::string& str, size_t max_width); + bool check_odd(const std::string date); - void Print1_3(const std::map& msg); + void Print1_1(const std::map& msg); }; #endif \ No newline at end of file