diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/FLY.Thick.Blowing.UI.Fix.Client.csproj b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/FLY.Thick.Blowing.UI.Fix.Client.csproj
index 3fd72120cdf8e7905ef25b004981cd0763140009..5942fd8fe585cfc612f449512d15084c30866390 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/FLY.Thick.Blowing.UI.Fix.Client.csproj
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/FLY.Thick.Blowing.UI.Fix.Client.csproj
@@ -91,26 +91,26 @@
     </Compile>
     <Compile Include="BlowingDetectCore.cs" />
     <Compile Include="CalFilmLen.cs" />
-    <Compile Include="Page_Blowing.xaml.cs">
-      <DependentUpon>Page_Blowing.xaml</DependentUpon>
+    <Compile Include="PgBlowing.xaml.cs">
+      <DependentUpon>PgBlowing.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_Custom.xaml.cs">
-      <DependentUpon>Page_Custom.xaml</DependentUpon>
+    <Compile Include="PgCustom.xaml.cs">
+      <DependentUpon>PgCustom.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_ErrorTable.xaml.cs">
-      <DependentUpon>Page_ErrorTable.xaml</DependentUpon>
+    <Compile Include="PgErrorTable.xaml.cs">
+      <DependentUpon>PgErrorTable.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_Main.xaml.cs">
-      <DependentUpon>Page_Main.xaml</DependentUpon>
+    <Compile Include="PgMain.xaml.cs">
+      <DependentUpon>PgMain.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_Menu.xaml.cs">
-      <DependentUpon>Page_Menu.xaml</DependentUpon>
+    <Compile Include="PgMenu.xaml.cs">
+      <DependentUpon>PgMenu.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_ProfileBlowing.xaml.cs">
-      <DependentUpon>Page_ProfileBlowing.xaml</DependentUpon>
+    <Compile Include="PgProfileBlowing.xaml.cs">
+      <DependentUpon>PgProfileBlowing.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Page_ScanWarning.xaml.cs">
-      <DependentUpon>Page_ScanWarning.xaml</DependentUpon>
+    <Compile Include="PgScanWarning.xaml.cs">
+      <DependentUpon>PgScanWarning.xaml</DependentUpon>
     </Compile>
     <Compile Include="PgBlowingExt.xaml.cs">
       <DependentUpon>PgBlowingExt.xaml</DependentUpon>
@@ -148,11 +148,11 @@
     <Compile Include="UIModule\ScanGraphCircular\ScanGraphCircularConfig.xaml.cs">
       <DependentUpon>ScanGraphCircularConfig.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Window_IOTip.xaml.cs">
-      <DependentUpon>Window_IOTip.xaml</DependentUpon>
+    <Compile Include="WdIOTip.xaml.cs">
+      <DependentUpon>WdIOTip.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Window_ProfileLegend.xaml.cs">
-      <DependentUpon>Window_ProfileLegend.xaml</DependentUpon>
+    <Compile Include="WdProfileLegend.xaml.cs">
+      <DependentUpon>WdProfileLegend.xaml</DependentUpon>
     </Compile>
     <Page Include="Culture\StringResource.en-US.xaml">
       <SubType>Designer</SubType>
@@ -162,23 +162,23 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
-    <Page Include="Page_Blowing.xaml">
+    <Page Include="PgBlowing.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Page_Custom.xaml">
+    <Page Include="PgCustom.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Page_ErrorTable.xaml">
+    <Page Include="PgErrorTable.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Page_Main.xaml">
+    <Page Include="PgMain.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Page_Menu.xaml">
+    <Page Include="PgMenu.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
@@ -186,11 +186,11 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
-    <Page Include="Page_ProfileBlowing.xaml">
+    <Page Include="PgProfileBlowing.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Page_ScanWarning.xaml">
+    <Page Include="PgScanWarning.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
@@ -230,11 +230,11 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Window_IOTip.xaml">
+    <Page Include="WdIOTip.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Window_ProfileLegend.xaml">
+    <Page Include="WdProfileLegend.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/MainWindow.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/MainWindow.xaml.cs
index d600570f9a92331329c3c381c555044c743d7a80..d3212351dc3f02eacf322047c6bcbea69c580634 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/MainWindow.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/MainWindow.xaml.cs
@@ -61,7 +61,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
         }
 
         LoadingProgress lp;
