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