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; } }