-        Page_Main pMain;
+        PgMain pMain;
         void Init()
         {
             System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
@@ -115,7 +115,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
                 System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
                 {
-                    pMain = new Page_Main();
+                    pMain = new PgMain();
                     lp.Progress += 10;
                 }));
                 System.Threading.Thread.Sleep(10);
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml
index 4a310224e8603b3fd7079c233bd92a158ddb4ef4..2ff3d3fd37bdaf7e494f743585d9d963fbd85848 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_Blowing"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgBlowing"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml.cs
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml.cs
index 13e8a8c72c9e1d88e6a54b263af1e3dccd669519..1aac4e0a7404a7402c0d332039d860e550331fde 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Blowing.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgBlowing.xaml.cs
@@ -26,11 +26,11 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_Blowing.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_Blowing : Page
+    public partial class PgBlowing : Page
     {
         PgBlowingViewModel viewModel;
 
-        public Page_Blowing()
+        public PgBlowing()
         {
             InitializeComponent();
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml
index e9e07b7043a15c6f57d4ae8def31652c7a7d438d..f547cc7341c43f2b6a7d74b10d05c3c6e2098554 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_Custom"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgCustom"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml.cs
similarity index 97%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml.cs
index 6e3de72d98c9fd96350946db705ca60d51057195..2a1a7af97f4d49d4f52fbcfd3146c791efe85ab5 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Custom.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgCustom.xaml.cs
@@ -22,11 +22,11 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_Custom.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_Custom : Page
+    public partial class PgCustom : Page
     {
         SysParam msysparam;
         TDGage gage;
-        public Page_Custom()
+        public PgCustom()
         {
             InitializeComponent();
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml
similarity index 98%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml
index 0252ad074894b7b1c701b2882c46640ef07bdc64..0da7983baca93dfe98a8d6c2487fd2b16ae10408 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_ErrorTable"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgErrorTable"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml.cs
similarity index 93%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml.cs
index 1999e20dc973df5e602d6baf21767fcae667417c..3c54afffbbbb2b45c9378a818adbc9a11035c8a1 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ErrorTable.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgErrorTable.xaml.cs
@@ -18,13 +18,13 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_ErrorTable.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_ErrorTable : Page
+    public partial class PgErrorTable : Page
     {
         FLY.OBJComponents.Client.WarningServiceClient mWarningService;
         FLY.OBJComponents.Client.BufferWindow<FLY.OBJComponents.Common.FlyData_WarningHistory> mWindow;
         TDGage gage;
 
-        public Page_ErrorTable()
+        public PgErrorTable()
         {
             InitializeComponent();
             Init();
@@ -54,7 +54,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void button_iotip_click(object sender, RoutedEventArgs e)
         {
-            Window_IOTip w = new Window_IOTip();
+            WdIOTip w = new WdIOTip();
             w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
             w.ShowDialog();
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml
index 63b3a6906e41e3fb6d0ebdc24b05d07123f5913d..e6ac09f837938ad276f11a7cc4ffbab590ce264d 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_Main"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgMain"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml.cs
similarity index 97%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml.cs
index ac0b98eb806a15e920b92a702a0dfd46dc8e6308..4685c66311339bf10f692f0ab4bee9a32097e3da 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Main.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMain.xaml.cs
@@ -28,13 +28,13 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_Main.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_Main : Page
+    public partial class PgMain : Page
     {
         private ThickTcpUiInWindow.UIModule.FLYLayout mLayout;
         private FLYLayoutManager mManager;
         
         TDGage gage;
-        public Page_Main()
+        public PgMain()
         {
             InitializeComponent();
 
@@ -200,14 +200,14 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
         }
         private void button_menu_click(object sender, RoutedEventArgs e)
         {
-            Page_Menu p = new Page_Menu();
+            PgMenu p = new PgMenu();
             p.Init(gage);
             NavigationService.Navigate(p);
         }
         private void button_profile_click(object sender, RoutedEventArgs e)
         {
 
-            Page_ProfileBlowing p = new Page_ProfileBlowing();
+            PgProfileBlowing p = new PgProfileBlowing();
             p.Init(gage.mSysParam.ServerIPEP);
             NavigationService.Navigate(p);
 
@@ -220,7 +220,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void Border_Blowing_Click(object sender, RoutedEventArgs e)
         {
-            Page_Blowing p = new Page_Blowing();
+            PgBlowing p = new PgBlowing();
             p.Init(gage.mSysParam.ServerIPEP);
             NavigationService.Navigate(p);
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml
similarity index 97%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml
index 166c756457ffae8447b2088a2f95650caf4e6546..34860a18ff842390307501ec87d90eb5127c444c 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_Menu"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgMenu"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
@@ -15,7 +15,7 @@
                 <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
                 <ResourceDictionary Source="pack://application:,,,/ThickTcpUiInWindow;component/Converter/Dictionary_MyConv.xaml"/>
             </ResourceDictionary.MergedDictionaries>
-            <misc:Ver x:Key="version" SrcType="{x:Type local:Page_Menu}"/>
+            <misc:Ver x:Key="version" SrcType="{x:Type local:PgMenu}"/>
         </ResourceDictionary>
     </Page.Resources>
     <Grid >
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml.cs
similarity index 90%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml.cs
index 3911bb0d124bd621fc0fbcafbbc0bcfe5c46bdba..5a6991f8f3155ae01babfc293771bed43156dc7e 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_Menu.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgMenu.xaml.cs
@@ -18,10 +18,10 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_Menu.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_Menu : Page
+    public partial class PgMenu : Page
     {
         TDGage gage;
-        public Page_Menu()
+        public PgMenu()
         {
             InitializeComponent();
         }
@@ -33,7 +33,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void button_custom_Click(object sender, RoutedEventArgs e)
         {
-            Page_Custom p = new Page_Custom();
+            PgCustom p = new PgCustom();
             p.Init(gage);
             NavigationService.Navigate(p);
         }
@@ -51,7 +51,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void button_warning_Click(object sender, RoutedEventArgs e)
         {
-            Page_ErrorTable p = new Page_ErrorTable();
+            PgErrorTable p = new PgErrorTable();
             p.Init();
             NavigationService.Navigate(p);
         }
@@ -90,14 +90,14 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void button_blowing_Click(object sender, RoutedEventArgs e)
         {
-            Page_Blowing p = new Page_Blowing();
+            PgBlowing p = new PgBlowing();
             p.Init(gage.mSysParam.ServerIPEP);
             NavigationService.Navigate(p);
         }
 
         private void button_scanwarning_Click(object sender, RoutedEventArgs e)
         {
-            Page_ScanWarning p = new Page_ScanWarning();
+            PgScanWarning p = new PgScanWarning();
             p.Init(gage.mSysParam.ServerIPEP);
             NavigationService.Navigate(p);
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml
index bfb74ac5622cd1e992070f3ea8ceae09f6d4d4c8..cba90449f54a3ae3b0a11e422077df6941d06498 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_ProfileBlowing"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgProfileBlowing"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml.cs
similarity index 97%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml.cs
index 4ee867f5f434bc2b1c3b2e02e4e294bd247c9c61..e931b41c09758e16faa924f3fbf4101de1e1b47f 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ProfileBlowing.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgProfileBlowing.xaml.cs
@@ -28,12 +28,12 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_ProfileBlowing.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_ProfileBlowing : Page, INotifyPropertyChanged
+    public partial class PgProfileBlowing : Page, INotifyPropertyChanged
     {
         public ObservableCollection<string> mList = new ObservableCollection<string>();
         public BlowingFixProfileServiceClient mProfile = null;
 
-        public Page_ProfileBlowing()
+        public PgProfileBlowing()
         {
             InitializeComponent();
         }
@@ -209,7 +209,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
 
         private void button_legend_Click(object sender, RoutedEventArgs e)
         {
-            Window_ProfileLegend w = new Window_ProfileLegend();
+            WdProfileLegend w = new WdProfileLegend();
             w.DataContext = mProfile.Param;
             w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
             w.ShowDialog();
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml
similarity index 98%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml
index dbbbf1c5667f47bc52732b60808ddbf1175fec7b..d024c3ff874942a1235d0607918146bc5d28fd72 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml
@@ -1,4 +1,4 @@
-<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.Page_ScanWarning"
+<Page x:Class="FLY.Thick.Blowing.UI.Fix.Client.PgScanWarning"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml.cs
similarity index 95%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml.cs
index ac1b176f110395febd567d50b773739b4641e2fc..a861b53b98958d06793df4c53f68bb0f8f78536f 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Page_ScanWarning.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/PgScanWarning.xaml.cs
@@ -20,11 +20,11 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Page_ScanWarning.xaml 的交互逻辑
     /// </summary>
-    public partial class Page_ScanWarning : Page
+    public partial class PgScanWarning : Page
     {
         ScanWarningServiceClient mScanWarning;
 
-        public Page_ScanWarning()
+        public PgScanWarning()
         {
             InitializeComponent();
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/UIModule/DynAreaIO.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/UIModule/DynAreaIO.xaml.cs
index ccf09a226497948fb14f56bec3daa98bafd9a3eb..727da097c0208fba9047b8718899163fa9d79238 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/UIModule/DynAreaIO.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/UIModule/DynAreaIO.xaml.cs
@@ -48,7 +48,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
             //    w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
             //    w.ShowDialog();
             //}
-            Page_ErrorTable p = new Page_ErrorTable();
+            PgErrorTable p = new PgErrorTable();
             p.Init();
             (Application.Current.Properties["NavigationService"] as NavigationService).Navigate(p);
 
@@ -262,7 +262,7 @@ namespace FLY.Thick.Blowing.UI.Fix.Client.UIModule
 
         public DynAreaIOParams()
         {
-            IODespWindowType = typeof(Window_IOTip);
+            IODespWindowType = typeof(WdIOTip);
         }
     }
 
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml
similarity index 99%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml
index 242f4bda52b72a8785b0b35962febfe38894b30f..ec1b2b85b1c2834ad471e932d1fdbc3b3c68ff3b 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml
@@ -1,4 +1,4 @@
-<flyctrllib:WindowBigClose x:Class="FLY.Thick.Blowing.UI.Fix.Client.Window_IOTip"
+<flyctrllib:WindowBigClose x:Class="FLY.Thick.Blowing.UI.Fix.Client.WdIOTip"
                            xmlns:flyctrllib="clr-namespace:FLY.ControlLibrary;assembly=FLY.ControlLibrary"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml.cs
similarity index 83%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml.cs
index 6cccd63667859919c7486ccdeb2a3e638e61547a..704897aeed0b9910afb97ab8221e22a767e8866f 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_IOTip.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdIOTip.xaml.cs
@@ -16,9 +16,9 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Window_IOTip.xaml 的交互逻辑
     /// </summary>
-    public partial class Window_IOTip : FLY.ControlLibrary.WindowBigClose   
+    public partial class WdIOTip : FLY.ControlLibrary.WindowBigClose   
     {
-        public Window_IOTip()
+        public WdIOTip()
         {
             InitializeComponent();
             
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml
similarity index 98%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml
index f3331f203438aa29ff5197213634b276aeaf4dc6..e9a0384e68ff098039c2a1107364894a17e76b56 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml
@@ -1,4 +1,4 @@
-<flyctrllib:WindowBigClose x:Class="FLY.Thick.Blowing.UI.Fix.Client.Window_ProfileLegend"
+<flyctrllib:WindowBigClose x:Class="FLY.Thick.Blowing.UI.Fix.Client.WdProfileLegend"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml.cs
similarity index 81%
rename from Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml.cs
rename to Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml.cs
index 0583f5b1ea94507a774780e944da2746b959c16a..faabc2e97ca8174d8240687c4c1937da14aade2b 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/Window_ProfileLegend.xaml.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing.UI.Fix.Client/WdProfileLegend.xaml.cs
@@ -16,9 +16,9 @@ namespace FLY.Thick.Blowing.UI.Fix.Client
     /// <summary>
     /// Window_ProfileLegend.xaml 的交互逻辑
     /// </summary>
-    public partial class Window_ProfileLegend : FLY.ControlLibrary.WindowBigClose
+    public partial class WdProfileLegend : FLY.ControlLibrary.WindowBigClose
     {
-        public Window_ProfileLegend()
+        public WdProfileLegend()
         {
             InitializeComponent();
         }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBModel.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBModel.cs
index 3cb7f52cea7c3b8a916b63145e1adf4de387951b..de53eb09b56223ebebee36c2b3c816ae17b0f0ee 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBModel.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBModel.cs
@@ -1,4 +1,5 @@
-using SQLite;
+using FLY.OBJComponents.Server.Model;
+using SQLite;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -7,7 +8,7 @@ using System.Threading.Tasks;
 
 namespace FLY.Thick.Blowing.Server.Model
 {
-    public class DBModel:SQLiteDbContext
+    public class DBModel:SQLiteDbContext,IErrorDBModel
     {
         public DBTable<DB_Profile> TbProfile { get; } = new DBTable<DB_Profile>();
         public DBTable<DB_ScanData> TbScanData { get; } = new DBTable<DB_ScanData>();
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBTable.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBTable.cs
index 428bea07bde4a815f7cc3f4c3fbdad91cfc8a0ea..a6975f903cdda46a99c6fc1ecb56facfe16fffcd 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBTable.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/DBTable.cs
@@ -153,45 +153,5 @@ namespace FLY.Thick.Blowing.Server.Model
         public string Boltmap { get; set; }
     }
 
-    /// <summary>
-    /// 异常记录
-    /// </summary>
-    [Table("Error")]
-    public class DB_Error
-    {
-        [Key]
-        [PropertyIndex(0)]
-        public Int64 ID { get; set; }
-
-        /// <summary>
-        /// 发生的时间
-        /// </summary>
-        [PropertyIndex(1)]
-        public DateTime Time { get; set; }
-
-        /// <summary>
-        /// 异常代码
-        /// </summary>
-        [PropertyIndex(2)]
-        public int ErrCode { get; set; }
-
-        /// <summary>
-        /// true=异常是发生了,false=异常关闭
-        /// </summary>
-        [PropertyIndex(3)]
-        public bool IsOn { get; set; }
-
-        /// <summary>
-        /// 异常描述
-        /// </summary>
-        [PropertyIndex(4)]
-        public string Descrption { get; set; }
 
-        /// <summary>
-        /// 其它附加信息,json
-        /// </summary>
-        [PropertyIndex(5)]
-        public string Accessory { get; set; }
-
-    }
 }
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/HistoryDB.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/HistoryDB.cs
index c00b75e8623aa905152241b486b5df5df7663d51..cb8192710cf0fc07e79d6c82187ac5e5f26ff7bd 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/HistoryDB.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/Model/HistoryDB.cs
@@ -1,4 +1,5 @@
 
+using FLY.OBJComponents.Server.Model;
 using FLY.Thick.Blowing.IService;
 using FLY.Thick.Blowing.IService.IShareDBServicePack;
 using FObjBase;
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/ScanWarning.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/ScanWarning.cs
index 2b810e63c8f6f5c8963160cbee363fe9507dc956..7af5ab267d0afd0eb68447dbd61041cb89ce03e4 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/ScanWarning.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/ScanWarning.cs
@@ -144,43 +144,44 @@ namespace FLY.Thick.Blowing.Server
 
         void GetFrameCB(object AyncContext, object retData) 
         {
-                Pack_GetFrameReponse reponse = retData as Pack_GetFrameReponse;
+            Pack_GetFrameReponse reponse = retData as Pack_GetFrameReponse;
 
-                CheckResult result;
-                if (reponse.Values != null && reponse.Values.Count() > 0)
-                {
-                    Model.LC_ScanData lc_ScanData = reponse.Values.First();
-                    result = Check(lc_ScanData.Thicks);
-                }
-                else
-                {
-                    result = CheckResult.Idle;
-                }
+            CheckResult result;
+            string accessory = "";
 
-                switch (result)
-                {
-                    case CheckResult.ToleranceWarning:
-                        //报警
+            if (reponse.Values != null && reponse.Values.Count() > 0)
+            {
+                Model.LC_ScanData lc_ScanData = reponse.Values.First();
+                result = Check(lc_ScanData.Thicks);
+                if(result!= CheckResult.Idle)
+                    accessory = Newtonsoft.Json.JsonConvert.SerializeObject(lc_ScanData.ID);
+            }
+            else
+            {
+                result = CheckResult.Idle;
+            }
+
+            switch (result)
+            {
+                case CheckResult.ToleranceWarning:
+                    //报警
+                    mWarning.Add(
+                        ERRNOs.SCAN_ERRNO_OVERTOL.Code,
+                        ERRNOs.SCAN_ERRNO_OVERTOL.Descrption,
+                        ERR_STATE.ON,
+                        accessory
+                        );
+                    break;
+                case CheckResult.Idle:
+                    {
+                        //报警解除
                         mWarning.Add(
                             ERRNOs.SCAN_ERRNO_OVERTOL.Code,
                             ERRNOs.SCAN_ERRNO_OVERTOL.Descrption,
-                            ERR_STATE.ON);
-                        break;
-                    case CheckResult.Idle:
-                        {
-                            //报警解除
-                            mWarning.Add(
-                                ERRNOs.SCAN_ERRNO_OVERCTRL.Code,
-                                ERRNOs.SCAN_ERRNO_OVERCTRL.Descrption,
-                                ERR_STATE.OFF);
-                            //报警解除
-                            mWarning.Add(
-                                ERRNOs.SCAN_ERRNO_OVERTOL.Code,
-                                ERRNOs.SCAN_ERRNO_OVERTOL.Descrption,
-                                ERR_STATE.OFF);
-                        }
-                        break;
-                }
+                            ERR_STATE.OFF);
+                    }
+                    break;
+            }
         }
 
         
diff --git a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/TDGage.cs b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/TDGage.cs
index 1a472f1d5666a813d0bd708086d74f36b8982f52..c7a00b7e354ea01d657e2aeda258d53129acce14 100644
--- a/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/TDGage.cs
+++ b/Project.FLY.Thick.Blowing/FLY.Thick.Blowing/Server/TDGage.cs
@@ -89,6 +89,9 @@ namespace FLY.Thick.Blowing.Server
         /// </summary>
         public GM_BlowingFix mGMRenZiJiaFix;
 
+        /// <summary>
+        /// 扫描报警系统
+        /// </summary>
         public ScanWarning mScanWarning;
 
 
@@ -216,19 +219,34 @@ namespace FLY.Thick.Blowing.Server
 
             //---------------------------------------------------------------------------------------------------------------
             //Warning_Create
-            mWarning = new OBJComponents.Server.WarningSystem();
-            mWarning.RingEvent += () =>
+            OBJComponents.Server.BufferError bufferError = new OBJComponents.Server.BufferError();
+            bufferError.Init(mDBModel);
+
+            mWarning = new OBJComponents.Server.WarningSystem(bufferError);
+
+            Misc.BindingOperations.SetBinding(mWarning, "IsRinging", () =>
             {
-                mFlyAD.SetOutput(
-                    (UInt16)Misc.MyBase.BIT(4 - 1),
-                    (UInt16)~Misc.MyBase.BIT(4 - 1));
-            };
-            mWarning.ResetEvent += () => {
-                mFlyAD.SetOutput(
-                    (UInt16)Misc.MyBase.BIT(4 - 1),
-                    (UInt16)Misc.MyBase.BIT(4 - 1));
-            };
-            
+                if (mWarning.IsRinging)
+                {
+                    mFlyAD.SetOutput(
+                        (UInt16)Misc.MyBase.BIT(4 - 1),
+                        (UInt16)~Misc.MyBase.BIT(4 - 1));
+                }
+                else
+                {
+                    mFlyAD.SetOutput(
+                        (UInt16)Misc.MyBase.BIT(4 - 1),
+                        (UInt16)Misc.MyBase.BIT(4 - 1));
+                }
+            });
+
+
+            //---------------------------------------------------------------------------------------------------------------
+            //ScanWarning_Create
+            mScanWarning = new ScanWarning();
+            mScanWarning.Init(mWarning, mProfile.Param, mBulkDB);
+
+
 
             //---------------------------------------------------------------------------------------------------------------
             //GM_Fix_Create
diff --git a/Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan/Server/TDGage.cs b/Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan/Server/TDGage.cs
index 2a25d2c97843cc4d4e97cfac7134b8e5862bdb1c..f5216cd9c0b98fbe1814039f3c974f66836289d8 100644
--- a/Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan/Server/TDGage.cs
+++ b/Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan/Server/TDGage.cs
@@ -346,18 +346,21 @@ namespace FLY.Thick.BlowingScan.Server
             //---------------------------------------------------------------------------------------------------------------
             //Warning_Create
             mWarning = new OBJComponents.Server.WarningSystem();
-            mWarning.RingEvent += () =>
+            Misc.BindingOperations.SetBinding(mWarning, "IsRinging", () =>
             {
-                mFlyAD.SetOutput(
-                    (UInt16)Misc.MyBase.BIT(4 - 1),
-                    (UInt16)~Misc.MyBase.BIT(4 - 1));
-            };
-            mWarning.ResetEvent += () => {
-                mFlyAD.SetOutput(
-                    (UInt16)Misc.MyBase.BIT(4 - 1),
-                    (UInt16)Misc.MyBase.BIT(4 - 1));
-            };
-
+                if (mWarning.IsRinging)
+                {
+                    mFlyAD.SetOutput(
+                        (UInt16)Misc.MyBase.BIT(4 - 1),
+                        (UInt16)~Misc.MyBase.BIT(4 - 1));
+                }
+                else
+                {
+                    mFlyAD.SetOutput(
+                        (UInt16)Misc.MyBase.BIT(4 - 1),
+                        (UInt16)Misc.MyBase.BIT(4 - 1));
+                }
+            });
             //---------------------------------------------------------------------------------------------------------------
             //GM_Fix_Create
             mGMFix = new GM_Fix(mFlyAD);
diff --git a/Project.FLY.Weight/FLY.Weight/Server/WeightSystem.cs b/Project.FLY.Weight/FLY.Weight/Server/WeightSystem.cs
index e4334519f1d61fa356bd581c8266860faa8f821e..66ae0215823d9085b6de35c94c6658aa5a5cc752 100644
--- a/Project.FLY.Weight/FLY.Weight/Server/WeightSystem.cs
+++ b/Project.FLY.Weight/FLY.Weight/Server/WeightSystem.cs
@@ -148,15 +148,16 @@ namespace FLY.Weight.Server
                     Items[i].AlarmIsOn = !mWarning.Enable;
                 }
             });
-            
-            mWarning.ResetEvent = () =>//复位事件
+            Misc.BindingOperations.SetBinding(mWarning, "IsRinging", () =>
             {
-                for (int i = 0; i < ItemsCnt; i++)
+                if (!mWarning.IsRinging)
                 {
-                    Items[i].IsAlarmReseted = false;
+                    for (int i = 0; i < ItemsCnt; i++)
+                    {
+                        Items[i].IsAlarmReseted = false;
+                    }
                 }
-            };
-
+            });
             //--------------------------------------------------------------------------------
             //流量记录
             FlowList = new BufferStorage<FlyData_Flow>("flowlist.csv", 5, FlowListSize);
diff --git a/thick_public b/thick_public
index 3afe9982506cd9532f479849c25a711ef82eea0f..b42aa2756c91edc717a67ac8c52906e7f95dff27 160000
--- a/thick_public
+++ b/thick_public
@@ -1 +1 @@
-Subproject commit 3afe9982506cd9532f479849c25a711ef82eea0f
+Subproject commit b42aa2756c91edc717a67ac8c52906e7f95dff27