1. 增加磅单防伪功能。

main
baocm 8 months ago
parent e2a1400ab8
commit 30a9968072

@ -448,7 +448,7 @@ void PublisherApp::run()
{ {
std::map<std::string, std::string> print_msg; std::map<std::string, std::string> print_msg;
print_msg["Title"] = "过衡单"; print_msg["Title"] = "五彩湾";
print_msg["GrossDeviceID"] = std::to_string(info.GrossDeviceID()); print_msg["GrossDeviceID"] = std::to_string(info.GrossDeviceID());
print_msg["GrossDeviceName"] = info.GrossDeviceName(); print_msg["GrossDeviceName"] = info.GrossDeviceName();
print_msg["TareDeviceID"] = std::to_string(info.TareDeviceID()); print_msg["TareDeviceID"] = std::to_string(info.TareDeviceID());

@ -140,9 +140,9 @@ void MsgHandler::EncodeMsg(const std::map<std::string, std::string>& msg)
auto it = msg.find("Title"); auto it = msg.find("Title");
if(it != msg.end()) if(it != msg.end())
{ {
if(it->second == "过衡单") if(it->second == "五彩湾")
{ {
Print1_3(msg); Print1_1(msg);
} }
} }
} }
@ -614,8 +614,30 @@ std::vector<std::string> MsgHandler::split_utf8_by_width(const std::string& str,
return result; 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打印通用称重 //NP80A打印通用称重
void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg) void MsgHandler::Print1_1(const std::map<std::string, std::string>& msg)
{ {
//这里组装打印输出内容 //这里组装打印输出内容
std::string szTemp; std::string szTemp;
@ -628,34 +650,8 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40});
//设置中文模式 //设置中文模式
m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); 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号字 //设置0号字
m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); 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}); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00});
//设置页模式 //设置页模式
@ -770,6 +766,7 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
m_newObj.clear(); m_newObj.clear();
m_newObj[1] = (""); m_newObj[1] = ("");
m_newObj[7] = ("");//防伪
m_newObj[8] = (""); m_newObj[8] = ("");
m_newObj[23] = (""); m_newObj[23] = ("");
blTemp = BuildLine(24,m_newObj); blTemp = BuildLine(24,m_newObj);
@ -873,12 +870,19 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
m_newObj[0] = (""); m_newObj[0] = ("");
m_newObj[26] = ("一次称重时间"); m_newObj[26] = ("一次称重时间");
m_newObj[168] = (""); m_newObj[168] = ("");
it = msg.find("GrossTime"); it = msg.find("GrossTime");
if (it != msg.end()) if (it != msg.end())
{
//防伪
if (check_odd(it->second) == true)
{
m_newObj[196] = it->second;
}
else
{ {
m_newObj[190] = it->second; m_newObj[190] = it->second;
} }
}
m_newObj[528] = (""); m_newObj[528] = ("");
blTemp = BuildStringLine(m_newObj); blTemp = BuildStringLine(m_newObj);
@ -943,9 +947,17 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
it = msg.find("TareTime"); it = msg.find("TareTime");
if (it != msg.end()) if (it != msg.end())
{
//防伪
if (check_odd(it->second) == true)
{
m_newObj[196] = it->second;
}
else
{ {
m_newObj[190] = it->second; m_newObj[190] = it->second;
} }
}
m_newObj[528] = (""); m_newObj[528] = ("");
blTemp = BuildStringLine(m_newObj); blTemp = BuildStringLine(m_newObj);
@ -1004,7 +1016,7 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
m_newObj[384] = (""); m_newObj[384] = ("");
m_newObj[404] = ("kg"); m_newObj[404] = ("kg");
m_newObj[528] = (""); m_newObj[528] = ("");//防伪
blTemp = BuildStringLine(m_newObj); blTemp = BuildStringLine(m_newObj);
m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end());
m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), {0x0A});
@ -1090,6 +1102,7 @@ void MsgHandler::Print1_3(const std::map<std::string, std::string>& msg)
m_newObj.clear(); m_newObj.clear();
m_newObj[1] = (""); m_newObj[1] = ("");
m_newObj[8] = (""); m_newObj[8] = ("");
m_newObj[9] = ("");//防伪
m_newObj[23] = (""); m_newObj[23] = ("");
blTemp = BuildLine(24, m_newObj); blTemp = BuildLine(24, m_newObj);
m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end());

@ -48,8 +48,9 @@ private:
int get_utf8_char_width(const std::string& str, size_t start_byte); int get_utf8_char_width(const std::string& str, size_t start_byte);
size_t get_utf8_display_width(const std::string& str); size_t get_utf8_display_width(const std::string& str);
std::vector<std::string> split_utf8_by_width(const std::string& str, size_t max_width); std::vector<std::string> 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<std::string, std::string>& msg); void Print1_1(const std::map<std::string, std::string>& msg);
}; };
#endif #endif
Loading…
Cancel
Save