ソースを参照

v2.0.1_20211015-内部版本,因为读取数据显示慢,所以修改了间隔几帧再读取显示,坐标上报也更快,这对调试没有影响

robbin 3 年 前
コミット
9b1a7a0822

+ 92 - 69
app/src/main/java/com/example/administrator/wingcool_gt9_apk/DataAnalysis.java

@@ -110,7 +110,8 @@ public class DataAnalysis extends AppCompatActivity
     private TextView tvDataContent;  //显示当前处于何种数值模式:原始值、差值、基准……
     private TextView tvMAD;          //显示最大相邻偏差
     private TextView mtextView;
-    private byte byDisplayFrame;   //间隔显示帧数
+    private byte byDisplayFrame = 12;   //间隔显示帧数
+    private byte byDisplayFrameCount = 12;   //用于间隔显示计数
 
     public String stTestLog;   //最大最小值测试信息存放字符串
     String stTestLogShow= "";  //最大最小值测试信息合并起来存放字符串
@@ -964,14 +965,14 @@ public class DataAnalysis extends AppCompatActivity
             return 0x77;  //用0x77来表示传输失败
 
         //SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
-        SystemClock.sleep(110);  //加长时间,避免数据显示错乱乱闪
+        SystemClock.sleep(24);  //加长时间,避免数据显示错乱乱闪
 
         isReceiverMessage = false;  //先关闭循环接收信息
 
         i = mUsbDeviceConnection.bulkTransfer(mUsbEndpointIn, mBytes, 0, 0x40, 3000);
 
         //SystemClock.sleep(12);  //加长时间,避免数据显示错乱乱闪
-        SystemClock.sleep(110);  //加长时间,避免数据显示错乱乱闪
+        SystemClock.sleep(24);  //加长时间,避免数据显示错乱乱闪
 
         if (i == 0x40)
             return mBytes[1];
@@ -1062,6 +1063,15 @@ public class DataAnalysis extends AppCompatActivity
 
                 byte syncFlag = 1;
 
+                byte maddressHigh = (byte) 0x81;
+                byte maddressLow = (byte) 0x4E;  //SYNC address
+                byte msubcommand = (byte) 0x0f;
+                byte mdata = (byte) 0x00;
+
+                if (byProductType == GT7) {
+                    maddressHigh = (byte) 0x82;
+                }
+
                 if (showFlag == 6)
                 {
                     btTestStep = 1;  //
@@ -1094,14 +1104,14 @@ public class DataAnalysis extends AppCompatActivity
 
                     while(true) {
                         //轮询读取0x814E,如果非0,则读取rawdata
-                        byte maddressHigh = (byte) 0x81;
+                        maddressHigh = (byte) 0x81;
                         if (byProductType == GT7)
                         {
                             maddressHigh = (byte) 0x82;
 
                         }
 
-                        byte maddressLow = (byte) 0x4E;
+                        maddressLow = (byte) 0x4E;
                         syncFlag = iicByteRead(maddressHigh, maddressLow);
 
                         //while ((syncFlag == 0 )|| (syncFlag == 0x77)) {
@@ -1111,80 +1121,77 @@ public class DataAnalysis extends AppCompatActivity
                         }
                         else
                         {
-                            if(count == 0) {
-                                //mHandler.sendEmptyMessage(LOG2_MESSAGE);
-                            }
-                            else {
-                                // mHandler.sendEmptyMessage(SEND_MESSAGE_SUCCESS); //清空文本框
-                            }
-                            for (int i = 0; i <mRawdataBytes.length; i++)
-                            {
-                                mRawdataBytes[i] = (byte)0x00;
+                            if (showFlag != 6) {
+                                if (byDisplayFrame == byDisplayFrameCount) {
+                                    for (int i = 0; i < mRawdataBytes.length; i++) {
+                                        mRawdataBytes[i] = (byte) 0x00;
+                                    }
+                                }
                             }
+
                             break;
                         }
                     }
+                    if ((byDisplayFrame == byDisplayFrameCount) || (showFlag == 6)) {
 
-                    if (getRawdata() == true) {
-
-                        switch (showFlag) {
-                            case 1:// rawdata
-                                //if (byDisplayFrame == 5){
-                                //    byDisplayFrame = 0;
-                                //
-                                //    mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
-                                //}else
-                                //{
-                                //    byDisplayFrame++;
-                                //}
-                                mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
+                        if (showFlag != 6) {
+                            byDisplayFrameCount = 0;
+                        }
 
-                                break;
-                            case 2://manual diff
-                                if(count == 999)   //第一帧备份rawdata作为基准
-                                {
-                                    if (byProductType == GT7)
+                        if (getRawdata() == true) {
+
+                            switch (showFlag) {
+                                case 1:// GT9XXX and GT7XXX rawdata
+                                case 7:// GT7XXX diffdata
+
+                                    mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
+
+                                    break;
+                                case 2://manual diff
+                                    if (count == 999)   //第一帧备份rawdata作为基准
                                     {
-                                        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++;
+                                        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);
-                                // mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
-                                break;
-                            case 3://diffdata
-                                mHandler.sendEmptyMessage(DIFF_MESSAGE);
-                                break;
-                            case 5:  //stop
-                                showFlag = 4;
-                                count = 1000;
-                                btTestStep = 0;
-                                changeToNormalMode();
-                                break;
-                            case 6:  //test
-                                mHandler.sendEmptyMessage(TEST_DATA_MESSAGE);
-                                break;
+                                    mHandler.sendEmptyMessage(MANUALDIFF_MESSAGE);
+                                    // mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
+                                    break;
+                                case 3://diffdata
+                                    mHandler.sendEmptyMessage(DIFF_MESSAGE);
+                                    break;
+                                case 5:  //stop
+                                    showFlag = 4;
+                                    count = 1000;
+                                    btTestStep = 0;
+                                    changeToNormalMode();
+                                    break;
+                                case 6:  //test
+                                    mHandler.sendEmptyMessage(TEST_DATA_MESSAGE);
+                                    break;
+                            }
+                        } else {
+                            iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata);
                         }
+
                     }
-                    else
-                    {
-                        mHandler.sendEmptyMessage(CLEAR_MESSAGE); //清空文本框
-                        //break;
-                    }
+                    else{
+                        byDisplayFrameCount++;
 
-                    // }
-                    //SystemClock.sleep(50);
+                        iicByteWrite(maddressHigh, maddressLow, msubcommand, mdata);
+                    }
                 }
             }   //ThreadPool
         });   //ThreadPool
