| | |
| | | import android.graphics.Bitmap; |
| | | import android.graphics.drawable.BitmapDrawable; |
| | | import android.hardware.Camera; |
| | | import android.hardware.usb.UsbDevice; |
| | | import android.hardware.usb.UsbManager; |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | |
| | | import com.doumee.keyCabinet.utils.face.ImportFileManager; |
| | | import com.doumee.keyCabinet.utils.face.RegisterConfigUtils; |
| | | import com.doumee.keyCabinet.utils.face.model.SingleBaseConfig; |
| | | import com.doumee.keyCabinet.utils.i485.SerialPortModel; |
| | | import com.doumee.keyCabinet.utils.i485.SerialPortReadObserver; |
| | | import com.doumee.keyCabinet.utils.i485.SportUtils; |
| | | import com.doumee.keyCabinet.utils.update.PermissionUtils; |
| | | import com.doumee.keyCabinet.utils.update.PermissiondDialog; |
| | | import com.doumee.keyCabinet.utils.update.UpdateUtil; |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Random; |
| | | import java.util.Timer; |
| | |
| | | startService(intent2); |
| | | getPermission(); |
| | | Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId()); |
| | | initPort(); |
| | | } |
| | | |
| | | private void initM(){ |
| | |
| | | handler = null; |
| | | faceHandler.removeCallbacksAndMessages(null); |
| | | faceHandler = null; |
| | | portHandler.removeCallbacksAndMessages(null); |
| | | portHandler = null; |
| | | } |
| | | |
| | | private void restartApp(){ |
| | |
| | | } |
| | | } |
| | | |
| | | private SerialPortModel gridPort; |
| | | private SerialPortReadObserver gridReadObserver = new SerialPortReadObserver() { |
| | | @Override |
| | | public void onResult(String result) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onResultBytes(byte[] bytes) { |
| | | if(gridPort!=null && !gridPort.isOk()){ |
| | | gridPort.setOk(true); |
| | | } |
| | | } |
| | | }; |
| | | private SerialPortModel keyPort; |
| | | private SerialPortReadObserver keyReadObserver = new SerialPortReadObserver() { |
| | | @Override |
| | | public void onResult(String result) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onResultBytes(byte[] bytes) { |
| | | if(keyPort!=null && !keyPort.isOk()){ |
| | | keyPort.setOk(true); |
| | | } |
| | | } |
| | | }; |
| | | private SerialPortModel jiuPort; |
| | | private SerialPortReadObserver jiuReadObserver = new SerialPortReadObserver() { |
| | | @Override |
| | | public void onResult(String result) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onResultBytes(byte[] bytes) { |
| | | if(jiuPort!=null && !jiuPort.isOk()){ |
| | | jiuPort.setOk(true); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | List<String> ports; |
| | | private int index = 0; |
| | | private Handler portHandler = new Handler(){ |
| | | @Override |
| | | public void handleMessage(@NonNull Message msg) { |
| | | switch (msg.what){ |
| | | case 0: |
| | | if(index>=1&&!checkEnd()){ |
| | | index--; |
| | | chosePort(ports.get(index)); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | }; |
| | | //初始化串口 |
| | | private void initPort(){ |
| | | ports = SportUtils.getSerialPortPaths(this); |
| | | if(ports.size()>0){ |
| | | index = ports.size()-1; |
| | | chosePort(ports.get(ports.size()-1)); |
| | | } |
| | | } |
| | | |
| | | private void chosePort(String path){ |
| | | if(gridPort==null||!gridPort.isOk()){ |
| | | closePort(gridPort); |
| | | gridPort = new SerialPortModel(path,9600 ,8 |
| | | ,1 , 0); |
| | | boolean isSucc = gridPort.open(); |
| | | if(isSucc) { |
| | | String msg = isSucc ? "成功" : "失败"; |
| | | //getVM().append("串口 "+ settingBean.getDevicePath() + " -连接"+msg); |
| | | gridPort.startRead(gridReadObserver); |
| | | //todo 发送柜格校验信息 |
| | | } |
| | | } |
| | | if(keyPort==null||!keyPort.isOk()){ |
| | | closePort(keyPort); |
| | | keyPort = new SerialPortModel(path,115200 ,8 |
| | | ,1 , 0); |
| | | boolean isSucc = keyPort.open(); |
| | | if(isSucc) { |
| | | String msg = isSucc ? "成功" : "失败"; |
| | | //getVM().append("串口 "+ settingBean.getDevicePath() + " -连接"+msg); |
| | | keyPort.startRead(keyReadObserver); |
| | | //todo 发送钥匙校验信息 |
| | | } |
| | | } |
| | | if(jiuPort==null||!jiuPort.isOk()){ |
| | | closePort(jiuPort); |
| | | jiuPort = new SerialPortModel(path,9600 ,8 |
| | | ,1 , 0); |
| | | boolean isSucc = jiuPort.open(); |
| | | if(isSucc) { |
| | | String msg = isSucc ? "成功" : "失败"; |
| | | //getVM().append("串口 "+ settingBean.getDevicePath() + " -连接"+msg); |
| | | jiuPort.startRead(jiuReadObserver); |
| | | //todo 发送酒精校验信息 |
| | | } |
| | | } |
| | | |
| | | portHandler.sendEmptyMessageDelayed(0,2000); |
| | | } |
| | | |
| | | private void closePort(SerialPortModel port){ |
| | | if(port==null){ |
| | | return; |
| | | } |
| | | port.startRead(null); |
| | | port.stopRead(); |
| | | port.close(); |
| | | port = null; |
| | | } |
| | | |
| | | private boolean checkEnd(){ |
| | | if(gridPort==null||!gridPort.isOk()){ |
| | | return false; |
| | | } |
| | | if(keyPort==null||!keyPort.isOk()){ |
| | | return false; |
| | | } |
| | | if(jiuPort==null||!jiuPort.isOk()){ |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | } |