package com.battmonitor.data;
|
import java.util.ArrayList;
|
import java.util.Date;
|
|
import com.battmonitor.base.AppParam;
|
import com.battmonitor.base.ComBase;
|
import com.battmonitor.data_store.InsertDataToMysql_Task;
|
import com.battmonitor.sql.MysqlConnPool;
|
import com.battmonitor.sql.Sql_Mysql;
|
import com.dev.btse.data.FBS9100S_NT_DCDC_Data;
|
import com.dev.btse.data.FBS9100_ComBase;
|
|
public class BattData_RT {
|
public static final int DEF_CommTimeOutMax = 7200;
|
private MysqlConnPool m_Conn_Pool;
|
|
private boolean MonDataFromCInterfaceOk = false;
|
|
private boolean MonDataIsUseForIdce8200 = false;
|
private boolean mIDCE8200_ConState = false;
|
private int mIDCE8200CommTimeout = 0;
|
|
private boolean Lock_Data_Stat = false;
|
|
public int StationId;
|
public boolean Station_Event_poff = false;
|
public boolean Station_Event_xuhang = false;
|
public boolean Station_Event_diaozhan = false;
|
//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 = " ";
|
private String FBSRegCode = " ";
|
public int GroupIndexInFBSDevice = 1;
|
|
public int BattGroupNum;
|
public int BattState;
|
public int MonCount = 1;
|
public float MonStdVol;
|
public float MonStdCap;
|
|
private boolean StoreBattRes_DataEn = false;
|
private boolean StoreDataBusy = false;
|
public boolean MysqlDataTable_Exist = false;
|
public boolean MysqlDataResInfTable_Exist = false;
|
public boolean MysqlRecordInf_Exist = false;
|
|
public FBS9100S_NT_DCDC_Data m_DCDC_Data = new FBS9100S_NT_DCDC_Data();
|
public InsertDataToMysql_Task mSqlTask = null;
|
|
public ArrayList<MonVolData> al_MonVol = new ArrayList<MonVolData>();
|
public ArrayList<MonVolData> al_MonVol_RtOld = new ArrayList<MonVolData>();
|
public ArrayList<MonVolData> al_MonVol_History = new ArrayList<MonVolData>();
|
public ArrayList<ArrayList<Integer>> al_MonVol_C_Id = new ArrayList<ArrayList<Integer>>();
|
|
public BattStatData mTestData;
|
|
private int mCommTimeCoutCount = 0;
|
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;
|
private float mBattFloatVolLevel = (float) (MonStdVol*MonCount*1.125);
|
|
public int mTestTimeLongMin = 30*60;
|
public int mSaveDataTimeInterval = 10;
|
private float mDataHistoryNewLevel = (float) 0.01;
|
private int mTestDataRecordCountMax = 10000;
|
|
private Date mRecordTime = new Date(0);
|
|
/*********************************************************************************/
|
/*********************************************************************************/
|
|
public BattData_RT() {
|
mTestData = new BattStatData();
|
}
|
|
public BattData_RT(AppParam param, MysqlConnPool pool)
|
{
|
mTestData = new BattStatData();
|
|
mAppParam.copyAppParam(param);
|
|
m_Conn_Pool = pool;
|
|
initTestDataSaveRunable();
|
}
|
/*********************************************************************************/
|
public void initTestDataSaveRunable() {
|
if(null != m_Conn_Pool) {
|
mSqlTask = new InsertDataToMysql_Task(BattData_RT.this, m_Conn_Pool);
|
/*
|
try {
|
File file = new File("bms_btse_jar//com.battmonitor.data_store.jar");//jar°üµÄ·¾¶
|
URL url = file.toURI().toURL();
|
System.out.println("url is: " + url.toString());
|
@SuppressWarnings("resource")
|
URLClassLoader loader = new URLClassLoader(new URL[]{url});//´´½¨Àà¼ÓÔØÆ÷
|
Class<?> cls = loader.loadClass("com.battmonitor.data_store.InsertDataToMysql_Task");
|
// ´ÓClassÖÐʵÀý³öÒ»¸ö¶ÔÏó
|
InsertDataToMysql_Task impl = null;
|
try {
|
impl = (InsertDataToMysql_Task) cls.newInstance();
|
} catch (InstantiationException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
System.out.println("method.invoke battgroup_id return is: " + impl.getBattGroupID());
|
Method method = cls.getMethod("get_InsertDataToMysql_Task_Instant",
|
BattData_RT.class,
|
MysqlConnPool.class);//·½·¨ÃûºÍ¶ÔÓ¦µÄ¸÷¸ö²ÎÊýµÄÀàÐÍ
|
|
InsertDataToMysql_Task mSqlTask = (InsertDataToMysql_Task) method.invoke(null,
|
BattData_RT.this,
|
m_Conn_Pool);//µ÷Óõõ½µÄÉϱߵķ½·¨method(¾²Ì¬·½·¨£¬µÚÒ»¸ö²ÎÊý¿ÉÒÔΪnull)
|
|
//if(null != mSqlTask) {
|
System.out.println("method.invoke battgroup_id return is: " + str);
|
//}
|
//System.out.println("method.invoke return is:" + String.valueOf(o));
|
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException
|
| IllegalAccessException | IllegalArgumentException
|
| InvocationTargetException | MalformedURLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
*/
|
}
|
}
|
/*********************************************************************************/
|
public void updata_BattRtSate_To_RamDb() {
|
BattData_RT_SQL.updateBattState_RT_RamDB_Table(m_Conn_Pool, this);
|
}
|
/*********************************************************************************/
|
public void updata_BattRtData_To_RamDb() {
|
BattData_RT_SQL.updateBattData_RT_RamDB_Table(m_Conn_Pool, this);
|
}
|
/*********************************************************************************/
|
public void insert_BattResData_To_Db() {
|
BattData_RT_SQL.updateBattData_RT_RamDB_Table(m_Conn_Pool, this);
|
}
|
/*********************************************************************************/
|
/**
|
* ÉèÖà tmp_al_id Êý×éÖÐcInterfaceIdµÄÖµ
|
*/
|
public void make_al_MonVol_C_Id()
|
{
|
try {
|
al_MonVol_C_Id.clear();
|
ArrayList<Integer> tmp_al_id = null;
|
|
int start_index = 0;
|
for(int m=0; m<al_MonVol.size(); m++) {
|
int tmp_id = al_MonVol.get(m).cInterfaceId;
|
|
if((start_index < 1) || (start_index > 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<Integer>();
|
al_MonVol_C_Id.add(tmp_al_id);
|
}
|
|
tmp_al_id.add(tmp_id);
|
start_index++;
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.make_al_MonVol_C_Id():" + e.getMessage());
|
}
|
}
|
|
/**
|
* ÉèÖÃal_MonVol_C_IdÖеÄcInterfaceId
|
*/
|
public void make_al_MonVol_Auto_C_Id()
|
{
|
try {
|
al_MonVol_C_Id.clear();
|
ArrayList<Integer> tmp_al_id = null;
|
|
tmp_al_id = new ArrayList<Integer>();
|
for(int m=0; m<al_MonVol.size(); m++) {
|
int tmp_id = al_MonVol.get(m).cInterfaceId;
|
tmp_al_id.add(tmp_id);
|
}
|
|
al_MonVol_C_Id.add(tmp_al_id);
|
} catch (Exception e) {
|
System.err.println("BattData_RT.make_al_MonVol_Auto_C_Id():" + e.getMessage());
|
}
|
}
|
|
public void SetLock_Data_Stat(boolean stat) {
|
Lock_Data_Stat = stat;
|
}
|
public boolean GetLock_Data_Stat() {
|
return Lock_Data_Stat;
|
}
|
|
public void setStoreBattRes_DataEnStat(boolean stat)
|
{
|
StoreBattRes_DataEn = stat;
|
}
|
public boolean getStoreBattRes_DataEnStat()
|
{
|
return StoreBattRes_DataEn;
|
}
|
|
public void setMonitorParam(int test_type)
|
{
|
float det_vol = MonStdVol / 2;
|
if(det_vol < 1)
|
det_vol = 1;
|
|
if(BattStatData.BATTSTATE_DISCHARGE == test_type) {
|
mTestTimeLongMin = mAppParam.getTestTimeLongMinimum(AppParam.AppParam_Discharge);
|
mSaveDataTimeInterval = mAppParam.getSaveDataTimeInterval(AppParam.AppParam_Discharge);
|
mDataHistoryNewLevel = det_vol * mAppParam.getMonVolChangeLevel(AppParam.AppParam_Discharge);
|
mTestDataRecordCountMax = mAppParam.getTestDataRecordCountMax(AppParam.AppParam_Discharge);
|
} else {
|
mTestTimeLongMin = mAppParam.getTestTimeLongMinimum(AppParam.AppParam_Charge);
|
mSaveDataTimeInterval = mAppParam.getSaveDataTimeInterval(AppParam.AppParam_Charge);
|
mDataHistoryNewLevel = det_vol * mAppParam.getMonVolChangeLevel(AppParam.AppParam_Charge);
|
mTestDataRecordCountMax = mAppParam.getTestDataRecordCountMax(AppParam.AppParam_Charge);
|
}
|
}
|
|
public void updateMonCnt(int new_mon_cnt)
|
{
|
if((new_mon_cnt>0) && (new_mon_cnt<FBS9100_ComBase.MonomerCountMax)) {
|
int mon_cnt = this.al_MonVol.size();
|
if(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);
|
}
|
}
|
}
|
}
|
|
public void setBattFloatVolCurrLevel(float vol_lev, float curr_level)
|
{
|
mBattFloatVolLevel = vol_lev;
|
mBattFloatCurrLevel = curr_level;
|
mTestData.setBattFloatCurrLevel(mBattFloatCurrLevel);
|
}
|
public float getBattFloatVolLev()
|
{
|
return mBattFloatVolLevel;
|
}
|
public float getBattFloatCurrLev()
|
{
|
return mBattFloatCurrLevel;
|
}
|
public String getDevRegCode()
|
{
|
return FBSRegCode;
|
}
|
public void setDevRegCode(String reg_code)
|
{
|
FBSRegCode = reg_code;
|
}
|
public boolean isMonDataFromCInterfaceOk()
|
{
|
return MonDataFromCInterfaceOk;
|
}
|
public void setMonDataFromCInterfaceOk(boolean stat)
|
{
|
MonDataFromCInterfaceOk = stat;
|
}
|
|
public boolean isMonDataUseForIdce8200()
|
{
|
return MonDataIsUseForIdce8200;
|
}
|
public void setMonDataUseForIdce8200(boolean stat)
|
{
|
MonDataIsUseForIdce8200 = stat;
|
}
|
|
/********************************************************************************/
|
public boolean checkIfIdce8200ComMTimeout()
|
{
|
boolean time_ount = false;
|
if(mIDCE8200CommTimeout >= 60)
|
{
|
time_ount = true;
|
mIDCE8200_ConState = false;
|
setMonDataUseForIdce8200(false);
|
}
|
if(mIDCE8200CommTimeout < 1000)
|
mIDCE8200CommTimeout++;
|
|
return time_ount;
|
}
|
|
public boolean getIdce8200ComState()
|
{
|
return mIDCE8200_ConState;
|
}
|
|
public void updateMonVolFromIDCE8200(int mon_index, float vol)
|
{
|
try {
|
mIDCE8200_ConState = true;
|
mIDCE8200CommTimeout = 0;
|
setMonDataUseForIdce8200(true);
|
al_MonVol.get(mon_index).monVol = vol;
|
} catch (Exception e) {
|
System.err.println("BattData_RT.updateMonVolFrom_C_Interface():" + e.getMessage());
|
}
|
}
|
|
public void updateMonVolFromSQL_SERVER()
|
{
|
if(true == isMonDataFromCInterfaceOk()) {
|
return;
|
}
|
try {
|
float sumvol = 0;
|
for(int bt_index=0; bt_index<al_MonVol.size(); bt_index++) {
|
if(false == isMonDataUseForIdce8200()) {
|
al_MonVol.get(bt_index).monVol = al_MonVol.get(bt_index).monVol_TMP;
|
}
|
sumvol += al_MonVol.get(bt_index).monVol;
|
}
|
mTestData.groupVol = sumvol;
|
} catch (Exception e) {
|
System.err.println("BattData_RT.updateMonVolFromSQL_SERVER():" + e.getMessage());
|
}
|
}
|
|
public void updateMonVolFrom_C_Interface(int mon_c_id, float mon_vol)
|
{
|
try {
|
float sumvol = 0;
|
for(int var=0; var<al_MonVol.size(); var++) {
|
MonVolData mvol = al_MonVol.get(var);
|
if(mon_c_id == mvol.cInterfaceId) {
|
if(false == isMonDataUseForIdce8200()) {
|
mvol.monVol = mon_vol;
|
}
|
|
if((mon_vol > 0.1) && (false == isMonDataFromCInterfaceOk())) {
|
setMonDataFromCInterfaceOk(true);
|
}
|
}
|
|
sumvol += al_MonVol.get(var).monVol;
|
}
|
mTestData.groupVol = sumvol;
|
} catch (Exception e) {
|
System.err.println("BattData_RT.updateMonVolFrom_C_Interface():" + e.getMessage());
|
}
|
}
|
/********************************************************************************/
|
|
public int getBattCount()
|
{
|
return MonCount;
|
}
|
public byte getBattState()
|
{
|
return mTestData.battState;
|
}
|
public byte getNewBattState()
|
{
|
if((mTestData.battState == BattStatData.BATTDATA_FLOAT || mTestData.battState == BattStatData.BATTDATA_JUNCHARGE)&& mTestData.batt_res_test_state == 1) {
|
//Èç¹ûµç³Ø×éÊǸ¡³ä״̬²¢ÇÒÔÚÄÚ×è²âÊÔÔò·µ»ØÄÚ×è²âÊÔ״̬
|
return BattStatData.BATTDATA_RES;
|
}
|
return mTestData.battState;
|
}
|
public byte getBattTestType()
|
{
|
return mTestData.battTestState;
|
}
|
public float getOnlineVol()
|
{
|
return mTestData.onlineVol;
|
}
|
public float getGroupVol()
|
{
|
return mTestData.groupVol;
|
}
|
public float getGroupTmp()
|
{
|
return mTestData.groupTmp;
|
}
|
public float getTestCurr()
|
{
|
return mTestData.testCurr;
|
}
|
public float getTestCap()
|
{
|
return mTestData.testCap;
|
}
|
public long getTestStartTime()
|
{
|
return mTestData.startTestTime.getTime();
|
}
|
public long getTestRecordTime()
|
{
|
return mTestData.recordTime.getTime();
|
}
|
public int getTestTimeLong()
|
{
|
return mTestData.testTimeLong;
|
}
|
public float getBattRealCap()
|
{
|
return mTestData.battRealCap;
|
}
|
public float getBattRestCap()
|
{
|
return mTestData.battRestCap;
|
}
|
public int getBattRestTime()
|
{
|
return mTestData.battRestTime;
|
}
|
|
/**
|
* ÉèÖÃµç³Ø×éµ¥ÌåµÄ×î´óµ¥ÌåµçѹºÍ×îСµ¥Ìåµçѹ£¬ÒÔ¼°¶ÔÓ¦µÄµ¥Ìå±àºÅ
|
* @param al_vol
|
*/
|
public void makeMaxMinMonVol(ArrayList<MonVolData> al_vol)
|
{
|
try {
|
if(null != al_vol)
|
{
|
float maxvol = -80000;
|
float minvol = 80000;
|
for(int n=0; n<al_vol.size(); n++)
|
{
|
if(maxvol < al_vol.get(n).monVol)
|
{
|
maxvol = al_vol.get(n).monVol;
|
mMaxMonNum = n+1;
|
}
|
if(minvol > al_vol.get(n).monVol)
|
{
|
minvol = al_vol.get(n).monVol;
|
mMinMonNum = n+1;
|
}
|
}
|
mMaxMonVol = maxvol;
|
mMinMonVol = minvol;
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.makeMaxMinMonVol():" + e.getMessage());
|
}
|
}
|
|
|
public float getMaxMonVol()
|
{
|
float maxvol = -80000;
|
try {
|
for(int n=0; n<al_MonVol.size(); n++) {
|
if(maxvol < al_MonVol.get(n).monVol) {
|
maxvol = al_MonVol.get(n).monVol;
|
mMaxMonNum = n+1;
|
}
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.getMaxMonVol():" + e.getMessage());
|
}
|
return maxvol;
|
}
|
public float getMinMonVol()
|
{
|
float minvol = 80000;
|
try {
|
for(int n=0; n<al_MonVol.size(); n++) {
|
if(minvol > al_MonVol.get(n).monVol) {
|
minvol = al_MonVol.get(n).monVol;
|
mMinMonNum = n+1;
|
}
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.getMinMonVol():" + e.getMessage());
|
}
|
return minvol;
|
}
|
public float getGroupVolFromMonVol()
|
{
|
float gvol = 0;
|
try {
|
for(int n=0; n<al_MonVol.size(); n++) {
|
gvol += al_MonVol.get(n).monVol;
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.getGroupVolFromMonVol():" + e.getMessage());
|
}
|
return gvol;
|
}
|
//------------------------------------------------------------------------------------//
|
public void makeDataClearByCommTimeOut() {
|
if(this.mCommTimeCoutCount < (DEF_CommTimeOutMax+100)) {
|
this.mCommTimeCoutCount += 1;
|
}
|
if(this.mCommTimeCoutCount >= DEF_CommTimeOutMax) {
|
mTestData.TestCurr_RT = 0;
|
mTestData.testCurr = 0;
|
}
|
}
|
public void makeDataResetByCommTimeOut() {
|
this.mCommTimeCoutCount = 0;
|
}
|
//------------------------------------------------------------------------------------//
|
private boolean make_al_MonVol_History()
|
{
|
boolean data_new = false;
|
try {
|
for(int n=0; n<al_MonVol_History.size(); n++) {
|
float tmp_dt = al_MonVol.get(n).monVol;
|
if(Math.abs((al_MonVol_History.get(n).monVol - tmp_dt)) > mDataHistoryNewLevel)
|
{
|
al_MonVol_History.get(n).data_new = true;
|
al_MonVol_History.get(n).monVol = tmp_dt;
|
data_new = true;
|
}
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.make_al_MonVol_History():" + e.getMessage());
|
}
|
return data_new;
|
}
|
public float get_al_MonVol_History(int index)
|
{
|
float vol = 0;
|
try{
|
if((index>=0) && (index<al_MonVol_History.size())) {
|
vol = al_MonVol_History.get(index).monVol;
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.get_al_MonVol_History():" + e.getMessage());
|
}
|
return vol;
|
}
|
public boolean is_al_MonVol_History_New(int index)
|
{
|
boolean isnew = false;
|
try {
|
if((index>=0) && (index<al_MonVol_History.size()))
|
{
|
isnew = al_MonVol_History.get(index).data_new;
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.is_al_MonVol_History_New():" + e.getMessage());
|
}
|
return isnew;
|
}
|
public void clear_al_MonVol_History_New()
|
{
|
try {
|
for(int n=0; n<al_MonVol_History.size(); n++)
|
al_MonVol_History.get(n).data_new = false;
|
} catch (Exception e) {
|
System.err.println("BattData_RT.clear_al_MonVol_History_New():" + e.getMessage());
|
}
|
}
|
public void set_al_MonVol_History_New()
|
{
|
try {
|
for(int n=0; n<al_MonVol_History.size(); n++) {
|
//if(al_MonVol_History.get(n).monVol != al_MonVol.get(n).monVol)
|
{
|
al_MonVol_History.get(n).data_new = true;
|
al_MonVol_History.get(n).monVol = al_MonVol.get(n).monVol;
|
}
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.set_al_MonVol_History_New():" + e.getMessage());
|
}
|
}
|
//------------------------------------------------------------------------------------//
|
private void calBattRestCap(double b_curr, double b_testcap)
|
{
|
double curr = Math.abs(b_curr);
|
double testcap = Math.abs(b_testcap);
|
int HourRate = ComBase.GetHourRate(MonStdCap, curr);
|
|
mTestData.battRestCap = (float) Math.abs(ComBase.GetMonomerCap(MonStdCap,
|
HourRate,
|
testcap,
|
getMaxMonVol(),
|
getMinMonVol(),
|
MonStdVol,
|
ComBase.CapType_Rest));
|
mTestData.battRestTime = ComBase.GetRestTimeSecond(mTestData.battRestCap, curr);
|
mTestData.battRealCap = (float) (mTestData.battRestCap + testcap * ComBase.N_TO_10H(HourRate));
|
}
|
//==============================================================//
|
|
//ÅжÏal_MonVolÖеÄÖµÊÇ·ñÓеçѹֵµÍÓÚ0.001
|
public boolean checkIfHaveZeroMonVol()
|
{
|
boolean have_zero_vol = false;
|
|
try {
|
for(int n=0; n<al_MonVol.size(); n++) {
|
if(n >= 10000)
|
break;
|
|
if(al_MonVol.get(n).monVol <= 0.001) {
|
have_zero_vol = true;
|
break;
|
}
|
}
|
} catch (Exception e) {
|
System.err.println("BattData_RT.checkIfHaveZeroMonVol():" + e.getMessage());
|
}
|
|
return have_zero_vol;
|
}
|
|
private void initTestData(byte test_type)
|
{
|
int count = 1;
|
if(BattStatData.BATTSTATE_FLOAT != test_type) {
|
Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
|
count = sql.getBattTestRecordCountNew(BattGroupId, Sql_Mysql.BattTestDataInf_Table);
|
sql.close_con();
|
}
|
|
if(count <= 0) {
|
return;
|
}
|
|
setMonitorParam(test_type);
|
|
mTestData.init(test_type, count);
|
int fbsdev_testtype = mTestData.getDevFBS9100S_TestType();
|
if((FBS9100_ComBase.SYS_STATE_STOPPED != mTestData.getDevFBS9100S_WorkState())
|
&& ((FBS9100_ComBase.TestType_CAP==fbsdev_testtype)
|
|| (FBS9100_ComBase.TestType_Charge==fbsdev_testtype))) {
|
mTestData.setLoaderType(BattStatData.TEST_LOADER_FBS9100S);
|
} else {
|
if(true == mTestData.isCurrDataUseForIdceFbi()) {
|
if(false == mTestData.isCurrDataUseForIdceFbi_LaZha()) {
|
mTestData.setLoaderType(BattStatData.TEST_LOADER_FBI_IDCE);
|
}
|
}
|
}
|
|
MysqlDataTable_Exist = false;
|
MysqlDataResInfTable_Exist = false;
|
MysqlRecordInf_Exist = false;
|
}
|
|
public void printBattRtDataDebugInf_FBS9100S(int pos) {
|
/*
|
if(BattStatData.TEST_LOADER_FBS9100S == mTestData.getLoaderType()) {
|
System.out.println(String.format("batt_stat_change at pos " + pos + ", "
|
+ " bg_id: %d,"
|
+ " battTestState: %d,"
|
+ " batt_stat: %d,"
|
+ " batt_curr: %1.1fA,"
|
+ " dcdc_Vout: %1.2fV,"
|
+ " dcdc_Iout: %1.2fA,"
|
+ " dcdc_Ibuck: %1.2fA,"
|
+ " dcdc_Workstate: %d,"
|
+ " dcdc_WorkMode: %d,"
|
+ " dcdc_VoutSet: %1.2fV,"
|
+ " dcdc_IoutSet: %1.2fA,"
|
+ " dcdc_IbuckSet: %1.2fA,"
|
+ " dcdc_alarm: %d,"
|
+ " dcdc_txcnt: %d,"
|
+ " dcdc_rxcnt: %d",
|
this.BattGroupId,
|
mTestData.battTestState,
|
mTestData.battState,
|
mTestData.testCurr,
|
m_DCDC_Data.Vout,
|
m_DCDC_Data.Iout,
|
m_DCDC_Data.Ibuck,
|
m_DCDC_Data.RunSetComm,
|
m_DCDC_Data.ModeSetComm,
|
m_DCDC_Data.SetDisVol,
|
m_DCDC_Data.SetDisCurr,
|
m_DCDC_Data.SetBuckI,
|
m_DCDC_Data.SMR_Alarm1,
|
m_DCDC_Data.CommTxCnt,
|
m_DCDC_Data.CommRxCnt)
|
+ Com.getNowTimeWithAt());
|
}
|
*/
|
}
|
|
public boolean checkIfDataNeedStore()
|
{
|
boolean store_state = false;
|
/***********************************************************************/
|
if(false == getStoreDataBusyTag()) //ÈÃÊý¾Ý¿âÄÜÈ·±£Íê³ÉÊý¾Ý´æ´¢
|
{
|
mTestData.testCurr = mTestData.TestCurr_RT;
|
if(Math.abs(mTestData.testCurr) < mBattFloatCurrLevel)
|
{
|
if(BattStatData.BATTDATA_FLOAT != mTestData.battTestState) {
|
if((FBS9100_ComBase.SYS_STATE_DISCHARGING != mTestData.dev_FBS9100S_WorkState)
|
&& (FBS9100_ComBase.SYS_STATE_HELUQI_DISCHARGING != mTestData.dev_FBS9100S_WorkState)) {
|
//2018Äê12ÔÂ15ÈÕÌí¼Ó,Ö»ÒªÉ豸´¦ÓÚºËÈݲâÊÔ»òÉýÑ¹Ðøº½×´Ì¬,Êý¾Ý¾Í²»Í£Ö¹¼Ç¼.
|
printBattRtDataDebugInf_FBS9100S(1);
|
|
mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
|
mTestData.battState = BattStatData.BATTSTATE_FLOAT;
|
store_state = true;
|
}
|
} /*else if(BattStatData.BATTDATA_CHARGE == mTestData.battTestState) {
|
//if(FBS9100_ComBase.SYS_STATE_CHARGING != mTestData.dev_FBS9100S_WorkState) {
|
//2018Äê12ÔÂ15ÈÕÌí¼Ó,Ö»ÒªÉ豸´¦ÓÚºËÈݲâÊÔ»òÉýÑ¹Ðøº½×´Ì¬,Êý¾Ý¾Í²»Í£Ö¹¼Ç¼.
|
printBattRtDataDebugInf_FBS9100S(1);
|
|
mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
|
mTestData.battState = BattStatData.BATTSTATE_FLOAT;
|
store_state = true;
|
//}
|
}*/
|
}
|
|
if(false == store_state)
|
{
|
if(mTestData.testCurr >= (mBattFloatCurrLevel+2)) {
|
if(BattStatData.BATTSTATE_DISCHARGE == mTestData.battTestState)
|
{
|
printBattRtDataDebugInf_FBS9100S(2);
|
|
mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
|
mTestData.battState = BattStatData.BATTSTATE_FLOAT;
|
store_state = true;
|
}
|
else if(BattStatData.BATTSTATE_FLOAT == mTestData.battTestState)
|
{
|
initTestData(BattStatData.BATTSTATE_CHARGE);
|
printBattRtDataDebugInf_FBS9100S(3);
|
}
|
} else if(mTestData.testCurr <= ((mBattFloatCurrLevel+2)*(-1))) {
|
if(BattStatData.BATTSTATE_CHARGE == mTestData.battTestState)
|
{
|
printBattRtDataDebugInf_FBS9100S(4);
|
|
mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
|
mTestData.battState = BattStatData.BATTSTATE_FLOAT;
|
store_state = true;
|
}
|
else if(BattStatData.BATTSTATE_FLOAT == mTestData.battTestState)
|
{
|
initTestData(BattStatData.BATTSTATE_DISCHARGE);
|
printBattRtDataDebugInf_FBS9100S(5);
|
}
|
} else {//edit by mxpopstar @2018.12.18
|
if(BattStatData.BATTSTATE_FLOAT == mTestData.battTestState) {
|
if((FBS9100_ComBase.SYS_STATE_DISCHARGING == mTestData.dev_FBS9100S_WorkState)
|
||(FBS9100_ComBase.SYS_STATE_HELUQI_DISCHARGING == mTestData.dev_FBS9100S_WorkState)) {
|
initTestData(BattStatData.BATTSTATE_DISCHARGE);
|
printBattRtDataDebugInf_FBS9100S(6);
|
}/* else if(FBS9100_ComBase.SYS_STATE_CHARGING == mTestData.dev_FBS9100S_WorkState) {
|
initTestData(BattStatData.BATTSTATE_CHARGE);
|
printBattRtDataDebugInf_FBS9100S(7);
|
}*/
|
}
|
}
|
}
|
}
|
|
if((BattStatData.BATTSTATE_DISCHARGE == mTestData.battTestState)
|
|| (BattStatData.BATTSTATE_CHARGE == mTestData.battTestState))
|
{
|
mTestData.calTestCap(1);
|
calBattRestCap(mTestData.testCurr, mTestData.testCap);
|
|
boolean dt_new = make_al_MonVol_History();
|
if(mTestData.recordNum < mTestDataRecordCountMax)
|
{
|
if((true == dt_new) || ((mTestData.dataCalCount % mSaveDataTimeInterval)==0))
|
{
|
set_al_MonVol_History_New();
|
store_state = true;
|
}
|
}
|
} else {
|
if(mTestData.groupVol > mBattFloatVolLevel) {
|
mTestData.battState = BattStatData.BATTSTATE_JUNCHARGE;
|
} else {
|
mTestData.battState = BattStatData.BATTSTATE_FLOAT;
|
}
|
}
|
|
if(true == getStoreDataBusyTag()) {
|
store_state = false;
|
} else {
|
if(true == store_state) {
|
setStoreDataBusyTag();
|
}
|
}
|
|
/***********************************************************************/
|
return store_state;
|
}
|
|
public void clearStoreDataBusyTag()
|
{
|
StoreDataBusy = false;
|
}
|
private boolean getStoreDataBusyTag()
|
{
|
return StoreDataBusy;
|
}
|
private void setStoreDataBusyTag()
|
{
|
StoreDataBusy = true;
|
}
|
|
public static int getDefCommtimeoutmax() {
|
return DEF_CommTimeOutMax;
|
}
|
|
public MysqlConnPool getM_Conn_Pool() {
|
return m_Conn_Pool;
|
}
|
|
public boolean isMonDataIsUseForIdce8200() {
|
return MonDataIsUseForIdce8200;
|
}
|
|
public boolean ismIDCE8200_ConState() {
|
return mIDCE8200_ConState;
|
}
|
|
public int getmIDCE8200CommTimeout() {
|
return mIDCE8200CommTimeout;
|
}
|
|
public boolean isLock_Data_Stat() {
|
return Lock_Data_Stat;
|
}
|
|
public int getStationId() {
|
return StationId;
|
}
|
|
public boolean isStation_Event_poff() {
|
return Station_Event_poff;
|
}
|
|
public boolean isStation_Event_xuhang() {
|
return Station_Event_xuhang;
|
}
|
|
public boolean isStation_Event_diaozhan() {
|
return Station_Event_diaozhan;
|
}
|
|
public int getBattGroupId() {
|
return BattGroupId;
|
}
|
|
public int getBattCurrDeviceId() {
|
return BattCurrDeviceId;
|
}
|
|
public int[] getBattCurrValueId() {
|
return BattCurrValueId;
|
}
|
|
public int getFBSDeviceId() {
|
return FBSDeviceId;
|
}
|
|
public String getFBSDeviceIp() {
|
return FBSDeviceIp;
|
}
|
|
public String getFBSRegCode() {
|
return FBSRegCode;
|
}
|
|
public int getGroupIndexInFBSDevice() {
|
return GroupIndexInFBSDevice;
|
}
|
|
public int getBattGroupNum() {
|
return BattGroupNum;
|
}
|
|
public int getMonCount() {
|
return MonCount;
|
}
|
|
public float getMonStdVol() {
|
return MonStdVol;
|
}
|
|
public float getMonStdCap() {
|
return MonStdCap;
|
}
|
|
public boolean isStoreBattRes_DataEn() {
|
return StoreBattRes_DataEn;
|
}
|
|
public boolean isStoreDataBusy() {
|
return StoreDataBusy;
|
}
|
|
public boolean isMysqlDataTable_Exist() {
|
return MysqlDataTable_Exist;
|
}
|
|
public boolean isMysqlDataResInfTable_Exist() {
|
return MysqlDataResInfTable_Exist;
|
}
|
|
public boolean isMysqlRecordInf_Exist() {
|
return MysqlRecordInf_Exist;
|
}
|
|
public FBS9100S_NT_DCDC_Data getM_DCDC_Data() {
|
return m_DCDC_Data;
|
}
|
|
public InsertDataToMysql_Task getmSqlTask() {
|
return mSqlTask;
|
}
|
|
public ArrayList<MonVolData> getAl_MonVol() {
|
return al_MonVol;
|
}
|
|
public ArrayList<MonVolData> getAl_MonVol_RtOld() {
|
return al_MonVol_RtOld;
|
}
|
|
public ArrayList<MonVolData> getAl_MonVol_History() {
|
return al_MonVol_History;
|
}
|
|
public ArrayList<ArrayList<Integer>> getAl_MonVol_C_Id() {
|
return al_MonVol_C_Id;
|
}
|
|
public BattStatData getmTestData() {
|
return mTestData;
|
}
|
|
public int getmCommTimeCoutCount() {
|
return mCommTimeCoutCount;
|
}
|
|
public int getmMaxMonNum() {
|
return mMaxMonNum;
|
}
|
|
public float getmMaxMonVol() {
|
return mMaxMonVol;
|
}
|
|
public int getmMinMonNum() {
|
return mMinMonNum;
|
}
|
|
public float getmMinMonVol() {
|
return mMinMonVol;
|
}
|
|
public AppParam getmAppParam() {
|
return mAppParam;
|
}
|
|
public float getmBattFloatCurrLevel() {
|
return mBattFloatCurrLevel;
|
}
|
|
public float getmBattFloatVolLevel() {
|
return mBattFloatVolLevel;
|
}
|
|
public int getmTestTimeLongMin() {
|
return mTestTimeLongMin;
|
}
|
|
public int getmSaveDataTimeInterval() {
|
return mSaveDataTimeInterval;
|
}
|
|
public float getmDataHistoryNewLevel() {
|
return mDataHistoryNewLevel;
|
}
|
|
public int getmTestDataRecordCountMax() {
|
return mTestDataRecordCountMax;
|
}
|
|
public void setM_Conn_Pool(MysqlConnPool m_Conn_Pool) {
|
this.m_Conn_Pool = m_Conn_Pool;
|
}
|
|
public void setMonDataIsUseForIdce8200(boolean monDataIsUseForIdce8200) {
|
MonDataIsUseForIdce8200 = monDataIsUseForIdce8200;
|
}
|
|
public void setmIDCE8200_ConState(boolean mIDCE8200_ConState) {
|
this.mIDCE8200_ConState = mIDCE8200_ConState;
|
}
|
|
public void setmIDCE8200CommTimeout(int mIDCE8200CommTimeout) {
|
this.mIDCE8200CommTimeout = mIDCE8200CommTimeout;
|
}
|
|
public void setLock_Data_Stat(boolean lock_Data_Stat) {
|
Lock_Data_Stat = lock_Data_Stat;
|
}
|
|
public void setStationId(int stationId) {
|
StationId = stationId;
|
}
|
|
public void setStation_Event_poff(boolean station_Event_poff) {
|
Station_Event_poff = station_Event_poff;
|
}
|
|
public void setStation_Event_xuhang(boolean station_Event_xuhang) {
|
Station_Event_xuhang = station_Event_xuhang;
|
}
|
|
public void setStation_Event_diaozhan(boolean station_Event_diaozhan) {
|
Station_Event_diaozhan = station_Event_diaozhan;
|
}
|
|
public void setBattGroupId(int battGroupId) {
|
BattGroupId = battGroupId;
|
}
|
|
public void setBattCurrDeviceId(int battCurrDeviceId) {
|
BattCurrDeviceId = battCurrDeviceId;
|
}
|
|
public void setBattCurrValueId(int[] battCurrValueId) {
|
BattCurrValueId = battCurrValueId;
|
}
|
|
public void setFBSDeviceId(int fBSDeviceId) {
|
FBSDeviceId = fBSDeviceId;
|
}
|
|
public void setFBSDeviceIp(String fBSDeviceIp) {
|
FBSDeviceIp = fBSDeviceIp;
|
}
|
|
public void setFBSRegCode(String fBSRegCode) {
|
FBSRegCode = fBSRegCode;
|
}
|
|
public void setGroupIndexInFBSDevice(int groupIndexInFBSDevice) {
|
GroupIndexInFBSDevice = groupIndexInFBSDevice;
|
}
|
|
public void setBattGroupNum(int battGroupNum) {
|
BattGroupNum = battGroupNum;
|
}
|
|
public void setBattState(int battState) {
|
BattState = battState;
|
}
|
|
public void setMonCount(int monCount) {
|
MonCount = monCount;
|
}
|
|
public void setMonStdVol(float monStdVol) {
|
MonStdVol = monStdVol;
|
}
|
|
public void setMonStdCap(float monStdCap) {
|
MonStdCap = monStdCap;
|
}
|
|
public void setStoreBattRes_DataEn(boolean storeBattRes_DataEn) {
|
StoreBattRes_DataEn = storeBattRes_DataEn;
|
}
|
|
public void setStoreDataBusy(boolean storeDataBusy) {
|
StoreDataBusy = storeDataBusy;
|
}
|
|
public void setMysqlDataTable_Exist(boolean mysqlDataTable_Exist) {
|
MysqlDataTable_Exist = mysqlDataTable_Exist;
|
}
|
|
public void setMysqlDataResInfTable_Exist(boolean mysqlDataResInfTable_Exist) {
|
MysqlDataResInfTable_Exist = mysqlDataResInfTable_Exist;
|
}
|
|
public void setMysqlRecordInf_Exist(boolean mysqlRecordInf_Exist) {
|
MysqlRecordInf_Exist = mysqlRecordInf_Exist;
|
}
|
|
public void setM_DCDC_Data(FBS9100S_NT_DCDC_Data m_DCDC_Data) {
|
this.m_DCDC_Data = m_DCDC_Data;
|
}
|
|
public void setmSqlTask(InsertDataToMysql_Task mSqlTask) {
|
this.mSqlTask = mSqlTask;
|
}
|
|
public void setAl_MonVol(ArrayList<MonVolData> al_MonVol) {
|
this.al_MonVol = al_MonVol;
|
}
|
|
public void setAl_MonVol_RtOld(ArrayList<MonVolData> al_MonVol_RtOld) {
|
this.al_MonVol_RtOld = al_MonVol_RtOld;
|
}
|
|
public void setAl_MonVol_History(ArrayList<MonVolData> al_MonVol_History) {
|
this.al_MonVol_History = al_MonVol_History;
|
}
|
|
public void setAl_MonVol_C_Id(ArrayList<ArrayList<Integer>> al_MonVol_C_Id) {
|
this.al_MonVol_C_Id = al_MonVol_C_Id;
|
}
|
|
public void setmTestData(BattStatData mTestData) {
|
this.mTestData = mTestData;
|
}
|
|
public void setmCommTimeCoutCount(int mCommTimeCoutCount) {
|
this.mCommTimeCoutCount = mCommTimeCoutCount;
|
}
|
|
public void setmMaxMonNum(int mMaxMonNum) {
|
this.mMaxMonNum = mMaxMonNum;
|
}
|
|
public void setmMaxMonVol(float mMaxMonVol) {
|
this.mMaxMonVol = mMaxMonVol;
|
}
|
|
public void setmMinMonNum(int mMinMonNum) {
|
this.mMinMonNum = mMinMonNum;
|
}
|
|
public void setmMinMonVol(float mMinMonVol) {
|
this.mMinMonVol = mMinMonVol;
|
}
|
|
public void setmAppParam(AppParam mAppParam) {
|
this.mAppParam = mAppParam;
|
}
|
|
public void setmBattFloatCurrLevel(float mBattFloatCurrLevel) {
|
this.mBattFloatCurrLevel = mBattFloatCurrLevel;
|
}
|
|
public void setmBattFloatVolLevel(float mBattFloatVolLevel) {
|
this.mBattFloatVolLevel = mBattFloatVolLevel;
|
}
|
|
public void setmTestTimeLongMin(int mTestTimeLongMin) {
|
this.mTestTimeLongMin = mTestTimeLongMin;
|
}
|
|
public void setmSaveDataTimeInterval(int mSaveDataTimeInterval) {
|
this.mSaveDataTimeInterval = mSaveDataTimeInterval;
|
}
|
|
public void setmDataHistoryNewLevel(float mDataHistoryNewLevel) {
|
this.mDataHistoryNewLevel = mDataHistoryNewLevel;
|
}
|
|
public void setmTestDataRecordCountMax(int mTestDataRecordCountMax) {
|
this.mTestDataRecordCountMax = mTestDataRecordCountMax;
|
}
|
|
public Date getmRecordTime() {
|
return mRecordTime;
|
}
|
|
public void setmRecordTime(Date mRecordTime) {
|
this.mRecordTime = mRecordTime;
|
}
|
|
}
|