左晓为主开发手持机充值管理机
zuoxiao
2023-12-01 57dfbac311ccaa6900c0450e71460856010a0bad
app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -74,6 +74,9 @@
    /**
     * 初始化EasySocket
     *
     * @param isCreate   当前已连接服务器后是否重新连接
     * @param createBack
     */
    public void initEasySocket(boolean isCreate, SocketNet.CreateBack createBack) {
        try {
@@ -84,6 +87,7 @@
                ipBean.setIp("dayuyanjiuyuan.top");
                ipBean.setPort(8888);
            }
            if (ipBean != null) {
                try {
                    //处理当连接上IP后修改ip不生效问题
@@ -149,76 +153,76 @@
                && !TextUtils.isEmpty(addressCode)) {
            Log.i("initMachineRequestBean", "开始注册设备");
                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");
                    SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
                        @Override
                        public void onSocketResponse(SocketData readData) {
            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");
                SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
                    @Override
                    public void onSocketResponse(SocketData readData) {
                            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() {
                        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() {
                                    @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")) {
                                                //保存设备注册号
                                                if (!TextUtils.isEmpty(initCode)){
                                                    DeviceNumberUtils.setDeviceNumber(initCode);
                                                }
                                                Log.i(TAG, "onSuccess: 设备注册号:" + initCode);
//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
                                                ToastUtil.show("充值管理注册报文获取成功");
                                            } else {
                                                //校验CRC错误
                                                ToastUtil.show("确认收到注册报文状态失败");
                                @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")) {
                                            //保存设备注册号
                                            if (!TextUtils.isEmpty(initCode)) {
                                                DeviceNumberUtils.setDeviceNumber(initCode);
                                            }
                                            Log.i(TAG, "onSuccess: 设备注册号:" + initCode);
//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
                                            ToastUtil.show("充值管理注册报文获取成功");
                                        } else {
                                            //校验CRC错误
                                            ToastUtil.show("确认收到注册报文校验CRC错误");
//                                                ToastUtil.show("确认收到注册报文状态失败");
                                        }
                                    } else {
                                        //校验CRC错误
                                        ToastUtil.show("确认收到注册报文校验CRC错误");
                                    }
                                }
                                    @Override
                                    public void onSocketError(int code, String msg) {
                                @Override
                                public void onSocketError(int code, String msg) {
                                    }
                                });
                            } else {//校验CRC错误
                                ToastUtil.show("充值管理注册报文校验CRC错误");
                            }
                                }
                            });
                        } else {//校验CRC错误
                            ToastUtil.show("充值管理注册报文校验CRC错误");
                        }
                    }
                        @Override
                        public void onSocketError(int code, String msg) {
                    @Override
                    public void onSocketError(int code, String msg) {
                        }
                    });
                    }
                });
                }
            }
        }
    }