562935844@qq.com
2023-11-27 566ddb2ea03e2514de50f2ca861a2674f6e840ac
HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java
@@ -1,19 +1,15 @@
package com.hdl.sdk.ttl.HDLDeviceManger.Core;
import android.serialport.api.SerialPort;
import android.widget.TextView;
//import android.serialport.api.SerialPort;
import android.serialport.SerialPort;
import android.util.Log;
import com.hdl.sdk.ttl.Config.Configuration;
import com.hdl.sdk.ttl.Config.MCUConstants;
import com.hdl.sdk.ttl.HDLDeviceManger.Bean.MCUDataBean;
import com.hdl.sdk.ttl.HDLDeviceManger.Bean.UdpDataBean;
import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.EventCode;
import com.hdl.sdk.ttl.HDLDeviceManger.HDLListener.IMcuOtaListener;
import com.hdl.sdk.ttl.Utils.HDLUtlis.HDLStringUtils;
import com.hdl.sdk.ttl.Utils.HDLUtlis.HDLUtlis;
import com.hdl.sdk.ttl.Utils.LogUtils.HDLLog;
import java.io.File;
import java.io.IOException;
@@ -58,7 +54,7 @@
    public static SerialPort getSerialPort() throws SecurityException, IOException, InvalidParameterException {
        if (mSerialPort == null) {
            mSerialPort = new SerialPort(new File(mPathname), mBaudrate, 0);
            mSerialPort = new SerialPort(new File(mPathname), mBaudrate);
            mInputStream = mSerialPort.getInputStream();//调用对象SerialPort方法,获取串口中"读和写"的数据流
            mOutputStream = mSerialPort.getOutputStream();
            bOpenSuccess = true;
@@ -92,7 +88,7 @@
            try {
                mPathname = mmPathname;
                mBaudrate = mmBaudrate;
                mSerialPort = new SerialPort(new File(mPathname), mBaudrate, 0);
                mSerialPort = new SerialPort(new File(mPathname), mBaudrate);
                HDLLog.I("HDLSDK 串口启动成功");
                //调用对象SerialPort方法,获取串口中"读和写"的数据流
                mInputStream = mSerialPort.getInputStream();
@@ -468,24 +464,12 @@
        if (receiveBytes.length < 14) {
            return;
        }
//        打印接收数据
//        HDLLog.I("receiveBytes HandleHDLdata: " + HDLStringUtils.ByteArrToHex(receiveBytes, 0, receiveBytes.length));
        //2019-8-21 校验Crc
        if (!Crc.checkCRC(receiveBytes)) {
            HDLLog.I("checkCRC:检验失败");
//            HDLLog.I("checkCRC:检验失败");
            return;
        }
//        HDLLog.I("checkCRC:检验成功");
//        //校验是否为0xAA 0xAA 开头数据数据
//        if (!isHDLDataWithHead(receiveBytes)) {
//            return;
//        }
        //打印接收数据
//        HDLLog.I("receiveBytes HandleHDLdata: " + HDLStringUtils.ByteArrToHex(receiveBytes, 0, receiveBytes.length));
        //数据长度
        int addDataLength = (receiveBytes[2] & 0xFF) - 11;
        //附加数据
@@ -503,17 +487,6 @@
        int targetSubnetID = receiveBytes[9] & 0xFF;
        //目标设备号
        int targetDeviceID = receiveBytes[10] & 0xFF;
//        //参数
//        UdpDataBean udpDataBean = new UdpDataBean();
//        udpDataBean.sourceSubnetID = sourceSubnetID;
//        udpDataBean.sourceDeviceID = sourceDeviceID;
//        udpDataBean.desSubnetID = targetSubnetID;
//        udpDataBean.desDeviceID = targetDeviceID;
//        udpDataBean.command = command;
//
//        udpDataBean.addBytes = usefulBytes;
////        HandleOutsideData(targetSubnetID, targetDeviceID, command, usefulBytes, receiveBytes, udpDataBean);
//        HandleInsideData(udpDataBean);
        //s2019-8-20 增加目标子网号设备号判断
        if ((targetSubnetID == 0xFF && targetDeviceID == 0xFF)
@@ -549,13 +522,6 @@
                        HDLDeviceManager.handle(sendDatas, sendDatas.command);
                    }
                } else {
//                    if (sendDatas.addBytes[0] == HandleSearch.random1
//                            && sendDatas.addBytes[1] == HandleSearch.random2
//                            && HandleSearch.rcuIp.equals(sendDatas.ipAddress)
//                            ) {
//                        HDLDeviceManager.handle(sendDatas, sendDatas.command);
//
//                    }
                    if (sendDatas.addBytes[0] == HandleSearch.random1
                            && sendDatas.addBytes[1] == HandleSearch.random2
                    ) {
@@ -569,11 +535,13 @@
            case Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND:
            case Configuration.COMMON_SWITCH_STATE_BACK_COMMAND:
            case Configuration.LIGHT_CTRL_BACK_COMMAND:
            case Configuration.LIGHT_RGB_CTRL_BACK_COMMAND:
            case Configuration.CURTAIN_CTRL_BACK_COMMAND:
            case Configuration.AIR_CTRL_BACK_COMMAND:
            case Configuration.LOGIC_CTRL_BACK_COMMAND:
            case Configuration.LOGIC_STATE_BACK_COMMAND:
            case Configuration.LIGHT_STATE_BACK_COMMAND:
            case Configuration.LIGHT_RGB_STATE_BACK_COMMAND:
            case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729安防模块 布防设置反馈
            case Configuration.SECURITY_STATE_BACK_COMMAND://20190729 读取安防设置反馈
            case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://20190729 报警设置反馈
@@ -596,7 +564,16 @@
            case Configuration.AUDIO_CTRL_READ_BACK_COMMAND:
//            case Configuration.AUDIO_MenuPlay_INSTRUCTION_COMMAND:
            case Configuration.AUDIO_MenuPlay_INSTRUCTION_BACK_COMMAND:
            case Configuration.FRESH_AIR_CTRL_BACK_COMMAND://2020-07-20 新增 新风系统
            case Configuration.FRESH_AIR_STATE_BACK_COMMAND://2020-07-20 新增 新风系统
            case Configuration.FRESH_AIR_JINMAO_CTRL_BACK_COMMAND://2020-07-20 新增 金茂新风
            case Configuration.FRESH_AIR_JINMAO_STATE_BACK_COMMAND://2020-07-20 新增 金茂新风
            case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND://2020-07-20 新增 地热模块
            case Configuration.GEOTHERMAL_MODULE_STATE_BACK_COMMAND://2020-07-20 新增 地热模块
            case Configuration.DOOR_MACHINE_MODULE_CTRL_FRIST_BACK_COMMAND://2023-08-22 新增 门锁
            case Configuration.DOOR_MACHINE_MODULE_CTRL_BACK_COMMAND://2023-08-22 新增 门锁
            case Configuration.DOOR_MACHINE_MODULE_STATE_BACK_COMMAND://2023-08-22 新增 门锁
            case Configuration.DOOR_MACHINE_BROADCAST_STATE_BACK_COMMAND://2023-08-25 新增门锁状态和报警广播
                HDLDeviceManager.handle(sendDatas, sendDatas.command);
                break;