From d8b23992a255662315be71536d13fc723fccba10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=A5=E9=A3=8E=E8=BF=87=E5=AE=A2?= <3529987066@qq.com> Date: Wed, 15 May 2024 17:50:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD=EF=BC=9A?= =?UTF-8?q?=201=20=E5=AE=8C=E6=88=90=E5=AF=B9=E6=89=80=E6=9C=89=E5=9C=B0?= =?UTF-8?q?=E9=9C=87=E4=BB=AA=E7=9A=84=E6=93=8D=E4=BD=9C=E5=9D=87=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E4=B8=BB=E5=A4=87=E5=9C=B0=E9=9C=87=E4=BB=AA=EF=BC=8C?= =?UTF-8?q?=E5=8C=85=E6=8B=AC=E8=BF=90=E8=A1=8C=E7=8A=B6=E6=80=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AF=B7=E6=B1=82=E3=80=81=E5=8F=82=E6=95=B0=E8=AF=BB?= =?UTF-8?q?=E5=8F=96/=E8=AE=BE=E7=BD=AE=E3=80=81=E8=B0=83=E5=B9=B3?= =?UTF-8?q?=E3=80=81=E5=87=8B=E9=9B=B6=E7=AD=89=EF=BC=9B=202=20=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E7=BC=96=E5=86=99=E5=9C=B0=E9=9C=87=E4=BB=AA=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E8=AE=A4=E8=AF=81=E9=83=A8=E5=88=86=E9=80=9A=E4=BF=A1?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.vs/JiangsuEarthquake/v17/.suo | Bin 295424 -> 296448 bytes .../JiangsuEarthquake/v17/DocumentLayout.json | 43 +++--- .../Models/SeismographModel.cs | 55 +++++++ .../ViewModels/MainViewModel.cs | 145 ++++++++++++++++++ .../SeismometerStateDataViewModel.cs | 2 +- .../Views/SystemControlView.xaml | 24 +++ .../Views/SystemControlView.g.i.cs | 6 +- 7 files changed, 252 insertions(+), 23 deletions(-) diff --git a/JiangsuEarthquake/.vs/JiangsuEarthquake/v17/.suo b/JiangsuEarthquake/.vs/JiangsuEarthquake/v17/.suo index 04de52617d0b863ec97ede22f6f5cd3f16daf754..3357cffd150b5174deac89defd603fe49b71eff6 100644 GIT binary patch delta 1428 zcmb`HeQZ-z6u^7#d#`&PEwqz;xiPvAx(UrF3mJ<{#jRN?i2~E8njGb z4bcjGLd-*r_K1ZhH!2R~6XYTtmRHj$QI-}k=>okau9LO&+Ms613ORIxQ~(M3qLf?v zx0}O640#jL7VbxR0NIV?r))GVxy+jLB{XBz$!X9;xV^A1rCPXFG zi>9TJk`mFIwl?z+W*X75>FDCs3N=#l9;jsvF${Lf9<;uj7OZ-%1weU3SX~<_Q_EhD zLBuN(WoK4jGfWb@j(^h(RS;|+qC-ROV9PvwMWJ z-M~8T$3VHQSAHPM&qTRPlzU|4S7S!W^{Uxvoi09lf!Ei4w%1dN`ih3^`Z{kz-=Vj@ zUY~iH)13HLwKG1G1OL*(daPxsg&bSBxkw!k*FwY&nIY%6tbGL9Wq;f~IyZVlEKD;j z%f<(vj1%6(AJ3BK`IZ_OgV4D-iQvI6oe4yr1{d}`xv{7doGVr5y-UF7njla5k6WRg z@t&v~28!9hPh?-z2dw}L?7$JQ!e(~#2;7BU*3k`Dp_5Toq|-WeH|wqD!0+{s4}W$>#t7 delta 2189 zcmajg3vf(V7zgnCo!q^awwKn7OwkNy|x+tm?(ewv}0VRK(^g&PhM6zFMlzXIJD1v~RAbXf>Xh)Eu7* z+Ns9K8MIx^mN}KEX2aVN<>>MV*1~dlhLnl8N&U$1z+At0@QE9x9{NDdW#`nI;BM4W z%{7*f%JudfgJ^+{AO`CJArKC&p$$ZX5#EO^{%P&vU2P}I!bxa9S)#uM@#}8X24r84q{+541_@- z7CZ;>Jy-yT@Y^_VeFgH(8`BweVq-*qj`%LT12Zw_LW5ztsCS?o2wCtH<$d^lEb{*F zA??YS(YhVZ3 z`yi&lIw%Cur_39R5!-t6qF$taC@+Ce;WKaBZt+&JXV27vfGGcJZ>8w`bmNo`hI^=Z zL-g2~Rju4dVGgPB)6t@uWosIb_)f_02CJ-BEM%&YNUZiC3n%TFVK$ENesZ z50lFl7(+~w82Eq;22j8VCNT3Dg@Ts_Aln)O!2&@L3?UE-RtSS|h=53F15wZxY|sv( zAqLt*2e5-UxK4?1QaJwty=37&l?ixf=PTxQ7yVDp(v~{ zX^#gf0Yz0cW(lJ_|FW8&qcv3FF=rW1nak{&eS94q?7^7EGM`%ZD8%;Ih|xFdfZfM6 z_xz+JD$)KbGnz4GjhVzrv>Z#!;Ieu;*x}nWD4HdSUp&T^Xp5`!%&sa{WWf+8>MTXq z5x=h^I;+x|lYD(PGim3pbf@ZmWM`V)Q|IHl&0O`0>lfy_!(8{+L3b^wwLc{v{LRnU z>gcqb4wBT^IxSRA(k`Wip#V>5{p3PZVhZ}f&PQC5lTdJc*Ri&o+j-J#Mhb|Mym?3mZGNI`*Asx#a9yeY09E zX^gb?U2wRMh!A7gat^^Q}~}c6&g2BiTnH1rW<_SVVYriD0cPr z5pI+C6wzl5Hyoj_Efq#3EU4SA{w8J2Sdnh=t4AnXe5$yzw(^XlG|8ydL<}1~%+0Hg z(t6|8%F7{34;1P{zal-IN;oMjPQPempOgN;!uAl|;twsXg0IbFy}84}YIv+KD=qHD zjNJcCmdaO;W@q%=Y@aI9yDH2@dPXR_E>j~P8OqA_LVso>UK7oB@eM&Niht3DIe6Qi z?4M6*R))=kObET`i@Wc6vb(S0H4_^? zu#U$oY%i~$$`bU + { + await Task.Delay(100); + MainWindow.mainViewModel.clientModelMainSeis1.DisConnect(); + + + })); + } + } + else + { + if (MainWindow.mainViewModel.clientModelBackupSeis1.IsConnected) + { + Task.Run(new Action(async () => + { + await Task.Delay(100); + MainWindow.mainViewModel.clientModelBackupSeis1.DisConnect(); + })); + } + } + } + else + { + if (isMain) + { + if (MainWindow.mainViewModel.clientModelMainSeis2.IsConnected) + { + Task.Run(new Action(async () => + { + await Task.Delay(100); + MainWindow.mainViewModel.clientModelMainSeis2.DisConnect(); + })); + } + } + else + { + if (MainWindow.mainViewModel.clientModelBackupSeis1.IsConnected) + { + Task.Run(new Action(async () => + { + await Task.Delay(100); + MainWindow.mainViewModel.clientModelBackupSeis1.DisConnect(); + })); + } + } + } + + //10s后重新连接 } else if (response == 200) diff --git a/JiangsuEarthquake/JiangsuEarthquake/ViewModels/MainViewModel.cs b/JiangsuEarthquake/JiangsuEarthquake/ViewModels/MainViewModel.cs index d83eab6..a1d1fdc 100644 --- a/JiangsuEarthquake/JiangsuEarthquake/ViewModels/MainViewModel.cs +++ b/JiangsuEarthquake/JiangsuEarthquake/ViewModels/MainViewModel.cs @@ -179,6 +179,14 @@ namespace JiangsuEarthquake.ViewModels public DispatcherTimer timerEarthQuakeParaSet = new DispatcherTimer(); public DispatcherTimer timerEarthQuakeParaRead = new DispatcherTimer(); + + public DispatcherTimer timerMainSeis1ConnectMsgHidden = new DispatcherTimer(); + + public DispatcherTimer timerBackupSeis1ConnectMsgHidden = new DispatcherTimer(); + + public DispatcherTimer timerMainSeis2ConnectMsgHidden = new DispatcherTimer(); + + public DispatcherTimer timerBackupSeis2ConnectMsgHidden = new DispatcherTimer(); #endregion @@ -383,6 +391,18 @@ namespace JiangsuEarthquake.ViewModels timerEarthQuakeParaRead.Interval = TimeSpan.FromSeconds(20); timerEarthQuakeParaRead.Tick += TimerEarthQuakeParaRead_Tick; + + timerMainSeis1ConnectMsgHidden.Interval = TimeSpan.FromSeconds(2); + timerMainSeis1ConnectMsgHidden.Tick += TimerMainSeis1ConnectMsgHidden_Tick; + + timerBackupSeis1ConnectMsgHidden.Interval = TimeSpan.FromSeconds(2); + timerBackupSeis1ConnectMsgHidden.Tick += TimerBackupSeis1ConnectMsgHidden_Tick; + + timerMainSeis2ConnectMsgHidden.Interval = TimeSpan.FromSeconds(2); + timerMainSeis2ConnectMsgHidden.Tick += TimerMainSeis2ConnectMsgHidden_Tick; + + timerBackupSeis2ConnectMsgHidden.Interval = TimeSpan.FromSeconds(2); + timerBackupSeis2ConnectMsgHidden.Tick += TimerBackupSeis2ConnectMsgHidden_Tick; #endregion @@ -1421,6 +1441,41 @@ namespace JiangsuEarthquake.ViewModels #region Seismograph + + #region MainSeis1ConnectMsg + private void TimerMainSeis1ConnectMsgHidden_Tick(object sender, EventArgs e) + { + MainSeis1ConnectMsgVisibility = Visibility.Hidden; + + // 停止定时器 + (sender as DispatcherTimer).Stop(); + } + + private string mainSeis1ConnectMsg; + + public string MainSeis1ConnectMsg + { + get { return mainSeis1ConnectMsg; } + set { mainSeis1ConnectMsg = value; this.DoNotify(); } + } + + private Brush mainSeis1ConnectMsgForeground; + + public Brush MainSeis1ConnectMsgForeground + { + get { return mainSeis1ConnectMsgForeground; } + set { mainSeis1ConnectMsgForeground = value; this.DoNotify(); } + } + + private Visibility mainSeis1ConnectMsgVisibility = Visibility.Visible; + + public Visibility MainSeis1ConnectMsgVisibility + { + get { return mainSeis1ConnectMsgVisibility; } + set { mainSeis1ConnectMsgVisibility = value; this.DoNotify(); } + } + #endregion + /// /// DoSocketMainSeis1Connect连接 /// @@ -1433,6 +1488,10 @@ namespace JiangsuEarthquake.ViewModels { await Task.Delay(100); clientModelMainSeis1.DisConnect(); + + MainSeis1ConnectMsgVisibility = Visibility.Visible; + MainSeis1ConnectMsg = "连接断开!"; + MainSeis1ConnectMsgForeground = new SolidColorBrush(Colors.Red); })); } else @@ -1443,6 +1502,10 @@ namespace JiangsuEarthquake.ViewModels if (clientModelMainSeis1.DoConnect(SocketInfoMainSeis1)) { + MainSeis1ConnectMsgVisibility = Visibility.Visible; + MainSeis1ConnectMsg = "初步连接,等待消息帧!"; + MainSeis1ConnectMsgForeground = new SolidColorBrush(Colors.Green); + //EM.Socket1ConMessage = string.Format("IP:{0} \r\n端口号:{1}", SocketInfo1.IP, SocketInfo1.Port.ToString()); //更新下App.config中的配置信息 Tools.UpdateAppSettings("MainSeis_Client_IP1", SocketInfoMainSeis1.IP); @@ -1452,6 +1515,39 @@ namespace JiangsuEarthquake.ViewModels } } + #region MainSeis2ConnectMsg + private void TimerMainSeis2ConnectMsgHidden_Tick(object sender, EventArgs e) + { + MainSeis2ConnectMsgVisibility = Visibility.Hidden; + + // 停止定时器 + (sender as DispatcherTimer).Stop(); + } + + private string mainSeis2ConnectMsg; + + public string MainSeis2ConnectMsg + { + get { return mainSeis2ConnectMsg; } + set { mainSeis2ConnectMsg = value; this.DoNotify(); } + } + + private Brush mainSeis2ConnectMsgForeground; + + public Brush MainSeis2ConnectMsgForeground + { + get { return mainSeis2ConnectMsgForeground; } + set { mainSeis2ConnectMsgForeground = value; this.DoNotify(); } + } + + private Visibility mainSeis2ConnectMsgVisibility = Visibility.Visible; + + public Visibility MainSeis2ConnectMsgVisibility + { + get { return mainSeis2ConnectMsgVisibility; } + set { mainSeis2ConnectMsgVisibility = value; this.DoNotify(); } + } + #endregion /// /// DoSocketMainSeis2Connect连接 @@ -1465,6 +1561,10 @@ namespace JiangsuEarthquake.ViewModels { await Task.Delay(100); clientModelMainSeis2.DisConnect(); + + MainSeis2ConnectMsgVisibility = Visibility.Visible; + MainSeis2ConnectMsg = "连接断开!"; + MainSeis2ConnectMsgForeground = new SolidColorBrush(Colors.Red); })); } else @@ -1475,6 +1575,10 @@ namespace JiangsuEarthquake.ViewModels if (clientModelMainSeis2.DoConnect(SocketInfoMainSeis2)) { + MainSeis2ConnectMsgVisibility = Visibility.Visible; + MainSeis2ConnectMsg = "初步连接,等待消息帧!"; + MainSeis2ConnectMsgForeground = new SolidColorBrush(Colors.Green); + //EM.Socket1ConMessage = string.Format("IP:{0} \r\n端口号:{1}", SocketInfo1.IP, SocketInfo1.Port.ToString()); //更新下App.config中的配置信息 Tools.UpdateAppSettings("MainSeis_Client_IP2", SocketInfoMainSeis2.IP); @@ -1484,6 +1588,39 @@ namespace JiangsuEarthquake.ViewModels } } + #region BackupSeis1ConnectMsg + private void TimerBackupSeis1ConnectMsgHidden_Tick(object sender, EventArgs e) + { + BackupSeis1ConnectMsgVisibility = Visibility.Hidden; + + // 停止定时器 + (sender as DispatcherTimer).Stop(); + } + + private string backupSeis1ConnectMsg; + + public string BackupSeis1ConnectMsg + { + get { return backupSeis1ConnectMsg; } + set { backupSeis1ConnectMsg = value; this.DoNotify(); } + } + + private Brush backupSeis1ConnectMsgForeground; + + public Brush BackupSeis1ConnectMsgForeground + { + get { return backupSeis1ConnectMsgForeground; } + set { backupSeis1ConnectMsgForeground = value; this.DoNotify(); } + } + + private Visibility backupSeis1ConnectMsgVisibility = Visibility.Visible; + + public Visibility BackupSeis1ConnectMsgVisibility + { + get { return backupSeis1ConnectMsgVisibility; } + set { backupSeis1ConnectMsgVisibility = value; this.DoNotify(); } + } + #endregion /// /// DoSocketBackupSeis1Connect连接 @@ -1497,6 +1634,10 @@ namespace JiangsuEarthquake.ViewModels { await Task.Delay(100); clientModelBackupSeis1.DisConnect(); + + BackupSeis1ConnectMsgVisibility = Visibility.Visible; + BackupSeis1ConnectMsg = "连接断开!"; + BackupSeis1ConnectMsgForeground = new SolidColorBrush(Colors.Red); })); } else @@ -1507,6 +1648,10 @@ namespace JiangsuEarthquake.ViewModels if (clientModelBackupSeis1.DoConnect(SocketInfoBackupSeis1)) { + BackupSeis1ConnectMsgVisibility = Visibility.Visible; + BackupSeis1ConnectMsg = "初步连接,等待消息帧!"; + BackupSeis1ConnectMsgForeground = new SolidColorBrush(Colors.Green); + // EM.Socket2ConMessage = string.Format("IP:{0} \r\n端口号:{1}", SocketInfo2.IP, SocketInfo2.Port.ToString()); //更新下App.config中的配置信息 Tools.UpdateAppSettings("BackupSeis_Client_IP1", SocketInfoBackupSeis1.IP); diff --git a/JiangsuEarthquake/JiangsuEarthquake/ViewModels/SeismometerStateDataViewModel.cs b/JiangsuEarthquake/JiangsuEarthquake/ViewModels/SeismometerStateDataViewModel.cs index 658e4b6..b6cf0d0 100644 --- a/JiangsuEarthquake/JiangsuEarthquake/ViewModels/SeismometerStateDataViewModel.cs +++ b/JiangsuEarthquake/JiangsuEarthquake/ViewModels/SeismometerStateDataViewModel.cs @@ -272,7 +272,7 @@ namespace JiangsuEarthquake.ViewModels private void TimerAskDataMsgHidden_Tick(object sender, EventArgs e) { - //DownloadDataMsgVisibility = Visibility.Hidden; + AskDataMsgVisibility = Visibility.Hidden; // 停止定时器 (sender as DispatcherTimer).Stop(); diff --git a/JiangsuEarthquake/JiangsuEarthquake/Views/SystemControlView.xaml b/JiangsuEarthquake/JiangsuEarthquake/Views/SystemControlView.xaml index a2b4277..e8b4237 100644 --- a/JiangsuEarthquake/JiangsuEarthquake/Views/SystemControlView.xaml +++ b/JiangsuEarthquake/JiangsuEarthquake/Views/SystemControlView.xaml @@ -549,6 +549,12 @@ + + +