using FujianEarthquake.Common; using FujianEarthquake.Models; using FujianEarthquake.DataAccess; using FujianEarthquake.Models.HelpModels; using FujianEarthquake.Views; using HandyControl.Tools; using LiveCharts; using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; namespace FujianEarthquake.ViewModels { public class RealTimeDataViewModel : NotifyBase { public JunctionBoxEnvironModel junctionBoxEnvironModel { get; set; }=new JunctionBoxEnvironModel(); public ShoreBaseStationStateDataModel shoreBaseStationStateModel { get;set; }=new ShoreBaseStationStateDataModel(); public BaseStationModelView baseStationModelView { get; set; } = new BaseStationModelView(); private BaseStationGestureModel baseStationGesture = new BaseStationGestureModel(); public BaseStationGestureModel BaseStationGesture { get { return baseStationGesture; } set { baseStationGesture = value; this.DoNotify(); //DoFresh(); } } #region SeriesCollection public SeriesCollection seriesCollectionConboxTem; public SeriesCollection SeriesCollectionConboxTem { get { return seriesCollectionConboxTem; } set { seriesCollectionConboxTem = value; this.DoNotify(); } } public SeriesCollection seriesCollectionConboxHum; public SeriesCollection SeriesCollectionConboxHum { get { return seriesCollectionConboxHum; } set { seriesCollectionConboxHum = value; this.DoNotify(); } } public SeriesCollection seriesCollectionMainSeis; public SeriesCollection SeriesCollectionMainSeis { get { return seriesCollectionMainSeis; } set { seriesCollectionMainSeis = value; this.DoNotify(); } } public SeriesCollection seriesCollectionBackupSeis; public SeriesCollection SeriesCollectionBackupSeis { get { return seriesCollectionBackupSeis; } set { seriesCollectionBackupSeis = value; this.DoNotify(); } } public SeriesCollection seriesCollectionShoreBaseStationVol; public SeriesCollection SeriesCollectionShoreBaseStationVol { get { return seriesCollectionShoreBaseStationVol; } set { seriesCollectionShoreBaseStationVol = value; this.DoNotify(); } } public SeriesCollection seriesCollectionShoreBaseStationCur; public SeriesCollection SeriesCollectionShoreBaseStationCur { get { return seriesCollectionShoreBaseStationCur; } set { seriesCollectionShoreBaseStationCur = value; this.DoNotify(); } } #endregion #region Formatter private Func _xFormatter; public Func XFormatter { get { return _xFormatter; } set { _xFormatter = value; this.DoNotify(); } } private Func _yFormatterVol; public Func YFormatterVol { get { return _yFormatterVol; } set { _yFormatterVol = value; this.DoNotify(); } } private Func _yFormatterCur; public Func YFormatterCur { get { return _yFormatterCur; } set { _yFormatterCur = value; this.DoNotify(); } } private Func _yFormatterTem; public Func YFormatterTem { get { return _yFormatterTem; } set { _yFormatterTem = value; this.DoNotify(); } } private Func _yFormatterHum; public Func YFormatterHum { get { return _yFormatterHum; } set { _yFormatterHum = value; this.DoNotify(); } } #endregion #region RecordTime public DateTime dataTimeConboxTem; public DateTime DataTimeConboxTem { get { return dataTimeConboxTem; } set { dataTimeConboxTem = value; this.DoNotify(); } } public DateTime dataTimeConboxHum; public DateTime DataTimeConboxHum { get { return dataTimeConboxHum; } set { dataTimeConboxHum = value; this.DoNotify(); } } public DateTime dataTimeMainSeis; public DateTime DataTimeMainSeis { get { return dataTimeMainSeis; } set { dataTimeMainSeis = value; this.DoNotify(); } } public DateTime dataTimeBackupSeis; public DateTime DataTimeBackupSeis { get { return dataTimeBackupSeis; } set { dataTimeBackupSeis = value; this.DoNotify(); } } public DateTime dataTimeShoreBaseStationVol; public DateTime DataTimeShoreBaseStationVol { get { return dataTimeShoreBaseStationVol; } set { dataTimeShoreBaseStationVol = value; this.DoNotify(); } } public DateTime dataTimeShoreBaseStationCur; public DateTime DataTimeShoreBaseStationCur { get { return dataTimeShoreBaseStationCur; } set { dataTimeShoreBaseStationCur = value; this.DoNotify(); } } #endregion #region AngleBackground public Brush angleBackgroundX; public Brush AngleBackgroundX { get { return angleBackgroundX; } set { angleBackgroundX = value; this.DoNotify(); } } public Brush angleBackgroundY; public Brush AngleBackgroundY { get { return angleBackgroundY; } set { angleBackgroundY = value; this.DoNotify(); } } public Brush angleBackgroundZ; public Brush AngleBackgroundZ { get { return angleBackgroundZ; } set { angleBackgroundZ = value; this.DoNotify(); } } #endregion private ImageSource leakageImage; public ImageSource LeakageImage { get { return leakageImage; } set { leakageImage = value; } } /// /// 环境状态列表数据 /// private List _baseStationStatus = new List { new KeypaiValueModel { Header = "主地震仪电压(V) / 电流(A)" }, new KeypaiValueModel { Header = "海底基站温度(℃)" }, new KeypaiValueModel { Header = "岸基站输出电压(V)" }, new KeypaiValueModel { Header = "备地震仪电压(V) / 电流(A)" }, new KeypaiValueModel { Header = "海底基站湿度(%)" }, new KeypaiValueModel { Header = "岸基站输出电流(A)" }, //new KeypaiValueModel { Header = "基站姿态X轴(°)" }, //new KeypaiValueModel { Header = "基站姿态Y轴(°)" }, //new KeypaiValueModel { Header = "基站姿态Z轴(°)" }, //new KeypaiValueModel { Header = "基站漏水状态" }, }; public List BaseStationStatus { get { return _baseStationStatus; } set { _baseStationStatus = value; this.DoNotify(); } } /// /// 告警信息 /// private List alarmList = new List(); public List AlarmList { get { return alarmList; } set { alarmList = value; this.DoNotify(); } } public CommandBase ResetAngleCommand { get; set; } int station_id = 1; public RealTimeDataView realTimeDataView = new RealTimeDataView(); public BaseStationModelViewModel baseStationModelViewModel { get; set; } = new BaseStationModelViewModel(); public RealTimeDataViewModel(int id) { //DoFresh(); station_id = id; this.ResetAngleCommand = new CommandBase(); this.ResetAngleCommand.DoExcute = new Action(ResetAngle); this.ResetAngleCommand.DoCanExcute = new Func((o) => true); } public void ResetAngle(object o) { string sql = String.Format("select * from underjuncbox_env where StationID = {0} ORDER by id desc limit 1", station_id); MySqlDataReader dataReader = DBHelper.ExecuteReader(sql, 1); while (dataReader.Read()) { BaseStationGesture.RollAngle = Convert.ToSingle(string.IsNullOrEmpty(dataReader["AttitudeX"].ToString()) ? "0.00" : dataReader["AttitudeX"].ToString()); BaseStationGesture.PitchAngle = Convert.ToSingle(string.IsNullOrEmpty(dataReader["AttitudeY"].ToString()) ? "0.00" : dataReader["AttitudeY"].ToString()); BaseStationGesture.HeadingAngle = Convert.ToSingle(string.IsNullOrEmpty(dataReader["AttitudeZ"].ToString()) ? "0.00" : dataReader["AttitudeZ"].ToString()); } dataReader.Dispose(); baseStationModelViewModel.BaseStationGesture.RollAngle = BaseStationGesture.RollAngle; baseStationModelViewModel.BaseStationGesture.PitchAngle = BaseStationGesture.PitchAngle; baseStationModelViewModel.BaseStationGesture.HeadingAngle = BaseStationGesture.HeadingAngle; //baseStationModelView.angleX.Content = BaseStationGesture.RollAngle; //baseStationModelView.angleY.Content = BaseStationGesture.PitchAngle; //baseStationModelView.angleZ.Content = BaseStationGesture.HeadingAngle; } } }