From aa46f4c66fc349f388ae0b4d722837b4a0d2f549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4=E4=BA=BA?= <3076767823@qq.com> Date: Wed, 15 Jan 2025 17:35:27 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=89=93=E5=8D=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AutoReplyPrintController.java | 19 +++++----- .../service/AutoReplyPrintService.java | 12 ++++++- .../impl/AutoReplyPrintServiceImpl.java | 35 ++++++++++++++++--- 3 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/controller/AutoReplyPrintController.java b/src/main/java/com/dpkj/modules/autoReplyPrint/controller/AutoReplyPrintController.java index b3a072d..5e95db8 100644 --- a/src/main/java/com/dpkj/modules/autoReplyPrint/controller/AutoReplyPrintController.java +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/controller/AutoReplyPrintController.java @@ -21,17 +21,18 @@ public class AutoReplyPrintController { /** * 获取打印机固件版本 - * @return */ @GetMapping("CPPrinterGetPrinterFirmwareVersion") - public Result CPPrinterGetPrinterFirmwareVersion() { - try { - return autoReplyPrintService.CPPrinterGetPrinterFirmwareVersion(); - } catch (Exception e) { - e.printStackTrace(); - log.info("获取打印机固件版本失败 {}", e.getMessage()); - return Result.error("获取打印机固件版本失败"); - } + public Result CPPrinterGetPrinterFirmwareVersion(@RequestParam(defaultValue = "VID:0x0FE6,PID:0x811E") String USBName) { + return autoReplyPrintService.CPPrinterGetPrinterFirmwareVersion(USBName); + } + + /** + * 测试打印 + */ + @GetMapping("/testWrite") + private Result testWrite(@RequestParam(defaultValue = "VID:0x0FE6,PID:0x811E") String USBName){ + return this.autoReplyPrintService.testWrite(USBName); } } diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/service/AutoReplyPrintService.java b/src/main/java/com/dpkj/modules/autoReplyPrint/service/AutoReplyPrintService.java index f1b75fc..da8e87d 100644 --- a/src/main/java/com/dpkj/modules/autoReplyPrint/service/AutoReplyPrintService.java +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/service/AutoReplyPrintService.java @@ -5,5 +5,15 @@ import com.dpkj.common.vo.Result; public interface AutoReplyPrintService { - Result CPPrinterGetPrinterFirmwareVersion(); + /** + * 测试打印 + * @param USBName USB名称 + */ + Result CPPrinterGetPrinterFirmwareVersion(String USBName); + + /** + * 测试打印 + * @param USBName USB名称 + */ + Result testWrite(String USBName); } diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/AutoReplyPrintServiceImpl.java b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/AutoReplyPrintServiceImpl.java index ac45afc..eb98c12 100644 --- a/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/AutoReplyPrintServiceImpl.java +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/AutoReplyPrintServiceImpl.java @@ -1,12 +1,17 @@ package com.dpkj.modules.autoReplyPrint.service.impl; +import com.dpkj.common.exception.RRException; import com.dpkj.common.vo.Result; import com.dpkj.modules.autoReplyPrint.service.AutoReplyPrintService; import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint; +import com.dpkj.modules.autoReplyPrint.utils.TestFunction; import com.sun.jna.Pointer; +import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.lang.reflect.Method; + @Slf4j @Service @@ -15,11 +20,33 @@ public class AutoReplyPrintServiceImpl implements AutoReplyPrintService { @Override - public Result CPPrinterGetPrinterFirmwareVersion() { - Pointer pointer = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb("VID:0x0FE6,PID:0x811E", 1); + public Result CPPrinterGetPrinterFirmwareVersion(String USBName) { + Result ok = Result.ok(); + try { + Pointer handle = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb(USBName, 1); + if ( handle == null ) throw new NullPointerException(); + ok.setResult(AutoReplyPrint.CP_Printer_GetPrinterFirmwareVersion_Helper.GetPrinterFirmwareVersion(handle)); + } catch (Exception e) { + log.info("获取打印机固件版本失败: {}", e.getMessage(), e); + throw new NullPointerException("获取打印机固件版本失败"); + } + return ok; + } + + @Override + public Result testWrite(String USBName) { + Pointer handle = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb(USBName, 1); + AutoReplyPrint.CP_Printer_GetPrinterFirmwareVersion_Helper.GetPrinterFirmwareVersion(handle); + + try { + TestFunction fun = new TestFunction(); + Method m = TestFunction.class.getDeclaredMethod("Test_Port_Write", Pointer.class); + m.invoke(fun, handle); + }catch (Exception e){ + e.printStackTrace(); + throw new RRException("反射调用TestFunction错误"); + } - //String s = autoReplyPrint2Sdk.CPPrinterGetPrinterFirmwareVersion(); -// log.info("壁挂机打印机版本信息{}", s); return Result.ok(""); } }