public void writeTestCaseResultIntoSN2(String writeStr, int position, int len)
{
String sn = null;
String sn2 = null;
int SN2Size = 23;
if (len != writeStr.length()) {
// write string's length is not identical
return;
}
// Get the whole sn2 string first
com.spreadst.validationtools.engtools.engfetch mEf = new com.spreadst.validationtools.engtools.engfetch();
int dataSize = 2048;
byte[] inputBytes = new byte[dataSize];
int showlen = mEf.enggetphasecheck(inputBytes, dataSize);
Log.d("writeTestCaseResultIntoSN2", "showlen = " + showlen);
sn = new String(inputBytes, 0, showlen);
Log.d("writeTestCaseResultIntoSN2", "sn = " + sn);
sn = sn.replaceAll("(?s)DOWNLOAD.*", "").trim();
Log.d("writeTestCaseResultIntoSN2", "sn = " + sn);
String array[] = sn.split("sn2:");
sn2 = array[array.length - 1];
// modify the sn2 string
String str1 = sn2.substring(0, position);
String str2 = sn2.substring(position + len, sn2.length());
String sn2New = str1 + writeStr + str2;
// write the sn2 string
mEf.engwritesn2(sn2New.getBytes(), SN2Size);
}
int engapi_writesn2(void* buf, int size)
{
int fd = 0;
int ret = 0;
int readsize = 0;
char *str = buf;
char ATCmd[1024] = {0};
char temp[1024] = {0};
SP09_PHASE_CHECK_T phasecheck = {0};
SP09_PHASE_CHECK_T phasecheckModify = {0};
ENG_LOG("engapi_writesn2: buf = %x, size = %d", buf, size);
if ((buf == NULL) || (size != SP09_MAX_SN_LEN))
{
return 22;
}
ENG_LOG("engapi_writesn2: 2");
ret = eng_getphasecheck(&phasecheck);
ENG_LOG("engapi_writesn2: 3");
memcpy(&phasecheckModify, &phasecheck, sizeof(SP09_PHASE_CHECK_T));
ENG_LOG("engapi_writesn2: ret = %d", ret);
if (ret == 0)
{
memcpy(&phasecheckModify.SN2, buf, size);
ENG_LOG("engapi_writesn2: SN2 = %s", phasecheckModify.SN2);
memcpy(&phasecheck, &phasecheckModify, sizeof(SP09_PHASE_CHECK_T));
fd = engapi_open(0);
ENG_LOG("engapi_writesn2: fd = %d", fd);
if(fd < 0)
{
return 22;
}
HexConvertAscii(&phasecheck, sizeof(SP09_PHASE_CHECK_T), temp);
sprintf(ATCmd, "%d,%d,%s %x, \"%s\", %d", ENG_AT_NOHANDLE_CMD, 1, "AT+SPPRODUCT=", 0, temp, strlen(temp));
ENG_LOG("engapi_writesn2: 4");
engapi_write(fd, ATCmd, sizeof(ATCmd));
ENG_LOG("engapi_writesn2: 5");
memset(ATCmd, 0, sizeof(ATCmd));
ENG_LOG("engapi_writesn2: 6");
engapi_read(fd, ATCmd, strlen(ATCmd));
ENG_LOG("engapi_writesn2: ATCmd = %s", ATCmd);
engapi_close(fd);
readsize = strlen(ATCmd);
return readsize;
}
else
{
return 22;
}
}
工程模式代码调用writeTestCaseResultIntoSN2("O", 4, 1);
writeTestCaseResultIntoSN2通过JNI调用engapi_writesn2