张世豪
2025-11-26 2b756769ea4adad21332d8a294871712cd42cc3f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Êþº¾4bpublicway/SerialProtocolParserjava/lang/Object START_MARKER[BMIN_PACKET_LENGTHI ConstantValue     FUNCTION_01B FUNCTION_51Q FUNCTION_52R FUNCTION_80ÿÿÿ€ FUNCTION_81ÿÿÿ FUNCTION_82ÿÿÿ‚ FUNCTION_83ÿÿÿƒ
dataBufferbufferPosition   dataQueue$Ljava/util/concurrent/BlockingQueue;  Signature(Ljava/util/concurrent/BlockingQueue<[B>;
batchQueue batchExecutor/Ljava/util/concurrent/ScheduledExecutorService;  isRunningZprocessorThreadLjava/lang/Thread;
hexBuilderLjava/lang/StringBuilder;lastMemoryCheckTimeJMEMORY_CHECK_INTERVALu0packetPoolLockLjava/lang/Object;processedPacketCacheLjava/util/Set;#Ljava/util/Set<Ljava/lang/String;>;MAX_CACHE_SIZEèCACHE_CLEANUP_INTERVALê`lastCacheCleanupTime<clinit>()VCode   = LineNumberTableLocalVariableTable<init>
B @:   D    F H'java/util/concurrent/ArrayBlockingQueue
GJ @K(I)V    M    O  
QSRjava/util/concurrent/Executors TU newSingleThreadScheduledExecutor1()Ljava/util/concurrent/ScheduledExecutorService;    W !"   Y #$[java/lang/StringBuilder
ZJ    ^ '(   ` )*   b ./d&java/util/concurrent/ConcurrentHashMap
cB
gihjava/util/Collections jk newSetFromMap (Ljava/util/Map;)Ljava/util/Set; m 01   o 8*this Lpublicway/SerialProtocolParser;startt uvrun6(Lpublicway/SerialProtocolParser;)Ljava/lang/Runnable;
    z|{java/util/concurrent/TimeUnit }~ MILLISECONDSLjava/util/concurrent/TimeUnit; €‚-java/util/concurrent/ScheduledExecutorService ƒ„scheduleAtFixedRate](Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;†java/lang/Threadt‰Serial-Protocol-Parser
…‹ @Œ)(Ljava/lang/Runnable;Ljava/lang/String;)V   Ž %&
… ‘’ setDaemon(Z)V
…” r: StackMapTablestop €˜ ™:shutdown   z› œ~SECONDS €ž Ÿ awaitTermination#(JLjava/util/concurrent/TimeUnit;)Z €¢ £¤ shutdownNow()Ljava/util/List;
…¦ §¨ currentThread()Ljava/lang/Thread;
…ª «: interruptè
…¯ °±join(J)V
³ ´: clearQueues ¶¸· java/util/Set ¹:clear»java/lang/InterruptedExceptione Ljava/lang/InterruptedException; ¿¸À"java/util/concurrent/BlockingQueue()Z receiveData([B)V
” ¿Æ ÇÈsize()I ¿Ê ËÈremainingCapacity?陙™™™š ¿Ï ÐÁisEmpty ¿Ò ÓÔpoll()Ljava/lang/Object; ¿Ö רoffer(Ljava/lang/Object;)Z
Ú Û:handleQueueFullrawData   Þàßchushihua/lunxun á$ DEBUG_ENABLEDã?警告:数据处理队列已满,已清空队列重新开始
åçæxitongshezhi/SystemDebugDialog èéappendAsciiData(Ljava/lang/String;)V batchProcessìjava/util/ArrayList
ëJ ¿ï ðñdrainTo(Ljava/util/Collection;I)I óõôjava/util/List ö÷iterator()Ljava/util/Iterator; ùûújava/util/Iterator üÔnext
ÿ ÃhandleOversizedPacket
 K compactBuffer
java/lang/System     arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)V
  : processBuffer ù ÁhasNext
 : checkMemory
 :cleanupPacketCache   errLjava/io/PrintStream;#批量处理数据时发生异常: 
Z @é
! java/lang/Exception "#
getMessage()Ljava/lang/String;
Z% &'append-(Ljava/lang/String;)Ljava/lang/StringBuilder;
Z) *#toString
,.-java/io/PrintStream /éprintln
1 2:resetParserState maxBatchSizebatchLjava/util/List;Ljava/lang/Exception;LocalVariableTypeTableLjava/util/List<[B>;
: ;<findStartMarkerInArray([BI)I oversizedData
startIndexremainingLengthdatastartPosi
D EFcurrentTimeMillis()J
HJIjava/lang/Runtime KL
getRuntime()Ljava/lang/Runtime;
HN OF totalMemory
HQ RF
freeMemory
HT UF maxMemory?è
Y Z:gc\A内存使用率超过75%,已触发垃圾回收。使用内存: 
Z` &a(J)Ljava/lang/StringBuilder;cMB currentTimeruntimeLjava/lang/Runtime;usedMemmaxMem ¶Æk/数据包去重缓存已清空,当前大小: 
Zm &n(I)Ljava/lang/StringBuilder;
p qÈfindStartMarker
s tu extractPacket(II)[B
w xygeneratePacketHash([B)Ljava/lang/String; ¶{ |Øcontains~跳过重复数据包: 
€ y
bytesToHex ¶ƒ „Øadd
† ‡:handleDataQueueFullprocessedCountMAX_PACKETS_PER_BATCH
dataLengthtotalPacketLengthpacket
packetHashLjava/lang/String;   remaining‘java/lang/String“•:
—™˜java/lang/Math š›min(II)I%02X
Ÿ¡ java/lang/Byte ¢£valueOf(B)Ljava/lang/Byte;
¥ ¦§format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;key  dataStartdataEnd
hashLength­0数据解析队列已满,丢弃最老数据包processPackets   ° ±out³'串口数据包处理线程开始运行 ¿µ ¶Ôtake
¸ ¹Ã parsePacket»$串口数据包处理线程被中断½ å¤„理数据包时发生异常: 
…¿ ÀÁ isInterruptedÂ'串口数据包处理线程结束运行Ä开始解析收到的数据Æ时间
ÈÊÉpublicway/TimestampUtil Ë# getTimestamp
ÍÏÎchuankou/SerialPortService Ð#getReceivedDataCount
ÒÔÓpublicway/ProtocolParser01 ÕÖparseDDCC01Data,([B)Lpublicway/ProtocolParser01$ParseResult;
ØÚÙ&publicway/ProtocolParser01$ParseResult Û:fuzhi
Ø)
Þàßpublicway/ProtocolParser51 áâparse(Ljava/lang/String;)I
äæåchushihua/SlotManager çè changgehaska(II)Z
ê ¢ë(I)Ljava/lang/String;í号卡槽取卡失败
ïñðdialog/Charulog òé logOperationô未知功能码: 0x
öø÷java/lang/Integer ùë toHexStringû è§£æžæ•°æ®åŒ…时发生错误:  hostAddress slotAddress functionCodereturnValueLength returnValuerst(Lpublicway/ProtocolParser01$ParseResult;    hexPacketresultslotmessage
Z   K    setLengthbytesbhexStringToBytes(Ljava/lang/String;)[B
 #trim
Ï\s
 
replaceAll8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Èlength"java/lang/IllegalArgumentException#HEX字符串长度必须为偶数: 
 
! "# substring(II)Ljava/lang/String;
ö% &'parseInt(Ljava/lang/String;I)I)无效的HEX字符: 
+ @,*(Ljava/lang/String;Ljava/lang/Throwable;)V.java/lang/NumberFormatException   hexString
cleanedHexbyteStr!Ljava/lang/NumberFormatException; getStatusInfo5j串口解析器状态: %s, é˜Ÿåˆ—大小: %d/%d, æ‰¹é‡é˜Ÿåˆ—: %d/%d, ç¼“冲区: %d/%d, åŽ»é‡ç¼“å­˜: %d/%d7   è¿è¡Œä¸­9  å·²åœæ­¢
ö; ¢<(I)Ljava/lang/Integer;>[Ljava/lang/Object;setMaxRawDataPrintLengthcleanup
B –:clearPacketCacheE$数据包去重缓存已手动清空getPacketCacheSize
SourceFileSerialProtocolParser.javaBootstrapMethods
KML"java/lang/invoke/LambdaMetafactory NO metafactoryÌ(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;J:
S ê:R::
X ®:W: InnerClasses]%java/lang/invoke/MethodHandles$Lookup_java/lang/invoke/MethodHandlesLookup ParseResult!    
                  !"B#$%&'()*+* ,./0123 45* 68*9:;5¼YÝTYÌT³<±>
@?@:;Ñk*·A*¼µC*µE*»GY2·IµL*»GYÈ·IµN*¸PµV*µX*»ZY·\µ]*    µ_*»Y·Aµa*»cY·e¸fµl*   µn±>B# $'*-+.,4/93G6L:W=X>_=eAj? kpqr:;˜I*´X™±*µX*´V*ºsww²y¹W*»…Y*º‡ˆ·Šµ*´¶*´¶“±>"GHK N&O9PAQHR? Ipq•–:;(~*´Xš±*µX*´V¹—*´V
²š¹š!*´V¹¡W§L*´V¹¡W¸¥¶©*´Æ#*´¶©*´¬¶®§
L¸¥¶©*µ*·²*µE*´l¹µ±03ºR\_º>NXY\ _a&b0d4e>fDiKjRl\m`nfpktoutx}y? ~pq4¼½`¼½•jºZº´:;E*´L¹¾*´N¹¾±> €? pq#Á;/*´X¬>‡? pqÂÃ;¾Y*´Xš*¶Ä+Æ+¾š±*´N¹Å‡*´N¹É‡Ìk—ž*´N¹Îš *´N¹ÑW*´N+¹Õš*·Ù±>*
ސ “”˜1š=›G T¢X¤?YpqYÜ• 1Û:;X*·²*µE²Ý™â¸ä±>«¬   ®¯±? pq•ê:;À´*´N¹Î™±2<»ëY·íM*´N,¹îW,¹ò:§R¹øÀýN*´E-¾`*´C¾¤-¾*´C¾¤ *-·þ§&*·-*´C*´E-¾¸*Y´E-¾`µE*·
¹ šÿª*·*·§"L²»ZY·+¶¶$¶(¶+*·0± ‘”>V· ¸ ½¾¿%Á;ÃJÅTÇYÈ\ËaÐpÑ{ÔÁ‰ØÛ‘ݕޯà³â?4´pq3x45;DÜ•¼67 x48•J ÿ"óùÿ+óýùÿóùÿÃ;Ÿ/*+·9=Ÿ%+¾d>*´C¾£+*´C¸*µE*·
±>"éê ìíî%ï*ð.ô?*/pq/=(>?•ü.;<;•/>§ +3²<3 +`3²<3 ¬„+¾²<¾d¤ÿÛ¬>úûüú-ÿ?*/pq/@/A+B•ü2:;<
*µE*·²±> ? 
pq:;g¸C@*´_e,”œ±*µ_¸GN-¶M-¶Pe7-¶S7ŠŠVk—ž/¸X²Ý™&»ZY[·]m]m¶_b¶$¶(¸ä±>:&,:=CM`f"?4gpqcd*Lef&Ag*,;h*•üþSH:;³R¸C@*´ne6”œ±*µn*´l¹iè¡.*´l¹µ²Ý™»ZYj·*´l¹i¶l¶(¸ä±>&    ()*-0&1/253Q6?RpqNd*•ü> :;«  F<=§1*·o>    *µE±`*´E¤ *·±*´C`3ÿ~x*´C`3ÿ~€6``6› *´C¾¤ *`·§Ò`*´E¤ *·±*·r:ƈ*·v:*´l¹z™P²Ý™»ZY}·*·¶$¶(¸ä*´E`d6ž*´C`*´C¸*µE„§P*´l¹‚W*´L¹Õš :*·…±*´E`d6ž*´C`*´C¸*µE„*´E   ¡  ¡þƱ>ª*<=?A BDEI"K'L(PFQNT]VdWg[r]w^xbc†eŽfœh¢i»mÆnËoÝqãræséwõz|}
~ ƒ„…-‡3‰6?E‹?f
FpqDˆA‰ )>FðŠN苁µŒŽ}ŽÆ# •7 ýüý4 ýBýü!ú ú!ü!ÿxy;S›+Æ
+¾¢’°»ZY@·\M,+3ÿ~¶l”¶$W,+3ÿ~¶l”¶$W,+3ÿ~¶l”¶$W>+¾d6d¸–66§,œ½Y+3¸žS¸¤¶$W„`¢
¡ÿ×,¶(°>6 ’ “–™+š=›PžSŸY¢d£j¤ƒ£–§?H›pq›Œ‚¨(SH©YBªd7«g/B• ÿZýZútu;a¼N*´C-¸-°>®¯°?*pq>‹ Œ‡:;V*´L¹ÑW²Ý™    ¬¸ä±>¸
º»½? pq•qÈ;‰7<§&*´C3²<3 *´C`3²<3 ¬„*´E²<¾d¤ÿÓ¬>ÃÄ#Å%Ã5È?7pq3B•üK;s*ž(*´E¤ *´C*´C*´Ed¸*Y´EdµE±>Ï ÐÑ)Ó?*pq*>•)®:;i²¯²¶+§F*´L¹´ÀýL*+··§1L²¯º¶+¸¥¶©§.L²»ZY¼·+¶¶$¶(¶+*´X™ ¸¥¶¾™ÿ°²¯Á¶+± !º 4>6 Ù   Û ÝÞß"à+á1â4ã5äOÛ_éhê?*ipqŒ"¼½5¼6•  TºR¹Ã; ‚²¯»ZY÷*+·¶$Ŷ$¸Ƕ$¶(¶++Æ
+¾ ¢±¸ÌW+3=+3>+36+3ÿ~x+3ÿ~€6d6:ž+¾d£¼:+¸«ºÿÿÿ€®ÿÿÿ±ÿÿÿ‚´ÿÿÿƒ·DQjR«Æ·+¸Ñ:Ƭ¶ײݙ¡¶ܸ䧖*+·:¸Ý6    6
    
   ¸ãW§t»ZY
