diff --git a/app/build.gradle b/app/build.gradle
index 8541e1a..8a346c6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,8 +6,8 @@ android {
applicationId "com.csl.cs108ademoapp"
minSdkVersion 19
targetSdkVersion 30
- versionCode 30
- versionName "2.0.0"
+ versionCode 31
+ versionName "2.1.15"
}
}
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 85d4ee5..f4aba6a 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -10,8 +10,8 @@
{
"type": "SINGLE",
"filters": [],
- "versionCode": 30,
- "versionName": "2.0.0",
+ "versionCode": 29,
+ "versionName": "2.1.1",
"outputFile": "app-release.apk"
}
]
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cf57b0b..813f986 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,7 +16,7 @@
android:requestLegacyExternalStorage="true"
android:theme="@style/AppTheme">
-
@@ -26,7 +26,7 @@
diff --git a/app/src/main/java/com/csl/cs108ademoapp/AccessTask.java b/app/src/main/java/com/csl/cs108ademoapp/AccessTask.java
index adaaa09..9c9b4ab 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/AccessTask.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/AccessTask.java
@@ -111,12 +111,16 @@ void preExecute() {
//playerN.start();
buttonText = button.getText().toString().trim();
- String buttonText1 = null; String strLastChar = buttonText.substring(buttonText.length()-1);
- if (strLastChar.toUpperCase().matches("E")) {
- buttonText1 = buttonText.substring(0, buttonText.length()-1);
- } else if (buttonText.toUpperCase().matches("STOP")) {
- buttonText1 = buttonText; buttonText1 += buttonText1.substring(buttonText.length()-1);
- } else buttonText1 = buttonText;
+ String buttonText1 = ""; String strLastChar = "";
+ if (buttonText.length() != 0) {
+ strLastChar = buttonText.substring(buttonText.length() - 1);
+ if (strLastChar.toUpperCase().matches("E")) {
+ buttonText1 = buttonText.substring(0, buttonText.length() - 1);
+ } else if (buttonText.toUpperCase().matches("STOP")) {
+ buttonText1 = buttonText;
+ buttonText1 += buttonText1.substring(buttonText.length() - 1);
+ } else buttonText1 = buttonText;
+ }
if (repeat || buttonText.length() == 0) button.setText("Stop");
else {
if (Character.isUpperCase(strLastChar.charAt(0))) button.setText(buttonText1 + "ING");
@@ -188,6 +192,7 @@ protected String doInBackground(Void... a) {
Cs108Connector.Rx000pkgData rx000pkgData = MainActivity.mCs108Library4a.onRFIDEvent();
if (MainActivity.mCs108Library4a.mrfidToWriteSize() != 0) timeMillis = System.currentTimeMillis();
else if (rx000pkgData != null) {
+ //MainActivity.mCs108Library4a.appendToLog("rx000pkgData.responseType = " + rx000pkgData.responseType.toString());
if (rx000pkgData.responseType == null) {
publishProgress("null response");
} else if (rx000pkgData.responseType == Cs108Connector.HostCmdResponseTypes.TYPE_18K6C_TAG_ACCESS) {
@@ -195,17 +200,19 @@ else if (rx000pkgData != null) {
if (rx000pkgData.decodedError == null) {
if (done == false) {
accessResult = rx000pkgData.decodedResult;
- MainActivity.mCs108Library4a.appendToLog("StreamOut, accResult=" + accessResult);
+ //MainActivity.mCs108Library4a.appendToLog("StreamOut, accResult=" + accessResult);
if (updateRunnable != null) {
- MainActivity.mCs108Library4a.appendToLog("StreamOut: start updateRunnable");
+ //MainActivity.mCs108Library4a.appendToLog("StreamOut: start updateRunnable");
mHandler.post(updateRunnable);
}
}
done = true;
publishProgress(null, rx000pkgData.decodedResult);
+ } else {
+ //MainActivity.mCs108Library4a.appendToLog("decodeError = " + rx000pkgData.decodedError + ", length = " + rx000pkgData.decodedError.length());
+ publishProgress(rx000pkgData.decodedError);
}
- else publishProgress(rx000pkgData.decodedError);
- iTimeOut = 500;
+ iTimeOut = 1000;
}
} else if (rx000pkgData.responseType == Cs108Connector.HostCmdResponseTypes.TYPE_COMMAND_END) {
if (rx000pkgData.decodedError != null) { endingMessaage = rx000pkgData.decodedError; ending = true; }
@@ -224,17 +231,16 @@ else if (repeat && (nextNew == false || resultError.length() != 0)) {
timeMillis = System.currentTimeMillis();
}
else if (notificationData != null) {
- MainActivity.mCs108Library4a.appendToLog("resultError=" + MainActivity.mCs108Library4a.byteArrayToString(notificationData));
+ //MainActivity.mCs108Library4a.appendToLog("resultError=" + MainActivity.mCs108Library4a.byteArrayToString(notificationData));
publishProgress("Received notification uplink event 0xA101 with error code=" + MainActivity.mCs108Library4a.byteArrayToString(notificationData));
- timeMillis = System.currentTimeMillis();
- iTimeOut = 500;
+ taskCancelReason = TaskCancelRReason.TIMEOUT;
}
if (System.currentTimeMillis() - timeMillis > iTimeOut) {
- MainActivity.mCs108Library4a.appendToLog("endingMessage: iTimeout = " + iTimeOut);
+ //MainActivity.mCs108Library4a.appendToLog("endingMessage: iTimeout = " + iTimeOut);
taskCancelReason = TaskCancelRReason.TIMEOUT;
}
if (taskCancelReason != TaskCancelRReason.NULL) {
- MainActivity.mCs108Library4a.appendToLog("taskCancelReason=" + TaskCancelRReason.values());
+ //MainActivity.mCs108Library4a.appendToLog("taskCancelReason=" + TaskCancelRReason.values());
cancel(true);
}
}
@@ -248,6 +254,7 @@ else if (notificationData != null) {
protected void onProgressUpdate(String... output) {
if (true) progressUpdate(output);
else if (output[0] != null) {
+ MainActivity.mCs108Library4a.appendToLog("onProgressUpdate output[0] = " + output[0]);
if (output[0].length() == 2) {
if (output[0].contains("TT")) {
gotInventory = true;
@@ -275,6 +282,7 @@ else if (output[0] != null) {
taskCancelReason = TaskCancelRReason.ERROR;
}
} else {
+ MainActivity.mCs108Library4a.appendToLog("onProgressUpdate output[1] = " + output[1]);
if (registerYield != null) {
if (tagInventoried != null) {
tagList.add(tagInventoried);
@@ -305,6 +313,7 @@ protected void onPostExecute(String result) {
protected void progressUpdate(String... output) {
if (output[0] != null) {
+ MainActivity.mCs108Library4a.appendToLog("onProgressUpdate output[0] = " + output[0]);
if (output[0].length() == 2) {
if (output[0].contains("TT")) {
gotInventory = true;
@@ -331,6 +340,7 @@ protected void progressUpdate(String... output) {
MainActivity.mCs108Library4a.appendToLog("output[0]: " + output[0] + ", resultError = " + resultError);
}
} else {
+ MainActivity.mCs108Library4a.appendToLog("onProgressUpdate output[1] = " + output[1]);
if (registerYield != null) {
if (tagInventoried != null) {
tagList.add(tagInventoried);
@@ -359,6 +369,9 @@ void DeviceConnectTask4RegisterEnding() {
strErrorMessage = "";
switch (taskCancelReason) {
case NULL:
+ if (accessResult == null) MainActivity.mCs108Library4a.appendToLog("taskCancelReason: NULL accessResult");
+ if (resultError != null) MainActivity.mCs108Library4a.appendToLog("taskCancelReason: resultError = " + resultError);
+ if (endingMessaage != null) MainActivity.mCs108Library4a.appendToLog("taskCancelReason: endingMessaage = " + endingMessaage);
if (accessResult == null || (resultError != null && resultError.length() != 0) || (endingMessaage != null && endingMessaage.length() != 0)) strErrorMessage += ("Finish as COMMAND END is received " + (gotInventory ? "WITH" : "WITHOUT") + " tag response");
//else Toast.makeText(MainActivity.mContext, R.string.toast_abort_by_SUCCESS, Toast.LENGTH_SHORT).show();
break;
diff --git a/app/src/main/java/com/csl/cs108ademoapp/InventoryRfidTask.java b/app/src/main/java/com/csl/cs108ademoapp/InventoryRfidTask.java
index 974776f..b260c7e 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/InventoryRfidTask.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/InventoryRfidTask.java
@@ -262,7 +262,7 @@ void inventoryHandler_tag() {
int extraLength = 0;
if (extra1Bank != -1 && rx000pkgData.decodedData1 != null) extraLength += rx000pkgData.decodedData1.length;
if (extra2Bank != -1 && rx000pkgData.decodedData2 != null) extraLength += rx000pkgData.decodedData2.length;
- if (extraLength != 0 && MainActivity.mCs108Library4a.getcsModel() != 710) {
+ if (extraLength != 0) {
byte[] decodedEpcNew = new byte[rx000pkgData.decodedEpc.length - extraLength];
System.arraycopy(rx000pkgData.decodedEpc, 0, decodedEpcNew, 0, decodedEpcNew.length);
rx000pkgData.decodedEpc = decodedEpcNew;
@@ -650,6 +650,7 @@ public InventoryRfidTask(Context context, int extra1Bank, int extra2Bank, int da
boolean popRequest = false; Toast mytoast;
void DeviceConnectTask4InventoryEnding(TaskCancelRReason taskCancelRReason) {
+ MainActivity.mCs108Library4a.abortOperation(); //added in case previous command end is received with inventory stopped
MainActivity.mCs108Library4a.appendToLog("serverConnectValid = " + serverConnectValid);
if (serverConnectValid && ALLOW_RTSAVE) {
try {
diff --git a/app/src/main/java/com/csl/cs108ademoapp/adapters/ReaderListAdapter.java b/app/src/main/java/com/csl/cs108ademoapp/adapters/ReaderListAdapter.java
index 421cfe6..04c547f 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/adapters/ReaderListAdapter.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/adapters/ReaderListAdapter.java
@@ -156,8 +156,8 @@ public View getView(int position, View convertView, ViewGroup parent) {
int phase = reader.getPhase();
String stringDetailB = null;
if (channel != 0 || phase != 0) {
- //double dChannel = MainActivity.mCs108Library4a.getLogicalChannel2PhysicalFreq(reader.getChannel());
- //stringDetailB = "Phase=" + phase + "\n" + dChannel + "MHz";
+ double dChannel = MainActivity.mCs108Library4a.getLogicalChannel2PhysicalFreq(reader.getChannel());
+ stringDetailB = "Phase=" + phase + "\n" + dChannel + "MHz";
}
if (stringDetailB != null) readerDetailB.setText(stringDetailB);
}
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/AboutFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/AboutFragment.java
index ee58e63..572cad9 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/AboutFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/AboutFragment.java
@@ -72,6 +72,8 @@ public void run() {
TextView productSerial = (TextView) getActivity().findViewById(R.id.module_productserialnumber);
TextView boardVersion = (TextView) getActivity().findViewById(R.id.module_boardversion);
TextView barcodeSerial = (TextView) getActivity().findViewById(R.id.moduleBar_serialNumber);
+ TextView barcodeDate = (TextView) getActivity().findViewById(R.id.moduleBar_date);
+ TextView barcodeVersion = (TextView) getActivity().findViewById(R.id.moduleBar_version);
TextView bluetoothVersion = (TextView) getActivity().findViewById(R.id.bluetooth_version);
TextView bluetoothAddress = (TextView) getActivity().findViewById(R.id.bluetooth_address);
@@ -99,7 +101,11 @@ public void run() {
productSerial.setText(MainActivity.mCs108Library4a.getHostProcessorICSerialNumber());
boardVersion.setText(MainActivity.mCs108Library4a.getHostProcessorICBoardVersion());
if (MainActivity.mCs108Library4a.isBarcodeFailure()) barcodeSerial.setText("Not available");
- else barcodeSerial.setText(MainActivity.mCs108Library4a.getBarcodeSerial());
+ else {
+ barcodeSerial.setText(MainActivity.mCs108Library4a.getBarcodeSerial());
+ barcodeDate.setText(MainActivity.mCs108Library4a.getBarcodeDate());
+ barcodeVersion.setText(MainActivity.mCs108Library4a.getBarcodeVersion());
+ }
bluetoothAddress.setText(MainActivity.mCs108Library4a.getBluetoothDeviceAddress());
bluetoothRssi.setText(String.valueOf(MainActivity.mCs108Library4a.getRssi()));
} else {
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessFdmicroFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessFdmicroFragment.java
index aece3f0..ef0ab73 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessFdmicroFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessFdmicroFragment.java
@@ -26,7 +26,6 @@
import com.csl.cs108library4a.Cs108Connector;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
import static com.csl.cs108ademoapp.MainActivity.mContext;
@@ -35,13 +34,17 @@ public class AccessFdmicroFragment extends CommonFragment {
SelectTag selectTag;
Spinner spinnerSelectCommand, spinnerSelectAuth, spinnerSelectGetSource;
TableRow tableRowOffsetLength, tableRowValue, tableRowAuth, tableRowGetTemperature, tableRowGetTemperature1, tableRowLogging, tableRowReg, tableRowEnable;
- EditText editTextMemoryValue;
+ EditText editTextMemoryValue, editTextDelayStart, editTextCntLimit, editTextStep;
TextView textViewTemperatureValue, textViewBatteryValue, textViewLoggingValue, textViewLoggingValue1;
Button buttonRead, buttonWrite;
+ SimpleDateFormat formatter;
- boolean operationRunning = false, operationRead = false, operationReadTemperature = false, operationReadBattery = false, operationSetLogging = false, operationCheckLogging = false, operationGetLogging = false;
+ boolean operationRunning = false, operationRead = false, operationReadTemperature = false, operationReadBattery = false, operationSetLogging = false, operationCheckLogging = false, operationStopLogging = false, operationGetLogging = false;
AccessTask accessTask;
+ void clearOperationSelect() {
+ operationReadTemperature = false; operationReadBattery = false; operationSetLogging = false; operationCheckLogging = false; operationStopLogging = false; operationGetLogging = false;
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState, false);
@@ -96,7 +99,7 @@ public void onNothingSelected(AdapterView> parent) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationReadTemperature = true;
+ clearOperationSelect(); operationReadTemperature = true;
textViewTemperatureValue.setText("");
readWriteOperation();
}
@@ -108,19 +111,24 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationReadBattery = true;
+ clearOperationSelect(); operationReadBattery = true;
textViewBatteryValue.setText("");
readWriteOperation();
}
});
textViewBatteryValue = (TextView) getActivity().findViewById(R.id.accessFDbatteryValue);
+ editTextDelayStart = (EditText) getActivity().findViewById(R.id.accessFDvdetDelayStartCfg);
+ editTextCntLimit = (EditText) getActivity().findViewById(R.id.accessFDrtcCntLimit);
+ editTextStep = (EditText) getActivity().findViewById(R.id.accessFDstepCfg);
+ formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+
Button buttonSetLogging = (Button) getActivity().findViewById(R.id.accessFDSetLogging);
buttonSetLogging.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationSetLogging = true;
+ clearOperationSelect(); operationSetLogging = true;
textViewLoggingValue.setText("");
readWriteOperation();
}
@@ -130,7 +138,17 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationCheckLogging = true;
+ clearOperationSelect(); operationCheckLogging = true;
+ textViewLoggingValue.setText("");
+ readWriteOperation();
+ }
+ });
+ Button buttonStopLogging = (Button) getActivity().findViewById(R.id.accessFDStopLogging);
+ buttonStopLogging.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (isOperationRunning()) return;
+ clearOperationSelect(); operationStopLogging = true;
textViewLoggingValue.setText("");
readWriteOperation();
}
@@ -140,7 +158,7 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationGetLogging = true;
+ clearOperationSelect(); operationGetLogging = true;
textViewLoggingValue1.setText("");
readWriteOperation();
}
@@ -153,24 +171,20 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- if (logData == null) return;
-
SaveList2ExternalTask saveExternalTask = new SaveList2ExternalTask(MainActivity.sharedObjects.barsList);
- SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- Calendar c = Calendar.getInstance();
- Date date = new Date();
-
- String strMessage = "File Save time: " + dataFormat.format(date);
- strMessage += "\nEPC ID: " + logData.strEpc;
- Date datetimeStartLog = logData.dateLogStart;
- strMessage += "\nStart Log time: " + dataFormat.format(datetimeStartLog);
- c.setTime(logData.dateLogStop); strMessage += "\nStop Log time: " + dataFormat.format(c.getTime());
- int sampleInterval = logData.secLogSampleInterval; strMessage += "\nSample step in seconds: " + String.valueOf(sampleInterval);
- strMessage += "\nTemperature Log data:";
- c.setTime(logData.dateLogStart); c.add(Calendar.MINUTE, logData.minLogStartDelay);
- for (int i = 0; i < logData.iSampleSize; i++) {
- strMessage += "\n" + String.format("%i, ", i) + logData.iTempArray[i] + " at " + dataFormat.format(c.getTime());
- c.add(Calendar.SECOND, logData.secLogSampleInterval);
+ String strMessage = "EPC: " + selectTag.editTextTagID.getText().toString() + "\n";
+ strMessage += textViewLoggingValue1.getText().toString();
+ if (logData != null) {
+ Date date = logData.dateLogStart;
+ if (date != null) {
+ long ltime = date.getTime();
+ ltime += (logData.minLogStartDelay * 1000 * 60);
+ if (logData.iSampleSize > 0) {
+ ltime += (logData.iSampleSize -1 ) * logData.secLogSampleInterval * 1000;
+ }
+ date.setTime(ltime);
+ strMessage += ("Stop: " + formatter.format(date) + "\n");
+ }
}
String resultDisplay = saveExternalTask.save2File(strMessage, false);
CustomPopupWindow customPopupWindow = new CustomPopupWindow(mContext);
@@ -183,7 +197,7 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationRead = true;
+ clearOperationSelect(); operationRead = true;
readWriteOperation();
}
});
@@ -193,7 +207,7 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
if (isOperationRunning()) return;
- operationRead = false;
+ clearOperationSelect(); operationRead = false;
readWriteOperation();
}
});
@@ -238,14 +252,10 @@ public AccessFdmicroFragment() {
}
class LogData {
- String strEpc;
Date dateLogStart;
- Date dateLogStop;
int minLogStartDelay;
int secLogSampleInterval;
- int iSampleExpected;
int iSampleSize;
- int[] iTempArray;
}
LogData logData;
@@ -372,6 +382,9 @@ void readWriteOperation() {
} else {
MainActivity.mCs108Library4a.appendToLog("Item Selected is " + spinnerSelectCommand.getSelectedItemPosition());
int position = spinnerSelectCommand.getSelectedItemPosition();
+ if (operationStopLogging) {
+ position = 3; operationRead = false;
+ }
switch (position) {
case 0:
EditText editTextMemoryOffset = (EditText) getActivity().findViewById(R.id.accessFDmemoryOffset);
@@ -578,6 +591,44 @@ public void run() {
if (operationGetLogging) {
switch (iOtherFlowCount) {
case 0:
+ MainActivity.mCs108Library4a.set_fdReadMem(0, 12);
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_RDMEM);
+ break;
+ case 1:
+ MainActivity.mCs108Library4a.appendToLog("case 1: bLogging = " + bLogging + ", accessTask.accessResult = " + accessTask.accessResult);
+ if (accessTask.accessResult != null) {
+ Date date = null;
+ long lDateTime = -1;
+ int iDelay = -1, iInterval = -1;
+ if (accessTask.accessResult.length() >= 24) {
+ try {
+ String strDateTime = accessTask.accessResult.substring(6, 8);
+ strDateTime += accessTask.accessResult.substring(4, 6);
+ strDateTime += accessTask.accessResult.substring(2, 4);
+ strDateTime += accessTask.accessResult.substring(0, 2);
+ lDateTime = 1000 * Long.parseLong(strDateTime, 16);
+
+ String strDelay = accessTask.accessResult.substring(18, 20);
+ strDelay += accessTask.accessResult.substring(16, 18);
+ iDelay = Integer.parseInt(strDelay, 16);
+
+ String strInterval = accessTask.accessResult.substring(22, 24);
+ strInterval += accessTask.accessResult.substring(20, 22);
+ iInterval = Integer.parseInt(strInterval, 16);
+ } catch(Exception ex) { }
+ if (iInterval != -1) {
+ date = new Date();
+ date.setTime(lDateTime);
+ textViewLoggingValue1.append("Start: " + formatter.format(date) + "\n");
+ textViewLoggingValue1.append("delay: " + iDelay + " minutes\n");
+ textViewLoggingValue1.append("interval: " + iInterval + " seconds\n");
+ }
+ logData = new LogData();
+ logData.dateLogStart = date;
+ logData.minLogStartDelay = iDelay;
+ logData.secLogSampleInterval = iInterval;
+ }
+ }
if (bLogging) {
MainActivity.mCs108Library4a.set_fdRegAddr(0xc094);
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_RDREG);
@@ -586,7 +637,8 @@ public void run() {
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_RDMEM);
}
break;
- case 1:
+ case 2:
+ MainActivity.mCs108Library4a.appendToLog("bLogging = " + bLogging + ", accessTask.accessResult = " + accessTask.accessResult);
if (bLogging) {
operationGetLogging = false;
int iValue = 0;
@@ -598,13 +650,18 @@ public void run() {
else if (iValue == 0x20) strMessage = "Logging in Progress";
else if (iValue == 00) strMessage = "non-rtc";
textViewLoggingValue1.setText(accessTask.accessResult + ": " + strMessage + "\n");
+ break;
} else {
String strTemp = accessTask.accessResult;
iTimeTotal = Integer.parseInt(strTemp.substring(2, 4) + strTemp.substring(0, 2), 16);
- textViewLoggingValue1.setText("status: " + accessTask.accessResult + "\n");
+ MainActivity.mCs108Library4a.appendToLog("iTimeTotal is set to " + iTimeTotal + ", with strTemp = " + strTemp);
+ textViewLoggingValue1.append("status: " + accessTask.accessResult + "\n");
+ iTimeTotal++;
}
+ logData.iSampleSize = 0;
default:
- if (iOtherFlowCount != 1) {
+ MainActivity.mCs108Library4a.appendToLog("iOtherFlowCount = " + iOtherFlowCount + ", accessTask.accessResult = " + accessTask.accessResult);
+ if (iOtherFlowCount != 2) {
String strMessage = ""; //accessTask.accessResult + ": ";
String strAccessResult = accessTask.accessResult.substring(6, 8) + accessTask.accessResult.substring(4, 6) + accessTask.accessResult.substring(2, 4) + accessTask.accessResult.substring(0, 2);
Long lValue = Long.parseLong(strAccessResult, 16);
@@ -621,15 +678,15 @@ public void run() {
strMessage += ("invalid checksum, " + strAccessResult);
else {
iTimeNumber = Integer.parseInt(strAccessResult.substring(0, 4), 16) & 0x7FFF;
- strMessage += ("item " + iTimeNumber + ", ");
+ strMessage += ("item " + iTimeNumber + ": ");
int iTemperature = Integer.parseInt(strAccessResult.substring(5, 8), 16) & 0x3FF;
strMessage += i2TemperatureString(iTemperature);
- logData.iTempArray[logData.iSampleSize++] = iTemperature;
+ logData.iSampleSize++;
}
textViewLoggingValue1.append(strMessage + "\n");
}
- if (iTimeTotal < (iOtherFlowCount - 1) || bLogging) {
+ if (iTimeTotal <= (iOtherFlowCount - 2) || bLogging) {
textViewLoggingValue1.append("end of logging data\n");
operationGetLogging = false;
commandSelected(spinnerSelectCommand.getSelectedItemPosition());
@@ -663,57 +720,50 @@ public void run() {
} else if (operationSetLogging) {
MainActivity.mCs108Library4a.appendToLog("wallace.iOtherFlowCount = " + iOtherFlowCount + ", accessResult = " + accessTask.accessResult);
switch (iOtherFlowCount) {
- case 0:
- MainActivity.mCs108Library4a.set_fdWriteMem(0xb040, 4, 0x4cb329d6); //~user_cfg1,user_cfg1,~user_cfg0,user_cfg0: default as 0xd629b34c
+ case 0: //0x4cb3,29d6
+ CheckBox checkBox = (CheckBox) getActivity().findViewById(R.id.accessFDenableLEDAutoFlash);
+ long lValue = 0x4db229d6;
+ if (checkBox.isChecked()) {
+ lValue |= 0x2000; lValue &= ~0x20;
+ lValue &= 0xFFFFFFFF;
+ MainActivity.mCs108Library4a.appendToLog("lValue = " + String.format("%08x", lValue));
+ } else {
+ lValue &= ~0x2000; lValue |= 0x20;
+ lValue &= 0xFFFFFFFF;
+ MainActivity.mCs108Library4a.appendToLog("lValue1 = " + String.format("%08x", lValue));
+ }
+ MainActivity.mCs108Library4a.set_fdWriteMem(0xb040, 4, lValue); //~user_cfg1,user_cfg1,~user_cfg0,user_cfg0: default as 0xd629b34c
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
logData = new LogData();
- logData.dateLogStart = new Date();
- logData.strEpc = selectTag.editTextTagID.getText().toString();
break;
case 1:
- EditText editText = (EditText) getActivity().findViewById(R.id.accessFDrtcCntLimit);
- int iValue = 3;
+ int iValue0 = 3;
try {
- iValue = Integer.parseInt(editText.getText().toString());
- } catch (Exception ex) { }
- editText.setText(String.valueOf(iValue));
- String string1 = String.format("%04X", iValue);
+ iValue0 = Integer.parseInt(editTextCntLimit.getText().toString());
+ } catch (Exception ex) {
+ }
+ editTextCntLimit.setText(String.valueOf(iValue0));
+
+ String string1 = String.format("%04X", iValue0);
MainActivity.mCs108Library4a.appendToLog("accessResult: string1 = " + string1);
- String string2 = string1.substring(2,4) + string1.substring(0,2) + "0000";
+ String string2 = string1.substring(2, 4) + string1.substring(0, 2) + "0000";
MainActivity.mCs108Library4a.appendToLog("accessResult: string2 = " + string2);
- iValue = Integer.parseInt(string2, 16);
- MainActivity.mCs108Library4a.appendToLog(String.format("accessResult: iValue = %X", iValue));
+ int iValue = Integer.parseInt(string2, 16);
+ MainActivity.mCs108Library4a.appendToLog(String.format("accessResult: iValue = %X, iValue1 = %X", iValue0, iValue));
MainActivity.mCs108Library4a.set_fdWriteMem(0xb094, 4, iValue); //rtc_cnt_limit: default as 0x00000003
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
- logData.iSampleExpected = iValue; logData.iSampleSize = 0;
- logData.iTempArray = new int[iValue];
break;
case 2:
- editText = (EditText) getActivity().findViewById(R.id.accessFDstepCfg);
- iValue = 3;
- try {
- iValue = Integer.parseInt(editText.getText().toString());
- } catch (Exception ex) { }
- editText.setText(String.valueOf(iValue));
- string1 = String.format("%04X", iValue);
- MainActivity.mCs108Library4a.appendToLog("accessResult: string1 = " + string1);
- string2 = string1.substring(2,4) + string1.substring(0,2); string2 += string2;
- MainActivity.mCs108Library4a.appendToLog("accessResult: string2 = " + string2);
- iValue = Integer.parseInt(string2, 16);
- MainActivity.mCs108Library4a.appendToLog(String.format("accessResult: iValue = %X", iValue));
-
MainActivity.mCs108Library4a.set_fdWriteMem(0xb0a4, 4, 0x0A000100); //vdet_alarm_step_cfg, vdet_step_cfg: default as 0
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
- logData.secLogSampleInterval = iValue;
break;
case 3:
- editText = (EditText) getActivity().findViewById(R.id.accessFDvdetDelayStartCfg);
iValue = 1;
try {
- iValue = Integer.parseInt(editText.getText().toString());
+ iValue = Integer.parseInt(editTextDelayStart.getText().toString());
} catch (Exception ex) { }
- editText.setText(String.valueOf(iValue));
+ editTextDelayStart.setText(String.valueOf(iValue));
MainActivity.mCs108Library4a.appendToLog(String.format("accessResult: iValue = %X", iValue));
MainActivity.mCs108Library4a.set_fdWrite(0xc084, iValue); //vdet_delay_cfg: default as 0xffff in minute
@@ -721,16 +771,16 @@ public void run() {
logData.minLogStartDelay = iValue;
break;
case 4:
- editText = (EditText) getActivity().findViewById(R.id.accessFDstepCfg);
iValue = 1;
try {
- iValue = Integer.parseInt(editText.getText().toString());
+ iValue = Integer.parseInt(editTextStep.getText().toString());
} catch (Exception ex) { }
- editText.setText(String.valueOf(iValue));
+ editTextStep.setText(String.valueOf(iValue));
MainActivity.mCs108Library4a.appendToLog(String.format("accessResult: iValue = %X", iValue));
MainActivity.mCs108Library4a.set_fdWrite(0xc085, iValue); //vdet_step_cfg: default as 0xffff in seconds
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRREG);
+ logData.secLogSampleInterval = iValue;
break;
case 5:
MainActivity.mCs108Library4a.set_fdWrite(0xc099, 0); //summary_min_temperature: default 0
@@ -748,6 +798,27 @@ public void run() {
MainActivity.mCs108Library4a.set_fdRegAddr(0xc084); //vdet_delay_cfg: default as 0xffff in minute
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_RDREG);
break;
+ case 9:
+ Date date = new Date();
+ MainActivity.mCs108Library4a.appendToLog("Current time is " + formatter.format(date));
+
+ long longTemp = date.getTime() / 1000;
+ Long longValue = ((longTemp & 0xFF) << 24);
+ longValue |= ((longTemp & 0xFF00) << 8) ;
+ longValue |= ((longTemp & 0xFF0000) >> 8);
+ longValue |= ((longTemp & 0xFF000000) >> 24) ;
+ MainActivity.mCs108Library4a.set_fdWriteMem(0, 4, longValue); //rtc_cnt_limit: default as 0x00000003
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
+ break;
+ case 10:
+ longValue = (((long)logData.minLogStartDelay & 0xFF) << 24);
+ longValue |= ((logData.minLogStartDelay & 0xFF00) << 8) ;
+ longValue |= ((logData.secLogSampleInterval & 0XFF) << 8 );
+ longValue |= ((logData.secLogSampleInterval & 0xFF00) >> 8) ;
+ MainActivity.mCs108Library4a.appendToLog(String.format("longValue = %08x, minLogStartDelay = %04x, secLogSampleInterval = %04x", longValue, logData.minLogStartDelay, logData.secLogSampleInterval));
+ MainActivity.mCs108Library4a.set_fdWriteMem(8, 4, longValue); //rtc_cnt_limit: default as 0x00000003
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
+ break;
default:
operationSetLogging = false;
if (iOtherFlowCount < 88) {
@@ -796,6 +867,10 @@ else if (operationReadBattery) {
else if (operationReadTemperature) {
switch(iOtherFlowCount) {
case 0:
+ /*MainActivity.mCs108Library4a.set_fdWriteMem(0xb040, 4, 0x4db209f6); //~user_cfg1,user_cfg1,~user_cfg0,user_cfg0: default as 0xd629b34c
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
+ MainActivity.mCs108Library4a.set_fdWriteMem(0xb061, 1, 0x40);
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);*/
MainActivity.mCs108Library4a.set_fdWrite(0xc012, 0x0000);
doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRREG);
break;
@@ -825,6 +900,10 @@ else if (operationReadTemperature) {
iOtherFlowCount++;
} else {
int position = spinnerSelectCommand.getSelectedItemPosition();
+ if (operationStopLogging) {
+ operationStopLogging = false;
+ position = 3; operationRead = false;
+ }
switch (position) {
case 0:
if (operationRead) editTextMemoryValue.setText(accessTask.accessResult);
@@ -875,7 +954,7 @@ else if (strMessage.matches("FFF0"))
customPopupWindow.popupStart(strMessage, false);
break;
case 3:
- editTextMemoryValue.setText(accessTask.accessResult);
+ textViewLoggingValue.setText(accessTask.accessResult);
strMessage = accessTask.accessResult.trim();
if (operationRead) {
if (strMessage.matches("0000")) strMessage = null;
@@ -928,6 +1007,11 @@ else if (strMessage.matches("FFF0"))
customPopupWindow = new CustomPopupWindow(MainActivity.mContext);
customPopupWindow.popupStart(strMessage, false);
}
+ if (position == 8 && iOtherFlowCount == 0) {
+ iOtherFlowCount++;
+ MainActivity.mCs108Library4a.set_fdWriteMem(0xb040, 4, 0x4db229d6); //~user_cfg1,user_cfg1,~user_cfg0,user_cfg0: default as 0xd629b34c
+ doAccessTask(Cs108Connector.HostCommands.CMD_FDM_WRMEM);
+ }
break;
case 6:
strMessage = accessTask.accessResult;
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessUcodeFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessUcodeFragment.java
index 1c2dc68..93e281b 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessUcodeFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/AccessUcodeFragment.java
@@ -477,6 +477,8 @@ else if (strMatching.substring(0, 4).matches("96C5") == false) { }
}
void startAccessTask() {
if (DEBUG) MainActivity.mCs108Library4a.appendToLog("startAccessTask()");
+ MainActivity.mCs108Library4a.setInvAlgo(false);
+ if (MainActivity.mCs108Library4a.getRetryCount() < 2) MainActivity.mCs108Library4a.setRetryCount(2);
if (updating == false) {
updating = true; bankProcessing = 0;
mHandler.removeCallbacks(updateRunnable);
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/CommonFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/CommonFragment.java
index ee583bd..a9edfd3 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/CommonFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/CommonFragment.java
@@ -26,7 +26,7 @@
public abstract class CommonFragment extends Fragment {
final boolean DEBUG = false; final String TAG = "Hello";
private String fragmentName;
- MenuItem menuBatteryVoltageItem;
+ MenuItem menuTriggerItem, menuBatteryVoltageItem;
Handler mHandler = new Handler();
boolean fragmentActive = false;
@@ -60,6 +60,28 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
if (menuFragment) setHasOptionsMenu(true);
return super.onCreateView(inflater, container, savedInstanceState);
}
+
+ int triggerCount_old;
+ private final Runnable updateTriggerRunnable = new Runnable() {
+ @Override
+ public void run() {
+ mHandler.postDelayed(updateTriggerRunnable, 500);
+
+ if (menuTriggerItem == null) return;
+ if (MainActivity.mCs108Library4a.isBleConnected() == false) { menuTriggerItem.setTitle(""); return; }
+ if (menuTriggerItem.getTitle().toString().trim().length() != 0) {
+ menuTriggerItem.setTitle("");
+ } else {
+ int triggerCount = MainActivity.mCs108Library4a.getTriggerCount();
+ if (triggerCount != triggerCount_old) {
+ triggerCount_old = triggerCount;
+ if (MainActivity.mCs108Library4a.getTriggerButtonStatus()) menuTriggerItem.setTitle("Ton");
+ else menuTriggerItem.setTitle("Toff");
+ }
+ }
+ }
+ };
+
int batteryCount_old; boolean batteryUpdate = false; CustomPopupWindow batteryWarningPopupWindow; String strBatteryLow;
private final Runnable updateBatteryRunnable = new Runnable() {
@Override
@@ -119,6 +141,7 @@ public void onResume() {
if (DEBUG) MainActivity.mCs108Library4a.appendToLog(fragmentName);
if (menuFragment) {
batteryCount_old = -1;
+ mHandler.post(updateTriggerRunnable);
mHandler.post(updateBatteryRunnable);
}
super.onResume();
@@ -138,7 +161,8 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
}
} else {
inflater.inflate(R.menu.menu_home, menu);
- menuBatteryVoltageItem = menu.findItem(R.id.home_voltage);
+ menuBatteryVoltageItem = menu.findItem(R.id.home_voltage);;
+ menuTriggerItem = menu.findItem(R.id.home_trigger);
menu.removeItem(R.id.home_menu);
if (fragmentName.matches("InventoryFragment")
|| fragmentName.contains("InventoryRfidiMultiFragment")
@@ -190,6 +214,7 @@ public void onPause() {
@Override
public void onStop() {
if (DEBUG) MainActivity.mCs108Library4a.appendToLog(fragmentName);
+ mHandler.removeCallbacks(updateTriggerRunnable);
mHandler.removeCallbacks(updateBatteryRunnable);
super.onStop();
}
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/HomeFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/HomeFragment.java
index ac5b20e..bb40b66 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/HomeFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/HomeFragment.java
@@ -28,7 +28,7 @@ public void onStart() {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- super.onCreateView(inflater, container, savedInstanceState, false);
+ super.onCreateView(inflater, container, savedInstanceState, true);
return inflater.inflate(R.layout.home_layout, container, false);
}
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/InventoryRfidiMultiFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/InventoryRfidiMultiFragment.java
index 241b3b1..9594816 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/InventoryRfidiMultiFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/InventoryRfidiMultiFragment.java
@@ -451,6 +451,7 @@ void startInventoryTask() {
if (MainActivity.selectFor != 5) {
MainActivity.mCs108Library4a.setSelectCriteria(1, true, 4, 5, MainActivity.selectHold, 3, 0x3B0, "00");
MainActivity.mCs108Library4a.setSelectCriteriaDisable(2);
+ if (MainActivity.mCs108Library4a.getRetryCount() < 2) MainActivity.mCs108Library4a.setRetryCount(2);
MainActivity.selectFor = 5;
}
} else {
@@ -470,13 +471,13 @@ void startInventoryTask() {
} else if (MainActivity.mDid.matches("E2806894B")) {
Log.i(TAG, "HelloK: Find E2806894B");
MainActivity.mCs108Library4a.setInvBrandId(false);
- MainActivity.mCs108Library4a.setSelectCriteria(1, true, 4, 0, 1, 0x203, "1", true);
- bNeedSelectedTagByTID = false;
+ MainActivity.mCs108Library4a.setSelectCriteria(1, true, 4, 2, 1, 0x203, "1", true);
+ if (false) bNeedSelectedTagByTID = false;
} else if (MainActivity.mDid.matches("E2806894C")) {
Log.i(TAG, "HelloK: Find E2806894C");
MainActivity.mCs108Library4a.setInvBrandId(true);
- MainActivity.mCs108Library4a.setSelectCriteria(1, true, 4, 0, 1, 0x204, "1", true);
- bNeedSelectedTagByTID = false;
+ MainActivity.mCs108Library4a.setSelectCriteria(1, true, 4, 2, 1, 0x204, "1", true);
+ if (false) bNeedSelectedTagByTID = false;
}
} else if (mDid.indexOf("E28011") == 0) bNeedSelectedTagByTID = false;
Log.i(TAG, "HelloK: going to setSelectedTagByTID with mDid = " + mDid + " with extra1Bank = " + extra1Bank + ", extra2Bank = " + extra2Bank + ", bNeedSelectedTagByTID = " + bNeedSelectedTagByTID + ", bMultiBank = " + bMultiBank);
@@ -524,10 +525,7 @@ void startInventoryTask() {
}
if (extra1Bank == 1) extra1Offset += 2;
if (extra2Bank == 1) extra2Offset += 2;
- if (MainActivity.mCs108Library4a.getcsModel() == 710) {
- MainActivity.mCs108Library4a.enableMultibankReadConfig(0, extra1Bank, extra1Offset, extra1Count);
- MainActivity.mCs108Library4a.enableMultibankReadConfig(1, extra2Bank, extra2Offset, extra2Count);
- } else {
+ if (true) {
MainActivity.mCs108Library4a.setTagRead(extra2Count != 0 && extra2Count != 0 ? 2 : 1);
MainActivity.mCs108Library4a.setAccessBank(extra1Bank, extra2Bank);
MainActivity.mCs108Library4a.setAccessOffset(extra1Offset, extra2Offset);
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingAdminFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingAdminFragment.java
index e15fb5a..1aa921b 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingAdminFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingAdminFragment.java
@@ -20,8 +20,8 @@
import com.csl.cs108ademoapp.SettingTask;
public class SettingAdminFragment extends CommonFragment {
- private CheckBox checkBoxInventoryBeep, checkBoxInventoryVibrate, checkBoxSaveFileEnable, checkBoxSaveCloudEnable, checkBoxSaveNewCloudEnable, checkBoxSaveAllCloudEnable;
- private EditText editTextDeviceName, editTextIntraPkgDelay, editTextDeTime, editTextCycleDelay, editTextBeepCount, editTextVibrateTime, editTextVibrateWindow, editTextServer, editTextServerTimeout;
+ private CheckBox checkBoxTriggerReporting, checkBoxInventoryBeep, checkBoxInventoryVibrate, checkBoxSaveFileEnable, checkBoxSaveCloudEnable, checkBoxSaveNewCloudEnable, checkBoxSaveAllCloudEnable;
+ private EditText editTextDeviceName, editTextCycleDelay, editTextTriggerReportingCount, editTextBeepCount, editTextVibrateTime, editTextVibrateWindow, editTextServer, editTextServerTimeout;
private TextView textViewReaderModel;
private Spinner spinnerQueryBattery, spinnerQueryRssi, spinnerQueryVibrateMode;
private Button buttonCSLServer, button;
@@ -33,13 +33,12 @@ public class SettingAdminFragment extends CommonFragment {
int rssiDisplaySelect = -1;
int vibrateModeSelect = -1;
String deviceName = "";
- int intraPkgDelay = -1; int intraPkgDelayMin = 0; int intraPkgDelayMax = 100;
- int deTime = -1; int deTimeMin = 0; int deTimeMax = 100;
long cycleDelay = -1; long cycleDelayMin = 0; long cycleDelayMax = 2000;
int iBeepCount = -1; int iBeepCountMin = 1; int iBeepCountMax = 100;
+ short sTriggerCount = -1, sTriggerCountMin = 1, sTriggerCountMax = 100;
int iVibrateTime = -1; int iVibrateTimeMin = 1; int iVibrateTimeMax = 999;
int iVibrateWindow = -1; int iVibrateWindowMin = 1; int iVibrateWindowMax = 4;
- boolean inventoryBeep, inventoryVibrate, saveFileEnable, saveCloudEnable, saveNewCloudEnable, saveAllCloudEnable;
+ boolean triggerReporting, inventoryBeep, inventoryVibrate, saveFileEnable, saveCloudEnable, saveNewCloudEnable, saveAllCloudEnable;
String serverName;
int iServerTimeout = -1; int iServerTimeoutMin = 3; int iServerTimeoutMax = 9;
@@ -84,21 +83,18 @@ public void onActivityCreated(Bundle savedInstanceState) {
spinnerQueryVibrateMode.setAdapter(targetAdapter);
}
- if (MainActivity.mCs108Library4a.getcsModel() == 710) {
- TableRow tableRow = (TableRow) getActivity().findViewById(R.id.settingAdminIntraPackageDelayRow);
- tableRow.setVisibility(View.VISIBLE);
- editTextIntraPkgDelay = (EditText) getActivity().findViewById(R.id.settingAdminIntraPackageDelay);
- tableRow = (TableRow) getActivity().findViewById(R.id.settingAdminDeTimeRow);
- tableRow.setVisibility(View.VISIBLE);
- editTextDeTime = (EditText) getActivity().findViewById(R.id.settingAdminDeTime);
- }
-
TextView textViewAdminCycleDelayLabel = (TextView) getActivity().findViewById(R.id.settingAdminCycleDelayLabel);
String stringAdminCycleDelayLabel = textViewAdminCycleDelayLabel.getText().toString();
stringAdminCycleDelayLabel += "(" + String.valueOf(cycleDelayMin) + "-" + String.valueOf(cycleDelayMax) + "ms)";
textViewAdminCycleDelayLabel.setText(stringAdminCycleDelayLabel);
editTextCycleDelay = (EditText) getActivity().findViewById(R.id.settingAdminCycleDelay);
+ TextView textViewAdminTriggerReportingCountLabel = (TextView) getActivity().findViewById(R.id.settingAdminTriggerReportingCountLabel);
+ String stringAdminTriggeringReportingCountLabel = textViewAdminTriggerReportingCountLabel.getText().toString();
+ stringAdminTriggeringReportingCountLabel += "(" + String.valueOf(sTriggerCountMin) + "-" + String.valueOf(sTriggerCountMax) + ") sec";
+ textViewAdminTriggerReportingCountLabel.setText(stringAdminTriggeringReportingCountLabel);
+ editTextTriggerReportingCount = (EditText) getActivity().findViewById(R.id.settingAdminTriggerReportingCount);
+
TextView textViewAdminBeepCountLabel = (TextView) getActivity().findViewById(R.id.settingAdminBeepCountLabel);
String stringAdminBeepCountLabel = textViewAdminBeepCountLabel.getText().toString();
stringAdminBeepCountLabel += "(" + String.valueOf(iBeepCountMin) + "-" + String.valueOf(iBeepCountMax) + ")";
@@ -117,6 +113,7 @@ public void onActivityCreated(Bundle savedInstanceState) {
textViewAdminVibrateWindowLabel.setText(stringAdminVibrateWindowLabel);
editTextVibrateWindow = (EditText) getActivity().findViewById(R.id.settingAdminVibrateWindow);
+ checkBoxTriggerReporting = (CheckBox) getActivity().findViewById(R.id.settingAdminTriggerReporting);
checkBoxInventoryBeep = (CheckBox) getActivity().findViewById(R.id.settingAdminInventoryBeep);
checkBoxInventoryVibrate = (CheckBox) getActivity().findViewById(R.id.settingAdminInventoryVibrate);
checkBoxSaveFileEnable = (CheckBox) getActivity().findViewById(R.id.settingAdminToFileEnable);
@@ -256,12 +253,12 @@ public void onClick(View v) {
batteryDisplaySelect = spinnerQueryBattery.getSelectedItemPosition();
rssiDisplaySelect = spinnerQueryRssi.getSelectedItemPosition();
vibrateModeSelect = spinnerQueryVibrateMode.getSelectedItemPosition();
- if (editTextIntraPkgDelay != null) intraPkgDelay = Integer.parseInt(editTextIntraPkgDelay.getText().toString());
- if (editTextDeTime != null) deTime = Integer.parseInt(editTextDeTime.getText().toString());
if (editTextCycleDelay != null) cycleDelay = Long.parseLong(editTextCycleDelay.getText().toString());
+ if (editTextTriggerReportingCount != null) sTriggerCount = Short.parseShort(editTextTriggerReportingCount.getText().toString());
if (editTextBeepCount != null) iBeepCount = Integer.parseInt(editTextBeepCount.getText().toString());
if (editTextVibrateTime != null) iVibrateTime = Integer.parseInt(editTextVibrateTime.getText().toString());
if (editTextVibrateWindow != null) iVibrateWindow = Integer.parseInt(editTextVibrateWindow.getText().toString());
+ triggerReporting = checkBoxTriggerReporting.isChecked();
inventoryBeep = checkBoxInventoryBeep.isChecked();
inventoryVibrate = checkBoxInventoryVibrate.isChecked();
saveFileEnable = checkBoxSaveFileEnable.isChecked();
@@ -294,6 +291,7 @@ public void onDestroy() {
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
+ checkBoxTriggerReporting.setChecked(MainActivity.mCs108Library4a.getTriggerReporting());
checkBoxInventoryBeep.setChecked(MainActivity.mCs108Library4a.getInventoryBeep());
checkBoxInventoryVibrate.setChecked(MainActivity.mCs108Library4a.getInventoryVibrate());
checkBoxSaveFileEnable.setChecked(MainActivity.mCs108Library4a.getSaveFileEnable());
@@ -319,9 +317,15 @@ public void run() {
spinnerQueryBattery.setSelection(MainActivity.mCs108Library4a.getBatteryDisplaySetting());
spinnerQueryRssi.setSelection(MainActivity.mCs108Library4a.getRssiDisplaySetting());
spinnerQueryVibrateMode.setSelection(MainActivity.mCs108Library4a.getVibrateModeSetting());
- if (editTextIntraPkgDelay != null) editTextIntraPkgDelay.setText(String.valueOf(MainActivity.mCs108Library4a.getIntraPkgDelay()));
- if (editTextDeTime != null) editTextDeTime.setText(String.valueOf(MainActivity.mCs108Library4a.getDeTime()));
if (editTextCycleDelay != null) editTextCycleDelay.setText(String.valueOf(MainActivity.mCs108Library4a.getCycleDelay()));
+ if (editTextTriggerReportingCount != null) {
+ int triggerReportingCount = MainActivity.mCs108Library4a.getTriggerReportingCount();
+ if (triggerReportingCount != MainActivity.mCs108Library4a.iNO_SUCH_SETTING) {
+ TableRow tableRow = (TableRow) getActivity().findViewById(R.id.settingAdminTriggerReportingRow);
+ tableRow.setVisibility(View.VISIBLE);
+ }
+ editTextTriggerReportingCount.setText(String.valueOf(triggerReportingCount));
+ }
if (editTextBeepCount != null) editTextBeepCount.setText(String.valueOf(MainActivity.mCs108Library4a.getBeepCount()));
if (editTextVibrateTime != null) editTextVibrateTime.setText(String.valueOf(MainActivity.mCs108Library4a.getVibrateTime()));
if (editTextVibrateWindow != null) editTextVibrateWindow.setText(String.valueOf(MainActivity.mCs108Library4a.getVibrateWindow()));
@@ -369,23 +373,6 @@ void settingUpdate() {
if (MainActivity.mCs108Library4a.setVibrateModeSetting(vibrateModeSelect) == false)
invalidRequest = true;
}
- if (invalidRequest == false && editTextIntraPkgDelay != null) {
- if (MainActivity.mCs108Library4a.getIntraPkgDelay() != intraPkgDelay || sameCheck == false) {
- sameSetting = false;
- if (intraPkgDelay < intraPkgDelayMin || intraPkgDelay > intraPkgDelayMax) invalidRequest = true;
- else if (MainActivity.mCs108Library4a.setIntraPkgDelay(intraPkgDelay) == false)
- invalidRequest = true;
- }
- }
- if (invalidRequest == false && editTextDeTime != null) {
- MainActivity.mCs108Library4a.appendToLog("deTime = " + deTime + ", " + MainActivity.mCs108Library4a.getDeTime());
- if (MainActivity.mCs108Library4a.getDeTime() != deTime || sameCheck == false) {
- sameSetting = false;
- if (deTime < deTimeMin || deTime > deTimeMax) invalidRequest = true;
- else if (MainActivity.mCs108Library4a.setDeTime(deTime) == false)
- invalidRequest = true;
- }
- }
if (invalidRequest == false && editTextCycleDelay != null) {
if (MainActivity.mCs108Library4a.getCycleDelay() != cycleDelay || sameCheck == false) {
sameSetting = false;
@@ -394,6 +381,14 @@ else if (MainActivity.mCs108Library4a.setCycleDelay(cycleDelay) == false)
invalidRequest = true;
}
}
+ if (invalidRequest == false && editTextTriggerReportingCount != null) {
+ if (MainActivity.mCs108Library4a.getTriggerReportingCount() != sTriggerCount || sameCheck == false) {
+ sameSetting = false;
+ if (sTriggerCount < sTriggerCountMin || sTriggerCount > sTriggerCountMax) invalidRequest = true;
+ else if (MainActivity.mCs108Library4a.setTriggerReportingCount(sTriggerCount) == false)
+ invalidRequest = true;
+ }
+ }
if (invalidRequest == false && editTextBeepCount != null) {
if (MainActivity.mCs108Library4a.getBeepCount() != iBeepCount || sameCheck == false) {
sameSetting = false;
@@ -426,6 +421,13 @@ else if (MainActivity.mCs108Library4a.setVibrateWindow(iVibrateWindow) == false)
invalidRequest = true;
}
}
+ if (invalidRequest == false && checkBoxTriggerReporting != null) {
+ if (MainActivity.mCs108Library4a.getTriggerReporting() != triggerReporting || sameCheck == false) {
+ sameSetting = false;
+ if (MainActivity.mCs108Library4a.setTriggerReporting(triggerReporting) == false)
+ invalidRequest = true;
+ }
+ }
if (invalidRequest == false && checkBoxInventoryBeep != null) {
MainActivity.mCs108Library4a.appendToLog("getInventoryBeep = " + MainActivity.mCs108Library4a.getInventoryBeep() + ", inventoryBeep = " + inventoryBeep);
if (MainActivity.mCs108Library4a.getInventoryBeep() != inventoryBeep || sameCheck == false) {
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingFilterPreFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingFilterPreFragment.java
index 250fd0f..d2f3592 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingFilterPreFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingFilterPreFragment.java
@@ -267,7 +267,7 @@ void settingUpdate() {
settingTask = new SettingTask(button, sameSetting, invalidRequest);
settingTask.execute();
- //MainActivity.mCs108Library4a.saveSetting2File();
+ MainActivity.mCs108Library4a.saveSetting2File();
}
}
diff --git a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingOperateFragment.java b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingOperateFragment.java
index 481ca7a..e84ab61 100644
--- a/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingOperateFragment.java
+++ b/app/src/main/java/com/csl/cs108ademoapp/fragments/SettingOperateFragment.java
@@ -175,12 +175,7 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
editTextRetry = (EditText) getActivity().findViewById(R.id.settingOperateRetry);
spinnerProfile = (Spinner) getActivity().findViewById(R.id.settingOperateProfile);
- if (false) {
- targetAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.profile1_options, R.layout.custom_spinner_layout);
- targetAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinnerProfile.setAdapter(targetAdapter);
- }
- else {
+ if (true) {
ArrayAdapter targetAdapter1 = new ArrayAdapter(getContext(), android.R.layout.simple_spinner_dropdown_item, MainActivity.mCs108Library4a.getProfileList());
targetAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerProfile.setAdapter(targetAdapter1);
@@ -683,5 +678,6 @@ else if (MainActivity.mCs108Library4a.setPopulation(iPopulation) == false) {
settingTask = new SettingTask((sameCheck ? button: button1), sameSetting, invalidRequest);
settingTask.execute();
MainActivity.mCs108Library4a.saveSetting2File();
+ mHandler.post(updateRunnable);
}
}
diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml
index 920fe32..d989fc0 100644
--- a/app/src/main/res/layout/fragment_about.xml
+++ b/app/src/main/res/layout/fragment_about.xml
@@ -471,7 +471,8 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
- android:gravity="center">
+ android:gravity="center"
+ android:visibility="gone">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:text="0"/>
+ android:text="5"/>
+ android:paddingLeft="10dp"
+ android:visibility="visible">