826220679@qq.com
2025-10-31 9aca70f16836952e2e3462ecc69dabe679811eb7
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
package home;
 
import PublicPannel.BaseParameterPanel;
import PublicPannel.BaseStationPanel;
import PublicPannel.TagPanel;
import PublicPannel.AntiCollisionPanel;
import PublicPannel.UpgradePanel;
import jiexi.DellTag55AA03;
 
/**
 * Ãæ°å×ֶθüй¤¾ßÀà - Í³Ò»¹ÜÀí¸÷¸öÃæ°åµÄ×ֶθüÐÂÂß¼­
 */
public class PanelFieldUpdater {
 
    /**
     * ¸üÐÂËùÓÐÃæ°åµÄ×Ö¶Î
     */
    public static void updateAllPanels(DellTag55AA03.ParseResult result, 
            BaseParameterPanel baseParamPanel,
            BaseStationPanel baseStationPanel,
            TagPanel tagPanel,
            AntiCollisionPanel antiCollisionPanel,
            UpgradePanel upgradePanel) {
        if (result == null) {
            return;
        }
 
        
 
        // ¸üлù´¡²ÎÊýÃæ°å
        updateBaseParameterPanel(result, baseParamPanel);
 
        // ¸üлùÕ¾Ãæ°å
        updateBaseStationPanel(result, baseStationPanel);
 
        // ¸üбêÇ©Ãæ°å
        updateTagPanel(result, tagPanel);
 
        // ¸üзÀÅö×²Ãæ°å
        updateAntiCollisionPanel(result, antiCollisionPanel);
 
        // ¸üÐÂÉý¼¶Ãæ°å
        updateUpgradePanel(result, upgradePanel);
    }
 
    /**
     * ¸üлù´¡²ÎÊýÃæ°å×Ö¶Î
     */
    private static void updateBaseParameterPanel(DellTag55AA03.ParseResult result, BaseParameterPanel panel) {
        if (panel == null) {
            
            return;
        }
 
        try {
            
            panel.updateFields(result);
        } catch (Exception e) {
            System.err.println("PanelFieldUpdater: ¸üлù´¡²ÎÊýÃæ°åʧ°Ü: " + e.getMessage());
            e.printStackTrace();
        }
    }
    /**
     * ¸üлùÕ¾Ãæ°å×Ö¶Î
     */
    private static void updateBaseStationPanel(DellTag55AA03.ParseResult result, BaseStationPanel panel) {
        if (panel == null) {            
            return;
        }
 
        try {
            
            panel.updateFields(result);
        } catch (Exception e) {
            System.err.println("PanelFieldUpdater: ¸üлùÕ¾Ãæ°åʧ°Ü: " + e.getMessage());
            e.printStackTrace();
        }
    }
 
    /**
     * ¸üбêÇ©Ãæ°å×Ö¶Î
     */
    private static void updateTagPanel(DellTag55AA03.ParseResult result, TagPanel panel) {
        if (panel == null) {
            System.out.println("PanelFieldUpdater: TagPanel is null");
            return;
        }
 
        try {
            System.out.println("PanelFieldUpdater: Calling updateFields on TagPanel");
            panel.updateFields(result);
        } catch (Exception e) {
            System.err.println("PanelFieldUpdater: ¸üбêÇ©Ãæ°åʧ°Ü: " + e.getMessage());
            e.printStackTrace();
        }
    }
 
    /**
     * ¸üзÀÅö×²Ãæ°å×Ö¶Î
     */
    private static void updateAntiCollisionPanel(DellTag55AA03.ParseResult result, AntiCollisionPanel panel) {
        if (panel == null) {
            
            return;
        }
 
        try {
            
            panel.updateFields(result);
        } catch (Exception e) {
            System.err.println("PanelFieldUpdater: ¸üзÀÅö×²Ãæ°åʧ°Ü: " + e.getMessage());
            e.printStackTrace();
        }
    }
    /**
     * ¸üÐÂÉý¼¶Ãæ°å×Ö¶Î
     */
    private static void updateUpgradePanel(DellTag55AA03.ParseResult result, UpgradePanel panel) {
        if (panel == null) {            
            return;
        }
 
        try {
            // ¸üÐÂÉý¼¶Ïà¹Ø²ÎÊý
            if (result.dizhi0x2 != null) {
                // panel.setFirmwareVersion(result.dizhi0x2);
            }
            
        } catch (Exception e) {
            System.err.println("PanelFieldUpdater: ¸üÐÂÉý¼¶Ãæ°åʧ°Ü: " + e.getMessage());
        }
    }
 
