diff --git a/app/build.gradle b/app/build.gradle
index 0766c08..6737c2d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,7 +8,7 @@
 android {
     compileSdkVersion 28
     defaultConfig {
-        applicationId "com.supwisdom.posa711dali"
+        applicationId "com.supwisdom.posa711"
         minSdkVersion 22
         targetSdkVersion 28
         versionName androidGitVersion.name()
diff --git a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
index 160dfe3..6cf2a8e 100644
--- a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
@@ -46,7 +46,7 @@
         kvMap[index++] = ControlParaRecord("服务器端口>>", "" + cfgRecord.epayPort)
         kvMap[index++] =
             ControlParaRecord("参数版本号>>", "no:${dyRecord!!.paraverno},id:${dyRecord.paragroupid}")
-        kvMap[index++] = ControlParaRecord("白名单版本>>", dyRecord.cardverno!!)
+        kvMap[index++] = ControlParaRecord("白名单版本>>", dyRecord.cardverno ?: "null")
         kvMap[index++] = ControlParaRecord("通讯超时>>", "${CommonUtil.getCommunicateTime()}s")
         if (sysRecord!!.returnFlag and 0x1 == 1) {
             kvMap[index++] = ControlParaRecord("冲正使能>>", "启用")
diff --git a/app/src/main/java/com/supwisdom/epaycard/CardBaseInfoBean.kt b/app/src/main/java/com/supwisdom/epaycard/CardBaseInfoBean.kt
index c43d6d8..7706b11 100644
--- a/app/src/main/java/com/supwisdom/epaycard/CardBaseInfoBean.kt
+++ b/app/src/main/java/com/supwisdom/epaycard/CardBaseInfoBean.kt
@@ -9,14 +9,14 @@
 class CardBaseInfoBean constructor(val data: ByteArray) {
     val cardNo: String
         get() {
-            return data.copyOfRange(39, 42).decodeBCD()
+            return data.copyOfRange(39, 43).decodeBCD()
         }
     val idCard: String
         get() {
-            return data.copyOfRange(43, 60).decodeBCD()
+            return data.copyOfRange(43, 61).decodeBCD()
         }
     val expireDate: String
         get() {
-            return data.copyOfRange(61, 64).decodeBCD()
+            return data.copyOfRange(61, 65).decodeBCD()
         }
 }
\ No newline at end of file
diff --git a/app/src/test/java/com/supwisdom/ExampleUnitTest.kt b/app/src/test/java/com/supwisdom/ExampleUnitTest.kt
index f32e492..208273c 100644
--- a/app/src/test/java/com/supwisdom/ExampleUnitTest.kt
+++ b/app/src/test/java/com/supwisdom/ExampleUnitTest.kt
@@ -1,5 +1,7 @@
 package com.supwisdom
 
+import com.supwisdom.utils.decodeHex
+import com.supwisdom.utils.encodeHex
 import org.junit.Test
 
 import org.junit.Assert.*
@@ -12,6 +14,11 @@
 class ExampleUnitTest {
     @Test
     fun addition_isCorrect() {
+        val data =
+            "055567107590FFFF6710201525002884FFFF2019061300000000000000000167102015250028842500288435333330323431393932303730343232333220991231FFFFFFFFFFFF9000".decodeHex()
+        val cardno = data.copyOfRange(39, 43).encodeHex()
+        val expire = data.copyOfRange(61, 65).encodeHex()
+        val icard = data.copyOfRange(43, 61).encodeHex()
         assertEquals(4, 2 + 2)
     }
 }
