| | |
| | | |
| | | private ByteBuffer bytebuffer_for_socket_RX = ByteBuffer.allocate(1500); |
| | | public Handler mHandler = null; |
| | | public static Socket socket; |
| | | public static Socket socket = null; |
| | | private Date lastConTime; //上一次通讯成功的时间 |
| | | private boolean thread_run_flag = true; |
| | | public boolean isRuning = false; |
| | | |
| | | ServiceModel returnmodel = new ServiceModel(); |
| | | |
| | |
| | | battData = new BattRTData(); |
| | | testParam = new BattTestParam(); |
| | | testRtData = new BattTestRtData(); |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | reConnectDevice(); |
| | | } |
| | | }).start(); |
| | | |
| | | } |
| | | |
| | | /*********************************************************************************************/ |
| | |
| | | |
| | | //初始化消息循环队列,需要在Handler创建之前 |
| | | Looper.prepare(); |
| | | |
| | | isRuning = true; |
| | | mHandler = new Handler() |
| | | { |
| | | public void handleMessage(Message msg) |
| | |
| | | Log.e(TAG, "Loop start at "+ Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms) ); |
| | | //启动子线程消息循环队列 |
| | | Looper.loop(); |
| | | isRuning = false; |
| | | Log.e(TAG, "Loop stop at "+ Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms) ); |
| | | if(socket != null){ |
| | | try { |
| | | socket.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | // socket = new Socket(); |
| | | // SocketAddress socAddress = new InetSocketAddress(server_ip, server_port); |
| | | // socket.connect(socAddress, 2000); |
| | | if(socket == null || socket.isClosed()){ |
| | | Log.e(TAG, "SocketComm:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " ); |
| | | reConnectDevice(); |
| | | } |
| | | if(this.socket != null) |
| | | { |
| | | in = this.socket.getInputStream(); |
| | |
| | | res_t = false; |
| | | model.code = 0; |
| | | } |
| | | thread_run_flag = true; |
| | | } else { |
| | | //System.out.println(this.getName() + "-------socket 异常关闭-------" + Com.getNowTimeWithAt()); |
| | | thread_run_flag = false; |
| | |
| | | } catch (IOException | InterruptedException e) { |
| | | thread_run_flag = false; |
| | | } finally { |
| | | if(in != null) { |
| | | try { |
| | | in.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(out != null) { |
| | | try { |
| | | out.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(!thread_run_flag){ |
| | | reConnectDevice(); |
| | | } |
| | |
| | | if(true == m_FBS_Cmd.putByteBuffer(bf)) |
| | | { |
| | | |
| | | model.errcode = m_FBS_Cmd.RecState; |
| | | lastConTime = new Date(); |
| | | |
| | | //--------------------- 心跳包测试 ---------------------------------- |
| | |
| | | else if(FBS_ComBase.CMD_CHANGEBATT == m_FBS_Cmd.CMD) { |
| | | if(FBS_ComBase.RETURN_SUCCESS == m_FBS_Cmd.RecState) { |
| | | isSuccess = true; |
| | | //System.out.println("切换电池组成功"); |
| | | Log.e(TAG, "getDataFromCommBuf: 切换电池组成功"); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | //--------------------- 获取放电参数 ---------------------------------------------- |
| | | else if(FBS_ComBase.CMD_GETDISCHARGEPARAM == m_FBS_Cmd.CMD) { |
| | | Log.e(TAG, "getDataFromCommBuf: 获取放电参数" ); |
| | | if(testParam.putByteBuffer(bf)) { |
| | | //System.out.println("获取放电参数成功"); |
| | | System.out.println("获取放电参数成功"); |
| | | //System.out.println(testParam); |
| | | isSuccess = true; |
| | | model.setData(testParam); |
| | |
| | | |
| | | public boolean setUpDeviceIp(String server_ip){ |
| | | boolean flag = false; |
| | | synchronized (socket){ |
| | | if (server_ip != null && server_ip.length() > 0){ |
| | | flag = reConnectDevice(); |
| | | if(this.socket == null){ |
| | | flag = reConnectDevice(); |
| | | }else{ |
| | | synchronized (socket){ |
| | | if (this.server_ip != null && server_ip.length() > 0){ |
| | | flag = reConnectDevice(); |
| | | } |
| | | } |
| | | } |
| | | return false; |