Skip to content

Commit d6a347d

Browse files
WallaceSitWallaceSit
authored andcommitted
V2.1.28 Release
V2.1.28: • Try improving “Selected tag in Xerves.Scan page sometimes cannot present in the TagID of Xerves.Security page” problem • Try improving “Huawei phone cannot read temperature or logging of Fudan tags” problem V2.1.27: • Solve “after doing EPC+Brand_identifier+TID_check inventory, selecting a tag, backing to Home page and going to GeigerSearch page, doing GeigerSearch inventory. Then no selected tag is returned” problem V2.1.26A: • Solve “filter is turned on after doing EPC+Brand_identifier inventory, selecting a tag, backing to Home page and going to GeigerSearch page, doing GeigerSearch inventory. Then no selected tag is returned plus filter on when going to filter page.” problem V2.1.26: • Modify the selection sequence for “EPC+TID” and “EPC+Brand” inventory by reverting selections -select EPC 0x203/204 first with action 0 and select TID with action 2 • Change the display or decoding of the brand not due to E2806894 within the TID as TID may not be shown as compact inventory may be used in Ucode8 inventory • Change the decoding of the brand / extended Tid not due to E2806894 within the TID as compact inventory is used in Ucode8 “EPC+TID” or “EPC+Brand_identifier” inventory • Avoid new null extra bank data overwriting the valid old extra bank data for the tag with same Epc during multi-bank inventory. • Set “EP+Brand_identifier” as default Ucode8.configuration page • Add “EPC + Brand_identifier + TID check” inventory which does the same as “EPC + Brand identifier” but using normal inventory with TID multibank read • Remove the multibank read for “EPC+TID” and “EPC+Brand” inventory and use compact inventory for these two inventories • Skip the inventory record if there is no E2806894 found in “EPC+TID” or “EPC+Brand identifier+TID Check” inventory V2.1.25: • Correct the “0x901 brandid bit cannot be reset” problem, which causes changing id in normal inventory after ucode8 inventory • Revise to make abortOperatoin is the first commands when pressing back key during inventorying ucode8 tags. V2.1.24: • Assume connection failure if there are 5 writeCharacteristic failures. This may avoid looping at sending data. • Revise to make abortOperatoin is the first commands when (a) after connection (b) pressing back key during inventorying AuraSense tags, impinj tags, ucode8 tags, magnus and xerses tags. And add abortOperation command when destroying during inventory. This helps avoiding possible data sending when there is possible incoming inventory data. • Revise the minimum RFID firmware version to 2.6.43 which handle Ucode8 in -7 device • Assign different fragment to Em4325.One-Shot and Em4325.Logging pages, which are same segment in previous version • Add length checking during xpc decoding to avoid possible exception. V2.1.23: • Add column select for “time”, “timezone”, “location”, “direction” for CSV format in Setting.Administration page • Handle the exception just after exception as one more permission is deleted in previous version V2.1.22: • Add checkbox selection for the columns(res.bank, epc bank, tid bank, user bank, phase, channel and others) in CSV format in Setting.Administration page • Saving some columns in saving CSV file as per Setting.Administration page setting. • Remove “sequence number”, “number of tags”, “smart phone serial number”, “smart phone bluetooth MAC”, “smart phone Wifi MAC” info from CSV file • Solve “barcode serial number is not shown in csv file” for the first time saving. V2.1.21: • Remove showing “Initialing reader. Please wait” progress dialog when returning from other pages to Home page • Try improving “showing progress dialog continuously when returning from other pages sometimes’ problem. V2.1.20: • Try improving “hard to get the S3 tags in Megus s3 inventory page” problem. V2.1.19: • Correct “exception exit when measuring hot air temperature in Em4325 pages” • Remove the configuration section, BAP section and write button in Em4325.One-Shot page • For the temperature section in Em4325.One-shot page, remove checkpoint and alarm. And enlarge the font of the remained temperature information. V2.1.18: • Within EM4325 page, change tab name “Passive” to “One-shot”, “Configuration” to “Logging” • Within EM4335 page, reverse the tab order of “One-shot” and “Logging” • Delete the unused code V2.1.17: • Within EM4325 page, add Passive tab which does not have logging related control • In Passive tab of Em4325 page, Read temperature will set the BAP to disable before reading temperature to handle possible tag with BAP enable but without battery • Correct “last result from get logging is zero degree for some tags” in em4325.configuration page • Add checking of a written register before starting logging in em4325.configuration page to try avoiding possible wrong hang-up logging • Revise the ways to get smart phone serial number and wifi/bluetooth mac for some higher android version in file saving • Add other non-repeated data in CSV format in file saving • Add header for repeated data in CSV format in file saving • Remove some repeated data (accessPassword, killPassword and antenna port) in CSV format in file saving • Remove sub-header(such as PC=) of repeated data in CSV file saving • Add formatting data to some repeated data (PC, EPC, Bank Data, Time) in CSV format in file saving, so that Excel can reconsider them as String instead of number • Modify the extension from txt to csv in CSV file saving so that Excel can open the file without import V2.1.16: • Change from reading user memory 0x100 to using new command to read the temperature in Em4325.Configuration page • Add some debug message for the possible looping at runnableConfiguring routine • Add reading user memory 0x188 during inventory in Em4325.Scan page so that possible CS model can be found • Add JSON/CSV saving format selection in Settings.Adminstration page • Change ‘BAP status’ to ‘BAP mode’ in Em4325.Configuration page • Remove some unused routines
1 parent 9a68af8 commit d6a347d

