diff --git a/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml b/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml
index 40a80f3..fce4e2f 100644
--- a/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml
+++ b/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml
@@ -591,53 +591,56 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -776,85 +779,88 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/App/Modules/SicModules/Config/PM/PM2/_ioDefinePM2.xml b/App/Modules/SicModules/Config/PM/PM2/_ioDefinePM2.xml
index 9c45c58..fce4e2f 100644
--- a/App/Modules/SicModules/Config/PM/PM2/_ioDefinePM2.xml
+++ b/App/Modules/SicModules/Config/PM/PM2/_ioDefinePM2.xml
@@ -1,933 +1,866 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/App/SicRT/Config/IoProviderConfig.xml b/App/SicRT/Config/IoProviderConfig.xml
index 4cd56ee..028b7b5 100644
--- a/App/SicRT/Config/IoProviderConfig.xml
+++ b/App/SicRT/Config/IoProviderConfig.xml
@@ -33,12 +33,6 @@
-
-
-
-
-
-
@@ -54,12 +48,6 @@
-
-
-
-
-
-
@@ -86,12 +74,6 @@
-
-
-
-
-
-
@@ -104,12 +86,6 @@
-
-
-
-
-
-
diff --git a/Framework/MECF.Framework.Common/MECF/Framework/Common/IOCore/NotifiableIoItem.cs b/Framework/MECF.Framework.Common/MECF/Framework/Common/IOCore/NotifiableIoItem.cs
index 32ce0c7..60c34e2 100644
--- a/Framework/MECF.Framework.Common/MECF/Framework/Common/IOCore/NotifiableIoItem.cs
+++ b/Framework/MECF.Framework.Common/MECF/Framework/Common/IOCore/NotifiableIoItem.cs
@@ -59,26 +59,35 @@ namespace MECF.Framework.Common.IOCore
public object Clone()
{
- return new NotifiableIoItem
+ try
{
- Address = Address,
- BlockIndex = BlockIndex,
- BlockOffset = BlockOffset,
- BoolValue = BoolValue,
- Description = Description,
- Display_En = Display_En,
- Display_Zh = Display_Zh,
- AltName = AltName,
- HoldValue = HoldValue,
- Index = Index,
- Name = Name,
- Provider = Provider,
- ShortValue = ShortValue,
- FloatValue = FloatValue,
- IntValue = IntValue,
- StringValue = StringValue,
- Visible = Visible
- };
+ return new NotifiableIoItem
+ {
+ Address = Address,
+ BlockIndex = BlockIndex,
+ BlockOffset = BlockOffset,
+ BoolValue = BoolValue,
+ Description = Description,
+ Display_En = Display_En,
+ Display_Zh = Display_Zh,
+ AltName = AltName,
+ HoldValue = HoldValue,
+ Index = Index,
+ Name = Name,
+ Provider = Provider,
+ ShortValue = ShortValue,
+ FloatValue = FloatValue,
+ IntValue = IntValue,
+ StringValue = StringValue,
+ Visible = Visible
+ };
+ }
+ catch (Exception ex)
+ {
+
+ throw;
+ }
+
}
}
}
diff --git a/Framework/MECF.Framework.UI.Client/Ctrlib/Controls/ModuleStatusIndicator.xaml b/Framework/MECF.Framework.UI.Client/Ctrlib/Controls/ModuleStatusIndicator.xaml
index 6c19701..e811929 100644
--- a/Framework/MECF.Framework.UI.Client/Ctrlib/Controls/ModuleStatusIndicator.xaml
+++ b/Framework/MECF.Framework.UI.Client/Ctrlib/Controls/ModuleStatusIndicator.xaml
@@ -1,73 +1,75 @@
-
+
-
-
-
-
+
+
+
+
-
+
-
+ Visibility="{Binding HasWarning, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=True}" />
+ TextWrapping="Wrap" />
-
+
diff --git a/Framework/MECF.Framework.UI.Core/DeviceControl/AITSignalTower.xaml b/Framework/MECF.Framework.UI.Core/DeviceControl/AITSignalTower.xaml
index 43125b1..7d3bbe0 100644
--- a/Framework/MECF.Framework.UI.Core/DeviceControl/AITSignalTower.xaml
+++ b/Framework/MECF.Framework.UI.Core/DeviceControl/AITSignalTower.xaml
@@ -8,7 +8,7 @@
d:DesignWidth="30"
mc:Ignorable="d">
-
+
@@ -19,105 +19,105 @@
+ Name="rectangle1"
+ Canvas.Left="0"
+ Canvas.Top="0"
+ Width="30"
+ Height="20"
+ VerticalAlignment="Top"
+ Source="pack://application:,,,/MECF.Framework.UI.Core;component/Resources/red.png"
+ Stretch="Fill">
+ BlurRadius="20"
+ Opacity="1"
+ RenderingBias="Performance"
+ ShadowDepth="0"
+ Color="Red" />
+ Name="rectangle2"
+ Grid.Row="1"
+ Canvas.Left="0"
+ Canvas.Top="0"
+ Width="30"
+ Height="20"
+ VerticalAlignment="Bottom"
+ PreviewMouseDown="rectangle2_PreviewMouseDown"
+ Source="pack://application:,,,/MECF.Framework.UI.Core;component/Resources/yellow.png"
+ Stretch="Fill">
+ BlurRadius="20"
+ Opacity="1"
+ RenderingBias="Performance"
+ ShadowDepth="0"
+ Color="Green" />
+ Name="rectangle3"
+ Grid.Row="2"
+ Canvas.Left="0"
+ Canvas.Top="0"
+ Width="30"
+ Source="pack://application:,,,/MECF.Framework.UI.Core;component/Resources/Lime.png"
+ Stretch="Fill">
+ BlurRadius="20"
+ Opacity="1"
+ RenderingBias="Performance"
+ ShadowDepth="0"
+ Color="Green" />
+ Name="rectangle4"
+ Grid.Row="3"
+ Canvas.Left="0"
+ Canvas.Top="0"
+ Width="30"
+ Height="20"
+ Source="pack://application:,,,/MECF.Framework.UI.Core;component/Resources/Blue.png"
+ Stretch="Fill"
+ Visibility="Hidden">
+ BlurRadius="20"
+ Opacity="1"
+ RenderingBias="Performance"
+ ShadowDepth="0"
+ Color="Green" />
+ Name="rectangle5"
+ Grid.Row="3"
+ Canvas.Left="0"
+ Canvas.Top="0"
+ Width="30"
+ Height="30"
+ Source="pack://application:,,,/MECF.Framework.UI.Core;component/Resources/lights.png"
+ Stretch="Fill">
+ BlurRadius="20"
+ Opacity="1"
+ RenderingBias="Performance"
+ ShadowDepth="0"
+ Color="White" />