| | |
| | | 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);
|
| | |
| | | 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){
|
| | |
| | | }*/
|
| | |
|
| | | 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;
|
| | | }
|
| | |
| | | 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;
|
| | | }
|
| | |
|
| | |
| | | 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) {
|
| | |
| | | * 向指定的socket通道发送数据,以及接收数据
|
| | | * @return
|
| | | */
|
| | |
|
| | | public boolean SocketComm(int cmd,ByteBuffer byteBuffer)
|
| | | {
|
| | | boolean res_t = false;
|
| | |
| | | return byte_rest;
|
| | | }
|
| | | /*********************************************************************************************/
|
| | |
|
| | |
|
| | | /*********************************************************************************************/
|
| | | public Boolean getDataFromCommBuf(final byte[] bytes)
|
| | |
| | | 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) {
|
| | |
| | | }
|
| | | //--------------------- 获取放电参数 ----------------------------------------------
|
| | | 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 );
|
| | | }
|
| | | }
|
| | | //---------------------- 设置放电参数 --------------------------------------------------
|
| | |
| | | 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 );
|
| | | }
|
| | | }
|
| | | //--------------------- 启动放电 ----------------------------------
|
| | |
| | | FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam);
|
| | |
|
| | | isSuccess = true;
|
| | | System.err.println("启动放电成功");
|
| | | logger.warn("getDataFromCommBuf: 启动放电成功");
|
| | | }
|
| | | }
|
| | | //--------------------- 放电暂停 ----------------------------------
|
| | |
| | | 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: 暂停放电成功");
|
| | | }
|
| | | }
|
| | | //--------------------- 停止放电 ----------------------------------
|
| | |
| | | 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;
|
| | | }
|
| | |
| | | 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: 启动充电成功");
|
| | | }
|
| | | }
|
| | | //--------------------- 暂停充电 ----------------------------------
|
| | |
| | | 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: 暂停充电成功");
|
| | | }
|
| | | }
|
| | | //--------------------- 停止充电 ----------------------------------
|
| | |
| | | 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: 停止充电成功");
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | //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控制 ----------------------------------
|
| | |
| | | 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) {
|
| | | //暂停活化测试
|
| | |
| | | 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) {
|
| | | //停止活化测试
|
| | |
| | | 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) {
|
| | | //获取文件列表
|
| | |
| | | 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]);
|
| | |
| | | //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)) {
|
| | |
| | | //--------------------------------------------------------------------------//
|
| | | m_RTData[n].mTestData.setDevFBS9100S_WorkState(sys_state.dev_captest_stop_type,
|
| | | now_test_type,
|
| | | sys_state.dev_workstate);
|
| | | now_dev_workstate);
|
| | | // }
|
| | |
|
| | | //--------------------- 再读取端电压 -----------------------------------------//
|