Procházet zdrojové kódy

1、修改了数据显示的速度,在获取到数据之后开始计算数值,Handler负责排列和显示
2、修改S838+GT9110H的短路测试不能进入测试的问题

robbin před 3 roky
rodič
revize
424dbc9f47

+ 112 - 49
app/src/main/java/com/example/administrator/wingcool_gt9_apk/DataAnalysis.java

@@ -47,8 +47,9 @@ public class DataAnalysis extends AppCompatActivity
     private Context mAlertContext;
     //MainActivity mMainAct = new MainActivity();
     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 int[] mManualRefInt = new int[44 * 72 + 64];
+    private int[] datatemp = new int[44 * 72 + 64];
+    private int[] iDataShow = new int[44 * 72 + 64];
     private static final int RAWDATA_MESSAGE = 0;
     private static final int LOG1_MESSAG = 1;
     private static final int CLEAR_MESSAGE= 2;
@@ -112,8 +113,8 @@ public class DataAnalysis extends AppCompatActivity
     private TextView tvDataContent;  //显示当前处于何种数值模式:原始值、差值、基准……
     private TextView tvMAD;          //显示最大相邻偏差
     private TextView mtextView;
-    private byte byDisplayFrame = 12;   //间隔显示帧数
-    private byte byDisplayFrameCount = 12;   //用于间隔显示计数
+    private byte byDisplayFrame = 8;   //间隔显示帧数
+    private byte byDisplayFrameCount = 8;   //用于间隔显示计数
 
     public String stTestLog;   //最大最小值测试信息存放字符串
     String stTestLogShow= "";  //最大最小值测试信息合并起来存放字符串
@@ -124,6 +125,8 @@ public class DataAnalysis extends AppCompatActivity
     private byte showFlag = 0;  //
     private byte btTestStep = 0;
 
+    private boolean bShowDataFlag = false;
+
     private EditText edtShortCircuitInfo;  //the info of short circuit test
 
     private GridLayout textGridLayout;
@@ -1020,6 +1023,55 @@ public class DataAnalysis extends AppCompatActivity
             return false;
         }
 
