From 22a6b851897ef5ef25f64b740159e7106cfd6433 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 14 十一月 2023 17:21:17 +0800 Subject: [PATCH] 配置水泵功率卡 配置设备注册信息卡 测试卡 设置域名卡 删除全部用户卡 重新注册设备卡 等相关制作卡片代码 --- app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java | 8 + app/src/main/java/com/dayu/recharge/card/DomainCard.java | 41 ++++- app/src/main/java/com/dayu/recharge/activity/SysActivity.java | 62 ++++++++ app/src/main/java/com/dayu/recharge/card/TestCard.java | 12 + app/src/main/java/com/dayu/recharge/activity/PowerActivity.java | 12 + app/src/main/res/layout/activity_admin.xml | 43 +++++ app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java | 33 +++- app/src/main/java/com/dayu/recharge/activity/DomainActivity.java | 28 ++- app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 142 +++++++++++++++++++ app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java | 20 +- app/src/main/res/layout/activity_parameter.xml | 15 + 11 files changed, 362 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java index 65387f8..c24ce79 100644 --- a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java @@ -25,19 +25,19 @@ super.onCreate(savedInstanceState); binding = ActivityDomainBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); - domainBean = baseDao.domainPortDao().findFirst(); - if (domainBean != null) { - binding.domainOldTV.setText(domainBean.getDomain() + ":" + domainBean.getPort()); - }else { - domainBean=new DomainBean(); - } + initData(); binding.electricOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String domain = binding.domain.getText().toString(); String port = binding.port.getText().toString(); - int portInt = Integer.valueOf(port); + int portInt = 0; + if (TextUtils.isEmpty(port)) { + ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); + } else { + portInt = Integer.valueOf(port); + } if (TextUtils.isEmpty(domain)) { ToastUtil.show("璇疯緭鍏ュ煙鍚�"); return; @@ -45,14 +45,24 @@ ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�"); return; } + domainBean.setDomain(domain); domainBean.setPort(portInt); baseDao.domainPortDao().insert(domainBean); - - + ToastUtil.show("淇濆瓨鎴愬姛"); + initData(); } }); + initData(); + } + private void initData() { + domainBean = baseDao.domainPortDao().findFirst(); + if (domainBean != null) { + binding.domainOldTV.setText(domainBean.getDomain() + ":" + domainBean.getPort()); + } else { + domainBean = new DomainBean(); + } } diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java index e765ae1..0fb7a61 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -11,8 +11,12 @@ import com.dayu.recharge.card.CleanCard; import com.dayu.recharge.card.CleanUserCard; +import com.dayu.recharge.card.ConfigurationPowerCard; +import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad; +import com.dayu.recharge.card.DomainCard; import com.dayu.recharge.card.ManageCard; import com.dayu.recharge.card.RegisteredCard; +import com.dayu.recharge.card.TestCard; import com.dayu.recharge.card.UserCard; import com.dayu.recharge.databinding.ActivityWriteTextBinding; import com.dayu.recharge.dbBean.AdminDataBean; @@ -65,12 +69,18 @@ boolean registeredFlag = false; boolean administrativeCardFlag = false; boolean cleanUserCardFlag = false; - volatile UserCard userCard; - ManageCard manageCard; + boolean domainCrdFlag = false; + + boolean testCardFlag = false; + + boolean configDeviceRegiestFlag = false; + + boolean configPowerFlag = false; + UserCardBean userCardBean; - CleanCard cleanCard; + String morny; AdminDataBean adminData; RechargeBean rechargeBean; @@ -79,7 +89,15 @@ RegisteredCard registeredCard; CleanUserCard cleanUserCard; + volatile UserCard userCard; + ManageCard manageCard; + DomainCard domainCard; + CleanCard cleanCard; + ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; + TestCard testCard; + + ConfigurationPowerCard configurationPowerCard; //鎵撳嵃 MyApplication baseApp; @@ -128,6 +146,19 @@ if (this.getIntent().hasExtra("cleanUserCard")) { cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); } + if (this.getIntent().hasExtra("domainCard")) { + domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard"); + } + if (this.getIntent().hasExtra("testCard")) { + testCard = (TestCard) this.getIntent().getSerializableExtra("testCard"); + } + if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) { + configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad"); + } + if (this.getIntent().hasExtra("configurationPowerCard")) { + configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard"); + } + morny = this.getIntent().getStringExtra("morny"); try { adminData = baseDao.adminDao().findFirst(); @@ -182,7 +213,11 @@ private void saveData() { try { startAnim(); - if (userCard != null || cleanCard != null || manageCard != null || registeredCard != null || cleanUserCard != null) { + if (userCard != null || cleanCard != null || manageCard != null + || registeredCard != null || cleanUserCard != null + || domainCard != null || testCard != null + || configureDeviceRegistrationCrad != null + || configurationPowerCard != null) { if (userCard != null) { setUser(intent, userCard); } @@ -198,8 +233,19 @@ if (cleanUserCard != null) { setCleanUserCard(intent, cleanUserCard); } - - if ((userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag)) { + if (domainCard != null) { + setDomainCard(intent, domainCard); + } + if (testCard != null) { + setTestCard(intent, testCard); + } + if (configureDeviceRegistrationCrad != null) { + setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); + } + if (configurationPowerCard != null) { + setConfigurationPower(intent, configurationPowerCard); + } + if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) { try { if (userFlag && userCardBean != null) { baseDao.userCardDao().insert(userCardBean); @@ -456,12 +502,18 @@ userFlag = flag; } }); + if (!userFlag) { + return; + } NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() { @Override public void isSusses(boolean flag) { userFlag = flag; } }); + if (!userFlag) { + return; + } NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() { @Override public void isSusses(boolean flag) { @@ -485,6 +537,12 @@ }); } + /** + * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� + * + * @param intent + * @param cleanUserCard + */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { @Override @@ -495,6 +553,78 @@ } /** + * 璁剧疆鍩熷悕鍗� + * + * @param intent + * @param domainCard + */ + private void setDomainCard(Intent intent, DomainCard domainCard) { + try { + NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + if (!domainCrdFlag) { + return; + } + NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + if (!domainCrdFlag) { + return; + } + NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + } catch (Exception e) { + domainCrdFlag = false; + throw new RuntimeException(e); + } + } + + private void setTestCard(Intent intent, TestCard testCard) { + NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + testCardFlag = flag; + } + }); + } + + + private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { + NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + configDeviceRegiestFlag = flag; + } + }); + } + + private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { + try { + NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + configPowerFlag = flag; + } + }); + } catch (Exception e) { + configPowerFlag = false; + throw new RuntimeException(e); + } + } + + + /** * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿 */ private void selectBalance(String initPeasantCode) { diff --git a/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java b/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java index 9b80d1f..8a6dc7f 100644 --- a/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java @@ -33,5 +33,13 @@ startActivity(intent); } }); + + binding.parameterPower.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(ParameterActivity.this, PowerActivity.class); + startActivity(intent); + } + }); } } diff --git a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java index 6eec124..cc2fe65 100644 --- a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java @@ -17,14 +17,23 @@ */ public class PowerActivity extends BaseActivity { ActivityPowerBinding powerBinding; + PowerBean powerBean = new PowerBean(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); powerBinding = ActivityPowerBinding.inflate(LayoutInflater.from(this)); setContentView(powerBinding.getRoot()); - + initData(); initView(); + } + + private void initData() { + PowerBean powerBean = baseDao.powerDao().findFirst(); + if (powerBean != null) { + this.powerBean = powerBean; + powerBinding.villageOldNumber.setText(powerBean.getPower()); + } } private void initView() { @@ -33,7 +42,6 @@ public void onClick(View v) { String data = powerBinding.villageNewNum.getText().toString(); if (!TextUtils.isEmpty(data)) { - PowerBean powerBean = new PowerBean(); powerBean.setPower(data); baseDao.powerDao().insert(powerBean); ToastUtil.show("淇濆瓨鎴愬姛"); diff --git a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java index a8b6967..74853bd 100644 --- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java @@ -7,10 +7,16 @@ import com.dayu.recharge.card.CleanCard; import com.dayu.recharge.card.CleanUserCard; +import com.dayu.recharge.card.ConfigurationPowerCard; +import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad; import com.dayu.recharge.card.DomainCard; import com.dayu.recharge.card.ManageCard; import com.dayu.recharge.card.RegisteredCard; +import com.dayu.recharge.card.TestCard; import com.dayu.recharge.databinding.ActivityAdminBinding; +import com.dayu.recharge.dbBean.DomainBean; +import com.dayu.recharge.dbBean.PowerBean; +import com.dayu.recharge.utils.ToastUtil; /** * Copyright (C), 2023, @@ -31,12 +37,14 @@ initView(); } + private void initView() { - Intent intent = new Intent(this, NFCWreatActivity.class); + adminBinding.adminAdmin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); ManageCard manageCard = new ManageCard(); intent.putExtra("manageCard", manageCard); startActivity(intent); @@ -46,6 +54,7 @@ adminBinding.adminCleanZero.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); CleanCard cleanCard = new CleanCard(); intent.putExtra("cleanCard", cleanCard); startActivity(intent); @@ -54,6 +63,7 @@ adminBinding.adminRegistered.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); RegisteredCard registeredCard = new RegisteredCard(); intent.putExtra("registeredCard", registeredCard); startActivity(intent); @@ -63,6 +73,7 @@ adminBinding.adminCleanUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); CleanUserCard cleanUserCard = new CleanUserCard(); intent.putExtra("cleanUserCard", cleanUserCard); startActivity(intent); @@ -72,11 +83,56 @@ adminBinding.adminDomain.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DomainCard domainCard = new DomainCard(); - intent.putExtra("domainCard", domainCard); + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + DomainBean domainBean = baseDao.domainPortDao().findFirst(); + if (domainBean != null) { + DomainCard domainCard = new DomainCard(); + domainCard.setDomainName(domainBean.getDomain()); + domainCard.setPort(domainBean.getPort()); + intent.putExtra("domainCard", domainCard); + startActivity(intent); + } else { + ToastUtil.show("璇峰厛璁剧疆鍩熷悕"); + } + + } + }); + adminBinding.adminTest.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + TestCard testCard = new TestCard(); + intent.putExtra("testCard", testCard); startActivity(intent); } }); + adminBinding.adminConfigDeviceRegistration.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad = new ConfigureDeviceRegistrationCrad(); + intent.putExtra("configureDeviceRegistrationCrad", configureDeviceRegistrationCrad); + startActivity(intent); + } + }); + + adminBinding.adminConfigPower.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PowerBean powerBean = baseDao.powerDao().findFirst(); + if (powerBean != null) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + ConfigurationPowerCard configurationPowerCard = new ConfigurationPowerCard(); + configurationPowerCard.setPower(powerBean.getPower()); + intent.putExtra("configurationPowerCard", configurationPowerCard); + startActivity(intent); + } else { + ToastUtil.show("璇峰厛璁剧疆姘存车鍔熺巼"); + } + + } + }); + } diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java index f378897..0275c80 100644 --- a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java +++ b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java @@ -2,6 +2,8 @@ import com.dayu.recharge.tools.HexUtil; +import java.io.Serializable; + /** * Copyright (C), 2023, * Author: zuo @@ -11,7 +13,7 @@ * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝 * 鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤 */ -public class ConfigurationPowerCard { +public class ConfigurationPowerCard implements Serializable { public String cardType = "BD";//鍗$被鍨� @@ -19,20 +21,37 @@ public String power;//鍔熺巼 + public String getPower() { + return power; + } + + public void setPower(String power) { + this.power = power; + } + + public byte[] toByte() { + Zero zero = new Zero(); + return zero.toByte(); + } + public class Zero extends BaseCard { - public void toByte() { + public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); for (int i = 0; i < 4; i++) { data[i + 1] = cardDatas[i]; } - float floatPower = Float.parseFloat(power); - int intPower = (int) Math.ceil(floatPower); // 灏嗘诞鐐规暟鍚戜笂鍙栨暣骞惰浆鎹负鏁存暟 - String hexPower = HexUtil.get10to16(intPower); - byte bytePower = HexUtil.hexToByte(hexPower); - data[5] = bytePower; + if (power != null) { + float floatPower = Float.parseFloat(power); + int intPower = (int) Math.ceil(floatPower); // 灏嗘诞鐐规暟鍚戜笂鍙栨暣骞惰浆鎹负鏁存暟 + String hexPower = HexUtil.get10to16(intPower); + byte bytePower = HexUtil.hexToByte(hexPower); + data[5] = bytePower; + } + data[15] = getByteSum(data); + return data; } } diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java index f4ed3c1..42480f3 100644 --- a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java +++ b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java @@ -2,35 +2,37 @@ import com.dayu.recharge.tools.HexUtil; +import java.io.Serializable; + /** * Created by Android Studio. * author: zuo * Date: 2023-11-13 * Time: 18:11 * 澶囨敞锛氶厤缃澶囨敞鍐屼俊鎭崱 - * + * <p> * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤 */ -public class ConfigureDeviceRegistrationCrad { +public class ConfigureDeviceRegistrationCrad implements Serializable { public String cardType = "BC";//鍗$被鍨� public String cardData = "A0B1C289";//鏍囪瘑鐮� - public String power;//鍔熺巼 + public byte[] toByte() { + Zero zero = new Zero(); + return zero.toByte(); + } public class Zero extends BaseCard { - public void toByte() { + public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); for (int i = 0; i < 4; i++) { data[i + 1] = cardDatas[i]; } - float floatPower = Float.parseFloat(power); - int intPower = (int) Math.ceil(floatPower); // 灏嗘诞鐐规暟鍚戜笂鍙栨暣骞惰浆鎹负鏁存暟 - String hexPower = HexUtil.get10to16(intPower); - byte bytePower = HexUtil.hexToByte(hexPower); - data[5] = bytePower; + data[15] = getByteSum(data); + return data; } } diff --git a/app/src/main/java/com/dayu/recharge/card/DomainCard.java b/app/src/main/java/com/dayu/recharge/card/DomainCard.java index 55d8718..bef709d 100644 --- a/app/src/main/java/com/dayu/recharge/card/DomainCard.java +++ b/app/src/main/java/com/dayu/recharge/card/DomainCard.java @@ -23,7 +23,24 @@ //绔彛鍙蜂负5涓瓧鑺傦紝涓嶈冻5浣嶉珮浣嶈ˉ0銆傜鍙e彿涓庡煙鍚嶄箣闂寸敤鈥�,鈥濋殧寮�銆傜鍙e彿鏈�鍚庝互鈥�#鈥濈粨鏉� public String domainName;//鍩熷悕 - public String port;//绔彛 + public int port;//绔彛 + + public String getDomainName() { + return domainName; + } + + public void setDomainName(String domainName) { + this.domainName = domainName; + } + + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } private byte[] asciiByte;//褰撳墠鍩熷悕鍜岀鍙e彿鏁扮粍 @@ -50,10 +67,18 @@ public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); - byte[] domainNumbers = BcdUtil.strToBcd(domainNumber); - data[1] = domainNumbers[0]; + if (domainNumber != null) { + byte[] domainNumbers = BcdUtil.strToBcd(domainNumber); + data[1] = domainNumbers[0]; + } + domainLength = domainName.length(); data[2] = HexUtil.hexToByte(HexUtil.get10to16(domainLength)); - String ascii = IDN.toASCII(domainName + "," + port + "#"); + String portStr = String.valueOf(port); + int lenght = portStr.length(); + for (int i = 0; i < 5 - lenght; i++) { + portStr = "0" + portStr; + } + String ascii = IDN.toASCII(domainName + "," + portStr + "#"); asciiByte = ascii.getBytes(); if (asciiByte.length < 12) { System.arraycopy(asciiByte, 0, data, 3, asciiByte.length); @@ -75,9 +100,9 @@ byte[] data = new byte[16]; if (asciiByte.length > 12) { if (asciiByte.length - 12 < 15) { - System.arraycopy(asciiByte, 12, data, 3, asciiByte.length - 12); + System.arraycopy(asciiByte, 12, data, 0, asciiByte.length - 12); } else { - System.arraycopy(asciiByte, 12, data, 3, 15); + System.arraycopy(asciiByte, 12, data, 0, 15); } } data[15] = getByteSum(data); @@ -95,9 +120,9 @@ byte[] data = new byte[16]; if (asciiByte.length > (12 + 15)) { if (asciiByte.length - (12 + 15) < 15) { - System.arraycopy(asciiByte, 12, data, 3, asciiByte.length - (12 + 15)); + System.arraycopy(asciiByte, 12, data, 0, asciiByte.length - (12 + 15)); } else { - System.arraycopy(asciiByte, 12, data, 3, 15); + System.arraycopy(asciiByte, 12, data, 0, 15); } } data[15] = getByteSum(data); diff --git a/app/src/main/java/com/dayu/recharge/card/TestCard.java b/app/src/main/java/com/dayu/recharge/card/TestCard.java index b7526c2..cf17f85 100644 --- a/app/src/main/java/com/dayu/recharge/card/TestCard.java +++ b/app/src/main/java/com/dayu/recharge/card/TestCard.java @@ -2,18 +2,25 @@ import com.dayu.recharge.tools.HexUtil; +import java.io.Serializable; + /** * Copyright (C), 2023, * Author: zuo * Date: 2023-11-08 13:23 * Description: 娴嬭瘯鍗� */ -public class TestCard { +public class TestCard implements Serializable { public String cardType = "A4";//鍗$被鍨� public String cardData = "A0B1C289";//鏍囪瘑鐮� + public byte[] toByte() { + Zero zero = new Zero(); + return zero.toByte(); + } + public class Zero extends BaseCard { - public void toByte() { + public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); @@ -21,6 +28,7 @@ data[i + 1] = cardDatas[i]; } data[15] = getByteSum(data); + return data; } } diff --git a/app/src/main/res/layout/activity_admin.xml b/app/src/main/res/layout/activity_admin.xml index 67af893..726d4b4 100644 --- a/app/src/main/res/layout/activity_admin.xml +++ b/app/src/main/res/layout/activity_admin.xml @@ -27,7 +27,8 @@ android:id="@+id/admin_admin" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔绠$悊鍗�" android:textSize="@dimen/text_size" /> @@ -36,7 +37,8 @@ android:id="@+id/admin_cleanZero" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔娓呴浂鍗�" android:textSize="@dimen/text_size" /> @@ -45,7 +47,8 @@ android:id="@+id/admin_registered" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔閲嶆柊娉ㄥ唽璁惧鍗�" android:textSize="@dimen/text_size" /> @@ -54,7 +57,8 @@ android:id="@+id/admin_CleanUser" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�" android:textSize="@dimen/text_size" /> @@ -63,15 +67,42 @@ android:id="@+id/admin_domain" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔璁剧疆鍩熷悕鍗�" android:textSize="@dimen/text_size" /> + <TextView + android:id="@+id/admin_test" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:padding="5dp" + android:text="鍒朵綔娴嬭瘯鍗�" + android:textSize="@dimen/text_size" /> + <TextView + android:id="@+id/admin_configDeviceRegistration" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:padding="5dp" + android:text="鍒朵綔閰嶇疆璁惧淇℃伅鍗�" + android:textSize="@dimen/text_size" /> - + <TextView + android:id="@+id/admin_configPower" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:padding="5dp" + android:text="鍒朵綔閰嶇疆姘存车鍔熺巼鍗�" + android:textSize="@dimen/text_size" /> </LinearLayout> diff --git a/app/src/main/res/layout/activity_parameter.xml b/app/src/main/res/layout/activity_parameter.xml index 621e0f1..98f4d71 100644 --- a/app/src/main/res/layout/activity_parameter.xml +++ b/app/src/main/res/layout/activity_parameter.xml @@ -17,18 +17,29 @@ android:id="@+id/parameter_domain" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鍩熷悕鍗¤缃�" android:textSize="@dimen/text_size" /> + <TextView + android:id="@+id/parameter_power" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:padding="5dp" + android:text="姘存车鍔熺巼鍗¤缃�" + android:textSize="@dimen/text_size" /> <TextView android:id="@+id/parameter_electricPrice" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" android:padding="5dp" android:text="鐢甸噺鍗曚环" android:textSize="@dimen/text_size" -- Gitblit v1.8.0