| | |
| | | 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;
|
| | | this.m_ConnPool = m_ConnPool;
|
| | |
| | | FGCD_SocketClient_Thread_SQL.queryFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam, tmp_set_pm);
|
| | | if(FGCD_ComBase.WORK_STATE_STOPPED == sysState.dev_workstate) {
|
| | | SocketComm(FGCD_ComBase.CMD_SETNOWWORKBATT, tmp_set_pm.groupCount);
|
| | | |
| | | //切换电池组后,立即读取一次组端和单体数据
|
| | | isOnlineMode = true;
|
| | | readMonData = true;
|
| | | readCharData = true;
|
| | | |
| | | logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t切换电池组号:" + tmp_set_pm.groupCount);
|
| | | }else {
|
| | | logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t 设备正在工作无法,切换电池组号:" + tmp_set_pm.groupCount);
|
| | | }
|
| | | |
| | | //设置电池组号
|
| | | tmp_set_pm = null;
|
| | | }else if(FGCD_ComBase.CMD_StartShowPic == m_StatAndParam.op_cmd) {
|
| | |
| | |
|
| | | if(DevReadCount % 13 == 0 || isOnlineMode) {
|
| | | //
|
| | | logger.info("获取在线模块状态");
|
| | | //logger.info("获取在线模块状态");
|
| | | FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_READONLINEMODEINFO);
|
| | | SocketComm(tmp_cmd, ByteBuffer.allocate(0));
|
| | | tmp_cmd = null;
|
| | |
| | |
|
| | |
|
| | | /*********************************************************************************************/
|
| | | /*private void getFBS9100MonVolData(FGCD_VCData vc_data, FGCD_SysState sys_state)
|
| | | {
|
| | | boolean fbsdev_statchange_record_tag = false;
|
| | | int mon_index = 0;
|
| | | int batt_index_now = onlineInfo.currBattNum-1; //当前电池组号 0->电池组1 1->电池组2
|
| | | for(int n=0; n<FBS9100_ComBase.BattGroupCountMax; n++) {
|
| | | if(null != m_RTData[n]) {
|
| | | if(batt_index_now == n) { |
| | | //--------------------- 先读取单体电压 ---------------------------------------//
|
| | | try {
|
| | | for(int index=0; index<m_RTData[n].al_MonVol.size(); index++) {
|
| | | if(mon_index >= FBS9100_ComBase.MonomerCountMax) {
|
| | | break;
|
| | | }
|
| | | |
| | | m_RTData[n].al_MonVol.get(index).monVol = (float) vc_data.vol[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).monTmp = (float) vc_data.tmp[mon_index];
|
| | | mon_index++;
|
| | | }
|
| | | } catch (Exception e) {
|
| | | 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) {
|
| | | |
| | | test_stoptype = sys_state.dev_captest_stop_type - 0x80; //更新当前的停止原因 |
| | | }else {
|
| | | test_stoptype = sys_state.dev_captest_stop_type;
|
| | | }
|
| | | //System.out.println("停止原因:"+m_RTData[n].mTestData.test_stoptype);
|
| | | double test_curr = sys_state.chargeCurr;
|
| | | 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]);
|
| | | test_curr = (-1)*Math.abs(test_curr);
|
| | | 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]);
|
| | | //System.out.println("vc_data.battcurr[n]:"+vc_data.battcurr[n]);
|
| | | now_test_type = FGCD_ComBase.TestType_Charge;
|
| | | test_curr = Math.abs(test_curr);
|
| | | }
|
| | | 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)) {
|
| | | //----------------------- 顺序不能颠倒 -----------------------------------//
|
| | | 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(test_stoptype, |
| | | now_test_type,
|
| | | now_dev_workstate);
|
| | | // }
|
| | | |
| | | //--------------------- 再读取端电压 -----------------------------------------//
|
| | | //--------------------- 如果软件版本大于35,在线电压和组端电压保留2位小数-------//
|
| | | //m_RTData[n].mTestData.updateGroupTempFrom_FBSDev((float)(vc_data.batttemp[n]));
|
| | | m_RTData[n].mTestData.updateOnlineVolFrom_FBSDev((float)(sysState.on_online_vol));
|
| | | if(batt_index_now == n) {
|
| | | m_RTData[n].mTestData.updateGroupVolFrom_FBSDev((float)(sysState.tatalVol)); |
| | | }else { |
| | | m_RTData[n].mTestData.updateGroupVolFrom_FBSDev((float)(vc_data.groupvol[n]));
|
| | | }
|
| | | //---------------------------------------------------------------------------//
|
| | | //--------------------- 接着读取电流 -----------------------------------------//
|
| | | if(batt_index_now == n) {
|
| | | //当前电池组
|
| | | m_RTData[n].mTestData.updateCurrFrom_FBSDev((float)test_curr);
|
| | | }
|
| | | m_RTData[n].mTestData.updateNewDataRCTime(new Date());
|
| | | //---------------------------------------------------------------------------//
|
| | | //---------------------------------------------------------------------------//
|
| | | //--------------------- 先更新单体数据,再更新电池状态数据 ----------------------//
|
| | | m_RTData[n].updata_BattRtData_To_RamDb();
|
| | | m_RTData[n].updata_BattRtSate_To_RamDb();
|
| | | //---------------------------------------------------------------------------//
|
| | | }
|
| | | }
|
| | | }*/
|
| | | |
| | | private void getFBS9100MonVolData(FGCD_VCData vc_data, FGCD_SysState sys_state)
|
| | | {
|
| | | boolean fbsdev_statchange_record_tag = false;
|
| | |
| | | m_RTData[n].mTestData.updateGroupVolFrom_FBSDev((float)(sysState.tatalVol));
|
| | | //---------------------------------------------------------------------------//
|
| | | //--------------------- 接着读取电流 -----------------------------------------//
|
| | | m_RTData[n].mTestData.updateCurrFrom_FBSDev((float) vc_data.battcurr[n]);
|
| | | double test_curr = Math.abs(sysState.chargeCurr);
|
| | | if(vc_data.battstate[n] == FGCD_ComBase.BattState_Discharge || |
| | | vc_data.battstate[n] == FGCD_ComBase.BattState_PauseDischarge) {
|
| | | //放电或者暂停放电时
|
| | | test_curr = test_curr * (-1);
|
| | | }
|
| | | m_RTData[n].mTestData.updateCurrFrom_FBSDev((float) test_curr);
|
| | | //m_RTData[n].mTestData.updateCurrFrom_FBSDev((float) vc_data.battcurr[n]);
|
| | | m_RTData[n].mTestData.updateNewDataRCTime(new Date());
|
| | | m_RTData[n].mTestData.updateGroupNumFrom_FBSDev(onlineInfo.currBattNum);
|
| | | //---------------------------------------------------------------------------//
|
| | | //---------------------------------------------------------------------------//
|
| | | //--------------------- 先更新单体数据,再更新电池状态数据 ----------------------//
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | public static void main(String[] args) {
|
| | | byte[] b = new byte[]{0x46 ,0x47, 0x43 ,0x44,0x2D ,0x41 ,0x30 ,0x35 ,0x39 ,0x58 ,0x54 ,0x20 ,0x50 ,0x72 ,0x6F ,0x2C ,0x56 ,0x31 ,0x2E ,0x38 ,0x2E ,0x30 ,0x2E ,0x38 ,0x2C ,0x31 ,0x3A ,0x49 ,0x44 ,0x43 ,0x45 ,0x2D ,0x50 ,0x72 ,0x6F ,0x2D ,0x38 ,0x4B ,0x57 ,0x2D ,0x56 ,0x33 ,0x2E ,0x30 ,0x31 ,0x2E ,0x31 ,0x39 ,0x20 };
|
| | | try {
|