From c150c409029516f2971c31cef008c9f383e10fd7 Mon Sep 17 00:00:00 2001 From: hehaoyang Date: Thu, 19 Oct 2023 22:44:38 +0800 Subject: [PATCH] 1.1.1 Alpha Bulid 20231019 --- .gitignore | 44 +++++++++++++++ PrinterClient/PrinterClient/BoxServer.cs | 40 ++++++-------- PrinterClient/PrinterClient/ReadMe.cs | 6 +++ PrinterClient/PrinterClient/TaskDispatcher.cs | 54 +++++++++---------- PrinterClient/PrinterClient/Utils/LogUtils.cs | 4 +- ReadMe.md | 5 ++ printer.sh | 4 +- 7 files changed, 98 insertions(+), 59 deletions(-) diff --git a/.gitignore b/.gitignore index 3ba61cb..e11f4fc 100644 --- a/.gitignore +++ b/.gitignore @@ -271,3 +271,47 @@ PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/runtimes/win-x64/native/._li PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/runtimes/win-x86/native/._libuv.dll PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/ReadMe.md PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/Log/20231018/Log.log +PrinterClient/.vs/PrinterClient/xs/._UserPrefs.xml +PrinterClient/.vs/PrinterClient/xs/project-cache/._AutoUpgrade-Debug.json +PrinterClient/.vs/PrinterClient/xs/project-cache/._PrinterClient-Debug.json +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade.deps.json +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade.dll +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade.pdb +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade.runtimeconfig.dev.json +PrinterClient/AutoUpgrade/bin/Debug/netcoreapp3.1/._AutoUpgrade.runtimeconfig.json +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._apphost +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.AssemblyInfo.cs +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.AssemblyInfoInputs.cache +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.assets.cache +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.csproj.AssemblyReference.cache +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.csproj.CoreCompileInputs.cache +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.csproj.FileListAbsolute.txt +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.dll +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.GeneratedMSBuildEditorConfig.editorconfig +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.genruntimeconfig.cache +PrinterClient/AutoUpgrade/obj/Debug/netcoreapp3.1/._AutoUpgrade.pdb +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.deps.json +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.dll +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.dll.config +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.pdb +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.runtimeconfig.dev.json +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/._PrinterClient.runtimeconfig.json +PrinterClient/PrinterClient/bin/Debug/netcoreapp3.1/Log/20231019/log.log +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._apphost +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.AssemblyInfo.cs +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.AssemblyInfoInputs.cache +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.assets.cache +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.csproj.CopyComplete +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.csproj.CoreCompileInputs.cache +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.csproj.FileListAbsolute.txt +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.dll +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.GeneratedMSBuildEditorConfig.editorconfig +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.genruntimeconfig.cache +PrinterClient/PrinterClient/obj/Debug/netcoreapp3.1/._PrinterClient.pdb +PrinterClient/PrinterClient/Utils/._LogUtils.cs +PrinterClient/PrinterClient/._BoxServer.cs +PrinterClient/PrinterClient/._Program.cs +PrinterClient/PrinterClient/._TaskDispatcher.cs +._printer.sh diff --git a/PrinterClient/PrinterClient/BoxServer.cs b/PrinterClient/PrinterClient/BoxServer.cs index 5c91bae..8093d0b 100644 --- a/PrinterClient/PrinterClient/BoxServer.cs +++ b/PrinterClient/PrinterClient/BoxServer.cs @@ -286,8 +286,7 @@ public class BoxServer Printer.BoxStatus = (int)BoxStatus.Download; /* 盒子开始处理 */ - TerminalPrintTaskStateHandle(result.printOrderCode, 13, Printer.Status); - Thread.Sleep(2000); + TerminalPrintTaskStateHandle(result.printOrderCode, 13, (int)BoxStatus.Download); /* 开始下载文件 */ DebugTool.UploadTaskStatus(uuid, result.printOrderCode, "开始下载文件"); Program.DebugWriteLine($"开始下载文件 {result.printFileUrl} {filename}"); @@ -296,27 +295,19 @@ public class BoxServer DebugTool.UploadTaskStatus(uuid, result.printOrderCode, "下载完成"); DebugTool.UploadTaskImage(uuid, filename); /* 下载完成 */ - Printer.BoxStatus = (int)BoxStatus.Normal; + Printer.BoxStatus = (int)BoxStatus.Normal; + /* 盒子开始打印 */ - TerminalPrintTaskStateHandle(result.printOrderCode, 14, Printer.Status); - - Printer.Printing = true; - Program.DebugWriteLine("开始打印"); DebugTool.UploadTaskStatus(uuid, result.printOrderCode, "开始打印"); - while (!Printer.Print(result.fileFormatId, result.printModeId, result.printSizeId, filename, out string job)) - { - Program.DebugWriteLine("打印失败,5s后重试"); - DebugTool.UploadTaskStatus(uuid, result.printOrderCode, "打印失败,5s后重试"); - Thread.Sleep(5000); - } - - /* 等待盒子打印完成 */ + TerminalPrintTaskStateHandle(result.printOrderCode, 14, (int)PrinterStatus.Printing); + Printer.Print(result.fileFormatId, result.printModeId, result.printSizeId, filename, out _); + + /* 等待盒子打印完成 */ + Program.DebugWriteLine("等待盒子打印完成"); DateTime current = DateTime.Now; while (true) { - TerminalPrintTaskStateHandle(result.printOrderCode, 14, Printer.Status); - /* 最大等待时长1分钟 */ if (DateTime.Now - current >= TimeSpan.FromMinutes(1)) { @@ -330,25 +321,26 @@ public class BoxServer Printer.Clear(); - Thread.Sleep(1000); + Thread.Sleep(100); } break; } - if (Printer.Status != (int)PrinterStatus.Printing) - break; + if (Printer.QueryEntries() == null) + break; + + TerminalPrintTaskStateHandle(result.printOrderCode, 14, (int)PrinterStatus.Printing); Thread.Sleep(2000); } - Thread.Sleep(2000); - /* 打印超时 */ if (error == "打印超时") TerminalPrintTaskStateHandle(result.printOrderCode, 23, Printer.Status); else /* 打印成功 */ - { + { + Program.DebugWriteLine($"打印成功"); Thread.Sleep(5000); TerminalPrintTaskStateHandle(result.printOrderCode, 21, Printer.Status); } @@ -366,8 +358,6 @@ public class BoxServer Program.DebugWriteLine($"打印任务结束 {error}"); DebugTool.UploadTaskStatus(uuid, result.printOrderCode, "打印任务结束"); - Printer.Printing = false; - if (!Program.ImageSave) { if (File.Exists(filename)) diff --git a/PrinterClient/PrinterClient/ReadMe.cs b/PrinterClient/PrinterClient/ReadMe.cs index 34c983c..a1f0686 100644 --- a/PrinterClient/PrinterClient/ReadMe.cs +++ b/PrinterClient/PrinterClient/ReadMe.cs @@ -16,6 +16,12 @@ static class ReadMe static readonly Dictionary> Versions = new() { + ["1.1.1 Alpha Bulid 20231019"] = new List() + { + "修复: 无法检测到\"打印中\"状态的BUG", + "修复: 下载延时大的BUG", + "修复: 某些特殊情况下, 脚本无法打印的BUG", + }, ["1.1.0 Alpha Bulid 20231018"] = new List() { "删除: 检测打印机更换功能", diff --git a/PrinterClient/PrinterClient/TaskDispatcher.cs b/PrinterClient/PrinterClient/TaskDispatcher.cs index 7fd34c6..2d5b853 100644 --- a/PrinterClient/PrinterClient/TaskDispatcher.cs +++ b/PrinterClient/PrinterClient/TaskDispatcher.cs @@ -227,41 +227,37 @@ namespace PrinterClient } } else - { + { string result; /* 通过查找打印机序列号来判断打印机是否连接 */ - for (int i = 0; i < 6; i++) + for (int i = 0; i < 3; i++) { FindSerial(); if (!string.IsNullOrEmpty(Serial)) break; } - if (string.IsNullOrEmpty(Serial)) - return PrinterStatus.NotDriven; + if (string.IsNullOrEmpty(Serial)) + { + if (Printing) + return PrinterStatus.Normal; + + return PrinterStatus.NotDriven; + } /* 检查默认打印机 */ for (int i = 0; i < 3; i++) { if (TaskDispatcher.ExecuteCommand("lpstat", "-d", out result)) { - if (result.IndexOf("system default destination: DS-RX1HS") == -1) - { - /* 如果此时正在打印, 那么出现这种状况是有可能的, 先认为正常 */ - if(Printing) - return PrinterStatus.Normal; - else - Program.DebugWriteLine($"未找到默认打印机"); - } - else - { - status = PrinterStatus.Normal; - break; - } + if (result.IndexOf("system default destination: DS-RX1HS") != -1 || Printing) + break; + + Program.DebugWriteLine($"未找到默认打印机"); } - Thread.Sleep(10000); + Thread.Sleep(1000); } if (status == PrinterStatus.DriveFailed) @@ -270,11 +266,8 @@ namespace PrinterClient /* 检查是否处于打印中的状态 */ if (TaskDispatcher.ExecuteCommand("lpq", "", out result)) { - //Console.WriteLine($"打印机当前状态:{status}"); - - if (!result.Contains("no entries")) + if (!result.Contains("no entries") || Printing) return PrinterStatus.Printing; - } /* 检查打印机空闲状态 */ @@ -291,6 +284,7 @@ namespace PrinterClient } } } + return status; } @@ -325,8 +319,6 @@ namespace PrinterClient { lprEntries.Clear(); - Console.WriteLine(result); - if (result.Contains("no entries")) return null; @@ -415,11 +407,13 @@ namespace PrinterClient case "6": print_size = "w288h432"; break; case "7": print_size = "w360h504"; break; case "8": print_size = "A5"; break; - } + } + + Printer.Printing = true; + TaskDispatcher.ExecuteCommand("./printer.sh", $"{file_format} {print_mode} {print_size} {file}", out string result); + Printer.Printing = false; - TaskDispatcher.ExecuteCommand("./printer.sh", $"{file_format} {print_mode} {print_size} {file}", out string result); - - Console.WriteLine(result); + Program.DebugWriteLine(result); if (file == "") file = "(stdin)"; @@ -431,7 +425,7 @@ namespace PrinterClient { if (lprEntries.Count > 0) break; - Thread.Sleep(10000); + Thread.Sleep(500); lprEntries = QueryEntries(); } @@ -442,7 +436,7 @@ namespace PrinterClient { job = enteries.Job; - Console.WriteLine($"Rank = {enteries.Rank}, Job = {enteries.Job}, File = {enteries.File}, TotalSize = {enteries.TotalSize}"); + Program.DebugWriteLine($"Rank = {enteries.Rank}, Job = {enteries.Job}, File = {enteries.File}, TotalSize = {enteries.TotalSize}"); return true; } diff --git a/PrinterClient/PrinterClient/Utils/LogUtils.cs b/PrinterClient/PrinterClient/Utils/LogUtils.cs index b3c6a4e..bc87dbc 100644 --- a/PrinterClient/PrinterClient/Utils/LogUtils.cs +++ b/PrinterClient/PrinterClient/Utils/LogUtils.cs @@ -10,7 +10,7 @@ public class LogUtils public static void AppendLog(string message) { Console.WriteLine(message); - FileUtils.Append(Path.Combine(filepath, DateTime.Now.ToString("yyyyMMdd"), "Log.log"), $"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} {message}"); + FileUtils.Append(Path.Combine(filepath, DateTime.Now.ToString("yyyyMMdd"), "log.log"), $"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} {message}"); } public static void AppendLog(string filename, string message) @@ -25,7 +25,7 @@ public class LogUtils Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.White; - FileUtils.Append(Path.Combine(filepath, DateTime.Now.ToString("yyyyMMdd"), "Error.log"), $"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} {message}"); + FileUtils.Append(Path.Combine(filepath, DateTime.Now.ToString("yyyyMMdd"), "error.log"), $"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} {message}"); } public static void AppendError(string filename, string message) diff --git a/ReadMe.md b/ReadMe.md index 42efe7e..4111c85 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,5 +1,10 @@ # PrinterClient 版本历史介绍 +## 1.1.1 Alpha Bulid 20231019 +* 修复: 无法检测到"打印中"状态的BUG +* 修复: 下载延时大的BUG +* 修复: 某些特殊情况下, 脚本无法打印的BUG + ## 1.1.0 Alpha Bulid 20231018 * 删除: 检测打印机更换功能 * 删除: 打印机驱动加载功能 diff --git a/printer.sh b/printer.sh index cf55afe..8077e2a 100644 --- a/printer.sh +++ b/printer.sh @@ -8,8 +8,8 @@ fi #删除所有的打印任务 lprm -#删除默认打印机 -lpadmin -x DS-RX1HS +# #删除默认打印机 +# lpadmin -x DS-RX1HS #查找打印机 result=`lpinfo -v | grep direct`