Преглед изворни кода

再测试一下标签打印就ok了

zhangyang пре 6 година
родитељ
комит
1057d3bf68
55 измењених фајлова са 124 додато и 26 уклоњено
  1. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-console-l1-1-0.dll
  2. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-datetime-l1-1-0.dll
  3. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-debug-l1-1-0.dll
  4. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-errorhandling-l1-1-0.dll
  5. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l1-1-0.dll
  6. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l1-2-0.dll
  7. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l2-1-0.dll
  8. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-handle-l1-1-0.dll
  9. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-heap-l1-1-0.dll
  10. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-interlocked-l1-1-0.dll
  11. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-libraryloader-l1-1-0.dll
  12. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-localization-l1-2-0.dll
  13. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-memory-l1-1-0.dll
  14. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-namedpipe-l1-1-0.dll
  15. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processenvironment-l1-1-0.dll
  16. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processthreads-l1-1-0.dll
  17. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processthreads-l1-1-1.dll
  18. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-profile-l1-1-0.dll
  19. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-rtlsupport-l1-1-0.dll
  20. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-string-l1-1-0.dll
  21. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-synch-l1-1-0.dll
  22. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-synch-l1-2-0.dll
  23. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-sysinfo-l1-1-0.dll
  24. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-timezone-l1-1-0.dll
  25. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-util-l1-1-0.dll
  26. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-conio-l1-1-0.dll
  27. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-convert-l1-1-0.dll
  28. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-environment-l1-1-0.dll
  29. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-filesystem-l1-1-0.dll
  30. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-heap-l1-1-0.dll
  31. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-locale-l1-1-0.dll
  32. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-math-l1-1-0.dll
  33. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-multibyte-l1-1-0.dll
  34. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-runtime-l1-1-0.dll
  35. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-stdio-l1-1-0.dll
  36. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-string-l1-1-0.dll
  37. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-time-l1-1-0.dll
  38. BIN
      bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-utility-l1-1-0.dll
  39. BIN
      bin/Win32/Release/lewaimai_pos_windows/db/pos.db
  40. BIN
      bin/Win32/Release/lewaimai_pos_windows/libcurl.dll
  41. BIN
      bin/Win32/Release/lewaimai_pos_windows/libeay32.dll
  42. 0 2
      bin/Win32/Release/lewaimai_pos_windows/log/pos.log
  43. BIN
      bin/Win32/Release/lewaimai_pos_windows/msvcp140.dll
  44. BIN
      bin/Win32/Release/lewaimai_pos_windows/msvcp140_1.dll
  45. BIN
      bin/Win32/Release/lewaimai_pos_windows/msvcp140_2.dll
  46. BIN
      bin/Win32/Release/lewaimai_pos_windows/ssleay32.dll
  47. BIN
      bin/Win32/Release/lewaimai_pos_windows/ucrtbase.dll
  48. BIN
      bin/Win32/Release/lewaimai_pos_windows/vcruntime140.dll
  49. 2 0
      lewaimai_pos_windows/lewaimai_pos_windows.vcxproj
  50. 6 0
      lewaimai_pos_windows/lewaimai_pos_windows.vcxproj.filters
  51. 50 0
      lewaimai_pos_windows/tool/CComHelper.cpp
  52. 11 0
      lewaimai_pos_windows/tool/CComHelper.h
  53. 38 15
      lewaimai_pos_windows/tool/CPosPrinter.cpp
  54. 16 8
      lewaimai_pos_windows/tool/CPosPrinter.h
  55. 1 1
      lewaimai_pos_windows/wnd/CMainWnd.cpp

BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-console-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-datetime-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-debug-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-errorhandling-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l1-2-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-file-l2-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-handle-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-heap-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-interlocked-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-libraryloader-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-localization-l1-2-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-memory-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-namedpipe-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processenvironment-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processthreads-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-processthreads-l1-1-1.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-profile-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-rtlsupport-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-string-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-synch-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-synch-l1-2-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-sysinfo-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-timezone-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-core-util-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-conio-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-convert-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-environment-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-filesystem-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-heap-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-locale-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-math-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-multibyte-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-runtime-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-stdio-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-string-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-time-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/api-ms-win-crt-utility-l1-1-0.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/db/pos.db


