From c9363d026301baf9cdb4ef2da2311b9eeaa18259 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1A3P75F\\lee" Date: Fri, 23 Sep 2022 06:31:15 +0900 Subject: [PATCH] =?UTF-8?q?qtagger=20USB=ED=86=B5=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generate_cxx_metadata_3965_timing.txt | 2 + .../generate_cxx_metadata_4304_timing.txt | 2 + .../generate_cxx_metadata_4627_timing.txt | 2 + .../generate_cxx_metadata_4970_timing.txt | 2 + .../generate_cxx_metadata_5310_timing.txt | 2 + .../generate_cxx_metadata_5595_timing.txt | 2 + .../generate_cxx_metadata_5932_timing.txt | 2 + .../generate_cxx_metadata_6248_timing.txt | 2 + .../generate_cxx_metadata_6593_timing.txt | 2 + .../generate_cxx_metadata_6925_timing.txt | 2 + .../generate_cxx_metadata_7195_timing.txt | 2 + .../generate_cxx_metadata_7539_timing.txt | 2 + .../generate_cxx_metadata_7890_timing.txt | 2 + .../cxx/create_cxx_tasks_3796_timing.txt | 5 + .../cxx/create_cxx_tasks_4146_timing.txt | 5 + .../cxx/create_cxx_tasks_4473_timing.txt | 5 + .../cxx/create_cxx_tasks_4820_timing.txt | 10 + .../cxx/create_cxx_tasks_5436_timing.txt | 10 + .../cxx/create_cxx_tasks_6096_timing.txt | 5 + .../cxx/create_cxx_tasks_6432_timing.txt | 5 + .../cxx/create_cxx_tasks_6764_timing.txt | 5 + .../cxx/create_cxx_tasks_7047_timing.txt | 5 + .../cxx/create_cxx_tasks_7386_timing.txt | 5 + .../cxx/create_cxx_tasks_7744_timing.txt | 5 + .../qtagger/Activity/Search/RfidFragment.java | 1 - .../com/qtagger/Activity/TestActivity.java | 414 +++++++++++++++++- .../main/java/com/qtagger/util/TextUtil.java | 4 +- app/src/main/res/values/colors.xml | 1 + 28 files changed, 503 insertions(+), 8 deletions(-) create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_3965_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4304_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4627_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4970_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5310_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5595_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5932_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6248_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6593_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6925_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7195_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7539_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7890_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_3796_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_4146_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_4473_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_4820_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_5436_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_6096_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_6432_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_6764_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_7047_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_7386_timing.txt create mode 100644 OpenCV/build/intermediates/cxx/create_cxx_tasks_7744_timing.txt diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_3965_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_3965_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_3965_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4304_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4304_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4304_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4627_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4627_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4627_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4970_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4970_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_4970_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5310_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5310_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5310_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5595_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5595_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5595_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5932_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5932_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_5932_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6248_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6248_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6248_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6593_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6593_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6593_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6925_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6925_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_6925_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7195_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7195_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7195_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7539_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7539_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7539_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7890_timing.txt b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7890_timing.txt new file mode 100644 index 0000000..9708df4 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/Debug/111w1j12/meta/arm64-v8a/generate_cxx_metadata_7890_timing.txt @@ -0,0 +1,2 @@ +# C/C++ build system timings + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_3796_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_3796_timing.txt new file mode 100644 index 0000000..a3122bf --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_3796_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 16ms +create_cxx_tasks completed in 17ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_4146_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4146_timing.txt new file mode 100644 index 0000000..9691afc --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4146_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 17ms +create_cxx_tasks completed in 17ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_4473_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4473_timing.txt new file mode 100644 index 0000000..e10017d --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4473_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 17ms +create_cxx_tasks completed in 18ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_4820_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4820_timing.txt new file mode 100644 index 0000000..1b153f3 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_4820_timing.txt @@ -0,0 +1,10 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 16ms +create_cxx_tasks completed in 17ms + +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 21ms +create_cxx_tasks completed in 22ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_5436_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_5436_timing.txt new file mode 100644 index 0000000..2627201 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_5436_timing.txt @@ -0,0 +1,10 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 20ms +create_cxx_tasks completed in 21ms + +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 19ms +create_cxx_tasks completed in 20ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_6096_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6096_timing.txt new file mode 100644 index 0000000..e10017d --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6096_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 17ms +create_cxx_tasks completed in 18ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_6432_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6432_timing.txt new file mode 100644 index 0000000..e10017d --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6432_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 17ms +create_cxx_tasks completed in 18ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_6764_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6764_timing.txt new file mode 100644 index 0000000..c6c4836 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_6764_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 15ms +create_cxx_tasks completed in 16ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_7047_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7047_timing.txt new file mode 100644 index 0000000..9691afc --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7047_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 17ms +create_cxx_tasks completed in 17ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_7386_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7386_timing.txt new file mode 100644 index 0000000..ffc6c5a --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7386_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 22ms +create_cxx_tasks completed in 23ms + diff --git a/OpenCV/build/intermediates/cxx/create_cxx_tasks_7744_timing.txt b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7744_timing.txt new file mode 100644 index 0000000..e340677 --- /dev/null +++ b/OpenCV/build/intermediates/cxx/create_cxx_tasks_7744_timing.txt @@ -0,0 +1,5 @@ +# C/C++ build system timings +create_cxx_tasks + create-initial-cxx-model 18ms +create_cxx_tasks completed in 18ms + diff --git a/app/src/main/java/com/qtagger/Activity/Search/RfidFragment.java b/app/src/main/java/com/qtagger/Activity/Search/RfidFragment.java index c8617df..9c2d298 100644 --- a/app/src/main/java/com/qtagger/Activity/Search/RfidFragment.java +++ b/app/src/main/java/com/qtagger/Activity/Search/RfidFragment.java @@ -115,7 +115,6 @@ public class RfidFragment extends Fragment { @Override public void onReaderReadTag(ATRfidReader atRfidReader, String s, float v, float v1) { - //테스트할수있어야함함 textViewRfidText.setText(s); } @Override diff --git a/app/src/main/java/com/qtagger/Activity/TestActivity.java b/app/src/main/java/com/qtagger/Activity/TestActivity.java index 8b20d78..b46f937 100644 --- a/app/src/main/java/com/qtagger/Activity/TestActivity.java +++ b/app/src/main/java/com/qtagger/Activity/TestActivity.java @@ -3,28 +3,208 @@ package com.qtagger.Activity; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; +import android.content.ServiceConnection; +import android.hardware.usb.UsbDevice; +import android.hardware.usb.UsbDeviceConnection; +import android.hardware.usb.UsbManager; import android.os.Bundle; +import android.os.IBinder; +import android.text.Editable; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.style.ForegroundColorSpan; +import android.util.Log; import android.view.View; +import android.widget.ProgressBar; import android.widget.TextView; import com.google.android.material.tabs.TabLayout; +import com.hoho.android.usbserial.driver.UsbSerialDriver; +import com.hoho.android.usbserial.driver.UsbSerialPort; +import com.hoho.android.usbserial.driver.UsbSerialProber; import com.qtagger.Activity.Test.CaptureFragment; import com.qtagger.Activity.Test.FillFragment; import com.qtagger.Activity.Test.InfoFragment; import com.qtagger.Activity.Test.PhotographFragment; import com.qtagger.Activity.Test.WeightFragment; import com.qtagger.Data.CaptureFragmentEnum; +import com.qtagger.Data.CustomProber; import com.qtagger.Data.TestEnum; import com.qtagger.Database.ORIGIN_CHRCT; import com.qtagger.R; +import com.qtagger.util.CommonHelper; +import com.qtagger.util.Constants; import com.qtagger.util.DataManager; +import com.qtagger.util.SerialListener; +import com.qtagger.util.SerialService; +import com.qtagger.util.SerialSocket; +import com.qtagger.util.TextUtil; public class TestActivity extends AppCompatActivity { + private enum Connected { False, Pending, True } + private Connected connected = Connected.False; + SerialService service; + boolean isService = false; + private boolean hexEnabled = true; + public boolean modeCheck = false; + public boolean stopFlag = true; + private UsbSerialPort usbSerialPort; + public String resultStr = ""; + + ServiceConnection conn = new ServiceConnection() { + public void onServiceConnected(ComponentName name, + IBinder binder) { + // 서비스와 연결되었을 때 호출되는 메서드 + // 서비스 객체를 전역변수로 저장 + service = ((SerialService.SerialBinder)binder).getService(); + service.attach(mCallback); + //new Thread(()->{connect(null);}).start(); + TestActivity.this.runOnUiThread(TestActivity.this::connect); + // 서비스쪽 객체를 전달받을수 있슴 + isService = true; + } + public void onServiceDisconnected(ComponentName name) { + // 서비스와 연결이 끊겼을 때 호출되는 메서드 + isService = false; + } + }; + SerialListener mCallback = new SerialListener() { + @Override + public void onSerialConnect() { + Log.d("연결", "연결성공"); + connected = Connected.True; + + } + + @Override + public void onSerialConnectError(Exception e) { + Log.d("연결", "연결실패"); + connected = Connected.False; + + } + + @Override + public void onSerialRead(byte[] data) { + receive(data); + } + + @Override + public void onSerialIoError(Exception e) { + Log.d("연결", "연결 끊김"); + connected = Connected.False; + } + }; + + private void connect() + { + connect(null); + } + + + private void connect(Boolean permissionGranted) { + int portNum = 0; + UsbDevice device = null; + UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); + UsbSerialProber usbDefaultProber = UsbSerialProber.getDefaultProber(); + UsbSerialProber usbCustomProber = CustomProber.getCustomProber(); + for(UsbDevice v : usbManager.getDeviceList().values()) { + UsbSerialDriver sDriver = usbDefaultProber.probeDevice(v); + if(sDriver == null) { + sDriver = usbCustomProber.probeDevice(v); + } + if(sDriver != null){ + for(int port = 0; port < sDriver.getPorts().size(); port++) + { + if (v.getProductName().equals("FT232R USB UART")) { + portNum = port; + device = v; + break; + } + } + } + + } + if(device == null) { + return; + } + UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device); + if(driver == null) { + driver = CustomProber.getCustomProber().probeDevice(device); + } + if(driver == null) { + return; + } + if(driver.getPorts().size() < portNum) { + return; + } + usbSerialPort = driver.getPorts().get(portNum); + UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice()); + if(usbConnection == null && permissionGranted == null && !usbManager.hasPermission(driver.getDevice())) { + PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(Constants.INTENT_ACTION_GRANT_USB), 0); + usbManager.requestPermission(driver.getDevice(), usbPermissionIntent); + return; + } + if(usbConnection == null) { + if (!usbManager.hasPermission(driver.getDevice())) + Log.d("connect ","connection failed: permission denied"); + else + Log.d("connect ","connection failed: open failed"); + return; + } + + connected = Connected.Pending; + try { + usbSerialPort.open(usbConnection); + usbSerialPort.setParameters(CommonHelper.QTagger_Usb_baudRate, UsbSerialPort.DATABITS_8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); + SerialSocket socket = new SerialSocket(this.getApplicationContext(), usbConnection, usbSerialPort); + + service.connect(socket); + + connected = Connected.True; + } catch (Exception e) { + Log.d("error",e.getMessage()); + } + } + + private void receive(byte[] data) { + if(hexEnabled) { + if(resultStr.length() > 0) { + resultStr += " "; + } + resultStr += TextUtil.toHexString(data); + + if(modeCheck) { + String tempStr = resultStr.replaceAll(" ", ""); + Log.i("jjhTest : tempStr!!!!!" , tempStr.length() + ""); + if(tempStr.length() == 72) { + String value = tempStr.substring(42, 50); + Long i = Long.parseLong(value, 16); + Float f = Float.intBitsToFloat(i.intValue()); + double df = f; + df = df / 10; + Log.i("jjhTest!!!!!" , String.format("%.5f", df) + " μSv/hr"); + + + } + } + } else { + String msg = new String(data); + } + } + Fragment surfaceFragment, m1Fragment, weightFragment, fillFragment, pictureFragment, infoFragment; TextView textViewRadiation,textView_TestEnum,textView_TestEnum2; TabLayout tabs; DataManager dataManager = DataManager.getInstance(); + + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -46,6 +226,7 @@ public class TestActivity extends AppCompatActivity { finish(); } }); + bindService(new Intent(this, SerialService.class), conn, Context.BIND_AUTO_CREATE); @@ -112,6 +293,111 @@ public class TestActivity extends AppCompatActivity { } }); + Thread detectThread = new Thread() { + public void run() { + try { + Thread.sleep(1000); + if(stopFlag) + { + stopFlag = false; + modeCheck = false; + + int count = 0; + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 FF 00 00 00 02 01 5D FF AA", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0A 00 40 84 00 00 04 84", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 03 5D FB 27", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 01 5D FE 26", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 42 5D 6A 79", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 04 5D D1 50", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 01 5D FE 26", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 42 5D 6A 79", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 04 5D D1 50", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 0A 5C 20 FC", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 16 02 14 4F 00 09", count++); + Thread th = new Thread(r); + th.start(); + } + + { + RunnableExample r = new RunnableExample("AA 00 0E 00 40 84 00 00 00 02 16 5A 00 12", count++); + Thread th = new Thread(r); + th.start(); + } + + int finalCount = count; + Thread newThread = new Thread(() -> { + try { + recursiveCall(finalCount); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + newThread.start(); + } + else + { +// detect_button.setText("Detect"); + //value_button.setText(""); + stopFlag = true; + } + }catch (Exception e) { + e.printStackTrace(); + } + } + }; + detectThread.start(); + } @Override @@ -150,16 +436,134 @@ public class TestActivity extends AppCompatActivity { textView_TestEnum2.setText("예비검사"); } } - - - - - if(dataManager.testTabPosition != -1) { tabs.getTabAt(dataManager.testTabPosition).select(); } + + + } + + @Override + protected void onResume() { + super.onResume(); + } + + class RunnableExample implements Runnable + { + public String code = ""; + public Integer idx = 0; + public RunnableExample(String code, Integer idx) + { + this.code = code; + this.idx = idx; + } + + public void run() + { + try { + Thread.sleep(300 * this.idx); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + //run() 추상메서드에 작업내용 구현 + send(this.code); + threadSleep(); + } + } + + class RunnableExample2 implements Runnable + { + public String code = ""; + + public RunnableExample2(String code) + { + this.code = code; + } + + public void run() + { + send(this.code); + } + } + + private void send(String str) { + if(connected != Connected.True) { + //Toast.makeText(getContext(), "not connected", Toast.LENGTH_SHORT).show(); + return; + } + try { + String msg; + byte[] data; + if(hexEnabled) { + StringBuilder sb = new StringBuilder(); + TextUtil.toHexString(sb, TextUtil.fromHexString(str)); + //TextUtil.toHexString(sb, newline.getBytes()); + msg = sb.toString(); + data = TextUtil.fromHexString(msg); + } else { + msg = str; + data = (str).getBytes(); + } + resultStr = ""; + + SpannableStringBuilder spn = new SpannableStringBuilder('\n' + msg+'\n'); + spn.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorSendText)), 0, spn.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + //receiveText.append(spn); + service.write(data); + } catch (Exception e) { + service.onSerialIoError(e); + } + } + + public void threadSleep() + { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void recursiveCall(Integer idx) throws InterruptedException { + if(idx == 0) { + try { + Thread.sleep(1000 * 1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + else + { + try { + Thread.sleep(300 * (idx + 1)); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + modeCheck = true; + + RunnableExample2 r = new RunnableExample2("AA 00 0A 00 40 84 00 00 09 7F"); + Thread th = new Thread(r); + th.start(); + + if(stopFlag == false) { + Thread newThread = new Thread(() -> { + try { + recursiveCall(0); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + newThread.start(); + } + else + { + modeCheck = false; + } } } \ No newline at end of file diff --git a/app/src/main/java/com/qtagger/util/TextUtil.java b/app/src/main/java/com/qtagger/util/TextUtil.java index 2c3c68d..d55e3d8 100644 --- a/app/src/main/java/com/qtagger/util/TextUtil.java +++ b/app/src/main/java/com/qtagger/util/TextUtil.java @@ -20,7 +20,7 @@ public final class TextUtil { public final static String newline_crlf = "\r\n"; public final static String newline_lf = "\n"; - static byte[] fromHexString(final CharSequence s) { + public static byte[] fromHexString(final CharSequence s) { ByteArrayOutputStream buf = new ByteArrayOutputStream(); byte b = 0; int nibble = 0; @@ -50,7 +50,7 @@ public final class TextUtil { return sb.toString(); } - static void toHexString(StringBuilder sb, final byte[] buf) { + public static void toHexString(StringBuilder sb, final byte[] buf) { toHexString(sb, buf, 0, buf.length); } diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e578e0c..b0c9a45 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -8,4 +8,5 @@ #FF000000 #FFFFFFFF #d84315 + #82CAFF \ No newline at end of file