2024-08-22 09:45:36 +00:00
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 ;
2024-08-27 09:39:30 +00:00
using LiveCharts.Defaults ;
using LiveCharts.Wpf ;
using LiveCharts ;
2024-08-22 09:45:36 +00:00
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 ;
2024-08-27 09:39:30 +00:00
//折线图展示的点位数
int ChartPointNum = 15 ;
2024-08-22 09:45:36 +00:00
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 ) ;
2024-08-23 09:54:10 +00:00
#endregion
#region 告 警 页 面 初 始 化
2024-08-27 09:39:30 +00:00
sql = String . Format ( "select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100" , 1 ) ;
2024-08-23 09:54:10 +00:00
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 ) ;
2024-08-27 09:39:30 +00:00
sql = String . Format ( "select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100" , 2 ) ;
2024-08-23 09:54:10 +00:00
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 ) ;
2024-08-22 09:45:36 +00:00
2024-08-27 09:39:30 +00:00
sql = String . Format ( "select * from underjuncbox_underjuncbox_alarm_info where StationID = {0} ORDER by id desc limit 100" , 3 ) ;
2024-08-23 09:54:10 +00:00
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 ) ;
2024-08-22 09:45:36 +00:00
#endregion
2024-08-27 09:39:30 +00:00
#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
2024-08-22 09:45:36 +00:00
//默认打开第一个界面
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
}
}