目标:把JAVA源码改用delphi实现。
我有一台医疗设备,是双通道的,每个通道有两个硬件按钮(select 和 start),共工作流程共七步:
1、设备通电,设备LCD显示:“主机未连线激活”。
2、电脑连接USB数据线至设备,启动自带的JAVA软件,开始初始化,当主机LCD显示:“主机成功连线”时,初始化完成。
3、设备开始用内置的传感器自检当时的环境温度,直到设备自动加温到为37度止。
4、设备加温完毕,按设备上“select”硬件按钮选择测试项目。此部分功能由设备内置的ARM单片机完成LCD显示。
5、项目选择完毕后,按设备上的"start"硬件按钮开始检测,
6、开始监测后,JAVA软件就会不断地向电脑的JAVA软件发送数据。数据包括:设备序列号、检测类型、通道号、每个通道检测的坐标数据等等。
7、JAVA软件会接收并解析这些数据。
=====
我的终极目标是用delphi编程得到这些解析后的数据,用JSON文件格式导出。
我使用delphi ver12.3 编程,软件已经安装了一个最新版本的HID控件,
控件来自:https://github.com/project-jedi/jvcl。
控件版本: HidControllerClassVersion = '1.0.35';
已知信息:
1、JAVA软件与设备通过USB HID方式通讯
2、VENDOR_ID = $FFFF; PRODUCT_ID = $0001;
3、设备完好;JAVA软件能良好运行,正常与设备通讯;数据线连接没有任何问题。
4、报告长度:Report Size=33,肯定也有 Report ID
5、设备初始化是有一个序列动作的,好像还有一个类似心跳的东东来维持连线状态。
6、调用HID控件,需要引用的单元是:JvHidControllerClass
======
我有全部的JAVA源码,使用 DIR/S 命令列出JAVA源码文件目录结构如下:
驱动器 D 中的卷是 2T_Disk1
卷的序列号是 BC7A-D97F
D:\main 的目录
2025/09/13 21:03 <DIR> .
2025/09/13 21:03 <DIR> ..
2025/09/13 21:02 <DIR> java
2025/09/13 21:03 0 mainFiles.txt
1 个文件 0 字节
D:\main\java 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> com
2025/09/13 21:02 <DIR> META-INF
2025/09/13 21:02 <DIR> my
0 个文件 0 字节
D:\main\java\com 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> sienco
2025/09/13 21:02 <DIR> smallplanet
2025/09/13 21:02 <DIR> viscell
0 个文件 0 字节
D:\main\java\com\sienco 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> sonoclot
0 个文件 0 字节
D:\main\java\com\sienco\sonoclot 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> instrument
2025/09/13 21:02 <DIR> signature
2025/09/13 21:02 <DIR> sigwindow
2025/09/13 21:02 <DIR> wrapper
0 个文件 0 字节
D:\main\java\com\sienco\sonoclot\instrument 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/14 16:15 40,247 SonoclotInstrument.java
1 个文件 40,247 字节
D:\main\java\com\sienco\sonoclot\signature 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/14 16:19 13,667 SimpleSignature.java
1 个文件 13,667 字节
D:\main\java\com\sienco\sonoclot\sigwindow 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/14 16:15 12,730 SignatureDisplay.java
2021/09/14 15:33 34,216 SigWindowSignaturePanel.java
2 个文件 46,946 字节
D:\main\java\com\sienco\sonoclot\wrapper 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/14 16:17 25,032 WrapperManager.java
1 个文件 25,032 字节
D:\main\java\com\smallplanet 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> util
0 个文件 0 字节
D:\main\java\com\smallplanet\util 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/14 16:14 3,390 SPSXYPoint.java
1 个文件 3,390 字节
D:\main\java\com\viscell 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> busyFlag
2025/09/13 21:02 <DIR> usb
0 个文件 0 字节
D:\main\java\com\viscell\busyFlag 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/10/12 11:04 6,539 BusyFlag.java
2021/10/12 11:04 17,028 BusyFlagThread.java
2021/10/12 11:04 8,147 CallMethodLaterManager.java
2021/10/12 11:04 1,117 SyncObject.java
4 个文件 32,831 字节
D:\main\java\com\viscell\usb 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/10/12 18:10 2,291 HidCommand.java
2021/10/12 11:04 1,442 HidConnection.java
2021/10/12 11:04 1,974 HidController.java
2021/10/12 11:04 296 HidControllerCreator.java
2021/10/12 12:21 6,874 HidManager.java
2021/10/12 11:04 630 HidReference.java
2021/10/12 18:10 2,292 HidReport.java
2021/10/12 15:28 12,135 SigViewerHidCommandManager.java
2021/10/12 18:09 1,896 SigViewerHidUtilities.java
2025/09/09 18:51 258 usb.txt
2021/10/12 11:04 743 USBException.java
2021/10/21 17:13 9,421 USBManager.java
2021/10/12 11:04 469 USBReport.java
13 个文件 40,721 字节
D:\main\java\META-INF 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/09/14 18:04 108 MANIFEST.MF
1 个文件 108 字节
D:\main\java\my 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2025/09/13 21:02 <DIR> bean
2025/09/13 21:02 <DIR> ui
2025/09/13 21:02 <DIR> utils
0 个文件 0 字节
D:\main\java\my\bean 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/09 23:49 3,639 ConfigInfo.java
2021/12/09 23:15 231 IPropInfo.java
2021/12/09 23:15 41,341 JProperties.java
2021/12/14 16:14 274 TLVType.java
4 个文件 45,485 字节
D:\main\java\my\ui 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/09 22:48 1,925 BaseFrame.java
2021/12/09 23:23 2,317 ComponentsFrame.java
2021/12/09 22:48 210 IFrame.java
2021/12/09 23:02 2,020 RootFrame.java
2021/12/09 23:39 3,138 SysPropFrame.java
5 个文件 9,610 字节
D:\main\java\my\utils 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/01 23:27 1,912 ByteUtil.java
2021/10/12 11:46 1,230 DataLog.java
2025/09/13 21:02 <DIR> fifo
2025/09/13 21:02 <DIR> file
2021/10/12 11:23 947 FixedExecutorService.java
2021/12/09 22:48 2,105 HostUtils.java
2021/12/01 12:02 98 ISocketRecDataProcess.java
2025/09/13 21:02 <DIR> log
2021/12/09 23:23 1,868 PropUtils.java
2021/10/12 11:26 984 QueueExecutorService.java
2021/12/10 16:02 14,646 SocketClient.java
2021/12/10 16:05 1,194 SocketClientLog.java
2025/09/13 21:02 <DIR> threadpool
2025/09/13 21:02 <DIR> tlv
2021/10/21 15:45 1,278 UsbManagerLog.java
10 个文件 26,262 字节
D:\main\java\my\utils\fifo 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/11/30 23:42 722 FIFO.java
2021/11/30 23:43 1,472 FIFOImpl.java
2 个文件 2,194 字节
D:\main\java\my\utils\file 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/10 15:47 16,938 FileUtils.java
1 个文件 16,938 字节
D:\main\java\my\utils\log 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/10/12 11:23 2,459 FileThreadLogger.java
2021/10/12 11:23 205 ThreadLogger.java
2 个文件 2,664 字节
D:\main\java\my\utils\threadpool 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/11/30 23:11 110 PoolTask.java
2021/11/30 23:11 1,201 PoolUtils.java
2 个文件 1,311 字节
D:\main\java\my\utils\tlv 的目录
2025/09/13 21:02 <DIR> .
2025/09/13 21:02 <DIR> ..
2021/12/01 22:47 114 ITLVSocketRecDataProcess.java
2021/11/30 16:01 3,315 TLVByteBuffer.java
2021/12/01 23:32 9,827 TLVDecoder.java
2021/12/01 23:47 4,586 TLVDecodeResult.java
2021/11/30 16:59 7,959 TLVEncoder.java
2021/12/01 17:07 2,227 TLVEncodeResult.java
2021/11/30 18:02 2,724 TLVObject.java
2021/12/14 12:13 4,587 TLVSocketClient.java
2021/11/30 18:03 4,116 TLVUtils.java
9 个文件 39,455 字节
所列文件总数:
60 个文件 346,861 字节
71 个目录 246,202,134,528 可用字节
------
因本人不懂JAVA,不会分析,请你帮忙先分析一下JAVA软件是如何初始化的设备的,其步骤流程是什么?是怎样通过USB HID与设备通讯收发数据的,如何保持初始化状态的,如何通知设备已经做好收发数据准备,如何通知设备可以启用select和start按钮的。
总之,就是JAVA软件的工作流程。这了完成这些分析,你需要我上传那些JAVA源码文件,请告诉我你要的文件名。
另外:delphi的功能要求:有个初始化按钮和memo显示获得的数据,为了调试方便请增加大量的调试信息,可用OutputDebugString输出,方便使用DebugView.exe观察到并能把观察结果反馈给你。把所有与设备通讯的代码写入一个独立的单元中。