//package com.hh.arome.common.scan.broadcast;
//
//import android.app.Activity;
//import android.content.Context;
//import android.hardware.usb.UsbDevice;
//import android.hardware.usb.UsbManager;
//
//import androidx.fragment.app.FragmentActivity;
//
//import com.hh.arome.common.scan.broadcast.abstractscan.IBroadcastScan;
//import com.hh.arome.common.scan.broadcast.callback.IScanResultCallback;
//import com.hh.arome.common.scan.broadcast.d2.SerialDataListener;
//import com.hh.arome.common.scan.broadcast.d2.SerialRecvThread;
//import com.hh.arome.utlis.log.AppLogUtils;
//import com.telpo.tps550.api.qrcode.QrcodePower;
//
//import java.util.HashMap;
//
//public class D2Scan implements IBroadcastScan {
//
//    //用volatile关键字确保 instance 在多线程下的可见性
//    private static volatile D2Scan instance = null;
//
//    //将构造方法私有化，禁止外部通过构造方法创建实例
//    private D2Scan() {}
//
//    //提供一个公共的访问方法，用于获取该类的唯一实例
//    public static D2Scan getInstance(Context context) {
//        //如果instance为空，就进行实例化
//        if (instance == null) {
//            //保证多线程下只有一个线程进行实例化
//            synchronized (D2Scan.class) {
//                //第二次判断，避免多线程下创建多个实例
//                if (instance == null) {
//                    instance = new D2Scan(context);
//                }
//            }
//        }
//        return instance;
//    }
//
//
//    Context mContext;
//    Activity mActivity;
//
//
//    public D2Scan(Context context) {
//        if (context instanceof FragmentActivity) {
//            this.mActivity = (Activity) context;
//        }
//        this.mContext = context;
//        init(context);
//    }
//
//    IScanResultCallback listener;
//
//    public void setListener(IScanResultCallback listener) {
//        this.listener = listener;
//    }
//
//
//    QrcodePower qrcodepower;
//    SerialRecvThread serialRecvThread;
//
//    @Override
//    public void init(Context context) {
//
//        qrcodepower = new QrcodePower();
//        serialRecvThread = new SerialRecvThread(mActivity);
//
//        //初始化上电操作改为如下：
//        //上电读头
//        qrcodepower.open_em();
//        if(waitForBarcodeReaderReady()){
//            //二维码读头连接成功，可以继续业务
//            AppLogUtils.e("二维码读头连接成功，可以继续业务");
//        }else{
//            //二维码读头连接失败
//            AppLogUtils.e("二维码读头连接失败");
//        }
//
//
//        //串口通讯
//        SerialDataListener serialDataListener =  new SerialDataListener() {
//            @Override
//            public void onReadSerialData(final String data) {
//                AppLogUtils.e("串口通讯data——"+data);
//            }
//        };
//        serialRecvThread.setListener(serialDataListener);
//        serialRecvThread.start();
//
//
//    }
//
//    @Override
//    public void destory() {
//        serialRecvThread.stop();
//    }
//
//    @Override
//    public void registerBroadcast() {
//
//    }
//
//    @Override
//    public void unregisterBroadcast() {
//
//    }
//
//
//    /**
//     * 上电后调用此方法等待二维码阅读器连接
//     * @return true，连接上  false 连接失败
//     */
//    private boolean waitForBarcodeReaderReady() {
//        for (int count = 0; count < 50; count++) {
//            if (isBarcodeReaderConnected()) {
//                return true;
//            }
//            try {
//                Thread.sleep(200);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        return false;
//    }
//
//
//
//    private boolean isBarcodeReaderConnected() {
//        AppLogUtils.e("isBarcodeReaderConnected");
//        UsbManager usbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE);
//        HashMap<String, UsbDevice> usbList = usbManager.getDeviceList();
//        for (String key : usbList.keySet()) {
//            UsbDevice usbDevice = usbList.get(key);
//            if (usbDevice != null && usbDevice.getProductId() == 0x1d06 && usbDevice.getVendorId() == 0x1eab) {
//                return true;
//            }
//        }
//        return false;
//    }
//
//
//}