BIN
bin/Win32/Release/lewaimai_pos_windows/libcurl.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/libeay32.dll


+ 0 - 2
bin/Win32/Release/lewaimai_pos_windows/log/pos.log

@@ -1,2 +0,0 @@
-2019-07-25 21:04:18[INFO] - folderPath:E:\work\code\lewaimai_pos_windows\bin\Win32\Release\lewaimai_pos_windows\db,没有找到对应的目录,即将创建 [e:\work\code\lewaimai_pos_windows\lewaimai_pos_windows\tool\csqlite3.cpp:11]
-2019-07-25 21:04:18[INFO] - 新建 db 目录成功! [e:\work\code\lewaimai_pos_windows\lewaimai_pos_windows\tool\csqlite3.cpp:18]

BIN
bin/Win32/Release/lewaimai_pos_windows/msvcp140.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/msvcp140_1.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/msvcp140_2.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/ssleay32.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/ucrtbase.dll


BIN
bin/Win32/Release/lewaimai_pos_windows/vcruntime140.dll


+ 2 - 0
lewaimai_pos_windows/lewaimai_pos_windows.vcxproj

@@ -228,6 +228,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClInclude Include="tool\CComHelper.h" />
     <ClInclude Include="wnd\CMessageboxWnd.h" />
     <ClInclude Include="wnd\CMessageboxWnd.h" />
     <ClInclude Include="wnd\CUpdateWnd.h" />
     <ClInclude Include="wnd\CUpdateWnd.h" />
     <ClInclude Include="wnd\CWaimaiOrderFailReasonWnd.h" />
     <ClInclude Include="wnd\CWaimaiOrderFailReasonWnd.h" />
@@ -258,6 +259,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="control\OrderListUI.h" />
     <ClInclude Include="control\OrderListUI.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClCompile Include="tool\CComHelper.cpp" />
     <ClCompile Include="wnd\CMessageboxWnd.cpp" />
     <ClCompile Include="wnd\CMessageboxWnd.cpp" />
     <ClCompile Include="wnd\CUpdateWnd.cpp" />
     <ClCompile Include="wnd\CUpdateWnd.cpp" />
     <ClCompile Include="wnd\CWaimaiOrderFailReasonWnd.cpp" />
     <ClCompile Include="wnd\CWaimaiOrderFailReasonWnd.cpp" />

+ 6 - 0
lewaimai_pos_windows/lewaimai_pos_windows.vcxproj.filters

@@ -99,6 +99,9 @@
     <ClInclude Include="wnd\CMessageboxWnd.h">
     <ClInclude Include="wnd\CMessageboxWnd.h">
       <Filter>头文件</Filter>
       <Filter>头文件</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="tool\CComHelper.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
     <ClCompile Include="pch\pch.cpp">
@@ -176,6 +179,9 @@
     <ClCompile Include="wnd\CMessageboxWnd.cpp">
     <ClCompile Include="wnd\CMessageboxWnd.cpp">
       <Filter>源文件</Filter>
       <Filter>源文件</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="tool\CComHelper.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <Image Include="resource\lewaimai.ico">
     <Image Include="resource\lewaimai.ico">

+ 50 - 0
lewaimai_pos_windows/tool/CComHelper.cpp

@@ -0,0 +1,50 @@
+#include "../pch/pch.h"
+#include "CComHelper.h"
+
+
+CComHelper::CComHelper()
+{
+}
+
+
+CComHelper::~CComHelper()
+{
+}
+
+std::vector<std::wstring> CComHelper::getComPort()
+{
+	std::vector<std::wstring> comVector;
+
+	HKEY hKey;
+	TCHAR portName[256], commName[256];
+
+	// 打开串口注册表对应的键值  
+	if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Hardware\\DeviceMap\\SerialComm", NULL, KEY_READ, &hKey))
+	{
+		int i = 0;
+		int mm = 0;
+		DWORD  dwLong, dwSize;
+		while (TRUE)
+		{
+			dwLong = dwSize = sizeof(portName);
+
+			// 枚举串口
+			if (ERROR_NO_MORE_ITEMS == ::RegEnumValue(hKey, i, portName, &dwLong, NULL, NULL, (PUCHAR)commName, &dwSize))
+			{
+				break;
+			}
+
+			comVector.push_back(commName);
+			i++;
+		}
+		// 关闭注册表
+		RegCloseKey(hKey);
+	}
+	else
+	{
+		MessageBox(NULL, L"您的计算机的注册表上没有HKEY_LOCAL_MACHINE:Hardware\\DeviceMap\\SerialComm项", L"警告", MB_OK);
+	}
+
+	// 返回串口号
+	return comVector;
+}

