充放电一体机FGCD通信程序【二期初版】
Administrator
2021-08-27 2435b0e0b0118f02c0f677d805eae1deb346460a
BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
@@ -69,7 +69,10 @@
    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;
@@ -280,21 +283,26 @@
               }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++;
@@ -722,6 +730,19 @@
            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;
@@ -730,6 +751,7 @@
            //---------------------  获取放电参数    ----------------------------------------------
            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;
@@ -781,6 +803,16 @@
            //---------------------  获取放电数据    ----------------------------------
            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;
@@ -898,6 +930,7 @@
                  //读取文件列表成功
                  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;
               }
@@ -930,20 +963,22 @@
             }
             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;
             }
@@ -983,5 +1018,7 @@
          }
       }
    }
   public static void main(String[] args) {
      System.out.println(0x80);
   }
}