| 
					
				 | 
			
			
				@@ -87,6 +87,8 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private byte byProductType = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final byte GT9 = 0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final byte GT7 = 0x02; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final byte GT29336 = 0x03; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final byte GT2931 = 0x04; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Button mReadCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Button mSendCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private byte[] mBytes = new byte[2048]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1985,12 +1987,21 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             mUsbDeviceConnection.claimInterface(mUsbInterface, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if(null != mUsbEndpointIn){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 iProductId = usbDevice.getProductId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if ((iProductId == 0x0819) || (iProductId == 0x8191) || (iProductId == 0x0528) ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     byProductType = GT7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    byProductType = GT9; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    byProductType = GT29336; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (iProductId == 0x0829) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    byProductType = GT29336; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    byProductType = GT2931; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 mHandler.sendEmptyMessage(CONNECTED_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3209,6 +3220,7 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         byte addressH; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         byte addressL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        byte addrfirstbyte, addrsecondbyte, addrthirdbyte; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int checksum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int checksum2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int ichecksumhead; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3550,9 +3562,21 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 mBufferData[iconfiglen + 64 - 2] = (byte)((lchecksum & 0x00ff0000) >> 16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 mBufferData[iconfiglen + 64 - 1] = (byte)((lchecksum & 0xff000000) >> 24); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                iicWrite32Bits((byte)0x01, (byte)0x3B, (byte)0x74, mBufferData,0,iconfiglen + 64); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (byProductType == GT29336) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrfirstbyte = (byte)0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrsecondbyte = (byte)0x3B; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrthirdbyte = (byte)0x74; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrfirstbyte = (byte)0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrsecondbyte = (byte)0x21; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrthirdbyte = (byte)0x8C; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicWrite32Bits(addrfirstbyte, addrsecondbyte, addrthirdbyte, mBufferData,0,iconfiglen + 64); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!recallCheck((byte)0x01, (byte)0x3B, (byte)0x74, mBufferData, 0, iconfiglen + 64)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!recallCheck(addrfirstbyte, addrsecondbyte, addrthirdbyte, mBufferData, 0, iconfiglen + 64)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     stMessageLog = "Recall check config error!!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     stMessageLogShow = stMessageLogShow.concat(stMessageLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3581,6 +3605,12 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         stMessageLogShow = stMessageLogShow.concat(stMessageLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else if (mBytes[0] == (byte)0x01) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        stMessageLog = "receive finish!!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        stMessageLogShow = stMessageLogShow.concat(stMessageLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3599,6 +3629,12 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (mBytes[0] == (byte)0x01) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        stMessageLog = "receive finish!!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        stMessageLogShow = stMessageLogShow.concat(stMessageLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //mShow.setText("Send cfg finish!!"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3606,33 +3642,33 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 stMessageLogShow = stMessageLogShow.concat(stMessageLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 mShow.setText(stMessageLogShow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //将checksum填入配置中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //if (checksum % 256 == 0)  //校验和正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //mBufferData[184] = (byte) (256 - checksum % 256); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // mShow.setText("Cfg Checksum  re-calculation!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //将checksum填入配置中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //if (checksum % 256 == 0)  //校验和正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //mBufferData[184] = (byte) (256 - checksum % 256); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // mShow.setText("Cfg Checksum  re-calculation!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //更新配置标志位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //mBufferData[185] = 0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //mSendData = mBufferData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //扩展命令  0x03,0x01,0x0f,-128,0x47,0x00,0x39, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //addressH = (byte) 0x80; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //addressL = (byte) 0x47; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //iicWrite(addressH, addressL, mBufferData, 0, 186); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //if (!recallCheck(addressH, addressL, mBufferData, 0, 185)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    mShow.setText("Recall check error,Send cfg failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    mShow.setText("Recall check success,Send cfg success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //更新配置标志位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //mBufferData[185] = 0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //mSendData = mBufferData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //扩展命令  0x03,0x01,0x0f,-128,0x47,0x00,0x39, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //addressH = (byte) 0x80; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //addressL = (byte) 0x47; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //iicWrite(addressH, addressL, mBufferData, 0, 186); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //if (!recallCheck(addressH, addressL, mBufferData, 0, 185)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    mShow.setText("Recall check error,Send cfg failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    mShow.setText("Recall check success,Send cfg success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //if (iChooseVPager == 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    mCfg80FF.setText(Integer.toHexString(mBufferData[184] & 0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //if (iChooseVPager == 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    mCfg80FF.setText(Integer.toHexString(mBufferData[184] & 0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case R.id.readcfg:  //read cfg 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3642,170 +3678,137 @@ public class Config extends AppCompatActivity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 checksum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 checksum2 = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (byProductType == GT9) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read [0x10174] = 0x80 or 0x01,表示上条命令已执行完毕,或当前固件处于空闲状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SystemClock.sleep(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }while((mBytes[0] != 0x80) && (mBytes[0] != 0x01)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //send 0x00 0x00 0x04 0x07 0x0B 0x00 to [0x10174],通知GT29XX,要读cfg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[0] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[1] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[2] = 0x04; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[3] = 0x07; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[4] = 0x0B; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[5] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicWrite32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes,0,6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read [0x10175] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x75, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //}while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read [0x10174] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //SystemClock.sleep(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read buffer [0x13B74] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicRead32Bits((byte)0x01, (byte)0x3B, (byte)0x74, mBytes, 63);  //read config head 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    int iConfigSize = 64 + (int)(mBytes[60] & 0xFF) * 256 + (mBytes[59] & 0xFF);   //the head lend is 64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicRead32Bits((byte)0x01, (byte)0x3B, (byte)0x74, mBytes, iConfigSize);  //read config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (int i = 0; i < iConfigSize; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        int k = mBytes[i] & 0xFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        checksum =checksum+ k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        String hv = Integer.toHexString(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (hv.length() < 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            hv = "0" + hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mConfigShow[i] = hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append("0x" + hv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgRam(mConfigShow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read [0x10174] = 0x80 or 0x01,表示上条命令已执行完毕,或当前固件处于空闲状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SystemClock.sleep(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }while((mBytes[0] != 0x80) && (mBytes[0] != 0x01)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    edtConfigDataShow.setText(stringBuilder.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //send 0x00 0x00 0x04 0x07 0x0B 0x00 to [0x10174],通知GT29XX,要读cfg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[0] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[1] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[2] = 0x04; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[3] = 0x07; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[4] = 0x0B; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[5] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicWrite32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes,0,6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    SystemClock.sleep(5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //send 0x00 0x00 0x04 0x08 0x0C 0x00 to [0x10174],通知GT29XX,通信结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[0] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[1] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[2] = 0x04; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[3] = 0x08; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[4] = 0x0C; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mBytes[5] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicWrite32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 0, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read [0x10175] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x75, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //}while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read [0x10175] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x75, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //}while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read [0x10174] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //read [0x10175] = 0x80,read config is over 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //SystemClock.sleep(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //SystemClock.sleep(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (byProductType == GT29336) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrfirstbyte = (byte)0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrsecondbyte = (byte)0x3B; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrthirdbyte = (byte)0x74; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrfirstbyte = (byte)0x01; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrsecondbyte = (byte)0x21; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addrthirdbyte = (byte)0x8C; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicRead32Bits((byte)0x01, (byte)0x00, (byte)0x2B, mBytes, 4);  //read Sensor ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tvVenderID.setText("VenderID:"+Integer.toString(mBytes[0] & 0xFF)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read buffer [0x13B74]/[0X1218C] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicRead32Bits(addrfirstbyte, addrsecondbyte, addrthirdbyte, mBytes, 63);  //read config head 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    addressH = (byte)0x80; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    addressL = (byte)0x47; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicRead(addressH,addressL,mBytes,186); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int iConfigSize = 64 + (int)(mBytes[60] & 0xFF) * 256 + (mBytes[59] & 0xFF);   //the head lend is 64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (int i = 0; i < 186; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicRead32Bits(addrfirstbyte, addrsecondbyte, addrthirdbyte, mBytes, iConfigSize);  //read config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        int k = mBytes[i] & 0xFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        checksum =checksum+ k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        String hv = Integer.toHexString(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (hv.length() < 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            hv = "0" + hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mConfigShow[i] = hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append(hv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(checksum % 256 == 0)  //校验和正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mShow.setText("Cfg Checksum is correct!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mShow.setText("Cfg Checksum is error!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int i = 0; i < iConfigSize; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int k = mBytes[i] & 0xFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checksum =checksum+ k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String hv = Integer.toHexString(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (hv.length() < 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        hv = "0" + hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mConfigShow[i] = hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stringBuilder.append("0x" + hv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stringBuilder.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgSample(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgModuleSwitch(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgNormalSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgChannelSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgPenSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgPlamRestrain(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgKeySetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ReadCfgHoppingSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else{  //GT7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    addressH = (byte)0x80; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    addressL = (byte)0x50; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iicRead(addressH,addressL,mBytes,444); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (int i = 0; i < 444; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        int k = mBytes[i] & 0xFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (i < 213) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            checksum = checksum + k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            checksum2 = checksum2 + k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgRam(mConfigShow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        String hv = Integer.toHexString(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (hv.length() < 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            hv = "0" + hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mConfigShow[i] = hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append(hv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stringBuilder.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if((checksum % 256 == 0) && (checksum2 % 256 == 0))  //校验和正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mShow.setText("Cfg Checksum is correct!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mShow.setText("Cfg Checksum is error!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                edtConfigDataShow.setText(stringBuilder.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SystemClock.sleep(5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //send 0x00 0x00 0x04 0x08 0x0C 0x00 to [0x10174],通知GT29XX,通信结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[0] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[1] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[2] = 0x04; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[3] = 0x08; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[4] = 0x0C; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mBytes[5] = 0x00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicWrite32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 0, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read [0x10175] = 0x80,config is ready 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x75, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //}while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //read [0x10175] = 0x80,read config is over 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SystemClock.sleep(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    iicRead32Bits((byte)0x01, (byte)0x01, (byte)0x74, mBytes, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }while(mBytes[0] != (byte)0x80); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //SystemClock.sleep(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicRead32Bits((byte)0x01, (byte)0x00, (byte)0x2B, mBytes, 4);  //read Sensor ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tvVenderID.setText("VenderID:"+Integer.toString(mBytes[0] & 0xFF)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addressH = (byte)0x80; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addressL = (byte)0x47; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                iicRead(addressH,addressL,mBytes,186); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int i = 0; i < 186; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int k = mBytes[i] & 0xFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checksum =checksum+ k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String hv = Integer.toHexString(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (hv.length() < 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        hv = "0" + hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mConfigShow[i] = hv; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stringBuilder.append(hv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stringBuilder.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(checksum % 256 == 0)  //校验和正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mShow.setText("Cfg Checksum is correct!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mShow.setText("Cfg Checksum is error!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //ReadCfgRam(mConfigShow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgSample(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgModuleSwitch(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgNormalSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgChannelSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgPenSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgPlamRestrain(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgKeySetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ReadCfgHoppingSetting(mBytes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //addressH = (byte)0x81; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //if (byProductType == GT7) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //    addressH = (byte)0x82; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //addressL = (byte)0x40; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //iicRead(addressH,addressL,mBytes,32); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //tvVenderID.setText("VenderID:"+Integer.toString(mBytes[10] & 0xFF)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case R.id.savecfg: 
			 |