20240801_FJEQ_upperpc/FujianEarthquake_seabed/FujianEarthquake/ViewModels/MainViewModel.cs
XuMin 2f88b96460 1 完成接驳盒环境数据展示页面的编写;
2 完成接驳盒状态数据展示页面的编写;
2024-08-27 17:39:30 +08:00

1350 lines
66 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows;
using FujianEarthquake.Common;
using FujianEarthquake.DataAccess;
using FujianEarthquake.Models;
using MySql.Data.MySqlClient;
using LiveCharts.Defaults;
using LiveCharts.Wpf;
using LiveCharts;
namespace FujianEarthquake.ViewModels
{
public class MainViewModel : NotifyBase
{
#region ViewModel Define
public static RealTimeDataViewModel realTimeDataViewModel1 = new RealTimeDataViewModel(1);
public static RealTimeDataViewModel realTimeDataViewModel2 = new RealTimeDataViewModel(2);
public static RealTimeDataViewModel realTimeDataViewModel3 = new RealTimeDataViewModel(3);
public static AlarmRecordViewModel alarmRecordViewModel1 = new AlarmRecordViewModel(1);
public static AlarmRecordViewModel alarmRecordViewModel2 = new AlarmRecordViewModel(2);
public static AlarmRecordViewModel alarmRecordViewModel3 = new AlarmRecordViewModel(3);
public static LogRecordViewModel logRecordViewModel1 = new LogRecordViewModel(1);
public static LogRecordViewModel logRecordViewModel2 = new LogRecordViewModel(2);
public static LogRecordViewModel logRecordViewModel3 = new LogRecordViewModel(3);
#endregion
#region Something Define
public int station_id { get; set; } = 1;
//折线图展示的点位数
int ChartPointNum = 15;
string Title_Name = ""; //设置当前显示的标题
private FrameworkElement _pageContent;
public FrameworkElement PageContent
{
get { return _pageContent; }
set { _pageContent = value; this.DoNotify(); }
}
#endregion
#region CommandBase Define
public CommandBase NavChangedCommand { get; set; }
public CommandBase Switch { set; get; }
#endregion
public static DialogViewModel vm;
public MainViewModel()
{
vm = new DialogViewModel
{
Content = ""
};
#region Command Define
this.NavChangedCommand = new CommandBase();
this.NavChangedCommand.DoExcute = new Action<object>(DoNavChanged);
this.NavChangedCommand.DoCanExcute = new Func<object, bool>((o) => true);
//this.Switch = new CommandBase();
//this.Switch.DoExcute = new Action<object>(Btn_Switch);
//this.Switch.DoCanExcute = new Func<object, bool>((o) => true);
#endregion
#region
string sql = String.Format("select * from underjuncbox_log_record where StationID = {0} ORDER by id desc limit 100", 1);
MySqlDataReader dataReader = DBHelper.ExecuteReader(sql, 1);
int index = 1;
while (dataReader.Read())
{
LogRecordModel logRecord = new LogRecordModel();
logRecord.Index = index++;
logRecord.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
logRecord.Device_Name = dataReader["Device_Name"].ToString();
logRecord.Operation_Type = dataReader["Operation_Type"].ToString();
logRecord.Record = dataReader["Record"].ToString();
logRecordViewModel1.TotalLogRecordList.Add(logRecord);
}
dataReader.Dispose();
logRecordViewModel1.RecordCount = index - 1;
logRecordViewModel1.TotalPage = index <= 10 ? 1 : (int)Math.Ceiling((double)index / 10);
for (int i = 0; i < (logRecordViewModel1.RecordCount < 10 ? logRecordViewModel1.RecordCount : 10); i++)
{
logRecordViewModel1.LogRecordList.Add(logRecordViewModel1.TotalLogRecordList[i]);
}
logRecordViewModel1.LogMsg = string.Format("共计{0}页,当前第{1}页", logRecordViewModel1.TotalPage, 1);
sql = String.Format("select * from underjuncbox_log_record where StationID = {0} ORDER by id desc limit 100", 2);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
LogRecordModel logRecord = new LogRecordModel();
logRecord.Index = index++;
logRecord.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
logRecord.Device_Name = dataReader["Device_Name"].ToString();
logRecord.Operation_Type = dataReader["Operation_Type"].ToString();
logRecord.Record = dataReader["Record"].ToString();
logRecordViewModel2.TotalLogRecordList.Add(logRecord);
}
dataReader.Dispose();
logRecordViewModel2.RecordCount = index - 1;
logRecordViewModel2.TotalPage = index <= 10 ? 1 : (int)Math.Ceiling((double)index / 10);
for (int i = 0; i < (logRecordViewModel2.RecordCount < 10 ? logRecordViewModel2.RecordCount : 10); i++)
{
logRecordViewModel2.LogRecordList.Add(logRecordViewModel2.TotalLogRecordList[i]);
}
logRecordViewModel2.LogMsg = string.Format("共计{0}页,当前第{1}页", logRecordViewModel2.TotalPage, 1);
sql = String.Format("select * from underjuncbox_log_record where StationID = {0} ORDER by id desc limit 100", 3);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
LogRecordModel logRecord = new LogRecordModel();
logRecord.Index = index++;
logRecord.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
logRecord.Device_Name = dataReader["Device_Name"].ToString();
logRecord.Operation_Type = dataReader["Operation_Type"].ToString();
logRecord.Record = dataReader["Record"].ToString();
logRecordViewModel3.TotalLogRecordList.Add(logRecord);
}
dataReader.Dispose();
logRecordViewModel3.RecordCount = index - 1;
logRecordViewModel3.TotalPage = index <= 10 ? 1 : (int)Math.Ceiling((double)index / 10);
for (int i = 0; i < (logRecordViewModel3.RecordCount < 10 ? logRecordViewModel3.RecordCount : 10); i++)
{
logRecordViewModel3.LogRecordList.Add(logRecordViewModel3.TotalLogRecordList[i]);
}
logRecordViewModel3.LogMsg = string.Format("共计{0}页,当前第{1}页", logRecordViewModel3.TotalPage, 1);
#endregion
#region
sql = String.Format("select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100", 1);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaNum = Convert.ToInt32(string.IsNullOrEmpty(dataReader["ParaNum"].ToString()) ? 0 : dataReader["ParaNum"]);
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
if (dataReader["IsHandled"].ToString() == "0")
{
alarmRecordModel.IsHandled = "未处理";
}
else if (dataReader["IsHandled"].ToString() == "1")
{
alarmRecordModel.IsHandled = "已处理";
}
else
{
alarmRecordModel.IsHandled = "处理中";
}
alarmRecordViewModel1.TotalAlarmRecordList.Add(alarmRecordModel);
}
dataReader.Dispose();
alarmRecordViewModel1.RecordCount = index - 1;
alarmRecordViewModel1.TotalPage = (index - 1) <= 10 ? 1 : (int)Math.Ceiling((double)(index - 1) / 10);
for (int i = 0; i < (alarmRecordViewModel1.RecordCount < 10 ? alarmRecordViewModel1.RecordCount : 10); i++)
{
alarmRecordViewModel1.AlarmRecordList.Add(alarmRecordViewModel1.TotalAlarmRecordList[i]);
}
alarmRecordViewModel1.AlarmMsg = string.Format("共计{0}页,当前第{1}页", alarmRecordViewModel1.TotalPage, 1);
sql = String.Format("select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100", 2);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaNum = Convert.ToInt32(string.IsNullOrEmpty(dataReader["ParaNum"].ToString()) ? 0 : dataReader["ParaNum"]);
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
if (dataReader["IsHandled"].ToString() == "0")
{
alarmRecordModel.IsHandled = "未处理";
}
else if (dataReader["IsHandled"].ToString() == "1")
{
alarmRecordModel.IsHandled = "已处理";
}
else
{
alarmRecordModel.IsHandled = "处理中";
}
alarmRecordViewModel2.TotalAlarmRecordList.Add(alarmRecordModel);
}
dataReader.Dispose();
alarmRecordViewModel2.RecordCount = index - 1;
alarmRecordViewModel2.TotalPage = (index - 1) <= 10 ? 1 : (int)Math.Ceiling((double)(index - 1) / 10);
for (int i = 0; i < (alarmRecordViewModel2.RecordCount < 10 ? alarmRecordViewModel2.RecordCount : 10); i++)
{
alarmRecordViewModel2.AlarmRecordList.Add(alarmRecordViewModel2.TotalAlarmRecordList[i]);
}
alarmRecordViewModel2.AlarmMsg = string.Format("共计{0}页,当前第{1}页", alarmRecordViewModel2.TotalPage, 1);
sql = String.Format("select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100", 3);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaNum = Convert.ToInt32(string.IsNullOrEmpty(dataReader["ParaNum"].ToString()) ? 0 : dataReader["ParaNum"]);
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
if (dataReader["IsHandled"].ToString() == "0")
{
alarmRecordModel.IsHandled = "未处理";
}
else if (dataReader["IsHandled"].ToString() == "1")
{
alarmRecordModel.IsHandled = "已处理";
}
else
{
alarmRecordModel.IsHandled = "处理中";
}
alarmRecordViewModel3.TotalAlarmRecordList.Add(alarmRecordModel);
}
dataReader.Dispose();
alarmRecordViewModel3.RecordCount = index - 1;
alarmRecordViewModel3.TotalPage = (index - 1) <= 10 ? 1 : (int)Math.Ceiling((double)(index - 1) / 10);
for (int i = 0; i < (alarmRecordViewModel3.RecordCount < 10 ? alarmRecordViewModel3.RecordCount : 10); i++)
{
alarmRecordViewModel3.AlarmRecordList.Add(alarmRecordViewModel3.TotalAlarmRecordList[i]);
}
alarmRecordViewModel3.AlarmMsg = string.Format("共计{0}页,当前第{1}页", alarmRecordViewModel3.TotalPage, 1);
#endregion
#region 线
var chartValuesConboxTem = new ChartValues<DateTimePoint>();
var chartValuesConboxHum = new ChartValues<DateTimePoint>();
sql = String.Format("select * from underunderjuncbox_env where StationID = {0} ORDER by id desc limit {1}", 1, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Temperature"]) && !Convert.IsDBNull(dataReader["Humidity"]))
{
chartValuesConboxTem.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Temperature"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
chartValuesConboxHum.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Humidity"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel1.SeriesCollectionConboxTem = new SeriesCollection
{
new LineSeries
{
Title = "温度",
Values = chartValuesConboxTem,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel1.SeriesCollectionConboxHum = new SeriesCollection
{
new LineSeries
{
Title = "湿度",
Values = chartValuesConboxHum,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
var chartValuesMainSeisVol = new ChartValues<DateTimePoint>();
var chartValuesMainSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis1_Voltage,Seis1_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 1, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis1_Voltage"]) && !Convert.IsDBNull(dataReader["Seis1_Current"]))
{
chartValuesMainSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesMainSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel1.SeriesCollectionMainSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesMainSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesMainSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
var chartValuesBackupSeisVol = new ChartValues<DateTimePoint>();
var chartValuesBackupSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis2_Voltage,Seis2_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 1, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis2_Voltage"]) && !Convert.IsDBNull(dataReader["Seis2_Current"]))
{
chartValuesBackupSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBackupSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel1.SeriesCollectionBackupSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesBackupSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesBackupSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
var chartValuesBoosterStationVol = new ChartValues<DateTimePoint>();
var chartValuesBoosterStationCur = new ChartValues<DateTimePoint>();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit {0}", ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Out_Vol"]) && !Convert.IsDBNull(dataReader["Out_Cur"]))
{
chartValuesBoosterStationVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Vol"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBoosterStationCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Cur"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel1.SeriesCollectionShoreBaseStationVol = new SeriesCollection
{
new LineSeries
{
Title = "输出电压",
Values = chartValuesBoosterStationVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel1.SeriesCollectionShoreBaseStationCur = new SeriesCollection
{
new LineSeries
{
Title = "输出电流",
Values = chartValuesBoosterStationCur,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel1.XFormatter = val => new DateTime((long)val).ToString("MM/dd HH:mm:ss");
realTimeDataViewModel1.YFormatterVol = val => val.ToString("F2") + " V";
realTimeDataViewModel1.YFormatterCur = val => val.ToString("F2") + " A";
realTimeDataViewModel1.YFormatterTem = val => val.ToString("F2") + " ℃";
realTimeDataViewModel1.YFormatterHum = val => val.ToString("F2") + " %";
chartValuesConboxTem = new ChartValues<DateTimePoint>();
chartValuesConboxHum = new ChartValues<DateTimePoint>();
sql = String.Format("select * from underunderjuncbox_env where StationID = {0} ORDER by id desc limit {1}", 2, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Temperature"]) && !Convert.IsDBNull(dataReader["Humidity"]))
{
chartValuesConboxTem.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Temperature"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
chartValuesConboxHum.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Humidity"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel2.SeriesCollectionConboxTem = new SeriesCollection
{
new LineSeries
{
Title = "温度",
Values = chartValuesConboxTem,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel2.SeriesCollectionConboxHum = new SeriesCollection
{
new LineSeries
{
Title = "湿度",
Values = chartValuesConboxHum,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesMainSeisVol = new ChartValues<DateTimePoint>();
chartValuesMainSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis1_Voltage,Seis1_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 2, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis1_Voltage"]) && !Convert.IsDBNull(dataReader["Seis1_Current"]))
{
chartValuesMainSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesMainSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel2.SeriesCollectionMainSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesMainSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesMainSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesBackupSeisVol = new ChartValues<DateTimePoint>();
chartValuesBackupSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis2_Voltage,Seis2_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 2, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis2_Voltage"]) && !Convert.IsDBNull(dataReader["Seis2_Current"]))
{
chartValuesBackupSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBackupSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel2.SeriesCollectionBackupSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesBackupSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesBackupSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesBoosterStationVol = new ChartValues<DateTimePoint>();
chartValuesBoosterStationCur = new ChartValues<DateTimePoint>();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit {0}", ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Out_Vol"]) && !Convert.IsDBNull(dataReader["Out_Cur"]))
{
chartValuesBoosterStationVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Vol"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBoosterStationCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Cur"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel2.SeriesCollectionShoreBaseStationVol = new SeriesCollection
{
new LineSeries
{
Title = "输出电压",
Values = chartValuesBoosterStationVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel2.SeriesCollectionShoreBaseStationCur = new SeriesCollection
{
new LineSeries
{
Title = "输出电流",
Values = chartValuesBoosterStationCur,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel2.XFormatter = val => new DateTime((long)val).ToString("MM/dd HH:mm:ss");
realTimeDataViewModel2.YFormatterVol = val => val.ToString("F2") + " V";
realTimeDataViewModel2.YFormatterCur = val => val.ToString("F2") + " A";
realTimeDataViewModel2.YFormatterTem = val => val.ToString("F2") + " ℃";
realTimeDataViewModel2.YFormatterHum = val => val.ToString("F2") + " %";
chartValuesConboxTem = new ChartValues<DateTimePoint>();
chartValuesConboxHum = new ChartValues<DateTimePoint>();
sql = String.Format("select * from underunderjuncbox_env where StationID = {0} ORDER by id desc limit {1}", 3, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Temperature"]) && !Convert.IsDBNull(dataReader["Humidity"]))
{
chartValuesConboxTem.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Temperature"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
chartValuesConboxHum.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Humidity"]),
DateTime = Convert.ToDateTime(dataReader["DataTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel3.SeriesCollectionConboxTem = new SeriesCollection
{
new LineSeries
{
Title = "温度",
Values = chartValuesConboxTem,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel3.SeriesCollectionConboxHum = new SeriesCollection
{
new LineSeries
{
Title = "湿度",
Values = chartValuesConboxHum,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesMainSeisVol = new ChartValues<DateTimePoint>();
chartValuesMainSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis1_Voltage,Seis1_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 3, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis1_Voltage"]) && !Convert.IsDBNull(dataReader["Seis1_Current"]))
{
chartValuesMainSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesMainSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis1_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel3.SeriesCollectionMainSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesMainSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesMainSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesBackupSeisVol = new ChartValues<DateTimePoint>();
chartValuesBackupSeisCur = new ChartValues<DateTimePoint>();
sql = String.Format("select RecordTime,Seis2_Voltage,Seis2_Current from underunderjuncbox_monitor where StationID = {0} ORDER by id desc limit {1}", 3, ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Seis2_Voltage"]) && !Convert.IsDBNull(dataReader["Seis2_Current"]))
{
chartValuesBackupSeisVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Voltage"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBackupSeisCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Seis2_Current"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel3.SeriesCollectionBackupSeis = new SeriesCollection
{
new LineSeries
{
Title = "电压",
Values = chartValuesBackupSeisVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
new LineSeries
{
Title = "电流",
Values = chartValuesBackupSeisCur,
LineSmoothness = 0,
ScalesYAt = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 165, 0)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
chartValuesBoosterStationVol = new ChartValues<DateTimePoint>();
chartValuesBoosterStationCur = new ChartValues<DateTimePoint>();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit {0}", ChartPointNum);
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
if (!Convert.IsDBNull(dataReader["Out_Vol"]) && !Convert.IsDBNull(dataReader["Out_Cur"]))
{
chartValuesBoosterStationVol.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Vol"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
chartValuesBoosterStationCur.Add(new DateTimePoint
{
Value = Convert.ToSingle(dataReader["Out_Cur"]),
DateTime = Convert.ToDateTime(dataReader["RecordTime"]),
});
}
}
dataReader.Dispose();
realTimeDataViewModel3.SeriesCollectionShoreBaseStationVol = new SeriesCollection
{
new LineSeries
{
Title = "输出电压",
Values = chartValuesBoosterStationVol,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel3.SeriesCollectionShoreBaseStationCur = new SeriesCollection
{
new LineSeries
{
Title = "输出电流",
Values = chartValuesBoosterStationCur,
LineSmoothness = 0,
ScalesYAt = 0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 43, 237, 241)),
Fill = new SolidColorBrush(Colors.Transparent)
},
};
realTimeDataViewModel3.XFormatter = val => new DateTime((long)val).ToString("MM/dd HH:mm:ss");
realTimeDataViewModel3.YFormatterVol = val => val.ToString("F2") + " V";
realTimeDataViewModel3.YFormatterCur = val => val.ToString("F2") + " A";
realTimeDataViewModel3.YFormatterTem = val => val.ToString("F2") + " ℃";
realTimeDataViewModel3.YFormatterHum = val => val.ToString("F2") + " %";
#endregion
#region
sql = String.Format("select * from underjuncbox_env where StationID = {0} ORDER by id desc limit 1", 1);
dataReader = DBHelper.ExecuteReader(sql, 1);
string sqlSub = String.Format("select * from underjuncbox_cavity_state where StationID = {0} ORDER by id desc limit 1", 1);
MySqlDataReader dataReaderSub = DBHelper.ExecuteReader(sqlSub, 1);
string sqlMon = String.Format("select * from underjuncbox_monitor where StationID = {0} ORDER by id desc limit 1", 1);
MySqlDataReader dataReaderMon = DBHelper.ExecuteReader(sqlMon, 1);
if (dataReaderMon.Read())
{
string voltage = string.IsNullOrEmpty(dataReaderMon["Seis1_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis1_Voltage"].ToString();
string current = string.IsNullOrEmpty(dataReaderMon["Seis1_Current"].ToString()) ? "0.00" : dataReaderMon["Seis1_Current"].ToString();
realTimeDataViewModel1.BaseStationStatus[0].Value = voltage + " / " + current;
voltage = string.IsNullOrEmpty(dataReaderMon["Seis2_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis2_Voltage"].ToString();
current = string.IsNullOrEmpty(dataReaderMon["Seis2_Current"].ToString()) ? "0.00" : dataReaderMon["Seis2_Current"].ToString();
realTimeDataViewModel1.BaseStationStatus[3].Value = voltage + " / " + current;
realTimeDataViewModel1.DataTimeMainSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
realTimeDataViewModel1.DataTimeBackupSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
}
else
{
realTimeDataViewModel1.BaseStationStatus[0].Value = "0.00 / 0.00";
realTimeDataViewModel1.BaseStationStatus[3].Value = "0.00 / 0.00";
realTimeDataViewModel1.DataTimeMainSeis = DateTime.Now;
realTimeDataViewModel1.DataTimeBackupSeis = DateTime.Now;
}
if (dataReader.Read())
{
realTimeDataViewModel1.BaseStationStatus[1].Value = string.IsNullOrEmpty(dataReader["Temperature"].ToString()) ? "0.00" : dataReader["Temperature"].ToString();
realTimeDataViewModel1.BaseStationStatus[4].Value = string.IsNullOrEmpty(dataReader["Humidity"].ToString()) ? "0.00" : dataReader["Humidity"].ToString();
realTimeDataViewModel1.DataTimeConboxTem = Convert.ToDateTime(dataReader["DataTime"]);
realTimeDataViewModel1.DataTimeConboxHum = Convert.ToDateTime(dataReader["DataTime"]);
}
else
{
realTimeDataViewModel1.BaseStationStatus[1].Value = "0.00";
realTimeDataViewModel1.BaseStationStatus[4].Value = "0.00";
realTimeDataViewModel1.DataTimeConboxTem = DateTime.Now;
realTimeDataViewModel1.DataTimeConboxHum = DateTime.Now;
}
if (dataReaderSub.Read())
{
int leakState = Convert.ToInt32(string.IsNullOrEmpty(dataReaderSub["Leakage"].ToString()) ? "2" : dataReaderSub["Leakage"]);
if (leakState == 1)
{
realTimeDataViewModel1.LeakageImage = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (leakState == 0)
{
realTimeDataViewModel1.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGreen");
}
else
{
realTimeDataViewModel1.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
}
else
{
realTimeDataViewModel1.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
dataReader.Dispose();
dataReaderSub.Dispose();
dataReaderMon.Dispose();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit 1");
dataReader = DBHelper.ExecuteReader(sql, 1);
if (dataReader.Read())
{
realTimeDataViewModel1.BaseStationStatus[2].Value = string.IsNullOrEmpty(dataReader["Out_Vol"].ToString()) ? "0.00" : dataReader["Out_Vol"].ToString();
realTimeDataViewModel1.BaseStationStatus[5].Value = string.IsNullOrEmpty(dataReader["Out_Cur"].ToString()) ? "0.00" : dataReader["Out_Cur"].ToString();
realTimeDataViewModel1.DataTimeShoreBaseStationVol = Convert.ToDateTime(dataReader["RecordTime"]);
realTimeDataViewModel1.DataTimeShoreBaseStationCur = Convert.ToDateTime(dataReader["RecordTime"]);
}
dataReader.Dispose();
sql = String.Format("select * from underjuncbox_env where StationID = {0} ORDER by id desc limit 1", 2);
dataReader = DBHelper.ExecuteReader(sql, 1);
sqlSub = String.Format("select * from underjuncbox_cavity_state where StationID = {0} ORDER by id desc limit 1", 2);
dataReaderSub = DBHelper.ExecuteReader(sqlSub, 1);
sqlMon = String.Format("select * from underjuncbox_monitor where StationID = {0} ORDER by id desc limit 1", 2);
dataReaderMon = DBHelper.ExecuteReader(sqlMon, 1);
if (dataReaderMon.Read())
{
string voltage = string.IsNullOrEmpty(dataReaderMon["Seis1_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis1_Voltage"].ToString();
string current = string.IsNullOrEmpty(dataReaderMon["Seis1_Current"].ToString()) ? "0.00" : dataReaderMon["Seis1_Current"].ToString();
realTimeDataViewModel2.BaseStationStatus[0].Value = voltage + " / " + current;
voltage = string.IsNullOrEmpty(dataReaderMon["Seis2_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis2_Voltage"].ToString();
current = string.IsNullOrEmpty(dataReaderMon["Seis2_Current"].ToString()) ? "0.00" : dataReaderMon["Seis2_Current"].ToString();
realTimeDataViewModel2.BaseStationStatus[3].Value = voltage + " / " + current;
realTimeDataViewModel2.DataTimeMainSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
realTimeDataViewModel2.DataTimeBackupSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
}
else
{
realTimeDataViewModel2.BaseStationStatus[0].Value = "0.00 / 0.00";
realTimeDataViewModel2.BaseStationStatus[3].Value = "0.00 / 0.00";
realTimeDataViewModel2.DataTimeMainSeis = DateTime.Now;
realTimeDataViewModel2.DataTimeBackupSeis = DateTime.Now;
}
if (dataReader.Read())
{
realTimeDataViewModel2.BaseStationStatus[1].Value = string.IsNullOrEmpty(dataReader["Temperature"].ToString()) ? "0.00" : dataReader["Temperature"].ToString();
realTimeDataViewModel2.BaseStationStatus[4].Value = string.IsNullOrEmpty(dataReader["Humidity"].ToString()) ? "0.00" : dataReader["Humidity"].ToString();
realTimeDataViewModel2.DataTimeConboxTem = Convert.ToDateTime(dataReader["DataTime"]);
realTimeDataViewModel2.DataTimeConboxHum = Convert.ToDateTime(dataReader["DataTime"]);
}
else
{
realTimeDataViewModel2.BaseStationStatus[1].Value = "0.00";
realTimeDataViewModel2.BaseStationStatus[4].Value = "0.00";
realTimeDataViewModel2.DataTimeConboxTem = DateTime.Now;
realTimeDataViewModel2.DataTimeConboxHum = DateTime.Now;
}
if (dataReaderSub.Read())
{
int leakState = Convert.ToInt32(string.IsNullOrEmpty(dataReaderSub["Leakage"].ToString()) ? "2" : dataReaderSub["Leakage"]);
if (leakState == 1)
{
realTimeDataViewModel2.LeakageImage = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (leakState == 0)
{
realTimeDataViewModel2.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGreen");
}
else
{
realTimeDataViewModel2.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
}
else
{
realTimeDataViewModel2.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
dataReader.Dispose();
dataReaderSub.Dispose();
dataReaderMon.Dispose();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit 1");
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
realTimeDataViewModel2.BaseStationStatus[2].Value = string.IsNullOrEmpty(dataReader["Out_Vol"].ToString()) ? "0.00" : dataReader["Out_Vol"].ToString();
realTimeDataViewModel2.BaseStationStatus[5].Value = string.IsNullOrEmpty(dataReader["Out_Cur"].ToString()) ? "0.00" : dataReader["Out_Cur"].ToString();
realTimeDataViewModel2.DataTimeShoreBaseStationVol = Convert.ToDateTime(dataReader["RecordTime"]);
realTimeDataViewModel2.DataTimeShoreBaseStationCur = Convert.ToDateTime(dataReader["RecordTime"]);
}
dataReader.Dispose();
sql = String.Format("select * from underjuncbox_env where StationID = {0} ORDER by id desc limit 1", 3);
dataReader = DBHelper.ExecuteReader(sql, 1);
sqlSub = String.Format("select * from underjuncbox_cavity_state where StationID = {0} ORDER by id desc limit 1", 3);
dataReaderSub = DBHelper.ExecuteReader(sqlSub, 1);
sqlMon = String.Format("select * from underjuncbox_monitor where StationID = {0} ORDER by id desc limit 1", 3);
dataReaderMon = DBHelper.ExecuteReader(sqlMon, 1);
if (dataReaderMon.Read())
{
string voltage = string.IsNullOrEmpty(dataReaderMon["Seis1_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis1_Voltage"].ToString();
string current = string.IsNullOrEmpty(dataReaderMon["Seis1_Current"].ToString()) ? "0.00" : dataReaderMon["Seis1_Current"].ToString();
realTimeDataViewModel3.BaseStationStatus[0].Value = voltage + " / " + current;
voltage = string.IsNullOrEmpty(dataReaderMon["Seis2_Voltage"].ToString()) ? "0.00" : dataReaderMon["Seis2_Voltage"].ToString();
current = string.IsNullOrEmpty(dataReaderMon["Seis2_Current"].ToString()) ? "0.00" : dataReaderMon["Seis2_Current"].ToString();
realTimeDataViewModel3.BaseStationStatus[3].Value = voltage + " / " + current;
realTimeDataViewModel3.DataTimeMainSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
realTimeDataViewModel3.DataTimeBackupSeis = Convert.ToDateTime(dataReaderMon["RecordTime"]);
}
else
{
realTimeDataViewModel3.BaseStationStatus[0].Value = "0.00 / 0.00";
realTimeDataViewModel3.BaseStationStatus[3].Value = "0.00 / 0.00";
realTimeDataViewModel3.DataTimeMainSeis = DateTime.Now;
realTimeDataViewModel3.DataTimeBackupSeis = DateTime.Now;
}
if (dataReader.Read())
{
realTimeDataViewModel3.BaseStationStatus[1].Value = string.IsNullOrEmpty(dataReader["Temperature"].ToString()) ? "0.00" : dataReader["Temperature"].ToString();
realTimeDataViewModel3.BaseStationStatus[4].Value = string.IsNullOrEmpty(dataReader["Humidity"].ToString()) ? "0.00" : dataReader["Humidity"].ToString();
realTimeDataViewModel3.DataTimeConboxTem = Convert.ToDateTime(dataReader["DataTime"]);
realTimeDataViewModel3.DataTimeConboxHum = Convert.ToDateTime(dataReader["DataTime"]);
}
else
{
realTimeDataViewModel3.BaseStationStatus[1].Value = "0.00";
realTimeDataViewModel3.BaseStationStatus[4].Value = "0.00";
realTimeDataViewModel3.DataTimeConboxTem = DateTime.Now;
realTimeDataViewModel3.DataTimeConboxHum = DateTime.Now;
}
if (dataReaderSub.Read())
{
int leakState = Convert.ToInt32(string.IsNullOrEmpty(dataReaderSub["Leakage"].ToString()) ? "2" : dataReaderSub["Leakage"]);
if (leakState == 1)
{
realTimeDataViewModel3.LeakageImage = (ImageSource)Application.Current.FindResource("CycleRed");
}
else if (leakState == 0)
{
realTimeDataViewModel3.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGreen");
}
else
{
realTimeDataViewModel3.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
}
else
{
realTimeDataViewModel3.LeakageImage = (ImageSource)Application.Current.FindResource("CycleGray");
}
dataReader.Dispose();
dataReaderSub.Dispose();
dataReaderMon.Dispose();
sql = String.Format("select * from shorebasestation_output_state ORDER by id desc limit 1");
dataReader = DBHelper.ExecuteReader(sql, 1);
while (dataReader.Read())
{
realTimeDataViewModel3.BaseStationStatus[2].Value = string.IsNullOrEmpty(dataReader["Out_Vol"].ToString()) ? "0.00" : dataReader["Out_Vol"].ToString();
realTimeDataViewModel3.BaseStationStatus[5].Value = string.IsNullOrEmpty(dataReader["Out_Cur"].ToString()) ? "0.00" : dataReader["Out_Cur"].ToString();
realTimeDataViewModel3.DataTimeShoreBaseStationVol = Convert.ToDateTime(dataReader["RecordTime"]);
realTimeDataViewModel3.DataTimeShoreBaseStationCur = Convert.ToDateTime(dataReader["RecordTime"]);
}
dataReader.Dispose();
#endregion
#region
sql = String.Format("select * from underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 7", 1);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
realTimeDataViewModel1.AlarmList.Add(alarmRecordModel);
}
dataReader.Dispose();
sql = String.Format("select * from underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 7", 2);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
realTimeDataViewModel2.AlarmList.Add(alarmRecordModel);
}
dataReader.Dispose();
sql = String.Format("select * from underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 7", 3);
dataReader = DBHelper.ExecuteReader(sql, 1);
index = 1;
while (dataReader.Read())
{
AlarmRecordModel alarmRecordModel = new AlarmRecordModel();
alarmRecordModel.Index = index++;
alarmRecordModel.RecordTime = Convert.ToDateTime(dataReader["RecordTime"]);
alarmRecordModel.ParaName = dataReader["ParaName"].ToString();
alarmRecordModel.ParaContent = dataReader["ParaContent"].ToString();
alarmRecordModel.ProcessingMethod = dataReader["ProcessingMethod"].ToString();
if (dataReader["UrgencyLevel"].ToString() == "1")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleYellow");
}
else if (dataReader["UrgencyLevel"].ToString() == "2")
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleOrange");
}
else
{
alarmRecordModel.UrgencyLevel = (ImageSource)Application.Current.FindResource("CycleRed");
}
realTimeDataViewModel3.AlarmList.Add(alarmRecordModel);
}
dataReader.Dispose();
#endregion
//默认打开第一个界面
DoNavChanged("RealTimeDataView");
}
#region Page Switching
public void DoNavChanged(object obj)
{
if (obj.ToString() == "1" || obj.ToString() == "2" || obj.ToString() == "3" || obj.ToString() == "4" || obj.ToString() == "5") //说明是站点切换按钮
{
if (station_id == Convert.ToInt32(obj)) //如果切换的界面和之前一样 那就不切换
return;
station_id = Convert.ToInt32(obj);
}
else if (obj.ToString() == "")
{
}
else
{
if (Title_Name == obj.ToString())
return;
Title_Name = obj.ToString();
}
//切换页面之前清理一下内存
Tools.ClearMemory(this);
Type type = Type.GetType("FujianEarthquake.Views." + Title_Name);
ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes);
FrameworkElement page = (FrameworkElement)cti.Invoke(null);
if (station_id == 1)
{
switch (Title_Name)
{
case "RealTimeDataView":
page.DataContext = realTimeDataViewModel1;
break;
//case "SystemEnvironDataView":
// systemEnvironDataViewModel1.RefreshFile(obj);
// page.DataContext = systemEnvironDataViewModel1;
// break;
//case "SystemMonitorDataView":
// page.DataContext = systemMonitorDataViewModel1;
// break;
//case "BoosterStationStateDataView":
// page.DataContext = boosterStationStateDataViewModel1;
// break;
//case "SeismometerStateDataView":
// MainViewModel.seismometerStateDataViewModel1.MainSeisIsChecked = true;
// page.DataContext = seismometerStateDataViewModel1;
// break;
//case "SeismometerParameterView":
// MainViewModel.seismometerParameterViewModel1.BackupSeisIsChecked = false;
// page.DataContext = seismometerParameterViewModel1;
// break;
//case "SystemControlView":
// MainSeisIsChecked = true;
// baseStationStateModel1.JunBox_Elect = (ImageSource)Application.Current.FindResource("NoDevice");
// ElectPowerOpenBtnIsEnabled = false;
// ElectPowerCloseBtnIsEnabled = false;
// BSSM = baseStationStateModel1;
// break;
case "LogRecordView":
page.DataContext = logRecordViewModel1;
break;
case "AlarmRecordView":
page.DataContext = alarmRecordViewModel1;
break;
default:
break;
}
}
else if (station_id == 2)
{
switch (Title_Name)
{
case "RealTimeDataView":
page.DataContext = realTimeDataViewModel2;
break;
//case "SystemEnvironDataView":
// page.DataContext = systemEnvironDataViewModel2;
// break;
//case "SystemMonitorDataView":
// page.DataContext = systemMonitorDataViewModel2;
// break;
//case "BoosterStationStateDataView":
// page.DataContext = boosterStationStateDataViewModel2;
// break;
//case "SeismometerStateDataView":
// MainViewModel.seismometerStateDataViewModel2.MainSeisIsChecked = true;
// page.DataContext = seismometerStateDataViewModel2;
// break;
//case "SeismometerParameterView":
// MainViewModel.seismometerParameterViewModel1.BackupSeisIsChecked = false;
// page.DataContext = seismometerParameterViewModel2;
// break;
//case "SystemControlView":
// MainSeisIsChecked = true;
// ElectPowerOpenBtnIsEnabled = true;
// ElectPowerCloseBtnIsEnabled = true;
// BSSM = baseStationStateModel2;
// break;
case "LogRecordView":
page.DataContext = logRecordViewModel2;
break;
case "AlarmRecordView":
page.DataContext = alarmRecordViewModel2;
break;
default:
break;
}
}
else if (station_id == 3)
{
switch (Title_Name)
{
case "RealTimeDataView":
page.DataContext = realTimeDataViewModel3;
break;
case "LogRecordView":
page.DataContext = logRecordViewModel3;
break;
case "AlarmRecordView":
page.DataContext = alarmRecordViewModel3;
break;
default:
break;
}
}
//else if (station_id == 4)
//{
// switch (Title_Name)
// {
// case "RealTimeDataView":
// page.DataContext = realTimeDataViewModel4;
// break;
// case "LogRecordView":
// page.DataContext = logRecordViewModel4;
// break;
// case "AlarmRecordView":
// page.DataContext = alarmRecordViewModel4;
// break;
// default:
// break;
// }
//}
//else if (station_id == 5)
//{
// switch (Title_Name)
// {
// case "RealTimeDataView":
// page.DataContext = realTimeDataViewModel5;
// break;
// case "LogRecordView":
// page.DataContext = logRecordViewModel5;
// break;
// case "AlarmRecordView":
// page.DataContext = alarmRecordViewModel5;
// break;
// default:
// break;
// }
//}
this.PageContent = page;
}
#endregion
}
}