¸é·ì¶$¶(:  ¸î§U§R§O§L§I§F²Ý™@²»ZYó·ÿ~¸õ¶$¶(¶+§M²»ZYú·,¶¶$¶(¶+±3cf>¢(ð'ñ2ò3ö7ø;ù?úEýY_bqw‚È
Í Ó ØÝãëîõüÿ ', /#2&5)8,;/>1D2c7g8;?Ž‚pq‚Œ;(ü ?$ý Eþ Y
Š_ÿbÓõ:Žü3 ÿ0
'Ž g¼6•>2ÿNýýûE%þ!øÿ'ýy;ÄP+Æ+¾š’°*´]¶+Y:¾6>§$3=*´]œ½Y¸žS¸¤¶$W„¡ÿÜ*´]¶(°>A B EF&G?FHI? PpqP
& •  ÿýý     ;X’*Æ *¶¶™¼°*’¶L+¶p™»Y»ZY·+¶$¶(·¿+¶l¼M>§>+`¶ :,l¸$‘T§!:»Y»ZY(·¶$¶(·*¿„+¶¡ÿÀ,°Wdg->6 MNRU&V?YH[M\W^d_i`…[d?>’/Žu0ŽHJJFBW.1Ži¼2•,ü,ý ýÿý-ú3#;$Ÿ4  ½Y*´X™ 6§8SY*´L¹Å¸:SY*´L¹É*´L¹Å`¸:SY*´N¹Å¸:SY*´N¹É*´N¹Å`¸:SY*´E¸:SY*´C¾¸:SY*´l¹i¸:SYè¸:S¸¤°>. k
lm,nEoTpmqxr„s”t›k? Ÿpq•-ÿ==ÿ==?K;5±>|?pq@:;]*¶A*·²*µE*´]¶*´l¹µ±>‚ƒ„ …†‡? pqC:;U*´l¹µ²Ý™   D¸ä±>    Ž‘? pq•FÈ;4
*´l¹i¬>—? 
pqGHIPQTUPVYZ[\^`ØÒa