From f26157e748d7ed28ee1149c6e9bc1672b9146f2b Mon Sep 17 00:00:00 2001 From: Administrator <1525436766@qq.com> Date: 星期三, 25 八月 2021 09:37:12 +0800 Subject: [PATCH] V1.104 2021-08-24 lijun 1.新增远程下载充放电一体机历史数据文件以及转储到数据库 --- BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java | 87 +++++++++++++++++++++++++++---------------- 1 files changed, 55 insertions(+), 32 deletions(-) diff --git a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java index 0bf16c5..cb89c4a 100644 --- a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java +++ b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java @@ -49,6 +49,7 @@ private FGCD_SysState sysState; //系统状态 private FGCD_Cmd m_FBS_Cmd = new FGCD_Cmd(); public FGCD_TestFBOFile fboFile; //历史数据文件 + private ByteBuffer bytebuffer_for_socket_RX = ByteBuffer.allocate(1500); @@ -64,6 +65,10 @@ private int errcount = 0; private int DevReadCount = 0; private int m_BattMonCount; + + private boolean readMonData = false; //是否立即读取单体数据 记录历史数据时立即读取单体数据 + private boolean readCharData = false; //是否立即读取放电数据 记录历史数据时立即读取放电数据 + public FGCD_SocketClient_Thread(MysqlConnPool m_ConnPool,BattData_RT_Array m_Data,Socket socket){ @@ -113,15 +118,15 @@ }*/ if(true == reg_in_st) { - logger.trace("devid:" + m_StatAndParam.check_dev_id + logger.info("devid:" + m_StatAndParam.check_dev_id + ", 数据库中匹配devid成功!!!!!, IP:" + socket.getInetAddress().getHostAddress()); } else { - logger.trace("devid:" + m_StatAndParam.check_dev_id + logger.info("devid:" + m_StatAndParam.check_dev_id + ", 数据库中未找到匹配的devid, IP:" + socket.getInetAddress().getHostAddress()); break; } } else { - logger.trace(this.getName() + " initFGCD_A059Comm() devid:" + m_StatAndParam.check_dev_id + logger.info(this.getName() + " initFGCD_A059Comm() devid:" + m_StatAndParam.check_dev_id + ", 识别FGCD_A059设备失败 "); reg_in_st = false; } @@ -199,16 +204,20 @@ if(FGCD_ComBase.CMD_GetDischargeParm == m_StatAndParam.op_cmd) { //读取放电参数 SocketComm(FGCD_ComBase.CMD_GETDISCHARGEPARAM, ByteBuffer.allocate(0)); - logger.warn("DevId:" + m_StatAndParam.dev_id + " 读取放电参数"); + //logger.info("DevId:" + m_StatAndParam.dev_id + " 读取放电参数"); } if(FGCD_ComBase.CMD_SetDischargeParm == m_StatAndParam.op_cmd) { //设置放电参数 FGCD_BattTestParam tmp_set_pm = testParam.clone(); FGCD_SocketClient_Thread_SQL.queryFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam, tmp_set_pm); - System.out.println(tmp_set_pm); + //System.out.println(tmp_set_pm); logger.warn("DevId:" + m_StatAndParam.dev_id + " 设置放电参数"+tmp_set_pm); - SocketComm(FGCD_ComBase.CMD_SETDISCHARGEPARAM, tmp_set_pm.getByteBuffer()); + if(SocketComm(FGCD_ComBase.CMD_SETDISCHARGEPARAM, tmp_set_pm.getByteBuffer())) { + //更新当前活化次数 + sysState.hhCount = tmp_set_pm.cycleTimes; + testParam = tmp_set_pm.clone(); + } //tmp_set_pm = null; } @@ -270,15 +279,17 @@ SocketComm(fboFile.createCmd(FGCD_ComBase.CMD_GETFILELIST), ByteBuffer.allocate(0)); }else if(FGCD_ComBase.CMD_DownLoadFBDFile == fboFile.op_cmd) { //开始下载文件 - - } - - + FGCD_TestDataDownLoad download = new FGCD_TestDataDownLoad(fboFile, socket,m_ConnPool); + fboFile.initDownLoadState(); + FGCD_SocketClient_Thread_SQL.updateFgcd_Filedownload_TableCmdByDevId(m_ConnPool, fboFile); + download.downLoadTestData(); + } } if(DevReadCount %10 == 0) { //logger.info("获取单体数据"); - SocketComm(FGCD_ComBase.CMD_GETBATTDATA, ByteBuffer.allocate(0)); - + FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETBATTDATA); + SocketComm(tmp_cmd, ByteBuffer.allocate(0)); + tmp_cmd = null; } if(DevReadCount %12 == 0) { @@ -300,7 +311,6 @@ * 向指定的socket通道发送数据,以及接收数据 * @return */ - public boolean SocketComm(int cmd,ByteBuffer byteBuffer) { boolean res_t = false; @@ -651,7 +661,6 @@ return byte_rest; } /*********************************************************************************************/ - /*********************************************************************************************/ public Boolean getDataFromCommBuf(final byte[] bytes) @@ -668,8 +677,6 @@ if(errcode > 0) { logger.error(this.getName(), "FGCD_Cmd.CMD:"+m_FBS_Cmd.CMD+"\t RTN:"+errcode); } - sysState.dev_captest_stop_type = m_FBS_Cmd.Alarm; - sysState.dev_workstate = m_FBS_Cmd.WorkState; //sysState.dev_workstate = 2; //--------------------- 心跳包测试 ---------------------------------- if(FGCD_ComBase.CMD_HEARTBEAT == m_FBS_Cmd.CMD) { @@ -722,12 +729,13 @@ } //--------------------- 获取放电参数 ---------------------------------------------- else if(FGCD_ComBase.CMD_GETDISCHARGEPARAM == m_FBS_Cmd.CMD) { - //logger.info(TAG, "getDataFromCommBuf: 获取放电参数成功" ); if(testParam.putByteBuffer(bf)) { m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_GetDischargeParmAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam, testParam); isSuccess = true; + sysState.hhCount = testParam.cycleTimes; //更新当前活化总次数 //System.out.println(testParam); + logger.trace("getDataFromCommBuf: 获取放电参数成功" + testParam ); } } //---------------------- 设置放电参数 -------------------------------------------------- @@ -737,7 +745,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_SetDischargeParmAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("设置参数成功"); + logger.warn("getDataFromCommBuf: 设置放电参数成功" + testParam ); } } //--------------------- 启动放电 ---------------------------------- @@ -748,7 +756,7 @@ FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - System.err.println("启动放电成功"); + logger.warn("getDataFromCommBuf: 启动放电成功"); } } //--------------------- 放电暂停 ---------------------------------- @@ -758,7 +766,7 @@ FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("暂停放电成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t getDataFromCommBuf: 暂停放电成功"); } } //--------------------- 停止放电 ---------------------------------- @@ -767,16 +775,19 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StopDischargeAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("停止放电成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t getDataFromCommBuf: 停止放电成功"); } } //--------------------- 获取放电数据 ---------------------------------- else if(FGCD_ComBase.CMD_GETDISCHARGEDATA == m_FBS_Cmd.CMD) { if(sysState.putByteBuffer(bf)) { + //读取当前设备的停止原因和当前工作状态 + sysState.dev_captest_stop_type = m_FBS_Cmd.Alarm; + sysState.dev_workstate = m_FBS_Cmd.WorkState; + sysState.hhstate = m_FBS_Cmd.Db2; //活化状态 for(int i=0;i<sysState.montmps.length;i++) { vc_data.tmp[i] = sysState.montmps[i]; - } - + } FGCD_SocketClient_Thread_SQL.updateFbs9100StateOnlyByDev_Id(m_ConnPool, m_StatAndParam);; isSuccess = true; } @@ -789,7 +800,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StartCharTestAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("启动充电成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t getDataFromCommBuf: 启动充电成功"); } } //--------------------- 暂停充电 ---------------------------------- @@ -798,7 +809,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_PauseCharTestAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("暂停充电成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t getDataFromCommBuf: 暂停充电成功"); } } //--------------------- 停止充电 ---------------------------------- @@ -807,7 +818,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StopCharTestAck; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("停止充电成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t getDataFromCommBuf: 停止充电成功"); } } @@ -826,7 +837,7 @@ //FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); FGCD_SocketClient_Thread_SQL.updateClearAlarmState(m_ConnPool, m_StatAndParam, FGCD_ComBase.CMD_ClearSysAlarm_ACK); isSuccess = true; - System.out.println("清除告警成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t 清除告警成功"); } } //--------------------- 进入 Android控制 ---------------------------------- @@ -863,7 +874,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StartHUOHUATestACK; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("启动活化测试成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t 启动活化测试成功"); } }else if(FGCD_ComBase.CMD_PAUSEHHTEST == m_FBS_Cmd.CMD) { //暂停活化测试 @@ -871,7 +882,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_PauseHUOHUATestACK; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("暂停活化测试成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t 暂停活化测试成功"); } }else if(FGCD_ComBase.CMD_STOPHHTEST == m_FBS_Cmd.CMD) { //停止活化测试 @@ -879,7 +890,7 @@ m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StopHUOHUATestACK; FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam); isSuccess = true; - //System.out.println("停止活化测试成功"); + logger.warn("dev_id:"+m_StatAndParam.dev_id+"\t 停止活化测试成功"); } }else if(FGCD_ComBase.CMD_GETFILELIST == m_FBS_Cmd.CMD) { //获取文件列表 @@ -918,7 +929,13 @@ logger.error(e.toString(), e); } int now_test_type = FGCD_ComBase.TestType_NULL; - m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type; //更新当前的停止原因 + //记录停止原因时数据处理 + if(sys_state.dev_captest_stop_type > 0x80) { + m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type - 0x80; //更新当前的停止原因 + }else { + m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type; + } + int now_dev_workstate = 0; if(FGCD_ComBase.WORK_STATE_DISTEST == sys_state.dev_workstate || (FGCD_ComBase.WORK_STATE_STOPDIS == sys_state.dev_workstate)){ vc_data.battcurr[n] = (-1)*Math.abs(vc_data.battcurr[n]); @@ -930,6 +947,12 @@ //System.out.println("vc_data.battcurr[n]:"+vc_data.battcurr[n]); now_test_type = FGCD_ComBase.TestType_Charge; } + now_dev_workstate = sys_state.dev_workstate; + if(sys_state.hhstate > 0) { + //设备当前状态为活化状态 + now_dev_workstate = FGCD_ComBase.WORK_STATE_HUOHUA; + now_test_type = FGCD_ComBase.TestType_HuoHua; + } //--------------------- 再读取系统状态 ---------------------------------------// // if(((FBS9100_ComBase.SYS_STATE_STOPPED!=sys_state.dev_workstate) && ((n+1)==sys_state.TestGroupNum)) // || (FGCD_ComBase.WORK_STATE_STOPPED == sys_state.dev_workstate)) { @@ -939,7 +962,7 @@ //--------------------------------------------------------------------------// m_RTData[n].mTestData.setDevFBS9100S_WorkState(sys_state.dev_captest_stop_type, now_test_type, - sys_state.dev_workstate); + now_dev_workstate); // } //--------------------- 再读取端电压 -----------------------------------------// -- Gitblit v1.9.1