@@ -1237,6 +1244,11 @@ public class DataAnalysis extends AppCompatActivity
                                 if (byProductType == GT7)  //GT7的低位在前
                                 {
                                     datatemp[i] = ((mRawdataBytes[idtemp + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp] & 0xFF);
+
+                                    if ((showFlag == 7) && (datatemp[i] > 10)){  //GT7XXX diffdata
+                                        textView.setTextColor(Color.parseColor("#FF0000"));
+                                    }
+
                                 }else{
                                     datatemp[i] = ((mRawdataBytes[idtemp] & 0xFF) << 8) + (mRawdataBytes[idtemp + 1] & 0xFF);
                                 }
@@ -2830,7 +2842,13 @@ public class DataAnalysis extends AppCompatActivity
         textGridLayout.setColumnCount(colnum + 1);
         textGridLayout.setRowCount(rownum);
 
-        byDisplayFrame = 0;
+        byDisplayFrame = 7;
+        byDisplayFrameCount = 7;
+        if (byProductType == GT7)  //GT7 数据多,要多加时间间隔
+        {
+            byDisplayFrame = 14;
+            byDisplayFrameCount = 14;
+        }
 
         btn_RawdataShow.setEnabled(false);
         btn_DiffdataShow.setEnabled(false);
@@ -2863,7 +2881,7 @@ public class DataAnalysis extends AppCompatActivity
                 showFlag = 3;
                 if (byProductType == GT7)
                 {
-                    showFlag = 1; //GT7系列的差值是2bytes,按照RawData的方式去显示
+                    showFlag = 7; //GT7系列的差值是2bytes,按照RawData的方式去显示
                 }
 
                 changeToDebugMode();
@@ -2893,7 +2911,12 @@ public class DataAnalysis extends AppCompatActivity
                 tvDataContent.setText("[" + getResources().getString(R.string.reffdata) + "]");
                 getRawdata();
                 mHandler.sendEmptyMessage(RAWDATA_MESSAGE);
-
+                btn_RawdataShow.setEnabled(true);
+                btn_DiffdataShow.setEnabled(true);
+                btn_ReffdataShow.setEnabled(true);
+                btn_ManualdiffdataShow.setEnabled(true);
+                //btn_Manualreff.setEnabled(false);
+                btn_Test.setEnabled(true);
                 break;
 
             case R.id.manualdiff:

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

@@ -100,7 +100,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:v2.0.1_20211013-Debug Version</string>
+    <string name="version">APK Version:v2.0.1_20211015-Debug Version</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>

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

@@ -100,7 +100,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版本:v2.0.1_20211013-内部版本</string>
+    <string name="version">APK版本:v2.0.1_20211015-内部版本</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>