    /**
     * ´ÓËùÓÐÃæ°åÊÕ¼¯²ÎÊý²¢¹¹½¨ÅäÖÃÊý¾Ý
     */
    public static byte[] collectParametersToConfig(BaseParameterPanel baseParamPanel,
            BaseStationPanel baseStationPanel,
            TagPanel tagPanel,
            AntiCollisionPanel antiCollisionPanel,
            UpgradePanel upgradePanel) {
        
        try {
            // ¼ì²éÃæ°åÊÇ·ñ³õʼ»¯
            if (baseParamPanel == null || baseStationPanel == null || 
                tagPanel == null || antiCollisionPanel == null) {
                showErrorDialog("Ãæ°åδÕýÈ·³õʼ»¯");
                return null;
            }
 
            // BaseParameterPanel ²ÎÊý
            String dizhi0x4 = safeCheckAndTrim(baseParamPanel.getdizhi0x4(), "Ä£¿é±àºÅ", "0000");
            String dizhi0x6 = safeCheckAndTrim(baseParamPanel.getdizhi0x6(), "ͨÐÅÆµÂÊ", "0000");
            String dizhi0x8 = safeCheckAndTrim(baseParamPanel.getdizhi0x8(), "×î¶àͨÐÅ»ùÕ¾", "0000");
            String dizhi0xA = safeCheckAndTrim(baseParamPanel.getdizhi0xA(), "×îÉÙͨÐÅ»ùÕ¾¡¢Ð¡×é±àºÅ", "0000");
            String dizhi0xC = safeCheckAndTrim(baseParamPanel.getdizhi0xC(), "У׼¾àÀë", "0000");
            String dizhi0xE = safeCheckAndTrim(baseParamPanel.getdizhi0xE(), "Ä£¿éÀàÐÍ", "0000");
            String dizhi0x10 = safeCheckAndTrim(baseParamPanel.getdizhi0x10(), "»ùÕ¾Ö÷¶¯²â¾à", "0000");
            String dizhi0x12 = safeCheckAndTrim(baseParamPanel.getdizhi0x12(), "±¨¾¯É豸", "0000");
            String dizhi0x1A = safeCheckAndTrim(baseParamPanel.getdizhi0x1A(), "Åä¶ÔID", "0000");
            String dizhi0x1C = safeCheckAndTrim(baseParamPanel.getdizhi0x1C(), "ÐÄÌø°ü¡¢UWB¿ª¹Ø×´Ì¬", "0000");
            String dizhi0x1E = safeCheckAndTrim(baseParamPanel.getdizhi0x1E(), "MODBUSģʽ", "0000");
            String dizhi0x36 = safeCheckAndTrim(baseParamPanel.getdizhi0x36(), "¹¦ÂÊ", "0000");
 
            // BaseStationPanel ²ÎÊý - ÐÂÔö²¿·Ö
            String dizhi0x18 = safeCheckAndTrim(baseStationPanel.getdizhi0x18(), "ÍâÉè¿ØÖÆ", "0000");
            String dizhi0x20 = safeCheckAndTrim(baseStationPanel.getdizhi0x20(), "ÁÙ½ü»ùÕ¾ÊýÁ¿", "0000");
            String dizhi0x22 = safeCheckAndTrim(baseStationPanel.getdizhi0x22(), "ÁÙ½ü»ùÕ¾1", "0000");
            String dizhi0x24 = safeCheckAndTrim(baseStationPanel.getdizhi0x24(), "ÁÙ½ü»ùÕ¾2", "0000");
            String dizhi0x26 = safeCheckAndTrim(baseStationPanel.getdizhi0x26(), "ÁÙ½ü»ùÕ¾3", "0000");
            String dizhi0x28 = safeCheckAndTrim(baseStationPanel.getdizhi0x28(), "ÁÙ½ü»ùÕ¾4", "0000");
            String dizhi0x2A = safeCheckAndTrim(baseStationPanel.getdizhi0x2A(), "ÁÙ½ü»ùÕ¾5", "0000");
            String dizhi0x2C = safeCheckAndTrim(baseStationPanel.getdizhi0x2C(), "ÁÙ½ü»ùÕ¾6", "0000");
            String dizhi0x2E = safeCheckAndTrim(baseStationPanel.getdizhi0x2E(), "ÁÙ½ü»ùÕ¾7", "0000");
            String dizhi0x30 = safeCheckAndTrim(baseStationPanel.getdizhi0x30(), "ÁÙ½ü»ùÕ¾8", "0000");
            String dizhi0x32 = safeCheckAndTrim(baseStationPanel.getdizhi0x32(), "ÁÙ½ü»ùÕ¾9", "0000");
            String dizhi0x34 = safeCheckAndTrim(baseStationPanel.getdizhi0x34(), "ÁÙ½ü»ùÕ¾10", "0000");
            String dizhi0x44 = safeCheckAndTrim(baseStationPanel.getdizhi0x44(), "ͬ²½»ùÕ¾ID", "0000");
            String dizhi0x46 = safeCheckAndTrim(baseStationPanel.getdizhi0x46(), "ͬ²½»ùÕ¾ÀàÐÍ", "0000");
 
            // TagPanel ²ÎÊý - ÐÂÔö²¿·Ö
            String dizhi0x14 = safeCheckAndTrim(tagPanel.getdizhi0x14(), "IMU¾²Ö¹Ê±¼ä", "0000");
            String dizhi0x1C_tag = safeCheckAndTrim(tagPanel.getdizhi0x1C(), "UWB¿ª¹Ø×´Ì¬", "0000");
            String dizhi0x20_tag = safeCheckAndTrim(tagPanel.getdizhi0x20(), "Õñ¶¯Ê±³¤", "0000");
            String dizhi0x38 = safeCheckAndTrim(tagPanel.getdizhi0x38(), "¼ÓËٶȼÆãÐÖµ", "0000");
            String dizhi0x3A = safeCheckAndTrim(tagPanel.getdizhi0x3A(), "¿ÕÏÐÐÝÃßʱ¼ä", "0000");
            String dizhi0x3C = safeCheckAndTrim(tagPanel.getdizhi0x3C(), "Õñ¶¯Ê¹ÄÜ", "0000");
            String dizhi0x3E = safeCheckAndTrim(tagPanel.getdizhi0x3E(), "¼ÓËٶȼÆÊ¹ÄÜ", "0000");
            String dizhi0x40 = safeCheckAndTrim(tagPanel.getdizhi0x40(), "±êÇ©ÅäÖÃ״̬", "0000");
            String dizhi0x42 = safeCheckAndTrim(tagPanel.getdizhi0x42(), "¼ÓËٶȼÆÊ±³¤", "0000");
            String dizhi0x44_tag = safeCheckAndTrim(tagPanel.getdizhi0x44(), "É豸¼¤»î״̬", "0000");
            String dizhi0x48 = safeCheckAndTrim(tagPanel.getdizhi0x48(), "ËÙ¶ÈÂ˲¨ÏÞÖµ", "0000");
            String dizhi0x50 = safeCheckAndTrim(tagPanel.getdizhi0x50(), "ѹÁ¦Ð£×¼", "0000");
 
            // AntiCollisionPanel ²ÎÊý - ÐÂÔö²¿·Ö
            String dizhi0x14_anti = safeCheckAndTrim(antiCollisionPanel.getdizhi0x14(), "¼ÌµçÆ÷1±¨¾¯¾àÀë1", "0000");
            String dizhi0x16 = safeCheckAndTrim(antiCollisionPanel.getdizhi0x16(), "¼ÌµçÆ÷1±¨¾¯¾àÀë2", "0000");
            String dizhi0x18_anti = safeCheckAndTrim(antiCollisionPanel.getdizhi0x18(), "¼ÌµçÆ÷1±¨¾¯¾àÀë3", "0000");
            String dizhi0x20_anti = safeCheckAndTrim(antiCollisionPanel.getdizhi0x20(), "ModbusµØÖ·", "0000");
            String dizhi0x4A = safeCheckAndTrim(antiCollisionPanel.getdizhi0x4A(), "°×Ãûµ¥Æðʼ", "0000");
            String dizhi0x4C = safeCheckAndTrim(antiCollisionPanel.getdizhi0x4C(), "°×Ãûµ¥½áÊø", "0000");
            
            String dizhi0x50_anti = safeCheckAndTrim(antiCollisionPanel.getdizhi0x50(), "¼ÌµçÆ÷³ÖÐøÊ±¼ä", "0000");
            String dizhi0x52 = safeCheckAndTrim(antiCollisionPanel.getdizhi0x52(), "²â¾àÊä³ö¸ñʽ", "0000");
            String dizhi0x54 = safeCheckAndTrim(antiCollisionPanel.getdizhi0x54(), "ÌìÏßµçÀ³¤¶È", "0000");
            String dizhi0x56 = "0000";
 
            String dizhi0x58 = safeCheckAndTrim(antiCollisionPanel.getdizhi0x58(), "À¡Ïß³¤¶È", "0000");
            String dizhi0x5A = "0000";
            String dizhi0x5C = "0000";
            String dizhi0x5E = "0000";
            String dizhi0xF0 = safeCheckAndTrim(antiCollisionPanel.getdizhi0xF0(), "¼ÌµçÆ÷1¿ØÖÆ", "0000");
            String dizhi0xF2 = safeCheckAndTrim(antiCollisionPanel.getdizhi0xF2(), "¼ÌµçÆ÷2¿ØÖÆ", "0000");
            String dizhi0xF4 = safeCheckAndTrim(antiCollisionPanel.getdizhi0xF4(), "¼ÌµçÆ÷2±¨¾¯¾àÀë1", "0000");
            String dizhi0xF6 = safeCheckAndTrim(antiCollisionPanel.getdizhi0xF6(), "¼ÌµçÆ÷2±¨¾¯¾àÀë2", "0000");
            String dizhi0xF8 = safeCheckAndTrim(antiCollisionPanel.getdizhi0xF8(), "¼ÌµçÆ÷2±¨¾¯¾àÀë3", "0000");
            
            // ========== ÐÂÔö£º¸ù¾ÝÑ¡Ïȷ¶¨Ê¹ÓÃÄĸö×Ö¶ÎÖµ ==========
            
            // »ñÈ¡µ±Ç°Ñ¡ÖеÄÑ¡ÏÀàÐ͵±Ç°Ñ¡ÖеÄÃæ°åË÷Òý (0-»ùÕ¾, 1-±êÇ©, 2-·Àײ, 3-Éý¼¶)
            int selectedTab = 0;
            try {
                selectedTab = SerialCommunicationPanel.getCurrentSelectedPanelIndex();
                // È·±£Ë÷ÒýÔÚÓÐЧ·¶Î§ÄÚ
                if (selectedTab < 0 || selectedTab > 3) {
                    selectedTab = 0;
                    System.err.println("Ñ¡ÏË÷Òý³¬³ö·¶Î§£¬Ê¹ÓÃĬÈÏÖµ: 0");
                }
            } catch (Exception e) {
                selectedTab = 0; // Ä¬ÈÏʹÓûùվѡÏ
                System.err.println("»ñȡѡÏË÷Òýʧ°Ü£¬Ê¹ÓÃĬÈÏÖµ: " + e.getMessage());
            }
           
            System.out.println("µ±Ç°Ñ¡ÖеÄÑ¡ÏË÷Òý: " + selectedTab);
            
            // ¸ù¾ÝÑ¡Ïȷ¶¨Ê¹ÓÃÄĸö×Ö¶ÎÖµ
            String finalDizhi0x1C;
            String finalDizhi0x20;
            String finalDizhi0x44;
            String finalDizhi0x14;
            String finalDizhi0x18;
            String finalDizhi0x50;
            
            if (selectedTab == 1) {
                // ±êǩѡÏѡÖÐʱ£¬Ê¹ÓñêÇ©Ãæ°åµÄÖµ
                finalDizhi0x1C = dizhi0x1C_tag;
                finalDizhi0x20 = dizhi0x20_tag;
                finalDizhi0x44 = dizhi0x44_tag;
                finalDizhi0x14 = dizhi0x14; // Ê¹ÓñêÇ©Ãæ°åµÄ0x14
                finalDizhi0x18 = dizhi0x18; // Ê¹ÓûùÕ¾Ãæ°åµÄ0x18
                finalDizhi0x50 = dizhi0x50; // Ê¹ÓñêÇ©Ãæ°åµÄ0x50
                System.out.println("ʹÓñêÇ©Ãæ°åµÄ×Ö¶ÎÖµ");
            } else if (selectedTab == 2) {
                // ·ÀײѡÏѡÖÐʱ£¬Ê¹Ó÷À×²Ãæ°åµÄÖµ
                finalDizhi0x1C = dizhi0x1C; // Ê¹Óûù´¡²ÎÊýÃæ°åµÄ0x1C
                finalDizhi0x20 = dizhi0x20_anti;
                finalDizhi0x44 = dizhi0x44; // Ê¹ÓûùÕ¾Ãæ°åµÄ0x44
                finalDizhi0x14 = dizhi0x14_anti;
                finalDizhi0x18 = dizhi0x18_anti;
                finalDizhi0x50 = dizhi0x50_anti;
                System.out.println("ʹÓ÷À×²Ãæ°åµÄ×Ö¶ÎÖµ");
            } else {
                // Ä¬ÈÏÇé¿ö£¨»ù´¡²ÎÊý¡¢»ùÕ¾µÈÑ¡Ï£©
                finalDizhi0x1C = dizhi0x1C; // Ê¹Óûù´¡²ÎÊýÃæ°åµÄ0x1C
                finalDizhi0x20 = dizhi0x20; // Ê¹ÓûùÕ¾Ãæ°åµÄ0x20
                finalDizhi0x44 = dizhi0x44; // Ê¹ÓûùÕ¾Ãæ°åµÄ0x44
                finalDizhi0x14 = dizhi0x14; // Ê¹ÓñêÇ©Ãæ°åµÄ0x14
                finalDizhi0x18 = dizhi0x18; // Ê¹ÓûùÕ¾Ãæ°åµÄ0x18
                finalDizhi0x50 = dizhi0x50; // Ê¹ÓñêÇ©Ãæ°åµÄ0x50
                System.out.println("ʹÓÃĬÈÏÃæ°åµÄ×Ö¶ÎÖµ");
            }
            
            // °²È«×ª»»ÕûÊý£¬Ìí¼ÓÒì³£´¦Àí
            int intdizhi0x6 = safeParseInt(dizhi0x6, 0);
            int intdizhi0x8 = safeParseInt(dizhi0x8, 0);
            int intdizhi0xA = safeParseInt(dizhi0xA, 0);
            int intdizhi0xC = safeParseInt(dizhi0xC, 0);
            int intdizhi0xE = safeParseInt(dizhi0xE, 0);
            int intdizhi0x10 = safeParseInt(dizhi0x10, 0);
            int intdizhi0x12 = safeParseInt(dizhi0x12, 0);
            int intdizhi0x14 = safeParseInt(finalDizhi0x14, 0);
            int intdizhi0x16 = safeParseInt(dizhi0x16, 0);
            int intdizhi0x18 = safeParseInt(finalDizhi0x18, 0);
            int intdizhi0x20 = safeParseInt(finalDizhi0x20, 0);
            int intdizhi0x36 = safeParseInt(dizhi0x36, 0);           
            int intdizhi0x38 = safeParseInt(dizhi0x38, 0);
            int intdizhi0x3A = safeParseInt(dizhi0x3A, 0);
            int intdizhi0x42 = safeParseInt(dizhi0x42, 0);
            int intdizhi0x48 = safeParseInt(dizhi0x48, 0);
            int intdizhi0x50 = safeParseInt(finalDizhi0x50, 0);
            int intdizhi0x54 = safeParseInt(dizhi0x54, 0);
            int intdizhi0x58 = safeParseInt(dizhi0x58, 0);
            int intdizhi0xF4 = safeParseInt(dizhi0xF4, 0);
            int intdizhi0xF6 = safeParseInt(dizhi0xF6, 0);
            int intdizhi0xF8 = safeParseInt(dizhi0xF8, 0);
            
            System.out.println("²ÎÊýת»»Íê³É£¬¿ªÊ¼ÉèÖÃÅäÖÃÊý¾Ý...");
            
            // ÉèÖÃÅäÖÃÊý¾Ý
            DellTag55AA03.hexAA03.setDizhi0x4(getStringToHex(dizhi0x4)); // ÉèÖÃÉ豸ID
            DellTag55AA03.hexAA03.setDizhi0x6(getIntToHex(intdizhi0x6)); // ÉèÖÃͨÐÅÆµÂÊ
            DellTag55AA03.hexAA03.setDizhi0x8(getIntToHex(intdizhi0x8)); // ÉèÖÃ×î´ó»ùÕ¾Êý
            DellTag55AA03.hexAA03.setDizhi0xA(getIntToHex(intdizhi0xA)); // ÉèÖÃ×îС»ùÕ¾Êý
            DellTag55AA03.hexAA03.setDizhi0xC(getIntToHex(intdizhi0xC)); // ÉèÖþàÀëУ׼ֵ
            DellTag55AA03.hexAA03.setDizhi0xE(getIntToHex(intdizhi0xE)); // ÉèÖÃÉ豸ÀàÐÍ
            DellTag55AA03.hexAA03.setDizhi0x10(getIntToHex(intdizhi0x10)); // ÉèÖûùÕ¾Ö÷¶¯²â¾à
            DellTag55AA03.hexAA03.setDizhi0x12(getIntToHex(intdizhi0x12)); // ÉèÖñ¨¾¯É豸            
            DellTag55AA03.hexAA03.setDizhi0x14(getIntToHex(intdizhi0x14)); // ÉèÖÃIMU¿ÕÏÐʱ¼ä»ò¼ÌµçÆ÷1±¨¾¯¾àÀë1
            DellTag55AA03.hexAA03.setDizhi0x16(getStringToHex(dizhi0x16)); // ÉèÖÃѹÁ¦»ùÕ¾ID
            DellTag55AA03.hexAA03.setDizhi0x18(getIntToHex(intdizhi0x18)); // ÉèÖÃÍâÉè¿ØÖÆ»ò¼ÌµçÆ÷1±¨¾¯¾àÀë3
            DellTag55AA03.hexAA03.setDizhi0x1A(getStringToHex(dizhi0x1A)); // ÉèÖÃÅä¶ÔID
            DellTag55AA03.hexAA03.setDizhi0x1C(getStringToHex(finalDizhi0x1C)); // ÉèÖÃUWB¿ª¹Ø×´Ì¬
            DellTag55AA03.hexAA03.setDizhi0x1E(getStringToHex(dizhi0x1E)); // ÉèÖÃModbusģʽ
            DellTag55AA03.hexAA03.setDizhi0x20(getIntToHex(intdizhi0x20)); // ÉèÖÃÕñ¶¯Ê±³¤»òModbusµØÖ·
            DellTag55AA03.hexAA03.setDizhi0x22(getStringToHex(dizhi0x22)); // ÉèÖø½½ü»ùÕ¾1ID
            DellTag55AA03.hexAA03.setDizhi0x24(getStringToHex(dizhi0x24)); // ÉèÖø½½ü»ùÕ¾2ID
            DellTag55AA03.hexAA03.setDizhi0x26(getStringToHex(dizhi0x26)); // ÉèÖø½½ü»ùÕ¾3ID
            DellTag55AA03.hexAA03.setDizhi0x28(getStringToHex(dizhi0x28)); // ÉèÖø½½ü»ùÕ¾4ID
            DellTag55AA03.hexAA03.setDizhi0x2A(getStringToHex(dizhi0x2A)); // ÉèÖø½½ü»ùÕ¾5ID
            DellTag55AA03.hexAA03.setDizhi0x2C(getStringToHex(dizhi0x2C)); // ÉèÖø½½ü»ùÕ¾6ID
            DellTag55AA03.hexAA03.setDizhi0x2E(getStringToHex(dizhi0x2E)); // ÉèÖø½½ü»ùÕ¾7ID
            DellTag55AA03.hexAA03.setDizhi0x30(getStringToHex(dizhi0x30)); // ÉèÖø½½ü»ùÕ¾8ID
            DellTag55AA03.hexAA03.setDizhi0x32(getStringToHex(dizhi0x32)); // ÉèÖø½½ü»ùÕ¾9ID
            DellTag55AA03.hexAA03.setDizhi0x34(getStringToHex(dizhi0x34)); // ÉèÖø½½ü»ùÕ¾10ID
            DellTag55AA03.hexAA03.setDizhi0x36(getIntToHex(intdizhi0x36)); // ÉèÖù¦ÂÊ
            DellTag55AA03.hexAA03.setDizhi0x38(getIntToHex(intdizhi0x38)); // ÉèÖüÓËٶȼÆãÐÖµ
            DellTag55AA03.hexAA03.setDizhi0x3A(getIntToHex(intdizhi0x3A)); // ÉèÖÿÕÏÐÐÝÃßʱ¼ä
            DellTag55AA03.hexAA03.setDizhi0x3C(getStringToHex(dizhi0x3C)); // ÉèÖÃÕñ¶¯Ê¹ÄÜ
            DellTag55AA03.hexAA03.setDizhi0x3E(getStringToHex(dizhi0x3E)); // ÉèÖüÓËٶȼÆÊ¹ÄÜ
            DellTag55AA03.hexAA03.setDizhi0x40(getStringToHex(dizhi0x40)); // ÉèÖñêÇ©ÅäÖÃ״̬
            DellTag55AA03.hexAA03.setDizhi0x42(getIntToHex(intdizhi0x42)); // ÉèÖüÓËٶȼÆÊ±³¤
            DellTag55AA03.hexAA03.setDizhi0x44(getStringToHex(finalDizhi0x44)); // ÉèÖÃÉ豸¼¤»î״̬»òͬ²½»ùÕ¾ID
            DellTag55AA03.hexAA03.setDizhi0x46(getStringToHex(dizhi0x46)); // ÉèÖÃͬ²½»ùÕ¾ÀàÐÍ
            DellTag55AA03.hexAA03.setDizhi0x48(getIntToHex(intdizhi0x48)); // ÉèÖÃËÙ¶ÈÂ˲¨ÏÞÖÆ
            DellTag55AA03.hexAA03.setDizhi0x4A(getStringToHex(dizhi0x4A));//°×Ãûµ¥ÆðʼID
            DellTag55AA03.hexAA03.setDizhi0x4C(getStringToHex(dizhi0x4C));//°×Ãûµ¥ÖÕÖ¹ID
            
            DellTag55AA03.hexAA03.setDizhi0x50(getIntToHex(intdizhi0x50)); // ÉèÖÃѹÁ¦¸ß¶ÈУ׼»ò¼ÌµçÆ÷³ÖÐøÊ±¼ä
            DellTag55AA03.hexAA03.setDizhi0x52(getStringToHex(dizhi0x52)); // 
            DellTag55AA03.hexAA03.setDizhi0x54(getIntToHex(intdizhi0x54)); // 
            DellTag55AA03.hexAA03.setDizhi0x56(getStringToHex(dizhi0x56)); // 
            DellTag55AA03.hexAA03.setDizhi0x58(getIntToHex(intdizhi0x58)); // 
            DellTag55AA03.hexAA03.setDizhi0x5A(getStringToHex(dizhi0x5A)); // 
            DellTag55AA03.hexAA03.setDizhi0x5C(getStringToHex(dizhi0x5C)); // 
            DellTag55AA03.hexAA03.setDizhi0x5E(getStringToHex(dizhi0x5E)); //        
            byte[] peizhiinfo = DellTag55AA03.getpeizhihex(DellTag55AA03.hexAA03);
            
            System.out.println("ÅäÖÃÊý¾ÝÉú³ÉÍê³É£¬³¤¶È: " + (peizhiinfo != null ? peizhiinfo.length : 0));
            
            // ÁÙʱʹÓÃʾÀýÅäÖÃÊý¾Ý
            return peizhiinfo;
            
        } catch (Exception e) {
            System.err.println("ÊÕ¼¯²ÎÊýÅäÖÃʱ·¢Éú´íÎó: " + e.getMessage());
            e.printStackTrace();
            showErrorDialog("±£´æ²ÎÊýʧ°Ü: " + e.getMessage());
            return null;
        }
    }
 
