Explorar o código

1、加入VID为27C6的识别;2、最大最小值测试直接判断最小值是否小于最大值的1/2;3、在测试或读数据进行时,点击系统返回按钮,先执行停止当前工作,再点击一次才实现返回

robbin %!s(int64=3) %!d(string=hai) anos
pai
achega
8400dc5d9a

+ 1 - 1
app/build.gradle

@@ -14,7 +14,7 @@ android {
         variant ->
             variant.outputs.all{
                 //´Ë´¦Ö¸¶¨Éú³ÉµÄapkÎļþÃû
-                outputFileName = "WingCoolAPK(GT9)_V1.1.2_20210818.apk"
+                outputFileName = "WingCoolAPK(GT9)_V1.1.3_20210914.apk"
             }
     }
     lintOptions {

+ 6 - 4
app/src/main/java/com/example/administrator/wingcool_gt9_apk/Config.java

@@ -1807,7 +1807,8 @@ public class Config extends AppCompatActivity
                 for (UsbDevice usbDevice : deviceList.values()) {
                     //int productId = usbDevice.getProductId();
                     int vendorId = usbDevice.getVendorId();
-                    if ((vendorId == 0x27C0)
+                    if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                            ||(vendorId == 0x27C6)    //汇顶的VID
                             ||(vendorId == 0x222A)    //奕力的VID
                             ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                     {
@@ -1846,14 +1847,15 @@ public class Config extends AppCompatActivity
                 //int productId = usbDevice.getProductId();
                 int vendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if ((vendorId == 0x27C0)
+                if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                        ||(vendorId == 0x27C6)    //汇顶的VID
                         ||(vendorId == 0x222A)    //奕力的VID
                         ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if (mUsbDeviceConnection != null) {
+                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                        if (mUsbDeviceConnection != null) {
 
                             int interfaceCount = usbDevice.getInterfaceCount();
                            // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)

+ 258 - 64
app/src/main/java/com/example/administrator/wingcool_gt9_apk/DataAnalysis.java

@@ -21,6 +21,7 @@ import android.os.SystemClock;
 import android.support.v7.app.AppCompatActivity;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
+import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
@@ -41,8 +42,9 @@ public class DataAnalysis extends AppCompatActivity
         implements   OpenDevicesReceiver.OpenDevicesListener, View.OnClickListener {
     private Context mAlertContext;
     //MainActivity mMainAct = new MainActivity();
-    private byte[] mRawdataBytes = new byte[42*30*2*2];
-    private int[] mManualRefInt = new int[42*30*2];
+    private byte[] mRawdataBytes = new byte[44 * 72 * 2 + 64 * 2];
+    private byte[] mManualRef = new byte[44 * 72 * 2 + 64 * 2];
+    private int[] mManualRefInt = new int[44 * 72 * 2 + 64 * 2];
     private static final int RAWDATA_MESSAGE = 0;
     private static final int LOG1_MESSAG = 1;
     private static final int CLEAR_MESSAGE= 2;
@@ -61,6 +63,10 @@ public class DataAnalysis extends AppCompatActivity
     private UsbRequest mUsbRequest = new UsbRequest();
     private UsbEndpoint mUsbEndpointOut;
     private UsbEndpoint mUsbEndpointIn;
+    private int iProductId;
+    private byte byProductType = 0;
+    private static final byte GT9 = 0x01;
+    private static final byte GT7 = 0x02;
 
     private Button btn_RawdataShow;
     private Button btn_DiffdataShow;
@@ -84,6 +90,8 @@ public class DataAnalysis extends AppCompatActivity
     private UsbInterface mUsbInterface;
     private Context mContext;
 
+    private byte showAddressHigh;
+    private byte showAddressLow;  //需要显示的 address
     private int colnum;
     private int rownum;
     private int iMaximum;  //存放外部输入的最大值测试阈值
@@ -495,7 +503,7 @@ public class DataAnalysis extends AppCompatActivity
     private byte[] bypCfgDrv = new byte[42];
     private byte[] bypCfgSen = new byte[30];
 
-@Override
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_dataanalysis);
@@ -610,7 +618,8 @@ public class DataAnalysis extends AppCompatActivity
                         for (UsbDevice usbDevice : deviceList.values()) {
                             //int productId = usbDevice.getProductId();
                             int vendorId = usbDevice.getVendorId();
-                            if ((vendorId == 0x27C0)
+                            if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                                    ||(vendorId == 0x27C6)    //汇顶的VID
                                     ||(vendorId == 0x222A)    //奕力的VID
                                     ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                             {
@@ -640,7 +649,8 @@ public class DataAnalysis extends AppCompatActivity
                 //int productId = usbDevice.getProductId();
                 int vendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if ((vendorId == 0x27C0)
+                if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                        ||(vendorId == 0x27C6)    //汇顶的VID
                         ||(vendorId == 0x222A)    //奕力的VID
                         ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {
@@ -697,8 +707,12 @@ public class DataAnalysis extends AppCompatActivity
                                     mUsbInterface = usbInterface;
                                     mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
                                     if(null != mUsbEndpointIn){
+                                        iProductId = usbDevice.getProductId();
+                                        if ((iProductId == 0x0819) || (iProductId == 0x8191))
+                                        {
+                                            byProductType = GT7;
+                                        }
                                         mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-
                                     }
                                 }
                             }
@@ -908,13 +922,15 @@ public class DataAnalysis extends AppCompatActivity
         if (i != 0x40)
             return 0x77;  //用0x77来表示传输失败
 
-        SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
+        //SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
+        SystemClock.sleep(24);  //加长时间,避免数据显示错乱乱闪
 
         isReceiverMessage = false;  //先关闭循环接收信息
 
         i = mUsbDeviceConnection.bulkTransfer(mUsbEndpointIn, mBytes, 0, 0x40, 3000);
 
-        SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
+        //SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
+        SystemClock.sleep(24);  //加长时间,避免数据显示错乱乱闪
 
         if (i == 0x40)
             return mBytes[1];
@@ -929,6 +945,11 @@ public class DataAnalysis extends AppCompatActivity
         byte msubcommand = (byte) 0x06;   //ENTRY_DEBUG_MODE
         byte mdata = (byte) 0x01;
 
+        if (byProductType == GT7) {
+            iicByteWrite((byte) 0x80, (byte) 0x41, (byte) 0x0f, (byte) 0x00);
+            iicByteWrite((byte) 0x80, (byte) 0x42, (byte) 0x0f, (byte) 0xff);
+        }
+
         if (!iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata)) {
             return false;
         }
@@ -938,6 +959,11 @@ public class DataAnalysis extends AppCompatActivity
 
     private boolean changeToNormalMode() {
 
+        if (byProductType == GT7) {
+            iicByteWrite((byte) 0x80, (byte) 0x41, (byte) 0x0f, (byte) 0x00);
+            iicByteWrite((byte) 0x80, (byte) 0x42, (byte) 0x0f, (byte) 0x00);
+        }
+
         byte maddressHigh = (byte)0x80;
         byte maddressLow = (byte)0x40;
         byte msubcommand =0x07 ;  //QUIT_DEBUG_MODE
@@ -951,22 +977,22 @@ public class DataAnalysis extends AppCompatActivity
         return true;
     }
 
-
-    byte showAddressHigh = (byte)0x8b;
-    byte showAddressLow = (byte)0x98;  //需要显示的 address
-    private int[] datatemp = new int[42 * 30 * 2];
     private boolean getRawdata() {
 
-        byte maddressHigh = (byte)0x8b;
-        byte maddressLow = (byte)0x98;  //rawdata address
+        byte maddressHigh;
+        byte maddressLow;  //rawdata address
         byte msubcommand = (byte)0x0d;  //  READ_SYNC
-        byte mdata = (byte)0x01;
+        byte mdata;
 
         if(!iicRead(showAddressHigh,showAddressLow,mRawdataBytes,colnum * rownum * 2)) {  //读取rawData
             return false;
         }
 
         maddressHigh = (byte)0x81;
+        if (byProductType == GT7)
+        {
+            maddressHigh = (byte)0x82;
+        }
         maddressLow = (byte)0x4E;  // SYNC address
         msubcommand = 0x0f;        //  READ_SYNC
         mdata = (byte)0x00;
@@ -999,7 +1025,12 @@ public class DataAnalysis extends AppCompatActivity
                 {
                     btTestStep = 1;  //
 
-                    ShortTestProc();
+                    if (byProductType == GT7)
+                    {
+
+                    }else{
+                        ShortTestProc();
+                    }
 
                     SystemClock.sleep(100);
 
@@ -1013,7 +1044,7 @@ public class DataAnalysis extends AppCompatActivity
                     stTestLogShow = stTestLogShow.concat(stTestLog);
                 }
 
-                while(showFlag!=4) {
+                while(showFlag != 4) {
 
                     if(count-- == 0)
                     {
@@ -1023,7 +1054,13 @@ public class DataAnalysis extends AppCompatActivity
                     while(true) {
                         //轮询读取0x814E,如果非0,则读取rawdata
                         byte maddressHigh = (byte) 0x81;
-                        byte maddressLow = (byte) 0x4E;  //_rRW_MISCTL__SWRST_B0_
+                        if (byProductType == GT7)
+                        {
+                            maddressHigh = (byte) 0x82;
+
+                        }
+
+                        byte maddressLow = (byte) 0x4E;
                         syncFlag = iicByteRead(maddressHigh, maddressLow);
 
                         //while ((syncFlag == 0 )|| (syncFlag == 0x77)) {
@@ -1056,13 +1093,21 @@ public class DataAnalysis extends AppCompatActivity
                             case 2://manual diff
                                 if(count == 999)   //第一帧备份rawdata作为基准
                                 {
-
-                                    for (int i = 0; i < 42 * 30 * 2;i++ ) {
-                                        // int v = mRawdataBytes[i] & 0xFF;
-                                        int j = i/2;
-                                        mManualRefInt[j] =  ((mRawdataBytes[i] & 0xFF)<<8) +  (mRawdataBytes[i+1] & 0xFF);
-                                        i++;
+                                    if (byProductType == GT7)
+                                    {
+                                        for (int i = 0; i < 44 * 72 * 2; i++) {
+                                            int j = i/2;
+                                            mManualRefInt[j] =  ((mRawdataBytes[i + 1] & 0xFF)<<8) +  (mRawdataBytes[i] & 0xFF);
+                                            i++;
+                                        }
+                                    }else{
+                                        for (int i = 0; i < 42 * 30 * 2; i++ ) {
+                                            int j = i/2;
+                                            mManualRefInt[j] =  ((mRawdataBytes[i] & 0xFF)<<8) +  (mRawdataBytes[i+1] & 0xFF);
+                                            i++;
+                                        }
                                     }
+
                                 }
 
                                 mHandler.sendEmptyMessage(MANUALDIFF_MESSAGE);
@@ -1096,6 +1141,7 @@ public class DataAnalysis extends AppCompatActivity
         //   return true;
     }
 
+    private int[] datatemp = new int[44 * 72 * 2 + 64 * 2];
     Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -1132,8 +1178,14 @@ public class DataAnalysis extends AppCompatActivity
                                 stringBuilder.append("│");
 
                             }else{
-                                idtemp = row + tempcol * rownum;
-                                datatemp[i] = ((mRawdataBytes[idtemp * 2] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2 + 1] & 0xFF);
+                                idtemp = (row + tempcol * rownum) * 2;
+                                if (byProductType == GT7)  //GT7的低位在前
+                                {
+                                    datatemp[i] = ((mRawdataBytes[idtemp + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp] & 0xFF);
+                                }else{
+                                    datatemp[i] = ((mRawdataBytes[idtemp] & 0xFF) << 8) + (mRawdataBytes[idtemp + 1] & 0xFF);
+                                }
+
                                 dv = Integer.toString(datatemp[i]);
 
                                 stringBuilder.append(dv + "│");
@@ -1232,8 +1284,15 @@ public class DataAnalysis extends AppCompatActivity
                                 stringBuilder.append(dv);
                                 stringBuilder.append("│");
                             }else{
+
                                 idtemp = row + tempcol * rownum;
-                                datatemp[i] = ((mRawdataBytes[idtemp * 2] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2 + 1] & 0xFF);
+                                if (byProductType == GT7)  //GT7的低位在前
+                                {
+                                    datatemp[i] = ((mRawdataBytes[idtemp * 2 + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2] & 0xFF);
+                                }else{
+                                    datatemp[i] = ((mRawdataBytes[idtemp * 2] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2 + 1] & 0xFF);
+                                }
+
                                 datatemp[i] = mManualRefInt[idtemp] - datatemp[i];
                                 dv = Integer.toString(datatemp[i]);
 
@@ -1262,6 +1321,7 @@ public class DataAnalysis extends AppCompatActivity
                 case TEST_DATA_MESSAGE:  //
                     if (1 == btTestStep)
                     {
+                        edt_TestiInformation.setText("");
                         edtShortCircuitInfo.setText(Update_log);
                         edtShortCircuitInfo.setSelection(edtShortCircuitInfo.getText().length());
 
@@ -1276,8 +1336,13 @@ public class DataAnalysis extends AppCompatActivity
                         //控制列数
                         for (int col = 0; col < colnum; col++) {
 
-                            idtemp = row + col * rownum;
-                            datatemp[i] = ((mRawdataBytes[idtemp * 2] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2 + 1] & 0xFF);
+                            idtemp = (row + col * rownum) * 2;
+                            if (byProductType == GT7)  //GT7的低位在前
+                            {
+                                datatemp[i] = ((mRawdataBytes[idtemp + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp] & 0xFF);
+                            }else{
+                                datatemp[i] = ((mRawdataBytes[idtemp] & 0xFF) << 8) + (mRawdataBytes[idtemp + 1] & 0xFF);
+                            }
 
                             //获取最大值
                             if (datatemp[i] > maxdata){
@@ -1290,7 +1355,7 @@ public class DataAnalysis extends AppCompatActivity
 
                         }
                     }
-
+                    /*
                     if (maxdata > iMaximum)  //统计最大值大于阈值的次数
                     {
                         byMaximumOverCount++;
@@ -1300,6 +1365,12 @@ public class DataAnalysis extends AppCompatActivity
                     {
                         byMinimumOverCount++;
                     }
+                    */
+
+                    if (maxdata > mindata * 2)  //统计最大值大于阈值的次数
+                    {
+                        byMaximumOverCount++;
+                    }
 
                     byTestCount++;
                     stTestLog = getResources().getString(R.string.sampling) + Integer.toString(byTestCount) + getResources().getString(R.string.frame);
@@ -2128,38 +2199,75 @@ public class DataAnalysis extends AppCompatActivity
     @Override
     public void onClick(final View view) {
 
-        if ((edt_ColNum.getText().length() == 0) || (edt_RowNum.getText().length() == 0)){
+        int checksum;
+        int checksum2;
+        byte addressH;
+        byte addressL;
 
-            byte addressH = (byte)0x80;
-            byte addressL = (byte)0x47;
-            iicRead(addressH,addressL,mBytes,186);
+        if ((edt_ColNum.getText().length() == 0) || (edt_RowNum.getText().length() == 0)){
 
-            int checksum = 0;
-            for (int i = 0; i < 186; i++) {
-                int k = mBytes[i] & 0xFF;
-                checksum = checksum + k;
-            }
-            if(checksum % 256 == 0)  //校验和正确
+            if (byProductType == GT7)
             {
-                colnum = (mBytes[27] & 0x1F) + (mBytes[28] & 0x1F);
-                rownum = (mBytes[29] & 0x0F) + ((mBytes[29] & 0xFF) >> 4);
+                addressH = (byte)0x80;
+                addressL = (byte)0x50;
 
-                edt_ColNum.setText(Integer.toString(colnum));
-                edt_RowNum.setText(Integer.toString(rownum));
+                iicRead(addressH,addressL,mBytes,444);
 
-                for (int i = 0; i < 42; i++)
+                checksum = 0;
+                checksum2 = 0;
+                for (int i = 0; i < 444; i++) {
+                    int k = mBytes[i] & 0xFF;
+                    if (i < 213)
+                    {
+                        checksum = checksum + k;
+                    }
+                    else {
+                        checksum2 = checksum2 + k;
+                    }
+                }
+                if((checksum % 256 == 0) && (checksum2 % 256 == 0))  //校验和正确
                 {
-                    bypCfgDrv[i] = mBytes[142 + i];
+                    colnum = (mBytes[381] & 0xFF) + (mBytes[383] & 0xFF);  //DRV
+                    rownum = (mBytes[380] & 0xFF) + (mBytes[382] & 0xFF);  //SEN
+
+                    edt_ColNum.setText(Integer.toString(colnum));
+                    edt_RowNum.setText(Integer.toString(rownum));
+                }
+                else {
+                    Toast.makeText(this, getResources().getString(R.string.cfgerror), Toast.LENGTH_SHORT).show();
+                    return;
                 }
+            }else{
+
+                addressH = (byte)0x80;
+                addressL = (byte)0x47;
+                iicRead(addressH, addressL, mBytes,186);
 
-                for (int i = 0; i < 30; i++)
+                checksum = 0;
+                for (int i = 0; i < 186; i++) {
+                    int k = mBytes[i] & 0xFF;
+                    checksum = checksum + k;
+                }
+                if(checksum % 256 == 0)  //校验和正确
                 {
-                    bypCfgSen[i] = mBytes[112 + i];
+                    colnum = (mBytes[27] & 0x1F) + (mBytes[28] & 0x1F);
+                    rownum = (mBytes[29] & 0x0F) + ((mBytes[29] & 0xFF) >> 4);
+
+                    edt_ColNum.setText(Integer.toString(colnum));
+                    edt_RowNum.setText(Integer.toString(rownum));
+
+                    for (int i = 0; i < 42; i++) {
+                        bypCfgDrv[i] = mBytes[142 + i];
+                    }
+
+                    for (int i = 0; i < 30; i++) {
+                        bypCfgSen[i] = mBytes[112 + i];
+                    }
+                }
+                else {
+                    Toast.makeText(this, getResources().getString(R.string.cfgerror), Toast.LENGTH_SHORT).show();
+                    return;
                 }
-            }
-            else {
-                Toast.makeText(this, getResources().getString(R.string.cfgerror), Toast.LENGTH_SHORT).show();
-                return;
             }
 
         }else{
@@ -2167,13 +2275,21 @@ public class DataAnalysis extends AppCompatActivity
             rownum = (byte) Integer.parseInt(edt_RowNum.getText().toString(), 10);
         }
 
-        if (colnum == 0){
+        if (colnum == 0){  //DRV
             colnum = 42;
+            if (byProductType == GT7)
+            {
+                colnum = 44;
+            }
             edt_ColNum.setText(Integer.toString(colnum));
         }
 
-        if (rownum == 0){
+        if (rownum == 0){  //SEN
             rownum = 30;
+            if (byProductType == GT7)
+            {
+                rownum = 72;
+            }
             edt_RowNum.setText(Integer.toString(rownum));
         }
 
@@ -2192,19 +2308,33 @@ public class DataAnalysis extends AppCompatActivity
                 //count = 1000;
                 showAddressHigh = (byte)0x8b;
                 showAddressLow = (byte)0x98;
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0xbf;
+                    showAddressLow = (byte)0xf0;
+                }
                 if(count == 1000){
-                    tvDataContent.setText("["+getResources().getString(R.string.rawdata)+"]");
+                    tvDataContent.setText("[" + getResources().getString(R.string.rawdata) + "]");
                     showRawdata();
                 }
 
                 break;
 
             case R.id.diffdata:
-                showFlag =3;
+                showFlag = 3;
+                if (byProductType == GT7)
+                {
+                    showFlag = 1; //GT7系列的差值是2bytes,按照RawData的方式去显示
+                }
 
                 changeToDebugMode();
                 showAddressHigh = (byte)0xbb;
                 showAddressLow = (byte)0x10;
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0x8a;
+                    showAddressLow = (byte)0xc0;
+                }
                 if(count == 1000) {
                     tvDataContent.setText("[" + getResources().getString(R.string.diffdata) + "]");
                     showRawdata();
@@ -2216,6 +2346,11 @@ public class DataAnalysis extends AppCompatActivity
                 count = 1000;
                 showAddressHigh = (byte)0x81;
                 showAddressLow = (byte)0xc0;
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0xa5;
+                    showAddressLow = (byte)0x58;
+                }
                 tvDataContent.setText("[" + getResources().getString(R.string.reffdata) + "]");
                 getRawdata();
                 mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
@@ -2228,6 +2363,11 @@ public class DataAnalysis extends AppCompatActivity
                 changeToDebugMode();
                 showAddressHigh = (byte)0x8b;
                 showAddressLow = (byte)0x98;
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0xbf;
+                    showAddressLow = (byte)0xf0;
+                }
                 if(count == 1000) {
                     tvDataContent.setText("[" + getResources().getString(R.string.manualdiff) + "]");
                     showRawdata();
@@ -2239,18 +2379,26 @@ public class DataAnalysis extends AppCompatActivity
                 break;
 				
 			case R.id.manualreff:  //set up manual ref
-                showFlag =2;
+                showFlag = 2;
                 btn_Manualreff.setEnabled(true);
                 count = 1000;
-                showAddressHigh = (byte)0x8b;
-                showAddressLow = (byte)0x98;
 
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0xbf;
+                    showAddressLow = (byte)0xf0;
+                }
+                else {
+                    showAddressHigh = (byte)0x8b;
+                    showAddressLow = (byte)0x98;
+                }
                 break;
 
             case R.id.testting:  //start test
-                if (edt_Maximum.getText().length()==0)
+
+                if (edt_Maximum.getText().length() == 0)
                 {
-                    edt_Maximum.setText(Integer.toString(3500));
+                    //edt_Maximum.setText(Integer.toString(3500));
                     iMaximum = 3500;
                 }
                 else
@@ -2258,10 +2406,10 @@ public class DataAnalysis extends AppCompatActivity
                     iMaximum = Integer.parseInt(edt_Maximum.getText().toString(),10);
                 }
 
-                if (edt_Minimum.getText().length()==0)
+                if (edt_Minimum.getText().length() == 0)
                 {
-                    edt_Minimum.setText(Integer.toString(1750));
-                    iMinimum = 1800;
+                    //edt_Minimum.setText(Integer.toString(1750));
+                    iMinimum = 1750;
                 }
                 else
                 {
@@ -2288,6 +2436,11 @@ public class DataAnalysis extends AppCompatActivity
                 //count = 1000;
                 showAddressHigh = (byte)0x8b;
                 showAddressLow = (byte)0x98;
+                if (byProductType == GT7)
+                {
+                    showAddressHigh = (byte)0xbf;
+                    showAddressLow = (byte)0xf0;
+                }
                 if(count == 1000){
                     //tvDataContent.setText("["+getResources().getString(R.string.rawdata)+"]");
                     showRawdata();
@@ -2331,4 +2484,45 @@ public class DataAnalysis extends AppCompatActivity
         // unregisterReceiver(mUsbDetachedReceiver);
         unregisterReceiver(daOpenDevicesReceiver);
     }
+
+    //第一次点击事件发生的时间
+    //private long mExitTime;
+
+    /**
+     * 点击两次返回退出app
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            /*
+            if ((System.currentTimeMillis() - mExitTime) > 2000) {
+                Object mHelperUtils;
+                Toast.makeText(this, "再按一次退出APP", Toast.LENGTH_SHORT).show();
+                //System.currentTimeMillis()系统当前时间
+                mExitTime = System.currentTimeMillis();
+            } else {
+                finish();
+            }
+
+             */
+            if ((showFlag) > 0 && (showFlag != 4))
+            {
+                showFlag = 5;
+
+                btn_RawdataShow.setEnabled(true);
+                btn_DiffdataShow.setEnabled(true);
+                btn_ReffdataShow.setEnabled(true);
+                btn_ManualdiffdataShow.setEnabled(true);
+                btn_Manualreff.setEnabled(false);
+                btn_Test.setEnabled(true);
+
+            }
+            else
+            {
+                finish();
+            }
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
 }

+ 97 - 135
app/src/main/java/com/example/administrator/wingcool_gt9_apk/FirmwareUpdate.java

@@ -80,7 +80,6 @@ public class FirmwareUpdate extends AppCompatActivity
     private byte[] mSendData = new byte[1024];
     private byte[] mConfigData = new byte[1024];
     private String[] mVersionShow = new String[16];
-   // byte mSendData[] = null;
 
     private boolean isReceiverMessage = true;
     private boolean isSendMessage = true;
@@ -117,20 +116,18 @@ public class FirmwareUpdate extends AppCompatActivity
     int FW_DSP_ISP_OFFSET	=	(FW_GWAKE_OFFSET + FW_GWAKE_LENGTH);
 
     private byte mSendGetGt9VersionData[]={
-            0x03,0x00,0x0f,(byte)0x81,0x40,0x00,0x06,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
+        0x03,0x00,0x0f,(byte)0x81,0x40,0x00,0x06,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     };
 
     private Button btn_update;
     private Button btn_AutoUpdate;
-    //private RadioGroup rad_group;
 
     private Button search_button;
     private TextView edit_search;
@@ -150,7 +147,6 @@ public class FirmwareUpdate extends AppCompatActivity
         public void handleMessage(Message msg) {
 
             StringBuilder stringBuilder = new StringBuilder("");
-            StringBuffer resultSb = new StringBuffer();
             // for (int i = 1; i < mBytes.length; i++) {
             int checksum = 0 ;
             switch (msg.what) {
@@ -192,7 +188,6 @@ public class FirmwareUpdate extends AppCompatActivity
 
                 case DEBUG_MESSAGE_SUCCESS://成功发送数据
                     //StringBuilder stringBuilder = new StringBuilder("");
-                    // StringBuffer resultSb = new StringBuffer();
 
                     checksum = 0 ;
                     for (int i = 0; i < 216; i++) {
@@ -355,42 +350,40 @@ public class FirmwareUpdate extends AppCompatActivity
         mThreadPool.execute(new Runnable() {
             @Override
             public void run() {
-                SystemClock.sleep(1000);
-                PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ACTION_USB_PERMISSION), 0);
-                IntentFilter intentFilter = new IntentFilter(USB_ACTION);
-
-                registerReceiver(fwOpenDevicesReceiver, intentFilter);
-                while(isNeedFindDevice) {
-                    SystemClock.sleep(100);
-                    HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
-                    if (deviceList != null) {
-                        for (UsbDevice usbDevice : deviceList.values()) {
-                            //int productId = usbDevice.getProductId();
-                            int vendorId = usbDevice.getVendorId();
-                            if ((vendorId == 0x27C0)
-                                    ||(vendorId == 0x222A)    //奕力的VID
-                                    ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
-                            {
-                                if (mUsbManager.hasPermission(usbDevice)) {
-                                    initDevice();
+            SystemClock.sleep(1000);
+            PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ACTION_USB_PERMISSION), 0);
+            IntentFilter intentFilter = new IntentFilter(USB_ACTION);
+
+            registerReceiver(fwOpenDevicesReceiver, intentFilter);
+            while(isNeedFindDevice) {
+                SystemClock.sleep(100);
+                HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
+                if (deviceList != null) {
+                    for (UsbDevice usbDevice : deviceList.values()) {
+                        //int productId = usbDevice.getProductId();
+                        int vendorId = usbDevice.getVendorId();
+                        if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                            ||(vendorId == 0x27C6)    //汇顶的VID
+                            ||(vendorId == 0x222A)    //奕力的VID
+                            ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
+                        {
+                            if (mUsbManager.hasPermission(usbDevice)) {
+                                initDevice();
 
-                                } else {
+                            } else {
 
-                                    //String avalue = "S818 IS NOT PERMISSION";
-                                    //mShow.setText(avalue);//输出显示
-                                    mUsbManager.requestPermission(usbDevice, pendingIntent);
-                                    break;
-                                }
+                                //String avalue = "S818 IS NOT PERMISSION";
+                                //mShow.setText(avalue);//输出显示
+                                mUsbManager.requestPermission(usbDevice, pendingIntent);
                                 break;
                             }
+                            break;
                         }
-                    } else {
-                        //mError.setText("请连接USB");
                     }
-                    // }
                 }
-            }   //ThreadPool
-        });   //ThreadPool
+            }
+        }   //ThreadPool
+    });   //ThreadPool
     }
 
     /**
@@ -404,9 +397,10 @@ public class FirmwareUpdate extends AppCompatActivity
             for (UsbDevice usbDevice : values) {
                 int vendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if ((vendorId == 0x27C0)
-                        ||(vendorId == 0x222A)    //奕力的VID
-                        ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
+                if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                    ||(vendorId == 0x27C6)    //汇顶的VID
+                    ||(vendorId == 0x222A)    //奕力的VID
+                    ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {
 
                     if (mUsbManager.hasPermission(usbDevice)) {
@@ -457,7 +451,6 @@ public class FirmwareUpdate extends AppCompatActivity
                                 } else {
                                     //if(0x80 == mUsbEndpointIn)
                                     //mlog1.setEnabled(true);
-                                    //mToggle = false;
                                     //isDetached = true;
                                     isNeedFindDevice = false;
                                     // mSendMessage.setEnabled(true);
@@ -476,8 +469,6 @@ public class FirmwareUpdate extends AppCompatActivity
                     }
                 }
             }
-        } else {
-            // finish();
         }
     }
 
@@ -546,11 +537,9 @@ public class FirmwareUpdate extends AppCompatActivity
                     }
                 }
 
-
                 break;
 
             case R.id.btnAutoUpdate:
-              //  mThreadPool.shutdownNow();
                 bottonMode = 3;
                 isReceiverMessage = false;  //升级关闭循环接收信息
                 //mSendData = mSendGetGt9VersionData;
@@ -559,7 +548,6 @@ public class FirmwareUpdate extends AppCompatActivity
                 //mHandler.sendEmptyMessage(UPDATE_FW);
                 break;
             case R.id.btnUpdate:
-                //  mThreadPool.shutdownNow();
                 bottonMode = 4;
                 isReceiverMessage = false;  //升级关闭循环接收信息
                 //mSendData = mSendGetGt9VersionData;
@@ -574,7 +562,7 @@ public class FirmwareUpdate extends AppCompatActivity
         }
 
 
-       while (isSendMessage) {
+        while (isSendMessage) {
             /**
              * 发送数据的地方 , 只接受byte数据类型的数据
              */
@@ -583,7 +571,6 @@ public class FirmwareUpdate extends AppCompatActivity
             //String c_value = "SENDING";
             // mShow.setText(c_value);//输出显示
 
-
             j = j +1;
             if(1000 == j) {
                 j = 0;
@@ -594,7 +581,7 @@ public class FirmwareUpdate extends AppCompatActivity
             // UsbEndpoint
             //int i = mUsbDeviceConnection.controlTransfer(0x21, 0x09, 0x301, 0, mSendGetGt9VersionData, mSendGetGt9VersionData.length, 100);
             //
-           if (null != mUsbEndpointOut) {
+            if (null != mUsbEndpointOut) {
               //  if ((null != mUsbEndpointOut) && (bottonMode != 1)) {
                 //mSendGetGt9ConfigData  mSendGetGt9VersionData
                 int i = -1;
@@ -632,17 +619,9 @@ public class FirmwareUpdate extends AppCompatActivity
                 //int i =0;
 
 
-            } else {
-
-                //mlog1.setEnabled(true);
-
             }
 
         }
-
-          //  }
-       // });
-        // }
     }
 
     protected void onActivityResult ( int requestCode, int resultCode, Intent data){
@@ -656,27 +635,27 @@ public class FirmwareUpdate extends AppCompatActivity
     }
 
     private byte iicByteData[]={
-            //0    1   2     3    4    5    6
-            0x03,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        //0    1   2     3    4    5    6
+        0x03,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 
     };
     private byte iicWriteData[]={
-            //0    1   2     3    4    5    6
-            0x03,0x00,0x0f,0x00,0x00,0x00,0x39,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        //0    1   2     3    4    5    6
+        0x03,0x00,0x0f,0x00,0x00,0x00,0x39,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 
     };
 
@@ -839,13 +818,6 @@ public class FirmwareUpdate extends AppCompatActivity
             return false;
     }
 
-    private boolean iicTest() {
-        if(isReceiverMessage)
-            return false;
-
-        return true;
-    }
-
     //发送命令,使得S818可以通过IIC向GT9的固定地址读取1byte数据
     private byte iicByteRead(byte addressHigh,byte addressLow) {
         iicByteData[1] = 0x00; //read GT9 command
@@ -1075,7 +1047,7 @@ public class FirmwareUpdate extends AppCompatActivity
 
     }
 
-    byte[] mGt9FirmwareData = new byte[88*1024+512];
+    byte[] mGt9FirmwareData = new byte[88 * 1024 + 512];
     /**
     public void readFile() throws IOException {
         //打开文件输入流
@@ -1240,31 +1212,27 @@ public class FirmwareUpdate extends AppCompatActivity
         //return false;
         //int mOffset = mGt9FirmwareData.length - mDspIsplength;
 
-//mGt9FirmwareData
-if(true) {
-    if (mGt9FirmwareData[1] == 0x01 && mGt9FirmwareData[2] == 0x60) {
-        if (!iicWrite(maddressHigh, maddressLow, mGt9FirmwareData, FW_DSP_ISP_OFFSET, FW_DSP_ISP_LENGTH)) {
-            // FwUpdateMessage(L"Set boot from sram failed", MSG_ERR);
-           // mError.setText("burn 4k dsp_isp failed");
-            Update_log = "burn 4k dsp_isp failed";
-            mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
+        if (mGt9FirmwareData[1] == 0x01 && mGt9FirmwareData[2] == 0x60) {
+            if (!iicWrite(maddressHigh, maddressLow, mGt9FirmwareData, FW_DSP_ISP_OFFSET, FW_DSP_ISP_LENGTH)) {
+                // FwUpdateMessage(L"Set boot from sram failed", MSG_ERR);
+               // mError.setText("burn 4k dsp_isp failed");
+                Update_log = "burn 4k dsp_isp failed";
+                mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
 
-            return false;
+                return false;
 
+            } else {
+                //mError.setText("burn 4k dsp_isp successed");
+                Update_log = "burn 4k dsp_isp successed";
+                mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
+            }
         } else {
-            //mError.setText("burn 4k dsp_isp successed");
-            Update_log = "burn 4k dsp_isp successed";
+           // mError.setText("get FW data error, burn 4k dsp_isp failed");
+            Update_log = "get FW data error, burn 4k dsp_isp failed";
             mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-        }
-    } else {
-       // mError.setText("get FW data error, burn 4k dsp_isp failed");
-        Update_log = "get FW data error, burn 4k dsp_isp failed";
-        mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-
 
-
-        return false;
-    }
+            return false;
+        }
 
         // if (!recallCheck(maddressHigh, maddressLow, mGt9FirmwareData, FW_DSP_ISP_OFFSET, FW_DSP_ISP_LENGTH)) {
         maddressHigh = (byte) 0xC0;
@@ -1291,42 +1259,37 @@ if(true) {
             }
         }
 
+        maddressHigh = (byte) 0x42;
+        maddressLow = (byte) 0x18;   //_rRW_MISCTL__BOOT_OPT_B0_   4
+        msubcommand = 0x0f;  //no command
+        mdata = (byte) 0x00;
 
-    maddressHigh = (byte) 0x42;
-    maddressLow = (byte) 0x18;   //_rRW_MISCTL__BOOT_OPT_B0_   4
-    msubcommand = 0x0f;  //no command
-    mdata = (byte) 0x00;
-
-    if (!iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata)) {
-        //mError.setText("set scramble failed");
-        Update_log = "set scramble failed";
-        mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-        return false;
-    }
+        if (!iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata)) {
+            //mError.setText("set scramble failed");
+            Update_log = "set scramble failed";
+            mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
+            return false;
+        }
 
-    maddressHigh = (byte) 0x40;
-    maddressLow = (byte) 0x48;   //_bRW_MISCTL__SRAM_BANK   5
-    msubcommand = 0x0f;  //no command
-    mdata = (byte) 0x03;
-
-    if (!iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata)) {
-        //mError.setText("select bank3 failed");
-        Update_log = "select bank3 failed";
-        mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-        return false;
-    }
+        maddressHigh = (byte) 0x40;
+        maddressLow = (byte) 0x48;   //_bRW_MISCTL__SRAM_BANK   5
+        msubcommand = 0x0f;  //no command
+        mdata = (byte) 0x03;
 
+        if (!iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata)) {
+            //mError.setText("select bank3 failed");
+            Update_log = "select bank3 failed";
+            mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
+            return false;
+        }
 
-}
         return true;
-//return false;
+
     }
 
     byte[] eraseBuf = new byte[0x800+0x1000];
     private boolean eraseBootLoader() {
 
-
-
         //memset(pBuf, 0xFF, 0x800);
         for (int i = 0; i < 0x1800; i++)
         {
@@ -2437,7 +2400,6 @@ if(true) {
         }
         mUsbEndpointIn = null;
         mUsbEndpointOut = null;
-        //mToggle = false;
         isReceiverMessage = false;
         isNeedFindDevice = false;
         mThreadPool.shutdownNow();

+ 4 - 2
app/src/main/java/com/example/administrator/wingcool_gt9_apk/GT9MainActivity.java

@@ -563,7 +563,8 @@ public class GT9MainActivity extends AppCompatActivity
                             for (UsbDevice usbDevice : deviceList.values()) {
                                 //int productId = usbDevice.getProductId();
                                 iVendorId = usbDevice.getVendorId();
-                                if ((iVendorId == 0x27C0)
+                                if ((iVendorId == 0x27C0)          //之前VID错误了,做兼容
+                                        ||(iVendorId == 0x27C6)    //汇顶的VID
                                         ||(iVendorId == 0x222A)    //奕力的VID
                                         ||(iVendorId == 0x056A))   //8191主动笔和Wacom主动笔
                                 {
@@ -617,7 +618,8 @@ public class GT9MainActivity extends AppCompatActivity
                 //int productId = usbDevice.getProductId();
                 iVendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if (( iVendorId == 0x27C0)
+                if ((iVendorId == 0x27C0)          //之前VID错误了,做兼容
+                        ||(iVendorId == 0x27C6)    //汇顶的VID
                         ||(iVendorId == 0x222A)    //奕力的VID
                         ||(iVendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {

+ 4 - 2
app/src/main/java/com/example/administrator/wingcool_gt9_apk/IICOperation.java

@@ -406,7 +406,8 @@ public class IICOperation extends AppCompatActivity
                         for (UsbDevice usbDevice : deviceList.values()) {
                             //int productId = usbDevice.getProductId();
                             int vendorId = usbDevice.getVendorId();
-                            if ((vendorId == 0x27C0)
+                            if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                                    ||(vendorId == 0x27C6)    //汇顶的VID
                                     ||(vendorId == 0x222A)    //奕力的VID
                                     ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                             {
@@ -443,7 +444,8 @@ public class IICOperation extends AppCompatActivity
                 //int productId = usbDevice.getProductId();
                 int vendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if ((vendorId == 0x27C0)
+                if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                        ||(vendorId == 0x27C6)    //汇顶的VID
                         ||(vendorId == 0x222A)    //奕力的VID
                         ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {

+ 4 - 2
app/src/main/java/com/example/administrator/wingcool_gt9_apk/NoiseAnalysis.java

@@ -428,7 +428,8 @@ public class NoiseAnalysis extends AppCompatActivity implements OpenDevicesRecei
                         for (UsbDevice usbDevice : deviceList.values()) {
                             //int productId = usbDevice.getProductId();
                             int vendorId = usbDevice.getVendorId();
-                            if ((vendorId == 0x27C0)
+                            if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                                    ||(vendorId == 0x27C6)    //汇顶的VID
                                     ||(vendorId == 0x222A)    //奕力的VID
                                     ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                             {
@@ -467,7 +468,8 @@ public class NoiseAnalysis extends AppCompatActivity implements OpenDevicesRecei
                 //int productId = usbDevice.getProductId();
                 int vendorId = usbDevice.getVendorId();
                 //if (productId == 0x0818 || productId == 0x0001 )
-                if ((vendorId == 0x27C0)
+                if ((vendorId == 0x27C0)          //之前VID错误了,做兼容
+                        ||(vendorId == 0x27C6)    //汇顶的VID
                         ||(vendorId == 0x222A)    //奕力的VID
                         ||(vendorId == 0x056A))   //8191主动笔和Wacom主动笔
                 {

+ 5 - 5
app/src/main/res/values-en/strings.xml

@@ -62,12 +62,12 @@
     <string name="stop">Stop</string>
     <string name="cfgerror">Read cfg fail,please manually enter the Sen and Drv numbers</string>
     <string name="thresholdlimit">The minimum threshold cannot be greater than or less than 1/2 of the maximum threshold</string>
-    <string name="startmaxmintest">Start test max and min value,</string>
+    <string name="startmaxmintest">Start open-circuit test,</string>
     <string name="sampling">sampling</string>
     <string name="frame">frame</string>
-    <string name="maxmintestfinish">Max and min value tests are finished.</string>
-    <string name="maxoutrange">Maximum is out of Threshold!</string>
-    <string name="maxisrisk">Maximum value is in the critical range, there is a risk!</string>
+    <string name="maxmintestfinish">Open-circuit test is finished.</string>
+    <string name="maxoutrange">The channels are open or the data is too attenuated!</string>
+    <string name="maxisrisk">Data attenuation is too large, there is a risk!</string>
     <string name="minoutrange">Minimum is out of Threshold!</string>
     <string name="minisrisk">Minimum value is in the critical range, there is a risk!</string>
     <string name="testpass">Test pass!</string>
@@ -99,7 +99,7 @@
     <string name="companyaddr">Address:Room 2008, Chuangxingda Business Building, No.36 Liuxian 3rd Road, Baoan District, Shenzhen</string>
     <string name="telephonenum">Telephone:186 8896 1937</string>
     <string name="emailaddr">Email:max@wingcool.cn</string>
-    <string name="version">APK Version:v1.1.3_20210826-Release Version</string>
+    <string name="version">APK Version:v1.1.3_20210914-Release Version</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>

+ 5 - 5
app/src/main/res/values/strings.xml

@@ -62,12 +62,12 @@
     <string name="stop">停 止</string>
     <string name="cfgerror">Cfg读取错误,请手动输入要显示的行列数</string>
     <string name="thresholdlimit">最小值阈值不能大于最大值阈值,或小于最大值阈值的1/2</string>
-    <string name="startmaxmintest">开始进行最大最小值测试,</string>
+    <string name="startmaxmintest">开始进行开路测试,</string>
     <string name="sampling">采样第</string>
     <string name="frame">帧</string>
-    <string name="maxmintestfinish">最大最小值测试完成,</string>
-    <string name="maxoutrange">最大值超限!</string>
-    <string name="maxisrisk">最大值在临界范围,存在风险!</string>
+    <string name="maxmintestfinish">开路测试完成,</string>
+    <string name="maxoutrange">通道开路或数据衰减过大!</string>
+    <string name="maxisrisk">数据衰减过大,存在风险!</string>
     <string name="minoutrange">最小值超限!</string>
     <string name="minisrisk">最小值在临界范围,存在风险!</string>
     <string name="testpass">测试通过!</string>
@@ -99,7 +99,7 @@
     <string name="companyaddr">地址:深圳市宝安区留仙三路 36 号创兴达商务大厦 2008 室</string>
     <string name="telephonenum">电话:186 8896 1937</string>
     <string name="emailaddr">邮箱:max@wingcool.cn</string>
-    <string name="version">APK版本:v1.1.3_20210826-发布版本</string>
+    <string name="version">APK版本:v1.1.3_20210914-发布版本</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>