左晓为主开发手持机充值管理机
zuoxiao
2023-11-22 1ffa3cb19f95855d44fbc9485f4eb3286b12e359
app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -7,7 +7,9 @@
import android.util.Log;
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.IpBean;
import com.dayu.recharge.utils.ToastUtil;
import com.easysocket.EasySocket;
import com.easysocket.config.EasySocketOptions;
import com.easysocket.entity.SocketAddress;
@@ -24,8 +26,7 @@
import com.dayu.recharge.utils.AidlUtil;
import com.dayu.recharge.utils.CRC8;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.ToastUtil;
import com.dayu.recharge.utils.WSHelper;
import com.dayu.recharge.utils.TipUtil;
import java.util.Arrays;
@@ -52,7 +53,7 @@
        AidlUtil.getInstance().connectPrinterService(this);
        initEasySocket(false, null);
        socketConnect();
        CrashReport.initCrashReport(getApplicationContext(), "846987eae9", true);
        CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
    }
    private boolean isAidl;
@@ -98,7 +99,7 @@
                                    createSocket(msg.obj + "", ipBean.getPort());
                                    break;
                                case 2:
                                    ToastUtil.show(MyApplication.this, "DNS解析失败");
                                    ToastUtil.show("DNS解析失败");
                                    break;
                            }
@@ -135,72 +136,85 @@
        if (!TextUtils.isEmpty(ip)
                && !TextUtils.isEmpty(String.valueOf(port))
                && !TextUtils.isEmpty(addressCode)) {
            isDoInitMachine = true;
            InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
            initMachineRequestBean.setControl("01");
            //130107200008   112   青泉居委会
            initMachineRequestBean.setAddress(addressCode);
            initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
            initMachineRequestBean.setAFN("91");
            if (EasySocket.getInstance().getDefconnection() != null) {
                isDoInitMachine = true;
                InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
                initMachineRequestBean.setControl("01");
                //130107200008   112   青泉居委会
                initMachineRequestBean.setAddress(addressCode);
                initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
                initMachineRequestBean.setAFN("91");
//
            Log.i("Socket", "注册报文");
            SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
                @Override
                public void onSocketResponse(SocketData readData) {
                Log.i("Socket", "注册报文");
                SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
                    @Override
                    public void onSocketResponse(SocketData readData) {
                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                        //校验CRC成功
                        InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
                        if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                            //校验CRC成功
                            InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
                        String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
                        //确认收到注册号报文
                        ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
                        confirmMachineRequestBean.setControl("01");
                        //130107200008   112   青泉居委会
                        confirmMachineRequestBean.setAddress(addressCode);
                        confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
                        confirmMachineRequestBean.setAFN("92");
                        confirmMachineRequestBean.setInitCode(initCode);
                        Log.i("Socket", "确认注册报文");
                        SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
                            String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
                            //确认收到注册号报文
                            ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
                            confirmMachineRequestBean.setControl("01");
                            //130107200008   112   青泉居委会
                            confirmMachineRequestBean.setAddress(addressCode);
                            confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
                            confirmMachineRequestBean.setAFN("92");
                            confirmMachineRequestBean.setInitCode(initCode);
                            Log.i("Socket", "确认注册报文");
                            SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
                            @Override
                            public void onSocketResponse(SocketData readData) {
                                isDoInitMachine = false;
                                if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                                    byte stateByte = readData.getBodyBytes()[2];
                                    String state = BcdUtil.bcdToStr(stateByte);
                                    //BCD码00成功01失败(注册号不是服务器返回信息)
                                    if (state.equalsIgnoreCase("00")) {
                                        //保存设备注册号
                                        BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
                                        WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
                                        ToastUtil.show(MyApplication.this, "充值管理注册报文获取成功");
                                @Override
                                public void onSocketResponse(SocketData readData) {
                                    isDoInitMachine = false;
                                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                                        byte stateByte = readData.getBodyBytes()[2];
                                        String state = BcdUtil.bcdToStr(stateByte);
                                        //BCD码00成功01失败(注册号不是服务器返回信息)
                                        if (state.equalsIgnoreCase("00")) {
                                            //保存设备注册号
                                            DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
                                            if (deviceNumber != null) {
                                                deviceNumber.setDeviceRegistrationNumber(initCode);
                                            } else {
                                                deviceNumber = new DeviceNumber();
                                                deviceNumber.setDeviceRegistrationNumber(initCode);
                                            }
                                            BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
                                            ToastUtil.show("充值管理注册报文获取成功");
                                        } else {
                                            //校验CRC错误
                                            ToastUtil.show("确认收到注册报文状态失败");
                                        }
                                    } else {
                                        //校验CRC错误
                                        ToastUtil.show(MyApplication.this, "确认收到注册报文状态失败");
                                        ToastUtil.show("确认收到注册报文校验CRC错误");
                                    }
                                } else {
                                    //校验CRC错误
                                    ToastUtil.show(MyApplication.this, "确认收到注册报文校验CRC错误");
                                }
                            }
                            @Override
                            public void onSocketError(int code, String msg) {
                                @Override
                                public void onSocketError(int code, String msg) {
                            }
                        });
                    } else {//校验CRC错误
                        ToastUtil.show(MyApplication.this, "充值管理注册报文校验CRC错误");
                                }
                            });
                        } else {//校验CRC错误
                            ToastUtil.show("充值管理注册报文校验CRC错误");
                        }
                    }
                }
                @Override
                public void onSocketError(int code, String msg) {
                    @Override
                    public void onSocketError(int code, String msg) {
                }
            });
                    }
                });
            }
        }
    }