110,555
社区成员
发帖
与我相关
我的任务
分享
try
{
this.bureaid=bureaId;
yesterday = DateTime.Now;
standardVoltage = volt;
batteryNumber = batnumber;
standardCapacity = capcity;
groupID = groupid;
ip = stationIP;
InitialFlags();
getDeviceInfo(ip,bureaId);
clearOldRecordTime = DateTime.Now;
for (int i = 0; i < batnumber; i++)
{
myBatterys.Add(new Battery(i + 1));//添加根据单电池数目添加单电池单电池编号1-n
}
SqlConnection con = SqlCon.createConnection();
SqlCommand cmd = con.CreateCommand();
#region 初始化∑Vmax
cmd.CommandText = @"SELECT TOP 1 * FROM group_vmax WHERE ip=@IP AND groupid=@GID";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IP", ip);
cmd.Parameters.AddWithValue("@GID", groupid);
SqlDataReader da = cmd.ExecuteReader();
if (da.HasRows)
{
while (da.Read())
{
List<double> oldVmax = new List<double>();//局部变量存储Vmax1-10
for (int i = 1; i < 11; i++)
{
string name = "Vmax"+i;
oldVmax.Add((double)da[name]);//局部变量存储以前的Vmax1-Vmax10
oldVmaxSum.Add(oldVmax.Sum());//类成员存储以前的∑Vmax1-∑Vmax10
}
oldVmaxFromMdf = true;
}
}
else
{
for (int i = 1; i < 11; i++)
{
oldVmaxSum.Add(0);//数据库中不存在Vmax即SOH还从来未计算过,则初始化∑Vmax1-∑Vmax10 为0
}
}
da.Close();
da.Dispose();
#endregion 初始化∑Vmax
//-----------------------------------------------------//
#region 初始化电池组SOH,选择最后一次计算的值
cmd.CommandText = @"SELECT TOP 1 groupcapicity FROM group_capicity WHERE ip=@IP AND groupid=@GID ORDER BY caculatedtime DESC ";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IP", ip);
cmd.Parameters.AddWithValue("@GID", groupID);
SqlDataReader da1= cmd.ExecuteReader();
if (da1.HasRows)
{
while (da1.Read())
{
groupCapacity = (double)da1["groupcapicity"];
}
}
da1.Close();
da1.Dispose();
#endregion 初始化电池组SOH
//-----------------------------------------------------//
#region 初始化单电池SOH
cmd.CommandText = @"SELECT TOP "+batnumber+" batterycapacity,batteryid FROM battery_capicity WHERE ip=@IP AND groupid=@GID ORDER BY caculatedtime DESC ";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IP", ip);
cmd.Parameters.AddWithValue("@GID", groupID);
SqlDataReader da2 = cmd.ExecuteReader();
if (da2.HasRows)
{
while (da2.Read())
{
myBatterys[(int)da2["batteryid"]].Capacity = (double)da2["batterycapacity"];
}
}
da2.Close();
da2.Dispose();
#endregion 初始化单电池SOH
//-----------------------------------------------------//
#region 初始化告警信息通信地址
cmd.CommandText = @"SELECT email,cellphone,notice FROM user_info where burea=@id and status=@sta";//选择该局下所有管理员手机和邮箱
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@sta", "正常");
cmd.Parameters.AddWithValue("@id", bureaId);
SqlDataReader da3 = cmd.ExecuteReader();
if (da3.HasRows)
{
while (da3.Read())
{
int index = (int)da3["notice"];
if (index == 1)
{
phones.Add((string)da3["cellphone"]);
}
else if (index == 2)
{
recivemailAddress.Add((string)da3["email"]);
}
else if (index == 3)
{
phones.Add((string)da3["cellphone"]);
recivemailAddress.Add((string)da3["email"]);
}
}
}
da3.Close();
da3.Dispose();
#endregion 初始化告警信息通信地址
con.Close();
con.Dispose();
}