| | |
| | | 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; |
| | |
| | | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | 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; |
| | | //附加数据 |
| | |
| | | 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) |
| | |
| | | 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 |
| | | ) { |
| | |
| | | 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 报警设置反馈 |
| | |
| | | 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; |
| | | |