package com.battdata_rt; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import com.base.Com; import com.battalarm.BattAlarmData; import com.battalarm.BattAlarmParam; import com.battalarm.BattAlarm_Thread_SQL; import com.config.AppConfig; import com.config.AppParam; import com.sql.MysqlConnPool; public class BattData_RT { public static final int MonomerCountMax = 400; //ÔÚÏ߸¡³ä public static final byte IEC61850_SYS_STATE_STOPPED = 0; //ÔÚÏ߸¡³ä public static final byte IEC61850_SYS_STATE_CHARGING = 1; //Ô¤³äµç/£¨ÏÞÁ÷³äµç£© public static final byte IEC61850_SYS_STATE_DISCHARGING = 2; //ºËÈݲâÊÔ public static final byte IEC61850_SYS_STATE_PD_DISCHARGING = 3; //Í£µç·Åµç public static final byte IEC61850_SYS_STATE_RES_TEST = 4; //ÄÚ×è²âÊÔ public static final byte IEC61850_SYS_STATE_KD_TEST = 5; //K1/D1²âÊÔ private boolean MonDataFromCInterfaceOk = false; private boolean MonDataIsUseForIdce8200 = false; private boolean mIDCE8200_ConState = false; public long StationId; public String StationName; public byte[] StationIp = new byte[4]; public int BattGroupId = 0; public int BattCurrDeviceId = 0; public int[] BattCurrValueId = new int[16]; public int FBSDeviceId = 0; public String FBSDeviceIp = " "; public String FBSDeviceName = " "; public int GroupIndexInFBSDevice = 1; public int BattGroupNum; public int BattState; public int MonCount = 1; public float MonStdVol; public float MonStdCap; public float MonStdRes; //±ê³ÆÄÚ×è public int dev_workstate; //É豸¹¤×÷״̬ private boolean StoreBattRes_DataEn = false; public boolean MysqlDataResInfTable_Exist = false; public boolean MysqlRecordInf_Exist = false; public ArrayList al_MonVol = new ArrayList(); public ArrayList al_MonVol_RtOld = new ArrayList(); public ArrayList al_MonVol_History = new ArrayList(); public ArrayList> al_MonVol_C_Id = new ArrayList>(); public BattStatData TestData; public BattAlarmParam m_AlarmParam = new BattAlarmParam(); //µ±Ç°¸æ¾¯²ÎÊýÖеÄϵÊýֵΪʵ¼ÊãÐÖµ public BattAlarmParam m_BattAlarmParam = new BattAlarmParam(); //ÿ¸öµç³Ø×é¶ÔÓ¦Ò»¸ö¸æ¾¯µÄ²ÎÊý[мÓ] public int mMaxMonNum = 0; public float mMaxMonVol = 0; public int mMinMonNum = 0; public float mMinMonVol = 0; private AppParam mAppParam = new AppParam(); private float mBattFloatCurrLevel = (float) 15.0; public int mSaveDataTimeInterval = 10; private MysqlConnPool pool; /*********************************************************************************/ /*********************************************************************************/ public BattData_RT(AppConfig cfg, AppParam param, MysqlConnPool pool) { TestData = new BattStatData(cfg.getSourceBattDataType(), cfg.getSybSrvCurrChargeDirPos()); mAppParam.copyAppParam(param); this.pool = pool; } /** * ÉèÖà tmp_al_id Êý×éÖÐcInterfaceIdµÄÖµ */ public void make_al_MonVol_C_Id() { al_MonVol_C_Id.clear(); ArrayList tmp_al_id = null; int start_index = 0; for(int m=0; m 24) || ((tmp_id-2) > tmp_al_id.get(start_index - 1)) || ((tmp_id+2) < tmp_al_id.get(start_index - 1))) { start_index = 0; tmp_al_id = new ArrayList(); al_MonVol_C_Id.add(tmp_al_id); } tmp_al_id.add(tmp_id); start_index++; } } /** * ÉèÖÃal_MonVol_C_IdÖеÄcInterfaceId */ public void make_al_MonVol_Auto_C_Id() { al_MonVol_C_Id.clear(); ArrayList tmp_al_id = null; tmp_al_id = new ArrayList(); for(int m=0; m 0.1) && (false == isMonDataFromCInterfaceOk())) { setMonDataFromCInterfaceOk(true); } } sumvol += al_MonVol.get(var).monVol; } TestData.groupVol = sumvol; } /********************************************************************************/ public int getBattCount() { return MonCount; } public byte getBattState() { return TestData.battState; } public byte getBattTestType() { return TestData.battTestState; } public float getOnlineVol() { return TestData.onlineVol; } public float getGroupVol() { return TestData.groupVol; } public float getGroupTmp() { return TestData.groupTmp; } public float getTestCurr() { return TestData.testCurr; } public float getTestCap() { return TestData.testCap; } public long getTestStartTime() { return TestData.startTestTime.getTime(); } public long getTestRecordTime() { return TestData.recordTime.getTime(); } public int getTestTimeLong() { return TestData.testTimeLong; } public float getBattRealCap() { return TestData.battRealCap; } public float getBattRestCap() { return TestData.battRestCap; } public int getBattRestTime() { return TestData.battRestTime; } /** * ÉèÖÃµç³Ø×éµ¥ÌåµÄ×î´óµ¥ÌåµçѹºÍ×îСµ¥Ìåµçѹ£¬ÒÔ¼°¶ÔÓ¦µÄµ¥Ìå±àºÅ * @param al_vol */ public void makeMaxMinMonVol(ArrayList al_vol) { if(null != al_vol) { float maxvol = -80000; float minvol = 80000; for(int n=0; n al_vol.get(n).monVol) { minvol = al_vol.get(n).monVol; mMinMonNum = n+1; } } mMaxMonVol = maxvol; mMinMonVol = minvol; } } public float getMaxMonVol() { float maxvol = -80000; for(int n=0; n al_MonVol.get(n).monVol) { minvol = al_MonVol.get(n).monVol; mMinMonNum = n+1; } } return minvol; } public float getGroupVolFromMonVol() { float gvol = 0; for(int n=0; n=0) && (index=0) && (index makeAlarmData() { ArrayList al_alm_data = new ArrayList(); //Date timetime = new Date(100,0,1); Calendar c = Calendar.getInstance(); c.set(2000, 0, 1, 0, 0, 0); //System.out.println(this.BattGroupId+"=="+Com.getDateTimeFormat(TestData.recordTime, Com.DTF_YMDhms)); if(TestData.recordTime.before(c.getTime())){ //¹ýÂËÉÐδͨÐÅÉϹýµÄÉ豸µÄµç³Ø×é //System.out.println(Com.getDateTimeFormat(TestData.recordTime, Com.DTF_YMDhms)+"<"+Com.getDateTimeFormat(timetime, Com.DTF_YMDhms)); return al_alm_data; } //System.out.println("2222222222222="+dev_workstate); if((FBSDeviceId/1000000 == 618 && (!(dev_workstate == IEC61850_SYS_STATE_DISCHARGING || dev_workstate == IEC61850_SYS_STATE_CHARGING))) || (FBSDeviceId/1000000 != 618)) { TestData.onlineVol_AlarmData.makeAlarmData(al_alm_data, m_AlarmParam.alm_OnlineVol, TestData.onlineVol); TestData.groupVol_AlarmData.makeAlarmData(al_alm_data, m_AlarmParam.alm_GroupVol, TestData.groupVol); //System.out.println("¼ì²â×é¶Ëµçѹ"); } if(TestData.testCurr >= 0) { TestData.battCurr_AlarmData.makeAlarmData(al_alm_data, m_AlarmParam.alm_BattChargeCurr, TestData.testCurr); } else { TestData.battDisCurr_AlarmData.makeAlarmData(al_alm_data, m_AlarmParam.alm_BattDisChargeCurr, Math.abs(TestData.testCurr)); } for(int n=0; n0) && (new_mon_cnt mon_cnt) { while(new_mon_cnt > this.al_MonVol.size()) { MonVolData data = new MonVolData(0, 0, this.BattGroupId*1000 + this.al_MonVol.size()+1); this.al_MonVol.add(data); this.al_MonVol_RtOld.add(data.clone()); this.al_MonVol_History.add(data.clone()); } //----------- Ôö¼ÓµÄʱºò×îºóÉèÖõ¥ÌåÊýÁ¿ ---------------- this.MonCount = new_mon_cnt; } else if(new_mon_cnt < mon_cnt) { //----------- ¼õÉÙµÄʱºò×îÏÈÉèÖõ¥ÌåÊýÁ¿ ---------------- this.MonCount = new_mon_cnt; while(new_mon_cnt < this.al_MonVol.size()) { this.al_MonVol.remove(this.al_MonVol.size()-1); this.al_MonVol_RtOld.remove(this.al_MonVol_RtOld.size()-1); this.al_MonVol_History.remove(this.al_MonVol_History.size()-1); } } } } }