充放电一体机FGCD通信程序【二期初版】
Administrator
2021-08-31 f101fc8df2af7010daa3d15a234f7cb5d26cbdd4
BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
@@ -72,7 +72,8 @@
    private int readMonData_lock = 1;         //单体数据返回
    private int readCharData_lock = 1;         //充放电数据返回
    
    private int sendlock_state = 1;            //发送数据返回
    private int sendlock_state_mon    = 1;            //单体发送数据
    private int sendlock_state_char = 1;            //充放电发送数据
    
    public FGCD_SocketClient_Thread(MysqlConnPool m_ConnPool,BattData_RT_Array m_Data,Socket socket){
        this.socket = socket;
@@ -290,7 +291,7 @@
            if(DevReadCount %10 == 0 || readMonData) {
               //logger.info("获取单体数据");
               FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETBATTDATA);
               tmp_cmd.Db3 = sendlock_state;
               tmp_cmd.Db3 = sendlock_state_mon;
               SocketComm(tmp_cmd, ByteBuffer.allocate(0));
               tmp_cmd = null;
               readMonData = false;
@@ -299,7 +300,7 @@
            if(DevReadCount %12 == 0 || readCharData) {
               //logger.info("获取放电数据");
               FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETDISCHARGEDATA);
               tmp_cmd.Db1 = sendlock_state;
               tmp_cmd.Db1 = sendlock_state_char;
               SocketComm(tmp_cmd, ByteBuffer.allocate(0));
               tmp_cmd = null;
               readCharData = false;
@@ -685,6 +686,7 @@
            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 = 2;
            //---------------------  心跳包测试    ----------------------------------
            if(FGCD_ComBase.CMD_HEARTBEAT == m_FBS_Cmd.CMD) {
@@ -731,17 +733,12 @@
                //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);
                   //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;
                     sendlock_state_mon = 2;
                     readCharData = true;
                   }else{
                      sendlock_state = 1;
                      sendlock_state_mon = 1;
                   }
                    //System.out.println("获取单体数据成功");
                   getFBS9100MonVolData(vc_data, sysState);
@@ -806,11 +803,10 @@
                   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;
                      }
                     sendlock_state_char = 2;
                     readMonData = true;
                   }else {
                      sendlock_state_char = 1;
                   }                  
                   //读取当前设备的停止原因和当前工作状态
@@ -962,14 +958,15 @@
                logger.error(e.toString(), e);
             }
             int now_test_type = FGCD_ComBase.TestType_NULL;
             int test_stoptype = -1;
             //记录停止原因时数据处理
             if(sys_state.dev_captest_stop_type >= 0x80) {
                
                m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type - 0x80;      //更新当前的停止原因
                test_stoptype = sys_state.dev_captest_stop_type - 0x80;      //更新当前的停止原因
             }else {
                m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type;
                test_stoptype = sys_state.dev_captest_stop_type;
             }
             System.out.println("停止原因:"+m_RTData[n].mTestData.test_stoptype);
             //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)){
@@ -995,7 +992,7 @@
                int work_stat = m_RTData[n].mTestData.dev_FBS9100S_WorkState;
                 int test_type = m_RTData[n].mTestData.dev_FBS9100S_TestType;
                 //--------------------------------------------------------------------------//
                m_RTData[n].mTestData.setDevFBS9100S_WorkState(sys_state.dev_captest_stop_type,
                m_RTData[n].mTestData.setDevFBS9100S_WorkState(test_stoptype,
                                                    now_test_type,
                                                    now_dev_workstate);
//             }