임시 커밋

This commit is contained in:
DESKTOP-1A3P75F\lee
2022-09-23 04:08:46 +09:00
parent 024e26e041
commit 20e0d1e372
280 changed files with 1346 additions and 170 deletions

View File

@@ -17,8 +17,6 @@
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
@@ -92,6 +90,7 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".util.SerialService" />
</application>
</manifest>

View File

@@ -5,9 +5,9 @@
cmake_minimum_required(VERSION 3.4.1)
set(pathPROJECT D:/QTagger/a/QTagger_Android9)
set(pathOPENCV D:/QTagger/a/QTagger_Android9/OpenCV)
set(pathLIBOPENCV_JAVA D:/QTagger/a/QTagger_Android9/OpenCV/native/libs/${ANDROID_ABI}/libopencv_java4.so)
set(pathPROJECT D:/QTagger/a/QTagger_Android10)
set(pathOPENCV D:/QTagger/a/QTagger_Android10/OpenCV)
set(pathLIBOPENCV_JAVA D:/QTagger/a/QTagger_Android10/OpenCV/native/libs/${ANDROID_ABI}/libopencv_java4.so)
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

View File

@@ -2,20 +2,16 @@ package com.qtagger.Activity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.internal.NavigationMenu;
import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialProber;
import com.qtagger.Activity.NaviFragment.FillingPerFragment;
@@ -26,10 +22,9 @@ import com.qtagger.Activity.NaviFragment.ShotFragment;
import com.qtagger.Activity.NaviFragment.TestFragment;
import com.qtagger.Data.CustomProber;
import com.qtagger.Data.TestEnum;
import com.qtagger.Data.UsbItem;
import com.qtagger.R;
import com.qtagger.databinding.ActivityMainBinding;
import com.qtagger.util.DataManager;
import com.qtagger.util.UsbItem;
public class NavigationActivity extends AppCompatActivity {
private final long finishtimeed = 1000;

View File

@@ -0,0 +1,156 @@
package com.qtagger.Data;
import android.app.Activity;
import android.content.Context;
import android.hardware.usb.UsbManager;
import android.util.Log;
import com.hoho.android.usbserial.driver.UsbSerialProber;
import java.util.HashMap;
public class GlobalData {
public static enum ENUM_READER_TYPE {
RFID,
Barcode,
}
// public static enum ENUM_POSITION_TYPE_MAIN {
// TOP,
// MIDDLE,
// BOTTOM,
// }
// public static enum ENUM_POSITION_TYPE_SUB {
// FRONT,
// BACK,
// LEFT,
// RIGHT,
// }
public static enum ENUM_POSITION_TYPE_MAIN {
TOP("TOP", 1),
MIDDLE("MIDDLE", 2),
BOTTOM("BOTTOM", 3);
private String name;
private int cnt;
ENUM_POSITION_TYPE_MAIN(String name, int cnt) {
this.name = name;
this.cnt = cnt;
}
public static String getValue(int cnt) {
String val = null;
switch (cnt) {
case 1:
val = ENUM_POSITION_TYPE_MAIN.TOP.name;
break;
case 2:
val = ENUM_POSITION_TYPE_MAIN.MIDDLE.name;
break;
case 3:
val = ENUM_POSITION_TYPE_MAIN.BOTTOM.name;
break;
default:
break;
}
return val;
}
}
public static enum ENUM_POSITION_TYPE_SUB {
FRONT("FRONT", 1),
BACK("BACK", 2),
LEFT("LEFT", 3),
RIGHT("RIGHT", 4);
private String name;
private int cnt;
ENUM_POSITION_TYPE_SUB(String name, int cnt) {
this.name = name;
this.cnt = cnt;
}
public static String getValue(int cnt) {
String val = null;
switch (cnt) {
case 1:
val = ENUM_POSITION_TYPE_SUB.FRONT.name;
break;
case 2:
val = ENUM_POSITION_TYPE_SUB.BACK.name;
break;
case 3:
val = ENUM_POSITION_TYPE_SUB.LEFT.name;
break;
case 4:
val = ENUM_POSITION_TYPE_SUB.RIGHT.name;
break;
default:
break;
}
return val;
}
}
//DEFAULT VALUE
public static final String DEFAULT_VALUE_READ_POWER = "150";
//KEY
public static final String KEY_READER_DATA = "key_reader_data";
public static final String KEY_POSITION_DATA = "key_position_data";
public static final String KEY_POSITION_CURRENT_TYPE_MAIN = "key_position_current_type_main";
public static final String KEY_POSITION_CURRENT_TYPE_SUB = "key_position_current_type_sub";
public static final String KEY_POSITION_CURRENT_TYPE_BITMAP = "key_position_current_type_bitmap";
public static HashMap<String,Integer> getCount()
{
HashMap<String, Integer> result = new HashMap<String, Integer>();
for(int i = 1; i<ENUM_POSITION_TYPE_MAIN.values().length+1; i++)
{
String tx = "";
String cnt = "";
tx = ENUM_POSITION_TYPE_MAIN.getValue(i) + "_";
cnt = i + "";
for(int j = 1; j<ENUM_POSITION_TYPE_SUB.values().length+1; j++)
{
String tmpTx = tx;
String tmpCnt = cnt;
tmpTx += ENUM_POSITION_TYPE_SUB.getValue(j);
tmpCnt += j + "";
result.put(tmpTx,Integer.parseInt(tmpCnt));
Log.i("test",tmpTx +","+Integer.parseInt(tmpCnt));
}
}
return result;
}
public static boolean usbCheck(Activity activity){
boolean result = false;
UsbManager usbManager = (UsbManager) activity.getSystemService(Context.USB_SERVICE);
UsbSerialProber usbDefaultProber = UsbSerialProber.getDefaultProber();
UsbSerialProber usbCustomProber = CustomProber.getCustomProber();
if(usbManager.getDeviceList().values().size() > 0)
{
result = true;
}
return result;
}
}

View File

@@ -1,23 +0,0 @@
package com.qtagger.Data;
import android.hardware.usb.UsbDevice;
import com.hoho.android.usbserial.driver.CdcAcmSerialDriver;
import com.hoho.android.usbserial.driver.ProbeTable;
import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialProber;
public class UsbItem {
UsbDevice device;
int port;
UsbSerialDriver driver;
public UsbItem(UsbDevice device, int port, UsbSerialDriver driver) {
this.device = device;
this.port = port;
this.driver = driver;
}
}

View File

@@ -11,8 +11,10 @@ import android.annotation.SuppressLint;
import android.app.PendingIntent;
import android.app.ProgressDialog;
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.content.res.AssetManager;
import android.graphics.Bitmap;
@@ -29,6 +31,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.text.Editable;
import android.text.Spannable;
@@ -36,6 +39,7 @@ import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
@@ -60,10 +64,12 @@ import com.qtagger.util.Constants;
import com.qtagger.util.DataManager;
import com.qtagger.util.OracleQueryStr;
import com.qtagger.util.PositionData;
import com.qtagger.util.ReaderData;
import com.qtagger.util.SerialListener;
import com.qtagger.util.SerialService;
import com.qtagger.util.SerialSocket;
import com.qtagger.util.TextUtil;
import com.qtagger.util.UsbItem;
import org.json.JSONObject;
import org.opencv.android.OpenCVLoader;
@@ -99,21 +105,24 @@ import java.util.EnumSet;
import java.util.List;
import java.util.stream.Collectors;
public class test extends AppCompatActivity implements SerialListener {
public class test extends AppCompatActivity implements ServiceConnection, SerialListener {
static {
System.loadLibrary("native-lib");
}
private enum Connected { False, Pending, True }
private Connected connected = Connected.False;
//private final BroadcastReceiver broadcastReceiver
private final BroadcastReceiver broadcastReceiver;
private boolean controlLinesEnabled = false;
private boolean hexEnabled = true;
public boolean modeCheck = false;
public boolean bStart = false;
private boolean pendingNewline = false;
private int deviceId, portNum, baudRate;
private boolean initialStart = true;
private int deviceId, portNum, baudRate= 9600;
private UsbItem item;
private String newline = TextUtil.newline_crlf;
private UsbSerialPort usbSerialPort;
private ReaderData readerData;
private SerialService service;
private ControlLines controlLines;
private PositionData positionData;
@@ -132,6 +141,22 @@ public class test extends AppCompatActivity implements SerialListener {
String resultStr = "";
public String ocr = "d05"; //eng, letsgodigital, 7seg, nse
public boolean boxFlag = false;
public test(){
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Constants.INTENT_ACTION_GRANT_USB)) {
Boolean granted = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false);
connect(granted);
}
}
};
}
@SuppressLint("WrongThread")
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -148,6 +173,9 @@ public class test extends AppCompatActivity implements SerialListener {
progressDialog.setCancelable(true);
progressDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Horizontal);
connect();
tessBaseAPI = new TessBaseAPI();
String dir = getFilesDir() + "/tesseract";
@@ -199,7 +227,6 @@ public class test extends AppCompatActivity implements SerialListener {
BitmapFactory.Options optionsOrigin = new BitmapFactory.Options();
//origin set
mOrigin = BitmapFactory.decodeStream(inOrigin, null, optionsOrigin);
imageView.setImageBitmap(mOrigin);
@@ -305,8 +332,9 @@ public class test extends AppCompatActivity implements SerialListener {
UsbDevice device = null;
UsbManager usbManager = (UsbManager) this.getSystemService(Context.USB_SERVICE);
for(UsbDevice v : usbManager.getDeviceList().values())
if(v.getDeviceId() == deviceId)
if(v.getProductName().equals("FT232R USB UART")) {
device = v;
}
if(device == null) {
status("connection failed: device not found");
return;
@@ -351,6 +379,55 @@ public class test extends AppCompatActivity implements SerialListener {
onSerialConnectError(e);
}
}
@Override
public void onStart() {
super.onStart();
if(service != null)
service.attach(this);
else {
startService(new Intent(this, SerialService.class)); // prevents service destroy on unbind from recreated activity caused by orientation change
//bindService(new Intent(this, SerialService.class),service,Context.BIND_AUTO_CREATE );
}
}
@Override
public void onResume() {
super.onResume();
registerReceiver(broadcastReceiver, new IntentFilter(Constants.INTENT_ACTION_GRANT_USB));
if(initialStart && service != null) {
initialStart = false;
runOnUiThread(this::connect);
}
if(controlLinesEnabled && controlLines != null && connected == Connected.True)
controlLines.start();
}
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
service = ((SerialService.SerialBinder) binder).getService();
service.attach(this);
if(initialStart ) {
initialStart = false;
this.runOnUiThread(this::connect);
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
service = null;
}
@Override
public void onBindingDied(ComponentName name) {
ServiceConnection.super.onBindingDied(name);
}
@Override
public void onNullBinding(ComponentName name) {
ServiceConnection.super.onNullBinding(name);
}
@Override
public void onSerialConnect() {
@@ -1358,4 +1435,25 @@ public class test extends AppCompatActivity implements SerialListener {
return warpDst;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if( keyCode == 138 ) {
//((CaptureFragment) getSupportFragmentManager().findFragmentByTag("fragmentTag")).doCapture();
bStart = true;
doCapture();
}
return super.onKeyUp(keyCode, event);
}
public void doCapture() {
if(bStart) {
if (service != null && !isChangingConfigurations())
service.detach();
}
else
Toast.makeText(test.this, "wait please", Toast.LENGTH_SHORT).show();
}
}

View File

@@ -32,6 +32,8 @@ public class CommonHelper {
public static String DefaultDBFolderPath = DefaultPath+"DB/";
public static String DefaultImageFolderPath = DefaultPath+ "Image/";
public static String DBName = "QTagger.db";
public static String QTagger_Usb_Product_name = "FT232R USB UART";
public static int QTagger_Usb_baudRate = 9600;
// 년 기준
private final static double stdrYear = 365.2422;
// 시간 기준
@@ -83,6 +85,7 @@ public class CommonHelper {
activityResultPicture.launch(cameraIntent);
}
}
public static void FolderClear(){
File f = new File(DefaultDBFolderPath+ DBName);
if(!f.exists())
@@ -110,79 +113,4 @@ public class CommonHelper {
return dir;
}
public static double getTotalLad(double nuclideVal,long decayTime,double halfLife, String halfLifeUnit ) {
// 반감기를 일로 환산시킨다.
switch (halfLifeUnit) {
case "YY":
halfLife = halfLife * stdrYear;
break;
case "SS":
halfLife = halfLife / stdrHour;
break;
// DAY
default:
break;
}
// 총방사능량을 계산한다.(핵종 * exp(-(log(2)*붕괴시간 / 반감기)))
double result = nuclideVal * Math.exp(-(Math.log(2) * decayTime / halfLife));
return result;
}
public static double getTotalLad(double nuclideVal,long decayTime,NuclideData nuclideData)
{
return getTotalLad(nuclideVal,decayTime,nuclideData.getHalfLife(),nuclideData.getHalfLifeUnit());
}
public static Map<String,NuclideData> getAllNuclideData(){
Map<String,NuclideData> resultData = new HashMap<>();
resultData.put("Ag-110m",new NuclideData("Ag-110m","감마핵종","DD",0,249.7891406));
resultData.put("C-14",new NuclideData("C-14","베타핵종","DD",222000,2092837.806));
resultData.put("Ce-144",new NuclideData("Ce-144","감마핵종","DD",0,284.888916));
resultData.put("Co-57",new NuclideData("Co-57","기타핵종","DD",0,271.7036726));
resultData.put("Co-58",new NuclideData("Co-58","감마핵종","DD",0,70.8569868));
resultData.put("Co-60",new NuclideData("Co-60","감마핵종","DD",37000000,1925.191636));
resultData.put("Cr-51",new NuclideData("Cr-51","감마핵종","DD",0,27.68535876));
resultData.put("Cs-134",new NuclideData("Cs-134","감마핵종","DD",0,754.225143));
resultData.put("Cs-137",new NuclideData("Cs-137","감마핵종","DD",1110000,10971.87569));
resultData.put("Eu-152",new NuclideData("Eu-152","베타핵종","YY",0,13.54));
resultData.put("Eu-154",new NuclideData("Eu-154","베타핵종","YY",0,14.35));
resultData.put("Fe-55",new NuclideData("Fe-55","베타핵종","DD",0,997.111206));
resultData.put("Fe-59",new NuclideData("Fe-59","기타핵종","DD",0,44.48649996));
resultData.put("G-Alpha",new NuclideData("G-Alpha","알파핵종","DD",3700,8805989.442));
resultData.put("H-3",new NuclideData("H-3","베타핵종","DD",1110000,4503.436326));
resultData.put("I-129",new NuclideData("I-129","베타핵종","DD",37,5734302540.0));
resultData.put("Mn-54",new NuclideData("Mn-54","기타핵종","DD",0,312.0994599));
resultData.put("Nb-94",new NuclideData("Nb-94","베타핵종","DD",111,7414416.66));
resultData.put("Nb-95",new NuclideData("Nb-95","베타핵종","DD",0,34.99020276));
resultData.put("Ni-59",new NuclideData("Ni-59","베타핵종","DD",74000,27758407.2));
resultData.put("Ni-63",new NuclideData("Ni-63","베타핵종","DD",11100000,36560.74422));
resultData.put("Sb-125",new NuclideData("Sb-125","감마핵종","DD",0,1007.337988));
resultData.put("Sr-90",new NuclideData("Sr-90","베타핵종","DD",74000,10497.06083));
resultData.put("Tc-99",new NuclideData("Tc-99","베타핵종","DD",1110,77102628.42));
resultData.put("Zn-65",new NuclideData("Zn-65","기타핵종","DD",0,244.3105076));
resultData.put("Zr-95",new NuclideData("Zr-95","기타핵종","DD",0,64.02695766));
return resultData;
}
}

View File

@@ -0,0 +1,106 @@
package com.qtagger.util;
import com.qtagger.Data.GlobalData;
import java.io.Serializable;
public class ReaderData implements Serializable {
private String type;
private String readValue;
private String readPower;
private int deviceId;
private int port;
private int baudRate;
private String productName;
private String weightValue;
private String weightBitmapPath;
public ReaderData() {
this.type = GlobalData.ENUM_READER_TYPE.RFID.toString();
this.readPower = GlobalData.DEFAULT_VALUE_READ_POWER;
this.readValue = null;
this.weightValue = null;
this.weightBitmapPath = null;
this.deviceId = 0;
this.port = 0;
this.baudRate = 0;
this.productName = null;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getReadValue() {
return readValue;
}
public void setReadValue(String readValue) {
this.readValue = readValue;
}
public String getReadPower() {
return readPower;
}
public void setReadPower(String readPower) {
this.readPower = readPower;
}
public int getDeviceId() {
return deviceId;
}
public void setDeviceId(int deviceId) {
this.deviceId = deviceId;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public int getBaudRate() {
return baudRate;
}
public void setBaudRate(int baudRate) {
this.baudRate = baudRate;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getWeightValue() {
return weightValue;
}
public void setWeightValue(String weightValue) {
this.weightValue = weightValue;
}
public String getWeightBitmapPath() {
return weightBitmapPath;
}
public void setWeightBitmapPath(String weightBitmapPath) {
this.weightBitmapPath = weightBitmapPath;
}
}

View File

@@ -24,8 +24,8 @@ import java.util.Queue;
public class SerialService extends Service implements SerialListener {
class SerialBinder extends Binder {
SerialService getService() { return SerialService.this; }
public class SerialBinder extends Binder {
public SerialService getService() { return SerialService.this; }
}
private enum QueueType {Connect, ConnectError, Read, IoError}

View File

@@ -5,11 +5,11 @@ import android.hardware.usb.UsbDevice;
import com.hoho.android.usbserial.driver.UsbSerialDriver;
public class UsbItem {
UsbDevice device;
int port;
UsbSerialDriver driver;
public UsbDevice device;
public int port;
public UsbSerialDriver driver;
UsbItem(UsbDevice device, int port, UsbSerialDriver driver) {
public UsbItem(UsbDevice device, int port, UsbSerialDriver driver) {
this.device = device;
this.port = port;
this.driver = driver;