    /**
     * °²È«µÄ¿ÕÖµ¼ì²éºÍtrim´¦Àí£¬ÌṩĬÈÏÖµ
     */
    private static String safeCheckAndTrim(String value, String fieldName, String defaultValue) {
        if (value == null) {
            System.err.println(fieldName + " Îªnull£¬Ê¹ÓÃĬÈÏÖµ: " + defaultValue);
            return defaultValue;
        }
        
        String trimmed = value.trim();
        if (trimmed.isEmpty()) {
            System.err.println(fieldName + " Îª¿Õ£¬Ê¹ÓÃĬÈÏÖµ: " + defaultValue);
            return defaultValue;
        }
        
        return trimmed;
    }
 
    /**
     * °²È«×ª»»×Ö·û´®ÎªÕûÊý
     */
    private static int safeParseInt(String value, int defaultValue) {
        if (value == null || value.trim().isEmpty()) {
            return defaultValue;
        }
        
        try {
            return Integer.parseInt(value.trim());
        } catch (NumberFormatException e) {
            System.err.println("Êý×Ö¸ñʽ´íÎó: " + value + "£¬Ê¹ÓÃĬÈÏÖµ: " + defaultValue);
            return defaultValue;
        }
    }
 
    public static String getIntToHex(int value) {        
        byte[] buf =new byte[2];
        buf[0] = intToRegisters(value)[3];
        buf[1] = intToRegisters(value)[2];
        String va=bytesToHex(buf);               
        return va;
    }
    /**10½øÖÆ×ª×Ö½ÚÊý×é*/
    public static byte[] intToRegisters(int v) {
        byte[] registers = new byte[4];
        registers[0] = (byte) (0xff & (v >> 24));
        registers[1] = (byte) (0xff & (v >> 16));
        registers[2] = (byte) (0xff & (v >> 8));
        registers[3] = (byte) (0xff & v);        
        return registers;
    }
    public static String bytesToHex(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02X", b)); // È¥µô¸ñʽ×Ö·û´®ÖеĿոñ
        }
        return sb.toString(); // ´ËʱÒÑÎÞÐètrim()
    }
    
    /**
     * ¼ì²é×Ö·û´®ÊÇ·ñΪnull»ò¿Õ£¬²¢È¥³ý¿Õ¸ñ
     * @param value Òª¼ì²éµÄ×Ö·û´®
     * @param fieldName ×Ö¶ÎÃû³Æ£¨ÓÃÓÚ´íÎóÌáʾ£©
     * @return ´¦ÀíºóµÄ×Ö·û´®
     */
    private static String checkAndTrim(String value, String fieldName) {
        if (value == null) {
            showErrorDialog(fieldName + "²»ÄÜΪ¿Õ");
            throw new IllegalArgumentException(fieldName + "²»ÄÜΪ¿Õ");
        }
        
        String trimmed = value.trim();
        if (trimmed.isEmpty()) {
            showErrorDialog(fieldName + "²»ÄÜΪ¿Õ");
            throw new IllegalArgumentException(fieldName + "²»ÄÜΪ¿Õ");
        }
        
        return trimmed;
    }
 
    /**
     * ÏÔʾ´íÎ󵯴°
     * @param message ´íÎóÐÅÏ¢
     */
    private static void showErrorDialog(String message) {
        // Ê¹ÓÃSwingÏÔʾ´íÎó¶Ô»°¿ò
        javax.swing.JOptionPane.showMessageDialog(null, 
            message, 
            "²ÎÊý´íÎó", 
            javax.swing.JOptionPane.ERROR_MESSAGE);
    }
    /**»ñÈ¡É豸±àºÅ*/
    public static String getStringToHex(String tagid) {
        byte[] buf =new byte[2];
        buf[0] = toByteArray(tagid)[1];
        buf[1] = toByteArray(tagid)[0];
        String va=bytesToHex(buf);        
        return va;
    }
    /**
     * 16½øÖƵÄ×Ö·û´®±íʾת³É×Ö½ÚÊý×é
     *
     * @param hexString 16½øÖƸñʽµÄ×Ö·û´®
     * @return ×ª»»ºóµÄ×Ö½ÚÊý×é
     **/
    public static byte[] toByteArray(String hexString) {
        byte[] byteArray = null;
        if (hexString != null || hexString != "") {
            hexString = hexString.replaceAll(" ", "");
            byteArray = new byte[hexString.length() / 2];
            int k = 0;
            for (int i = 0; i < byteArray.length; i++) {//ÒòΪÊÇ16½øÖÆ£¬×î¶àÖ»»áÕ¼ÓÃ4λ£¬×ª»»³É×Ö½ÚÐèÒªÁ½¸ö16½øÖƵÄ×Ö·û£¬¸ßλÔÚÏÈ
                byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
                byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
                byteArray[i] = (byte) (high << 4 | low);
                k += 2;
            }
        }        
        return byteArray;
    }
}