package com.battdata_rt;
|
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.GregorianCalendar;
|
import java.util.Random;
|
|
import com.base.AppConfig;
|
import com.base.Com;
|
import com.dec.fbs9100.AppParam;
|
import com.dec.fbs9100.MysqlConnPool;
|
import com.dec.fbs9100.Sql_Mysql;
|
|
public class BattData_RT_Array {
|
|
final public static int DATA_SOURCE_FBSDEV = 0;
|
final public static int DATA_SOURCE_SQLSERVER = 1;
|
final public static int DATA_SOURCE_C_INTERFACE = 2;
|
final public static int DATA_SOURCE_SQLSERVER_AND_C_INTERFACE = 3;
|
|
private ArrayList<BattData_RT> Data_Array = new ArrayList<BattData_RT>();
|
private MysqlConnPool m_Conn_Pool;
|
private int Sybase_query_count = 0;
|
private Date m_SybaseServerDate = new Date();
|
private AppParam m_Param;
|
private AppConfig m_AppCfg;
|
private ArrayList<String> al_stationid = new ArrayList<String>();
|
|
public BattData_RT_Array(AppConfig cfg, AppParam param, MysqlConnPool pool)
|
{
|
m_AppCfg = cfg;
|
m_Param = param;
|
m_Conn_Pool = pool;
|
}
|
|
public Date getSybaseServerDateTime()
|
{
|
return m_SybaseServerDate;
|
}
|
|
public int getSybaseQueryCount()
|
{
|
return Sybase_query_count;
|
}
|
|
public int getItemCount()
|
{
|
return Data_Array.size();
|
}
|
|
public BattData_RT getItem(int index)
|
{
|
return Data_Array.get(index);
|
}
|
public ArrayList<BattData_RT> getRtData()
|
{
|
return Data_Array;
|
}
|
public void addItem(BattData_RT data)
|
{
|
Data_Array.add(data);
|
}
|
/******************************************************************************************/
|
/********************************* initBattDataRT_Inf *************************************/
|
public void initBattDataRT_Inf(double ser_ver)
|
{
|
Data_Array.clear();
|
initBattDataRT_Inf_FromSQL();
|
new BattData_RT_RamDB_Thread(m_Conn_Pool, Data_Array, ser_ver).start();
|
}
|
/******************************************************************************************/
|
private void initBattDataRT_Inf_FromSQL()
|
{
|
Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
|
ResultSet res;
|
String sql_str;
|
try {
|
sql.sqlMysqlUseDB(Sql_Mysql.DB_BATT_INF);
|
|
sql_str = "SELECT DISTINCT StationId,StationName,StationIp, "
|
+ " FBSDeviceId,FBSDeviceIp,FBSDeviceName,GroupIndexInFBSDevice,"
|
+ " BattGroupId,BattGroupNum,MonCount,BattFloatCurrent,FloatVolLevel,MonCapStd,MonVolStd"
|
+ " FROM " + Sql_Mysql.BattInf_Table
|
//+ " WHERE FBSDeviceId like '6185%%%%%' "61850 = FBSDeviceId/10000
|
+ " ORDER BY BattGroupId ASC";
|
|
res = sql.sqlMysqlQuery(sql_str);
|
while(res.next())
|
{
|
BattData_RT rtdata = new BattData_RT(m_AppCfg, m_Param, m_Conn_Pool);
|
|
rtdata.StationId = res.getInt("StationId");
|
rtdata.StationName = res.getString("StationName");
|
Com.getIPFromStr(res.getString("StationIp").trim(), rtdata.StationIp);
|
|
rtdata.FBSDeviceId = res.getInt("FBSDeviceId");
|
rtdata.FBSDeviceIp = res.getString("FBSDeviceIp").trim();
|
rtdata.FBSDeviceName = res.getString("FBSDeviceName");
|
//System.err.println("rtdata.FBSDeviceName:"+rtdata.FBSDeviceName);
|
rtdata.GroupIndexInFBSDevice = res.getInt("GroupIndexInFBSDevice");
|
|
rtdata.BattGroupId = res.getInt("BattGroupId");
|
rtdata.BattGroupNum = res.getInt("BattGroupNum");
|
|
rtdata.MonCount = res.getInt("MonCount");
|
if(rtdata.MonCount >= 500)
|
rtdata.MonCount = 500;
|
if(rtdata.MonCount < 0)
|
rtdata.MonCount = 0;
|
|
rtdata.MonStdCap = res.getFloat("MonCapStd");
|
rtdata.MonStdVol = res.getFloat("MonVolStd");
|
rtdata.setBattFloatVolCurrLevel(res.getFloat("FloatVolLevel"), res.getFloat("BattFloatCurrent"));
|
Data_Array.add(rtdata);
|
}
|
|
int auto_cid = 1000;
|
for(int n=0; n<Data_Array.size(); n++)
|
{
|
BattData_RT rtdata = Data_Array.get(n);
|
|
boolean mon_data_ready = false;
|
//-------------------------------------------------------------//
|
if(false == mon_data_ready) {
|
for(int mn=0; mn<rtdata.MonCount; mn++) {
|
MonVolData data = new MonVolData(0, 0, auto_cid++);
|
rtdata.al_MonVol.add(data);
|
//System.out.println(data.monVol+"################");
|
rtdata.al_MonVol_RtOld.add(data.clone());
|
rtdata.al_MonVol_History.add(data.clone());
|
}
|
}
|
//-------------------------------------------------------------//
|
}
|
res.close();
|
|
/**********************************************************************************/
|
sql.sqlMysqlUseDB(Sql_Mysql.DB_BATT_INF);
|
al_stationid.clear();
|
sql_str = "SELECT DISTINCT StationId FROM " + Sql_Mysql.BattInf_Table;
|
res = sql.sqlMysqlQuery(sql_str);
|
while(res.next())
|
{
|
al_stationid.add(res.getString("StationId"));
|
}
|
/**********************************************************************************/
|
|
} catch (SQLException e) {
|
e.printStackTrace();
|
} finally {
|
sql.close_con();
|
}
|
}
|
/******************************************************************************************/
|
}
|