+        int tempcol = 0;
+        int i = 0;
+
+        if (showFlag != 8)  {
+            //控制行数
+            for (int row = 0; row < rownum; row++) {  //Sen
+                //控制列数
+                for (int col = 0; col < colnum; col++) {  //Drv
+
+                    int idtemp = (row + tempcol * rownum);
+
+                    switch (showFlag){
+                        case 1:  //GT9的rawdata
+                        case 2:  //manual diffdata
+                        case 4:  //reffdata
+                        case 7:  //GT7的rawdata低位在前
+                            idtemp = idtemp * 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);
+                            }
+                            break;
+
+                        case 3:  //GT9的diffdata
+                            datatemp[i] = (mRawdataBytes[idtemp] & 0xFF);
+                            break;
+
+                        default:
+                            break;
+                    }
+
+                    tempcol++;
+
+                    i++;
+                }
+                tempcol = 0;
+            }
+        }
+
+        while(bShowDataFlag == true){  //上一次的数据显示还没结束则一直等待
+            SystemClock.sleep(1);
+        }
+
+        for (i = 0; i < 72 * 44; i++) {
+            iDataShow[i] = datatemp[i];
+        }
+
         maddressHigh = (byte)0x81;
         if (byProductType == GT7)
         {
@@ -1124,7 +1176,7 @@ public class DataAnalysis extends AppCompatActivity
                     }
                     if (byDisplayFrame == byDisplayFrameCount) {
 
-                        if ((showFlag != 6) && (showFlag != 8) && (showFlag != 5)) {  //测试模式、读取主动笔数据和停止时
+                        if ((showFlag != 6) && (showFlag != 8) && (showFlag != 5) && (count < 999)) {  //测试模式、读取主动笔数据和停止时
                             byDisplayFrameCount = 0;
                         }
 
@@ -1141,16 +1193,16 @@ public class DataAnalysis extends AppCompatActivity
                                     if (count == 999)   //第一帧备份rawdata作为基准
                                     {
                                         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++;
+                                            for (int i = 0; i < 44 * 72; i++) {
+                                                //int j = i / 2;
+                                                mManualRefInt[i] = iDataShow[i];//((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++;
+                                            for (int i = 0; i < 42 * 30; i++) {
+                                                //int j = i / 2;
+                                                mManualRefInt[i] = iDataShow[i];//((mRawdataBytes[i] & 0xFF) << 8) + (mRawdataBytes[i + 1] & 0xFF);
+                                                //i++;
                                             }
                                         }
 
@@ -1195,7 +1247,6 @@ 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) {
@@ -1209,6 +1260,9 @@ public class DataAnalysis extends AppCompatActivity
             int maxdata;
             int mindata;
             int itemp;  //临时存放
+
+            bShowDataFlag = true;  //开始显示
+
             switch (msg.what) {
                 case RAWDATA_MESSAGE://
 
@@ -1237,32 +1291,32 @@ public class DataAnalysis extends AppCompatActivity
                                 //stringBuilder.append("│");
 
                             }else{
-                                idtemp = (row + tempcol * rownum) * 2;
+                                //idtemp = (row + tempcol * rownum) * 2;
                                 if (byProductType == GT7)  //GT7的低位在前
                                 {
-                                    datatemp[i] = ((mRawdataBytes[idtemp + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp] & 0xFF);
+                                    //iDataShow[i] = ((mRawdataBytes[idtemp + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp] & 0xFF);
 
-                                    if ((showFlag == 7) && (datatemp[i] > 10)){  //GT7XXX diffdata
+                                    if ((showFlag == 7) && (iDataShow[i] > 10)){  //GT7XXX diffdata
                                         textView.setTextColor(Color.parseColor("#FF0000"));
                                     }
 
                                 }else{
-                                    datatemp[i] = ((mRawdataBytes[idtemp] & 0xFF) << 8) + (mRawdataBytes[idtemp + 1] & 0xFF);
+                                    //iDataShow[i] = ((mRawdataBytes[idtemp] & 0xFF) << 8) + (mRawdataBytes[idtemp + 1] & 0xFF);
                                 }
 
-                                dv = Integer.toString(datatemp[i]);
+                                dv = Integer.toString(iDataShow[i]);
 
                                 //stringBuilder.append(dv + "│");
 
                                 tempcol++;
 
                                 //获取最大值
-                                if (datatemp[i] > maxdata){
-                                    maxdata = datatemp[i];
+                                if (iDataShow[i] > maxdata){
+                                    maxdata = iDataShow[i];
                                 }
                                 //获取最小值
-                                if (datatemp[i] < mindata){
-                                    mindata = datatemp[i];
+                                if (iDataShow[i] < mindata){
+                                    mindata = iDataShow[i];
                                 }
 
                                 i++;
@@ -1324,8 +1378,8 @@ public class DataAnalysis extends AppCompatActivity
                                 //stringBuilder.append(dv);
                                 //stringBuilder.append("│");
                             }else{
-                                idtemp = row + tempcol * rownum;
-                                datatemp[i] = (mRawdataBytes[idtemp] & 0xFF);
+                                //idtemp = row + tempcol * rownum;
+                                //datatemp[i] = (mRawdataBytes[idtemp] & 0xFF);
                                 dv = Integer.toString(datatemp[i]);
 
                                 //stringBuilder.append(dv + "│");
@@ -1366,6 +1420,9 @@ public class DataAnalysis extends AppCompatActivity
                     tvMinimum.setText(Integer.toString(mindata));
                     break;
                 case  MANUALDIFF_MESSAGE:
+
+
+
                     textGridLayout.removeAllViews();
                     maxdata = -32767;
                     mindata = 32768;
@@ -1388,33 +1445,33 @@ public class DataAnalysis extends AppCompatActivity
 
                             }else{
 
-                                idtemp = row + tempcol * rownum;
-                                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);
-                                }
+                                //idtemp = row + tempcol * rownum;
+                                //if (byProductType == GT7)  //GT7的低位在前
+                                //{
+                                //    iDataShow[i] = ((mRawdataBytes[idtemp * 2 + 1] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2] & 0xFF);
+                                //}else{
+                                //    iDataShow[i] = ((mRawdataBytes[idtemp * 2] & 0xFF) << 8) + (mRawdataBytes[idtemp * 2 + 1] & 0xFF);
+                                //}
 
-                                datatemp[i] = mManualRefInt[idtemp] - datatemp[i];
-                                dv = Integer.toString(datatemp[i]);
+                                iDataShow[i] = mManualRefInt[i] - iDataShow[i];
+                                dv = Integer.toString(iDataShow[i]);
 
                                 //stringBuilder.append(dv + "│");
 
                                 tempcol++;
 
                                 //获取最大值
-                                if (datatemp[i] > maxdata){
-                                    maxdata = datatemp[i];
+                                if (iDataShow[i] > maxdata){
+                                    maxdata = iDataShow[i];
                                 }
                                 //获取最小值
-                                if (datatemp[i] < mindata){
-                                    mindata = datatemp[i];
+                                if (iDataShow[i] < mindata){
+                                    mindata = iDataShow[i];
                                 }
 
-                                if (datatemp[i] > 30){
+                                if (iDataShow[i] > 30){
                                     textView.setTextColor(Color.parseColor("#FF0000"));
-                                }else if (datatemp[i] < -30){
+                                }else if (iDataShow[i] < -30){
                                     textView.setTextColor(Color.parseColor("#0000FF"));
                                 }
 
@@ -1436,6 +1493,8 @@ public class DataAnalysis extends AppCompatActivity
                     //mtextView.setText(stringBuilder.toString());
                     tvMaximum.setText(Integer.toString(maxdata));
                     tvMinimum.setText(Integer.toString(mindata));
+
+
                     break;
 
                 case TEST_DATA_MESSAGE:  //
@@ -1659,7 +1718,9 @@ public class DataAnalysis extends AppCompatActivity
 
                 default:
                     break;
-            }
+            }   //end of switch (msg.what)
+
+            bShowDataFlag = false;  //显示结束
         }
     };
 
@@ -1768,8 +1829,9 @@ public class DataAnalysis extends AppCompatActivity
             msubcommand =0x0f ;  //no command
             mdata = (byte)0x0C;
 
-            if(!iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata))
-                return false;
+            iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata);
+            //if(!iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata))
+            //    return false;
 
             SystemClock.sleep(30);
 
@@ -1777,8 +1839,9 @@ public class DataAnalysis extends AppCompatActivity
             maddressLow = (byte)0xB0;  //_bRW_MISCTL__TMR0_EN
             mdata = (byte)0x00;
 
-            if(!iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata))
-                return false;
+            iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata);
+            //if(!iicByteWrite(maddressHigh,maddressLow,msubcommand,mdata))
+            //    return false;
 
             SystemClock.sleep(14);
         }
@@ -2883,12 +2946,12 @@ public class DataAnalysis extends AppCompatActivity
             textGridLayout.setRowCount(rownum);
         }
         
-        byDisplayFrame = 7;
-        byDisplayFrameCount = 7;
+        byDisplayFrame = 0;
+        byDisplayFrameCount = 0;
         if (byProductType == GT7)  //GT7 数据多,要多加时间间隔
         {
-            byDisplayFrame = 16;
-            byDisplayFrameCount = 16;
+            byDisplayFrame = 8;
+            byDisplayFrameCount = 8;
         }
 
         btn_RawdataShow.setEnabled(false);

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

@@ -105,7 +105,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.2.0_20211228-Release Version</string>
+    <string name="version">APK Version:v2.2.1_20220118-Debug Version</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>

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

@@ -105,7 +105,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.2.0_20211228-发布版本</string>
+    <string name="version">APK版本:v2.2.1_20220118-debug版本</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>