36 files changed

+1143
-2499
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ android {
77
minSdkVersion 19
88
targetSdkVersion 30
99
versionCode 31
10-
versionName "2.1.15"
10+
versionName "2.1.28"
1111
}
1212
}
1313

app/src/main/java/com/csl/cs108ademoapp/AccessTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public enum TaskCancelRReason {
3434
long timeMillis, startTimeMillis, runTimeMillis;
3535
int accessError, backscatterError;
3636
boolean timeoutError, crcError;
37-
String resultError = "";
37+
public String resultError = "";
3838
boolean success;
3939
boolean done = false;
4040
boolean ending = false;
@@ -233,7 +233,7 @@ else if (repeat && (nextNew == false || resultError.length() != 0)) {
233233
else if (notificationData != null) {
234234
//MainActivity.mCs108Library4a.appendToLog("resultError=" + MainActivity.mCs108Library4a.byteArrayToString(notificationData));
235235
publishProgress("Received notification uplink event 0xA101 with error code=" + MainActivity.mCs108Library4a.byteArrayToString(notificationData));
236-
taskCancelReason = TaskCancelRReason.TIMEOUT;
236+
taskCancelReason = TaskCancelRReason.ERROR;
237237
}
238238
if (System.currentTimeMillis() - timeMillis > iTimeOut) {
239239
//MainActivity.mCs108Library4a.appendToLog("endingMessage: iTimeout = " + iTimeOut);

app/src/main/java/com/csl/cs108ademoapp/InventoryRfidTask.java

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ protected String doInBackground(Void... a) {
198198
long firstTimeOld = 0, timeMillisSound = 0; int totalOld = 0;
199199
@Override
200200
protected void onProgressUpdate(String... output) {
201+
if (false) MainActivity.mCs108Library4a.appendToLog("InventoryRfidTask: output[0] = " + output[0]);
201202
if (output[0] != null) {
202203
if (output[0].length() == 1) inventoryHandler_endReason();
203204
else if (output[0].length() == 2) {
@@ -307,7 +308,7 @@ void inventoryHandler_tag() {
307308
MainActivity.mCs108Library4a.appendToLog("HelloK: strMdid = " + strMdid + ", MainMdid = " + MainActivity.mDid + ", bFastId = " + bFastId);
308309

309310
int iPc = Integer.parseInt(strPc, 16);
310-
String strXpc = null; int iSensorData = ReaderDevice.INVALID_SENSORDATA; if ((iPc & 0x0200) != 0) {
311+
String strXpc = null; int iSensorData = ReaderDevice.INVALID_SENSORDATA; if ((iPc & 0x0200) != 0 && strEpc != null && strEpc.length() >= 8) {
311312
int iXpcw1 = Integer.parseInt(strEpc.substring(0, 4), 16);
312313
if ((iXpcw1 & 0x8000) != 0) {
313314
strXpc = strEpc.substring(0, 8);
@@ -349,27 +350,47 @@ void inventoryHandler_tag() {
349350
}
350351
if (bValidFastId == false) return;
351352
MainActivity.mCs108Library4a.appendToLog("HelloK: Doing IMPINJ Inventory with strMdid = " + strMdid + ", strEpc1 = " + strEpc1 + ":, strTid = " + strTid);
352-
} else if (strMdid != null && MainActivity.mDid != null) {
353+
} else if (MainActivity.mDid != null) {
354+
MainActivity.mCs108Library4a.appendToLog("HelloK: MainActivity.mDid = " + MainActivity.mDid);
353355
if (MainActivity.mDid.matches("E2806894B")) {
354356
if (strEpc.length() >= 24) {
355357
String strEpc1 = strEpc.substring(0, strEpc.length() - 24);
356358
String strTid = strEpc.substring(strEpc.length() - 24, strEpc.length());
359+
MainActivity.mCs108Library4a.appendToLog("HelloK: matched E2806894B with strEpc = " + strEpc + ", strEpc1 = " + strEpc1 + ", strTid = " + strTid + ", strExtra1 = " + strExtra1);
360+
boolean matched = true;
357361
if (strExtra1 != null) {
358-
if (strExtra1.length() == 8 && strTid.contains(strExtra1)) {
359-
strEpc = strEpc1; strAddresss = strEpc;
360-
strExtra2 = strTid;
361-
extra2Bank = 2;
362-
data2_offset = 0;
363-
}
362+
if (!(strExtra1.length() == 8 && strTid.contains(strExtra1))) matched = false;
363+
}
364+
if (matched) {
365+
strEpc = strEpc1;
366+
strAddresss = strEpc;
367+
strExtra2 = strTid;
368+
extra2Bank = 2;
369+
data2_offset = 0;
370+
}
371+
if (strTid.contains("E2806894") == false) {
372+
MainActivity.mCs108Library4a.appendToLog("HelloK: Skip the record without strExtra1 E2806894: " + strEpc);
373+
return;
364374
}
365375
}
366-
} else if (MainActivity.mDid.matches("E2806894C")) {
367-
if (strExtra1 != null && strEpc.length() >= 4) {
368-
if (strExtra1.contains("E2806894")) {
369-
String strEpc1 = strEpc.substring(0, strEpc.length() - 4);
370-
String strTid = strEpc.substring(strEpc.length() - 4, strEpc.length());
376+
} else if (MainActivity.mDid.matches("E2806894C") || MainActivity.mDid.matches("E2806894d")) {
377+
if (strEpc.length() >= 4) {
378+
String strEpc1 = strEpc.substring(0, strEpc.length() - 4);
379+
String strBrand = strEpc.substring(strEpc.length() - 4, strEpc.length());
380+
MainActivity.mCs108Library4a.appendToLog("HelloK: matched E2806894B with strEpc = " + strEpc + ", strEpc1 = " + strEpc1 + ", strBrand = " + strBrand + ", strExtra1 = " + strExtra1);
381+
boolean matched = true;
382+
if (strExtra1 != null || MainActivity.mDid.matches("E2806894d")) {
383+
if (!(strExtra1 != null && strExtra1.length() == 8 && strExtra1.contains("E2806894"))) {
384+
matched = false;
385+
if (MainActivity.mDid.matches("E2806894d")) {
386+
MainActivity.mCs108Library4a.appendToLog("HelloK: Skip the record without strExtra1 E2806894: " + strEpc);
387+
return;
388+
}
389+
}
390+
}
391+
if (matched) {
371392
strEpc = strEpc1; strAddresss = strEpc;
372-
brand = strTid;
393+
brand = strBrand;
373394
MainActivity.mCs108Library4a.appendToLog("HelloK: brand 1 = " + brand + ", strEpc = " + strEpc);
374395
}
375396
}
@@ -429,7 +450,14 @@ void inventoryHandler_tag() {
429450
readerDevice.setBrand(brand);
430451
readerDevice.setCodeTempC(codeTempC);
431452
readerDevice.setSensorData(iSensorData);
432-
readerDevice.setExtra(strExtra1, extra1Bank, data1_offset, strExtra2, extra2Bank, data2_offset);
453+
if (strExtra1 != null) readerDevice.setExtra1(strExtra1, extra1Bank, data1_offset);
454+
else if (readerDevice.getstrExtra1() != null) {
455+
MainActivity.mCs108Library4a.appendToLog("HelloK: no null replacement of StrExtra1");
456+
}
457+
if (strExtra2 != null) readerDevice.setExtra2(strExtra2, extra2Bank, data2_offset);
458+
else if (readerDevice.getstrExtra2() != null) {
459+
MainActivity.mCs108Library4a.appendToLog("HelloK: no null replacement of StrExtra2");
460+
}
433461
tagsList.set(iMatchItem, readerDevice);
434462
match = true;
435463
updated = true;

app/src/main/java/com/csl/cs108ademoapp/MainActivity.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -174,16 +174,6 @@ public void run() {
174174
CustomProgressDialog progressDialog;
175175
private void selectItem(DrawerPositions position) {
176176
Log.i(TAG, "MainActivity.selectItem: position = " + position);
177-
if (false && position != DrawerPositions.MAIN && position != DrawerPositions.ABOUT && position != DrawerPositions.CONNECT && mCs108Library4a != null) {
178-
if (MainActivity.mCs108Library4a.isRfidFailure() == false && mCs108Library4a.mrfidToWriteSize() != 0) {
179-
if (configureDisplaying == false) {
180-
progressDialog = new CustomProgressDialog(this, "Initializing reader. Please wait.");
181-
progressDialog.show();
182-
mHandler.post(configureRunnable);
183-
}
184-
return;
185-
}
186-
}
187177
if (true && position != DrawerPositions.MAIN && position != DrawerPositions.ABOUT && position != DrawerPositions.CONNECT && mCs108Library4a.isBleConnected() == false) {
188178
Toast.makeText(MainActivity.mContext, "Bluetooth Disconnected. Please Connect.", Toast.LENGTH_SHORT).show();
189179
return;
@@ -208,7 +198,6 @@ private void selectItem(DrawerPositions position) {
208198
fragment = new InventoryRfidSearchFragment();
209199
break;
210200
case MULTIBANK:
211-
mDid = null;
212201
fragment = InventoryRfidiMultiFragment.newInstance(true, null);
213202
break;
214203
case SETTING:

0 commit comments

Comments
 (0)