+ 11 - 0
lewaimai_pos_windows/tool/CComHelper.h

@@ -0,0 +1,11 @@
+#pragma once
+
+class CComHelper
+{
+public:
+	CComHelper();
+	~CComHelper();
+
+	std::vector<std::wstring> getComPort();
+};
+

+ 38 - 15
lewaimai_pos_windows/tool/CPosPrinter.cpp

@@ -4,6 +4,8 @@
 #include <winioctl.h>
 #include <winioctl.h>
 #include <setupapi.h>
 #include <setupapi.h>
 
 
+#include "../tool/CComHelper.h"
+
 using boost::asio::ip::tcp;
 using boost::asio::ip::tcp;
 
 
 CPosPrinter::CPosPrinter(): m_socket(m_io)
 CPosPrinter::CPosPrinter(): m_socket(m_io)
@@ -15,13 +17,13 @@ CPosPrinter::~CPosPrinter()
 {
 {
 }
 }
 
 
-void CPosPrinter::InitUsb()
+void CPosPrinter::InitUsb(int usbType)
 {
 {
 	//设置中文字符
 	//设置中文字符
 	setlocale(LC_CTYPE, "chs");
 	setlocale(LC_CTYPE, "chs");
 
 
 	//取设备路径
 	//取设备路径
-	int nDevice = GetDevicePath((LPGUID)&USB_GUID);
+	int nDevice = GetDevicePath((LPGUID)&USB_GUID, usbType);
 	LOG_INFO("可用的USB打印机数量:" << nDevice);
 	LOG_INFO("可用的USB打印机数量:" << nDevice);
 
 
 	//添加usb端口
 	//添加usb端口
@@ -154,11 +156,12 @@ void CPosPrinter::InitBingkou()
 
 
 void CPosPrinter::InitCom()
 void CPosPrinter::InitCom()
 {
 {
-	int comNum = 10;
+	CComHelper helper;
+	std::vector<std::wstring> comVector = helper.getComPort();
 
 
-	for (int i = 1; i <= 10; i++)
+	for (std::vector<std::wstring>::iterator it = comVector.begin(); it != comVector.end(); it++)
 	{
 	{
-		std::wstring com2Str = L"com" + CLewaimaiString::ANSIToUnicode(to_string(i));
+		std::wstring com2Str = *it;
 
 
 		HANDLE hPort = CreateFile(com2Str.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 		HANDLE hPort = CreateFile(com2Str.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
 
@@ -239,7 +242,7 @@ void CPosPrinter::InitShouyin()
 /*
 /*
  *获取CreateFile的USB端口号
  *获取CreateFile的USB端口号
  **/
  **/
-int CPosPrinter::GetDevicePath(LPGUID lpGuid)
+int CPosPrinter::GetDevicePath(LPGUID lpGuid, int usbType)
 {
 {
     HDEVINFO hDevInfoSet;
     HDEVINFO hDevInfoSet;
     SP_DEVINFO_DATA spDevInfoData;
     SP_DEVINFO_DATA spDevInfoData;
@@ -347,7 +350,7 @@ int CPosPrinter::GetDevicePath(LPGUID lpGuid)
 
 
 					LOG_INFO("Vid:" << vid.c_str() << ", Pid:" << pid.c_str());
 					LOG_INFO("Vid:" << vid.c_str() << ", Pid:" << pid.c_str());
 
 
-					if (GetPrinterType(vid, pid) == 2)
+					if (usbType == 1 && GetPrinterType(vid, pid) == 2)
 					{
 					{
 						//标签打印机,暂时不处理打印
 						//标签打印机,暂时不处理打印
 						LOG_INFO("标签打印机,暂时不打印!");
 						LOG_INFO("标签打印机,暂时不打印!");
@@ -383,12 +386,11 @@ int CPosPrinter::GetDevicePath(LPGUID lpGuid)
  **/
  **/
 int CPosPrinter::GetPrinterType(wstring vid, wstring pid)
 int CPosPrinter::GetPrinterType(wstring vid, wstring pid)
 {
 {
-/*
 	if (vid == L"6868" && pid == L"0500")
 	if (vid == L"6868" && pid == L"0500")
 	{
 	{
 		//佳博标签打印机
 		//佳博标签打印机
 		return 2;
 		return 2;
-	}*/
+	}
 
 
 	return 1;
 	return 1;
 }
 }
@@ -436,7 +438,7 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 		catch (std::exception& e)
 		catch (std::exception& e)
 		{
 		{
 			std::string err = e.what();
 			std::string err = e.what();
-			LOG_INFO("连接厨房打印机失败,IP地址:" << wangkou_ip.c_str() << ",错误信息:" << err.c_str());
+			LOG_INFO("打印机失败,IP地址:" << wangkou_ip.c_str() << ",错误信息:" << err.c_str());
 		}
 		}
 	}
 	}
 
 
@@ -807,6 +809,7 @@ void CPosPrinter::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 	std::string printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
 	std::string printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
 	std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 	std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 
 
+	//连接usb端口
 	InitOneUsb(ws_printer_usb);	
 	InitOneUsb(ws_printer_usb);	
 
 
 	//初始化标签打印机
 	//初始化标签打印机
@@ -817,7 +820,19 @@ void CPosPrinter::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 
 
 	std::vector<CWaimaiOrderItem> cur_printer_use = order.m_order_items;
 	std::vector<CWaimaiOrderItem> cur_printer_use = order.m_order_items;
 
 
+	//先计算商品的总数量
+	int foodNum = 0;
+
+	for (std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
+	{
+		std::string quantity = (*it).m_quantity;
+
+		foodNum += atoi(quantity.c_str());
+	}
+
 	//商品内容
 	//商品内容
+	int curFoodNum = 0;
+
 	for (std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
 	for (std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
 	{
 	{
 		std::string food_name = (*it).m_food_name;
 		std::string food_name = (*it).m_food_name;
@@ -829,11 +844,15 @@ void CPosPrinter::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 
 
 		for (int i = 0; i < nQuantity; i++)
 		for (int i = 0; i < nQuantity; i++)
 		{
 		{
+			curFoodNum++;
+
 			std::string order_num_info = "外卖 #" + restaurant_number;
 			std::string order_num_info = "外卖 #" + restaurant_number;
 			BIAOQIAN_TEXTOUT(order_num_info, 16, 16, 1, 1);
 			BIAOQIAN_TEXTOUT(order_num_info, 16, 16, 1, 1);
 
 
+			std::string numInfo = curFoodNum + "/" + foodNum;
+			BIAOQIAN_TEXTOUT(numInfo, 260, 16, 1, 1);
+
 			//每行最多显示12个汉字,这里要计算一下换行
 			//每行最多显示12个汉字,这里要计算一下换行
-			food_name += CLewaimaiString::UnicodeToUTF8(L" ¥") + food_price;
 			std::vector<std::string> foodNameVector = HandleBiaoqianFoodname(food_name);
 			std::vector<std::string> foodNameVector = HandleBiaoqianFoodname(food_name);
 
 
 			int nRow = 0;
 			int nRow = 0;
@@ -842,9 +861,14 @@ void CPosPrinter::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 				BIAOQIAN_TEXTOUT(CLewaimaiString::UTF8ToANSI(*it), 16, 60 + 40 * nRow, 1, 2);
 				BIAOQIAN_TEXTOUT(CLewaimaiString::UTF8ToANSI(*it), 16, 60 + 40 * nRow, 1, 2);
 
 
 				nRow++;
 				nRow++;
-			}			
+			}		
+
+			//打印价格
+			std::wstring priceInfo = L"¥" + CLewaimaiString::UTF8ToUnicode(food_price);
+			BIAOQIAN_TEXTOUT(CLewaimaiString::UnicodeToUTF8(priceInfo), 16, 180, 1, 1);
 
 
-			BIAOQIAN_TEXTOUT(order_num, 16, 200, 1, 1);
+			//打印订单号
+			BIAOQIAN_TEXTOUT(order_num, 16, 210, 1, 1);
 
 
 			BIAOQIAN_PRINT();
 			BIAOQIAN_PRINT();
 		}
 		}
@@ -1200,7 +1224,7 @@ int CPosPrinter::WriteBuf(const char* buf, int len)
                                  FALSE
                                  FALSE
                              );
                              );
 
 
-						LOG_INFO("Write success " << numread << " bytes");
+						//LOG_INFO("Write success " << numread << " bytes");
                     }
                     }
                 }
                 }
             }
             }
@@ -1228,7 +1252,6 @@ int CPosPrinter::WriteBuf(const char* buf, int len)
  **/
  **/
 bool CPosPrinter::PortTest(HANDLE hPort)
 bool CPosPrinter::PortTest(HANDLE hPort)
 {
 {
-	return true;
 	//标签打印机的查询状态指令
 	//标签打印机的查询状态指令
     char chInitCode[2] = { 0x1b, 0x40};
     char chInitCode[2] = { 0x1b, 0x40};
 
 

+ 16 - 8
lewaimai_pos_windows/tool/CPosPrinter.h

@@ -4,13 +4,12 @@
 #include "../order/CWaimaiOrder.h"
 #include "../order/CWaimaiOrder.h"
 
 
 //SetupDiGetInterfaceDeviceDetail所需要的输出长度,定义足够大
 //SetupDiGetInterfaceDeviceDetail所需要的输出长度,定义足够大
-#define INTERFACE_DETAIL_SIZE	1024
+#define INTERFACE_DETAIL_SIZE 1024
 
 
 //设备数量上限,假设16台上限
 //设备数量上限,假设16台上限
 #define MAX_DEVICE 16
 #define MAX_DEVICE 16
 
 
-//USB类的GUID
-//const GUID USB_GUID = {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}};
+//USB类的GUID,通过这个去找USB打印机
 const GUID USB_GUID = {0x28d78fad, 0x5a12, 0x11d1, {0xae, 0x5b, 0x00, 0x00, 0xf8, 0x03, 0xa8, 0xc2 }};
 const GUID USB_GUID = {0x28d78fad, 0x5a12, 0x11d1, {0xae, 0x5b, 0x00, 0x00, 0xf8, 0x03, 0xa8, 0xc2 }};
 
 
 //存储打印端口句柄的结构
 //存储打印端口句柄的结构
@@ -31,7 +30,8 @@ public:
 	void PrintWaimaiOrderBiaoqian(CWaimaiOrder& order);
 	void PrintWaimaiOrderBiaoqian(CWaimaiOrder& order);
 	void PrintWaimaiOrderChufang(CWaimaiOrder& order);
 	void PrintWaimaiOrderChufang(CWaimaiOrder& order);
 
 
-	void InitUsb();
+	//usb打印机的类型 1:收银小票打印机 2:标签打印机
+	void InitUsb(int usbType = 1);
 	std::vector<std::wstring> getUsbDevices();
 	std::vector<std::wstring> getUsbDevices();
 
 
 private:
 private:
@@ -40,32 +40,37 @@ private:
 
 
 	void InitShouyin();
 	void InitShouyin();
 
 
+	//打开某一个指定的usb端口
 	void InitOneUsb(wstring usb_path);
 	void InitOneUsb(wstring usb_path);
 
 
-	int GetDevicePath(LPGUID lpGuid);
+	//usb打印机的类型 1:收银小票打印机 2:标签打印机
+	int GetDevicePath(LPGUID lpGuid, int usbType);
+
+	//判断usb打印机是小票打印机还是标签打印机
 	int GetPrinterType(wstring vid, wstring pid);
 	int GetPrinterType(wstring vid, wstring pid);
 
 
 	int WriteData(string meg);
 	int WriteData(string meg);
 	int WriteBuf(const char* buf, int len);
 	int WriteBuf(const char* buf, int len);
 
 
+	//端口连通性测试
 	bool PortTest(HANDLE hPort);
 	bool PortTest(HANDLE hPort);
 
 
+	//小票打印机和厨房打印的处理方法
 	int POS_Reset(void);
 	int POS_Reset(void);
 	int POS_FeedLine(void);
 	int POS_FeedLine(void);
 	int POS_Feed(void);
 	int POS_Feed(void);
 	int POS_SetMotionUnit(int x, int y);
 	int POS_SetMotionUnit(int x, int y);
 
 
-	//设置横向跳格位置
 	int POS_SET_MOVE_X();
 	int POS_SET_MOVE_X();
 	int POS_MOVE_X();
 	int POS_MOVE_X();
 	int POS_SET_ABS_X(int x, int y);
 	int POS_SET_ABS_X(int x, int y);
 	int POS_SET_PRINT_AREA(int x, int y);
 	int POS_SET_PRINT_AREA(int x, int y);
 
 
 	int POS_TextOut(string abc, bool is_double_width = false, bool is_double_height = false, int align_type = 0);
 	int POS_TextOut(string abc, bool is_double_width = false, bool is_double_height = false, int align_type = 0);
-
 	int POS_CutPaper();
 	int POS_CutPaper();
 	int POS_OutQRCode();
 	int POS_OutQRCode();
 
 
+	//标签打印机的处理方法
 	void BIAOQIAN_Reset();
 	void BIAOQIAN_Reset();
 	void BIAOQIAN_FORMFEED();
 	void BIAOQIAN_FORMFEED();
 	void BIAOQIAN_TEXTOUT(std::string content, int x, int y, int x_multiplication, int y_multiplication);
 	void BIAOQIAN_TEXTOUT(std::string content, int x, int y, int x_multiplication, int y_multiplication);
@@ -74,17 +79,20 @@ private:
 	//字符空格计算的辅助函数
 	//字符空格计算的辅助函数
 	void CalWord(string s,  int& nHanzi, int& nZimu);
 	void CalWord(string s,  int& nHanzi, int& nZimu);
 
 
-	//对名字进行换行处理
+	//对小票打印和厨房打印的名字进行换行处理
 	std::vector<std::string> HandleFoodname(std::string oldname, int guige = 1);
 	std::vector<std::string> HandleFoodname(std::string oldname, int guige = 1);
 	std::string HandleFoodItemPrice(std::string oldprice, int guige = 1);
 	std::string HandleFoodItemPrice(std::string oldprice, int guige = 1);
 	std::string HandleFoodQuantity(std::string oldquantity, int guige = 1);
 	std::string HandleFoodQuantity(std::string oldquantity, int guige = 1);
 	std::string HandleFoodTotalPrice(std::string oldprice, int guige = 1);
 	std::string HandleFoodTotalPrice(std::string oldprice, int guige = 1);
 
 
+	//对标签打印的名字进行换行处理
 	std::vector<std::string> HandleBiaoqianFoodname(std::string oldname);
 	std::vector<std::string> HandleBiaoqianFoodname(std::string oldname);
 
 
 private:
 private:
+	//收银小票打印的句柄组合
 	std::vector<PrinterHandle> m_hPorts;
 	std::vector<PrinterHandle> m_hPorts;
 
 
+	//用于厨房打印机和网口类型的收银小票打印
 	boost::asio::io_service m_io;
 	boost::asio::io_service m_io;
 	boost::asio::ip::tcp::socket m_socket;
 	boost::asio::ip::tcp::socket m_socket;
 
 

+ 1 - 1
lewaimai_pos_windows/wnd/CMainWnd.cpp

@@ -1743,7 +1743,7 @@ void CMainWnd::InitSettingStatus()
     std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
     std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
 
 
     CPosPrinter printer;
     CPosPrinter printer;
-    printer.InitUsb();
+    printer.InitUsb(2);
     std::vector<std::wstring> usb_devices = printer.getUsbDevices();
     std::vector<std::wstring> usb_devices = printer.getUsbDevices();
 
 
     int i = 0;
     int i = 0;