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(""); } }