From 9e775ad4e010f8013346c638b117b2ee5b048ee0 Mon Sep 17 00:00:00 2001 From: Tan Wei Wen Date: Fri, 23 Sep 2022 11:41:30 +0800 Subject: [PATCH 1/3] add option to disable/enable crc check --- .../shimmerBasicExample/build.gradle | 21 ++++--- .../com/shimmerbasicexample/MainActivity.java | 60 ++++++++++++++++++- .../src/main/res/layout/activity_main.xml | 5 +- 3 files changed, 75 insertions(+), 11 deletions(-) diff --git a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/build.gradle b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/build.gradle index e231b57c..cd9c2422 100644 --- a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/build.gradle +++ b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/build.gradle @@ -46,13 +46,20 @@ dependencies { androidTestCompile 'com.android.support:support-annotations:25.3.1' compile(group: 'com.shimmersensing', name: 'ShimmerAndroidInstrumentDriver', version: '3.0.72Beta', ext: 'aar') - implementation (group: 'com.shimmersensing', name: 'ShimmerBluetoothManager', version:'0.9.42beta'){ - // excluding org.json which is provided by Android - exclude group: 'io.netty' - exclude group: 'com.google.protobuf' - exclude group: 'org.apache.commons.math' - } - implementation (group: 'com.shimmersensing', name: 'ShimmerDriver', version:'0.9.138beta'){ +// implementation (group: 'com.shimmersensing', name: 'ShimmerBluetoothManager', version:'0.9.42beta'){ +// // excluding org.json which is provided by Android +// exclude group: 'io.netty' +// exclude group: 'com.google.protobuf' +// exclude group: 'org.apache.commons.math' +// } +// implementation (group: 'com.shimmersensing', name: 'ShimmerDriver', version:'0.9.138beta'){ +// // excluding org.json which is provided by Android +// exclude group: 'io.netty' +// exclude group: 'com.google.protobuf' +// exclude group: 'org.apache.commons.math' +// } + + implementation (group: 'com.shimmersensing', name: 'ShimmerDriverDev', version:'JA-79 v0.1'){ // excluding org.json which is provided by Android exclude group: 'io.netty' exclude group: 'com.google.protobuf' diff --git a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/java/shimmerresearch/com/shimmerbasicexample/MainActivity.java b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/java/shimmerresearch/com/shimmerbasicexample/MainActivity.java index e753e065..428cfadc 100644 --- a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/java/shimmerresearch/com/shimmerbasicexample/MainActivity.java +++ b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/java/shimmerresearch/com/shimmerbasicexample/MainActivity.java @@ -7,6 +7,9 @@ import android.os.Message; import android.util.Log; import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Spinner; import android.widget.Toast; import com.shimmerresearch.android.Shimmer; @@ -21,16 +24,17 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; -import java.util.Timer; -import java.util.TimerTask; +import java.util.List; import static com.shimmerresearch.android.guiUtilities.ShimmerBluetoothDialog.EXTRA_DEVICE_ADDRESS; -public class MainActivity extends Activity { +public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener { private final static String LOG_TAG = "ShimmerBasicExample"; Shimmer shimmer; + Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) { @@ -38,6 +42,39 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); shimmer = new Shimmer(mHandler); + spinner = (Spinner) findViewById(R.id.crcSpinner); + spinner.setEnabled(false); + // Spinner click listener + spinner.setOnItemSelectedListener(this); + List categories = new ArrayList(); + categories.add("Disable crc"); + categories.add("Enable 1 byte CRC"); + categories.add("Enable 2 byte CRC"); + // Creating adapter for spinner + ArrayAdapter dataAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, categories); + dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + // attaching data adapter to spinner + spinner.setAdapter(dataAdapter); + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + switch(position) { + case 0: + shimmer.disableBtCommsCrc(); + break; + case 1: + shimmer.enableBtCommsOneByteCrc(); + break; + case 2: + shimmer.enableBtCommsTwoByteCrc(); + break; + default: + } + } + + public void onNothingSelected(AdapterView parent) { + // Another interface callback } public void connectDevice(View v) { @@ -107,6 +144,21 @@ public void handleMessage(Message msg) { switch (state) { case CONNECTED: + if(shimmer.getFirmwareVersionCode() >= 8){ + spinner.setEnabled(true); + switch(shimmer.getBtCommsCrcModeIfFwSupported()) { + case OFF: + spinner.setSelection(0); + break; + case ONE_BYTE_CRC: + spinner.setSelection(1); + break; + case TWO_BYTE_CRC: + spinner.setSelection(2); + break; + default: + } + } break; case CONNECTING: break; @@ -117,6 +169,8 @@ public void handleMessage(Message msg) { case SDLOGGING: break; case DISCONNECTED: + spinner.setEnabled(false); + spinner.setSelection(0); break; } break; diff --git a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/res/layout/activity_main.xml b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/res/layout/activity_main.xml index aba5d886..ee519f01 100644 --- a/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/res/layout/activity_main.xml +++ b/ShimmerAndroidInstrumentDriver/shimmerBasicExample/src/main/res/layout/activity_main.xml @@ -43,7 +43,10 @@ android:layout_height="wrap_content" android:onClick="connectDevice" android:text="Connect" /> - +