|
@@ -164,12 +164,11 @@ bool CPosPrinter::InitShouyin()
|
|
|
if(!SetCommState(hPort, &dcb))
|
|
if(!SetCommState(hPort, &dcb))
|
|
|
{
|
|
{
|
|
|
LOG_INFO("set baudRate failed!");
|
|
LOG_INFO("set baudRate failed!");
|
|
|
|
|
+
|
|
|
|
|
+ CloseHandle(hPort);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //设置端口缓冲
|
|
|
|
|
- SetupComm(hPort, 1024, 1024);
|
|
|
|
|
-
|
|
|
|
|
//设定通讯端口超时参数
|
|
//设定通讯端口超时参数
|
|
|
COMMTIMEOUTS tmouts;
|
|
COMMTIMEOUTS tmouts;
|
|
|
tmouts.ReadIntervalTimeout = 100;
|
|
tmouts.ReadIntervalTimeout = 100;
|
|
@@ -179,6 +178,9 @@ bool CPosPrinter::InitShouyin()
|
|
|
tmouts.WriteTotalTimeoutMultiplier = 100;
|
|
tmouts.WriteTotalTimeoutMultiplier = 100;
|
|
|
SetCommTimeouts(hPort, &tmouts);
|
|
SetCommTimeouts(hPort, &tmouts);
|
|
|
|
|
|
|
|
|
|
+ //设置端口缓冲
|
|
|
|
|
+ SetupComm(hPort, 1024, 1024);
|
|
|
|
|
+
|
|
|
//清除通讯端口缓存
|
|
//清除通讯端口缓存
|
|
|
PurgeComm(hPort, PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_RXABORT);
|
|
PurgeComm(hPort, PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_RXABORT);
|
|
|
|
|
|
|
@@ -345,8 +347,10 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
|
|
|
for(int i = 0; i < n_lianshu; i++)
|
|
for(int i = 0; i < n_lianshu; i++)
|
|
|
{
|
|
{
|
|
|
POS_Reset();
|
|
POS_Reset();
|
|
|
|
|
+
|
|
|
string shop_name = "#" + order.m_restaurant_number + " " + CLewaimaiString::UTF8ToANSI(order.m_shop_name);
|
|
string shop_name = "#" + order.m_restaurant_number + " " + CLewaimaiString::UTF8ToANSI(order.m_shop_name);
|
|
|
POS_TextOut(shop_name, true, true, 1);
|
|
POS_TextOut(shop_name, true, true, 1);
|
|
|
|
|
+
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
bool setting_printer_quhuo_big = false;
|
|
bool setting_printer_quhuo_big = false;
|
|
@@ -670,14 +674,22 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
POS_TextOut("支付方式:" + CLewaimaiString::UTF8ToANSI(order.m_pay_type), false, setting_printer_pay_big, 2);
|
|
POS_TextOut("支付方式:" + CLewaimaiString::UTF8ToANSI(order.m_pay_type), false, setting_printer_pay_big, 2);
|
|
|
- POS_FeedLine();
|
|
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
- POS_FeedLine();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //走纸几行再切
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
|
|
|
POS_CutPaper();
|
|
POS_CutPaper();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //还原打印机初始设置,有些傻逼收银设备居然不是自动调用,比如哗啦啦
|
|
|
|
|
+ POS_Reset();
|
|
|
|
|
+
|
|
|
//关闭设备
|
|
//关闭设备
|
|
|
for(std::vector<PrinterHandle>::iterator it = m_hPorts.begin(); it != m_hPorts.end(); it++)
|
|
for(std::vector<PrinterHandle>::iterator it = m_hPorts.begin(); it != m_hPorts.end(); it++)
|
|
|
{
|
|
{
|
|
@@ -689,6 +701,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
{
|
|
{
|
|
|
//设置模式,后面输出数据不会错
|
|
//设置模式,后面输出数据不会错
|
|
|
m_type = 2;
|
|
m_type = 2;
|
|
|
|
|
+
|
|
|
//读取厨房打印机信息
|
|
//读取厨房打印机信息
|
|
|
std::vector<ChufangPrinter> total_printers = CSetting::getChufangPrints();
|
|
std::vector<ChufangPrinter> total_printers = CSetting::getChufangPrints();
|
|
|
|
|
|
|
@@ -707,6 +720,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
{
|
|
{
|
|
|
std::string err = e.what();
|
|
std::string err = e.what();
|
|
|
LOG_INFO("连接厨房打印机失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
|
|
LOG_INFO("连接厨房打印机失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
|
|
|
|
|
+
|
|
|
//连接失败了,处理下一个厨房打印机
|
|
//连接失败了,处理下一个厨房打印机
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -720,6 +734,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
POS_Reset();
|
|
POS_Reset();
|
|
|
POS_TextOut("派工单", true, true, 1);
|
|
POS_TextOut("派工单", true, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
+
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
//预设选项
|
|
//预设选项
|
|
@@ -820,8 +835,17 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
//结束商品详情打印
|
|
//结束商品详情打印
|
|
|
POS_TextOut(lines);
|
|
POS_TextOut(lines);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
+
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+
|
|
|
POS_CutPaper();
|
|
POS_CutPaper();
|
|
|
|
|
+
|
|
|
|
|
+ //还原打印机初始设置,有些傻逼收银设备居然不是自动调用,比如哗啦啦
|
|
|
|
|
+ POS_Reset();
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
@@ -832,6 +856,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
{
|
|
{
|
|
|
POS_TextOut("派工单", true, true, 1);
|
|
POS_TextOut("派工单", true, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
+
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
//预设选项
|
|
//预设选项
|
|
@@ -914,11 +939,20 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//结束商品详情打印
|
|
//结束商品详情打印
|
|
|
- POS_TextOut(lines);
|
|
|
|
|
- POS_FeedLine();
|
|
|
|
|
- POS_FeedLine();
|
|
|
|
|
|
|
+ POS_TextOut(lines);
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+ POS_FeedLine();
|
|
|
|
|
+
|
|
|
POS_CutPaper();
|
|
POS_CutPaper();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //还原打印机初始设置,有些傻逼收银设备居然不是自动调用,比如哗啦啦
|
|
|
|
|
+ POS_Reset();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
m_socket.close();
|
|
m_socket.close();
|
|
@@ -1155,10 +1189,13 @@ int CPosPrinter::POS_TextOut(string abc, bool is_double_width, bool is_double_he
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
|
|
+ *打印机切纸,直接切不走纸
|
|
|
|
|
+ **/
|
|
|
int CPosPrinter::POS_CutPaper()
|
|
int CPosPrinter::POS_CutPaper()
|
|
|
{
|
|
{
|
|
|
- char s[4] = { 0x1D, 0x56, 0x41, 0x00 };
|
|
|
|
|
- WriteBuf(s, 4);
|
|
|
|
|
|
|
+ char s[4] = { 0x1D, 0x56, 0x01};
|
|
|
|
|
+ WriteBuf(s, 3);
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|