| | |
| | | private boolean readMonData = false; //是否立即读取单体数据 记录历史数据时立即读取单体数据
|
| | | private boolean readCharData = false; //是否立即读取放电数据 记录历史数据时立即读取放电数据
|
| | |
|
| | | private int readMonData_lock = 1; //单体数据返回
|
| | | private int readCharData_lock = 1; //充放电数据返回
|
| | |
|
| | | private int sendlock_state = 1; //发送数据返回
|
| | |
|
| | | public FGCD_SocketClient_Thread(MysqlConnPool m_ConnPool,BattData_RT_Array m_Data,Socket socket){
|
| | | this.socket = socket;
|
| | |
| | | }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) {
|
| | | if(DevReadCount %10 == 0 || readMonData) {
|
| | | //logger.info("获取单体数据");
|
| | | FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETBATTDATA);
|
| | | tmp_cmd.Db3 = sendlock_state;
|
| | | SocketComm(tmp_cmd, ByteBuffer.allocate(0));
|
| | | tmp_cmd = null;
|
| | | readMonData = false;
|
| | | }
|
| | |
|
| | | if(DevReadCount %12 == 0) {
|
| | | if(DevReadCount %12 == 0 || readCharData) {
|
| | | //logger.info("获取放电数据");
|
| | | SocketComm(FGCD_ComBase.CMD_GETDISCHARGEDATA, ByteBuffer.allocate(0));
|
| | | FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETDISCHARGEDATA);
|
| | | tmp_cmd.Db1 = sendlock_state;
|
| | | SocketComm(tmp_cmd, ByteBuffer.allocate(0));
|
| | | tmp_cmd = null;
|
| | | readCharData = false;
|
| | | }
|
| | |
|
| | | DevReadCount++;
|
| | |
| | | else if(FGCD_ComBase.CMD_GETBATTDATA == m_FBS_Cmd.CMD) {
|
| | | //System.out.println("获取单体数据");
|
| | | if(vc_data.putByteBuffer(bf, m_FBS_Cmd.ByteLen-m_FBS_Cmd.BYTE_LEN)) {
|
| | | readMonData_lock = m_FBS_Cmd.Db3;
|
| | | System.out.println("单体数据返回:"+readMonData_lock);
|
| | | if(m_FBS_Cmd.Db3 == 2) {
|
| | | if(m_FBS_Cmd.Db3 == readCharData_lock) {
|
| | | sendlock_state = 2; |
| | | }else {
|
| | | readCharData = true;
|
| | | }
|
| | | }else if(m_FBS_Cmd.Db3 == 0){
|
| | | sendlock_state = 1;
|
| | | }else{
|
| | | sendlock_state = 1;
|
| | | }
|
| | | //System.out.println("获取单体数据成功");
|
| | | getFBS9100MonVolData(vc_data, sysState);
|
| | | isSuccess = true;
|
| | |
| | | //--------------------- 获取放电参数 ----------------------------------------------
|
| | | else if(FGCD_ComBase.CMD_GETDISCHARGEPARAM == m_FBS_Cmd.CMD) {
|
| | | 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;
|
| | |
| | | //--------------------- 获取放电数据 ----------------------------------
|
| | | else if(FGCD_ComBase.CMD_GETDISCHARGEDATA == m_FBS_Cmd.CMD) {
|
| | | if(sysState.putByteBuffer(bf)) {
|
| | | readCharData_lock = m_FBS_Cmd.Db1;
|
| | | System.out.println("放电数据返回:"+readCharData_lock);
|
| | | if(m_FBS_Cmd.Db1 == 2) {
|
| | | if(m_FBS_Cmd.Db1 == readMonData_lock) {
|
| | | sendlock_state = 2; |
| | | }else {
|
| | | readMonData = true;
|
| | | }
|
| | | } |
| | |
|
| | | //读取当前设备的停止原因和当前工作状态
|
| | | sysState.dev_captest_stop_type = m_FBS_Cmd.Alarm;
|
| | | sysState.dev_workstate = m_FBS_Cmd.WorkState;
|
| | |
| | | //读取文件列表成功
|
| | | fboFile.op_cmd = FGCD_ComBase.CMD_ReadFBDFile_ACK;
|
| | | System.out.println("读取文件列表成功");
|
| | | fboFile.cleatState();
|
| | | FGCD_SocketClient_Thread_SQL.updateTb_Fgcd_Filedownload_Table(m_ConnPool, fboFile);
|
| | | isSuccess = true;
|
| | | }
|
| | |
| | | }
|
| | | int now_test_type = FGCD_ComBase.TestType_NULL;
|
| | | //记录停止原因时数据处理
|
| | | if(sys_state.dev_captest_stop_type > 0x80) {
|
| | | 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;
|
| | | }
|
| | | System.out.println("停止原因:"+m_RTData[n].mTestData.test_stoptype);
|
| | | 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]);
|
| | | //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_CAP;
|
| | | }else if(FGCD_ComBase.WORK_STATE_CHARTEST == sys_state.dev_workstate ||
|
| | | FGCD_ComBase.WORK_STATE_STOPCHAR == sys_state.dev_workstate ){
|
| | | vc_data.battcurr[n] = Math.abs(vc_data.battcurr[n]);
|
| | | //vc_data.battcurr[n] = Math.abs(vc_data.battcurr[n]);
|
| | | //System.out.println("vc_data.battcurr[n]:"+vc_data.battcurr[n]);
|
| | | now_test_type = FGCD_ComBase.TestType_Charge;
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public static void main(String[] args) {
|
| | | System.out.println(0x80);
|
| | | }
|
| | | }
|