|
@@ -3396,10 +3396,14 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
//------------------------------------GT7 short circuit test code end------------------------------------------------------------------//
|
|
|
|
|
|
//------------------------------------GT29xx short circuit test code start-------------------------------------------------------------//
|
|
|
+ int gnDrvMaxNum; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+ int gnSenMaxNum; //gnSenMaxNum最大75
|
|
|
private int GetDriverChn(int iNumber)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
+ gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+
|
|
|
for (i = 0; i < gnDrvMaxNum; i++) {
|
|
|
if (bypCfgDrv[i] == iNumber)
|
|
|
{
|
|
@@ -3468,10 +3472,16 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
SystemClock.sleep(30);
|
|
|
|
|
|
- //read BLNB_SHORT_WAIT_T_ADDR [0x26AE0]
|
|
|
- if (iicRead32Bits((byte)0x02, (byte)0x6A, (byte)0xE0, mBytes, 2))
|
|
|
- {
|
|
|
- m_nTestPeriod = (mBytes[0] & 0xff) + ((int)(mBytes[1] & 0xff) << 8);
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_WAIT_T_ADDR [0x26AE0]
|
|
|
+ if (iicRead32Bits((byte) 0x02, (byte) 0x6A, (byte) 0xE0, mBytes, 2)) {
|
|
|
+ m_nTestPeriod = (mBytes[0] & 0xff) + ((int) (mBytes[1] & 0xff) << 8);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_WAIT_T_ADDR [0x14D7A]
|
|
|
+ if (iicRead32Bits((byte) 0x01, (byte) 0x4D, (byte) 0x7A, mBytes, 2)) {
|
|
|
+ m_nTestPeriod = (mBytes[0] & 0xff) + ((int) (mBytes[1] & 0xff) << 8);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
m_nTestPeriod += 100;
|
|
@@ -3556,7 +3566,7 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
SystemClock.sleep(30);
|
|
|
|
|
|
- //read BLNB_SHORT_TEST_CMD_ADDR [0x20402]
|
|
|
+ //read BLNB/BLND_SHORT_TEST_CMD_ADDR [0x20402]
|
|
|
if (!iicRead32Bits((byte)0x02, (byte)0x04, (byte)0x02, mBytes, 6))
|
|
|
{
|
|
|
return false;
|
|
@@ -3595,10 +3605,16 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
for (i = 0; i < 100; i++)
|
|
|
{
|
|
|
- //read buffer [0x020400]
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)0x04, (byte)0x00, mBytes, 1))
|
|
|
- {
|
|
|
- continue;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_TEST_STA_ADDR [0x020400]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) 0x04, (byte) 0x00, mBytes, 1)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_TEST_STA_ADDR [0x13400]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) 0x34, (byte) 0x00, mBytes, 1)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (mBytes[0] == (byte)0x88)
|
|
@@ -3620,14 +3636,20 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
int ichecksum;
|
|
|
|
|
|
//gnSenMaxNum最大75,gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
- byte[] pBuf = new byte[75 * 52 * 2];
|
|
|
+ //byte[] pBuf = new byte[75 * 52 * 2];
|
|
|
byte[] ShortResult = new byte[64];
|
|
|
//stBerlinShortResult short_res;
|
|
|
|
|
|
- //read buffer [0x020410]
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)0x04, (byte)0x10, ShortResult, 8))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_TEST_RES_ADDR [0x020410]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) 0x04, (byte) 0x10, ShortResult, 8)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_TEST_RES_ADDR [0x13408]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) 0x34, (byte) 0x08, ShortResult, 8)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
ichecksum = 0;
|
|
@@ -3691,20 +3713,32 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- int m_drv_gnd_vdd_resistor_threshold =500;
|
|
|
+ int m_drv_gnd_vdd_resistor_threshold = 500;
|
|
|
int m_sen_gnd_vdd_resistor_threshold = 500;
|
|
|
- int gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
- int gnSenMaxNum = 75; //gnSenMaxNum最大75
|
|
|
private boolean CheckGndVddShortChn()
|
|
|
{
|
|
|
boolean ret = true;
|
|
|
+
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+ gnSenMaxNum = 75; //gnSenMaxNum最大75
|
|
|
+ }else {
|
|
|
+ gnDrvMaxNum = 20; //gnDrvMaxNum最大20
|
|
|
+ gnSenMaxNum = 40; //gnSenMaxNum最大40
|
|
|
+ }
|
|
|
//CString str;
|
|
|
int nDataLen = (gnDrvMaxNum + gnSenMaxNum) * 2; //gnSenMaxNum最大75,gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
|
|
|
- //read buffer [0x269E0]
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)0x69, (byte)0xE0, mBytes, nDataLen))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_DIFFCODE_ADDR [0x269E0]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) 0x69, (byte) 0xE0, mBytes, nDataLen)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_DIFFCODE_ADDR [0x14D00]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) 0x4D, (byte) 0x00, mBytes, nDataLen)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
int i, j;
|
|
@@ -3725,7 +3759,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
if ((diff_code & 0x8000) == 0)//CHN_GND
|
|
|
{
|
|
|
- r = (float)((150500 / (float)diff_code) - 60);//TODO berlinD 145000 -15
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = (float) ((150500 / (float) diff_code) - 60);//berlinB
|
|
|
+ }else {
|
|
|
+ r = (float) ((145000 / (float) diff_code) - 15);//berlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn = GetDriverChn(chn);
|
|
@@ -3743,7 +3781,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
}
|
|
|
else {
|
|
|
diff_code &= (~0x8000); //CHN_VDD
|
|
|
- r = ((float)(1.25 * 1024 * (3.3 - 1.25) * 99) / (float)diff_code) - 60;//TODO berlinD *93 -20
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = ((float) (1.25 * 1024 * (3.3 - 1.25) * 99) / (float) diff_code) - 60;//berlinB
|
|
|
+ }else {
|
|
|
+ r = ((float) (1.25 * 1024 * (3.3 - 1.25) * 93) / (float) diff_code) - 20;//berlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn = GetDriverChn(chn);
|
|
@@ -3778,7 +3820,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
if ((diff_code & 0x8000) == 0)//CHN_GND
|
|
|
{
|
|
|
- r = (float)((150500 / (float)diff_code) - 60);//TODO BerlinB 145000 -15
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = (float) ((150500 / (float) diff_code) - 60);//BerlinB
|
|
|
+ }else {
|
|
|
+ r = (float) ((145000 / (float) diff_code) - 15);//BerlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn = GetSensorChn(chn);
|
|
@@ -3796,7 +3842,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
}
|
|
|
else {
|
|
|
diff_code &= (~0x8000); //CHN_VDD
|
|
|
- r = ((float)(1.25 * 1024 * (3.3 - 1.25) * 99) / (float)diff_code) - 60;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = ((float) (1.25 * 1024 * (3.3 - 1.25) * 99) / (float) diff_code) - 60;//BerlinB
|
|
|
+ }else {
|
|
|
+ r = ((float) (1.25 * 1024 * (3.3 - 1.25) * 93) / (float) diff_code) - 20;//BerlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn = GetSensorChn(chn);
|
|
@@ -3828,8 +3878,21 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
boolean ret = true;
|
|
|
//CString str;
|
|
|
|
|
|
+ int nAddr;
|
|
|
+
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ nAddr = 0x049A; //[0x2049A]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+ gnSenMaxNum = 75; //gnSenMaxNum最大75
|
|
|
+ }else {
|
|
|
+ nAddr = 0x344E; //[0x1344E]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 20; //gnDrvMaxNum最大20
|
|
|
+ gnSenMaxNum = 40; //gnSenMaxNum最大40
|
|
|
+ }
|
|
|
+
|
|
|
int size = 4 + 2 * gnDrvMaxNum + 2; //BERLIN_SHORT_HEAD是4
|
|
|
- int nAddr = 0x049A;
|
|
|
|
|
|
String chn_id1_isRx;
|
|
|
String chn_id2_isRx;
|
|
@@ -3837,11 +3900,16 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
int i;
|
|
|
for (i = 0; i < nNum; i++)
|
|
|
{
|
|
|
-
|
|
|
- //read buffer [0x2049A]
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)((nAddr & 0xff00) >> 8), (byte)(nAddr & 0xff), mBytes, size))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_TxTx_PIN_NUM_ADDR [0x2049A]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_TxTx_PIN_NUM_ADDR [0x1344E]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//str = L"";
|
|
@@ -3860,7 +3928,12 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
{
|
|
|
int chn_id2 = j;// +gnSenMaxNum;
|
|
|
|
|
|
- r = (float)(1.0 * self_code * 74 / short_code - 74) + 20;//TODO berlinD
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = (float)(1.0 * self_code * 74 / short_code - 74) + 20;//berlinB
|
|
|
+ }else {
|
|
|
+ r = (float)(1.0 * self_code * 70 / short_code - 70) + 59;//berlinD
|
|
|
+ }
|
|
|
+
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn_id1 = GetDriverChn(chn_id1);
|
|
@@ -3869,29 +3942,34 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
|
|
|
if (r < m_drv_drv_resistor_threshold && chn_id1 < 255 && chn_id2 < 255)
|
|
|
{
|
|
|
- //TX/RX可以互换,这里要做判断转换
|
|
|
- chn_id1_isRx = "Tx";
|
|
|
- if (chn_id1 < 9) //通道序号小于9时
|
|
|
- {
|
|
|
- //如果在driver配置里找不到该通道序号,说明改通道用作sensor
|
|
|
- if (GetDriverChn(chn_id1) == 255) {
|
|
|
- chn_id1 += 66;
|
|
|
- chn_id1_isRx = "Rx";
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //TX/RX可以互换,这里要做判断转换
|
|
|
+ chn_id1_isRx = "Tx";
|
|
|
+ if (chn_id1 < 9) //通道序号小于9时
|
|
|
+ {
|
|
|
+ //如果在driver配置里找不到该通道序号,说明改通道用作sensor
|
|
|
+ if (GetDriverChn(chn_id1) == 255) {
|
|
|
+ chn_id1 += 66;
|
|
|
+ chn_id1_isRx = "Rx";
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- chn_id2_isRx = "Tx";
|
|
|
- if (chn_id2 < 9) //通道序号小于9时
|
|
|
- {
|
|
|
- //如果在driver配置里找不到该通道序号,说明改通道用作sensor
|
|
|
- if (GetDriverChn(chn_id2) == 255) {
|
|
|
- chn_id2 += 66;
|
|
|
- chn_id2_isRx = "Rx";
|
|
|
+ chn_id2_isRx = "Tx";
|
|
|
+ if (chn_id2 < 9) //通道序号小于9时
|
|
|
+ {
|
|
|
+ //如果在driver配置里找不到该通道序号,说明改通道用作sensor
|
|
|
+ if (GetDriverChn(chn_id2) == 255) {
|
|
|
+ chn_id2 += 66;
|
|
|
+ chn_id2_isRx = "Rx";
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- Update_log = Update_log.concat("[Short-Circuit Test]" + chn_id1_isRx + Integer.toString(chn_id1) + " and " + chn_id2_isRx
|
|
|
- + Integer.toString(chn_id2) + ": " + Integer.toString((int)r) + "K Ohm\n");
|
|
|
+ Update_log = Update_log.concat("[Short-Circuit Test]" + chn_id1_isRx + Integer.toString(chn_id1) + " and " + chn_id2_isRx
|
|
|
+ + Integer.toString(chn_id2) + ": " + Integer.toString((int) r) + "K Ohm\n");
|
|
|
+ }else {
|
|
|
+ Update_log = Update_log.concat("[Short-Circuit Test]Tx" + Integer.toString(chn_id1) + " and Tx"
|
|
|
+ + Integer.toString(chn_id2) + ": " + Integer.toString((int)r) + "K Ohm\n");
|
|
|
+ }
|
|
|
|
|
|
mHandler.sendEmptyMessage(TEST_DATA_MESSAGE);
|
|
|
//str.Format(L"TX%d and TX%d: %dK ohm", chn_id1, chn_id2, (INT)r);
|
|
@@ -3918,15 +3996,34 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
boolean ret = true;
|
|
|
//CString str;
|
|
|
|
|
|
+ int nAddr;
|
|
|
+
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ nAddr = 0x1AF2; //[0x21AF2]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+ gnSenMaxNum = 75; //gnSenMaxNum最大75
|
|
|
+ }else {
|
|
|
+ nAddr = 0x37E6; //[0x137E6]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 20; //gnDrvMaxNum最大20
|
|
|
+ gnSenMaxNum = 40; //gnSenMaxNum最大40
|
|
|
+ }
|
|
|
+
|
|
|
int size = 4 + 2 * gnSenMaxNum + 2;
|
|
|
- int nAddr = 0x1AF2;
|
|
|
|
|
|
for (int i = 0; i < nNum; i++)
|
|
|
{
|
|
|
-
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)((nAddr & 0xff00) >> 8), (byte)(nAddr & 0x00ff), mBytes, size))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_TxTx_PIN_NUM_ADDR [0x21AF2]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_TxTx_PIN_NUM_ADDR [0x137E6]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//str = L"";
|
|
@@ -3944,7 +4041,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
{
|
|
|
int chn_id2 = j;
|
|
|
|
|
|
- r = (float)(1.0 * self_code * 74 / short_code - 74) + 20;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = (float)(1.0 * self_code * 74 / short_code - 74) + 20;//berlinB
|
|
|
+ }else {
|
|
|
+ r = (float)(1.0 * self_code * 70 / short_code - 70) + 59;//berlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn_id1 = GetSensorChn(chn_id1);
|
|
@@ -3981,8 +4082,21 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
boolean ret = true;
|
|
|
//CString str;
|
|
|
|
|
|
+ int nAddr;
|
|
|
+
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ nAddr = 0x48A6; //[0x248A6]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 52; //gnDrvMaxNum最大52(考虑可转换的通道)
|
|
|
+ gnSenMaxNum = 75; //gnSenMaxNum最大75
|
|
|
+ }else {
|
|
|
+ nAddr = 0x4556; //[0x14556]
|
|
|
+
|
|
|
+ gnDrvMaxNum = 20; //gnDrvMaxNum最大20
|
|
|
+ gnSenMaxNum = 40; //gnSenMaxNum最大40
|
|
|
+ }
|
|
|
+
|
|
|
int size = 4 + 2 * gnDrvMaxNum + 2;
|
|
|
- int nAddr = 0x48A6;
|
|
|
|
|
|
int i;
|
|
|
for (i = 0; i < nNum; i++)
|
|
@@ -3990,9 +4104,16 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
//str = L"";
|
|
|
float r = 0;
|
|
|
|
|
|
- if (!iicRead32Bits((byte)0x02, (byte)((nAddr & 0xff00) >> 8), (byte)(nAddr & 0x00ff), mBytes, size))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ //read BLNB_SHORT_TxTx_PIN_NUM_ADDR [0x248A6]
|
|
|
+ if (!iicRead32Bits((byte) 0x02, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //read BLND_SHORT_TxTx_PIN_NUM_ADDR [0x14556]
|
|
|
+ if (!iicRead32Bits((byte) 0x01, (byte) ((nAddr & 0xff00) >> 8), (byte) (nAddr & 0xff), mBytes, size)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
int chn_id1 = (int)(mBytes[1] & 0xFF) * 256 + (mBytes[0] & 0xFF);
|
|
@@ -4007,7 +4128,11 @@ public class DataAnalysis extends AppCompatActivity
|
|
|
{
|
|
|
int chn_id2 = j;
|
|
|
|
|
|
- r = (float)(1.0 * self_code * 74 / short_code - 74) + 20;
|
|
|
+ if (byProductType == GT29336) {
|
|
|
+ r = (float) (1.0 * self_code * 74 / short_code - 74) + 20;//berlinB
|
|
|
+ }else {
|
|
|
+ r = (float) (1.0 * self_code * 70 / short_code - 70) + 59;//berlinD
|
|
|
+ }
|
|
|
r = r >= 0 ? r : 0;
|
|
|
|
|
|
//chn_id1 = GetSensorChn(chn_id1);
|