From dedcf4174c8540ee3a912daad2ff13e014e495b1 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期五, 28 三月 2025 16:28:30 +0800
Subject: [PATCH] 优化UI组件;

---
 Plugin.ServoManage/ServoManage.xaml |  459 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 307 insertions(+), 152 deletions(-)

diff --git a/Plugin.ServoManage/ServoManage.xaml b/Plugin.ServoManage/ServoManage.xaml
index 421d871..6fac78e 100644
--- a/Plugin.ServoManage/ServoManage.xaml
+++ b/Plugin.ServoManage/ServoManage.xaml
@@ -1,4 +1,4 @@
-锘�<UserControl x:Class="Plugin.ServoManage.ServoManage"
+锘�<hb:PluginControl x:Class="Plugin.ServoManage.ServoManage"
              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" 
@@ -14,17 +14,40 @@
              Loaded="UserControl_Loaded"
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
+        <Style x:Key="PrimaryButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
+            <Setter Property="Padding" Value="15"/>
+        </Style>
+
+        <Style x:Key="LightBall" TargetType="Ellipse">
+            <Setter Property="Height" Value="35"/>
+            <Setter Property="Width" Value="35"/>
+            <Setter Property="Fill" Value="{StaticResource Normal}"/>
+            <Setter Property="Margin" Value="0,10,0,0"/>
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding }" Value="1">
+                    <Setter Property="Fill" Value="{StaticResource Ok}"/>
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
+
         <Style x:Key="Desc" TargetType="Label">
-            <Setter Property="Padding" Value="10"/>
-            <Setter Property="FontSize" Value="12"/>
+            <Setter Property="Padding" Value="10,15"/>
+            <Setter Property="MinWidth" Value="90"/>
+            <Setter Property="FontSize" Value="14"/>
             <Setter Property="BorderThickness" Value="1"/>
             <Setter Property="BorderBrush" Value="#3a3a3a"/>
             <Setter Property="HorizontalContentAlignment" Value="Center"/>
             <Setter Property="VerticalContentAlignment" Value="Center"/>
         </Style>
 
+        <Style x:Key="ReadLabel" TargetType="Label" BasedOn="{StaticResource Desc}">
+            <Setter Property="BorderThickness" Value="1,0,1,1"/>
+            <Setter Property="Background" Value="LightGray"/>
+        </Style>
+
         <Style x:Key="LabelText" TargetType="Label" BasedOn="{StaticResource Desc}">
             <Setter Property="BorderThickness" Value="1,0,1,1"/>
+            <Setter Property="Cursor" Value="Hand"/>
         </Style>
 
         <Style x:Key="BDesc" TargetType="Label" BasedOn="{StaticResource Desc}">
@@ -34,8 +57,12 @@
         <Style x:Key="YDesc" TargetType="Label" BasedOn="{StaticResource Desc}">
             <Setter Property="Background" Value="#ffff00"/>
         </Style>
+
+        <Style TargetType="GroupBox">
+            <Setter Property="Padding" Value="5"/>
+        </Style>
     </UserControl.Resources>
-    
+
     <Border Style="{StaticResource CardBoarder}">
         <Grid dp:GridHelper.Space="10">
             <Grid.RowDefinitions>
@@ -51,10 +78,8 @@
 
             <DockPanel Grid.ColumnSpan="2">
                 <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
-                    <Button Style="{StaticResource AddBtn}" x:Name="addBtn" Click="Button_Click"/>
-                    <Button Style="{StaticResource EditBtn}" x:Name="editBtn" Click="Button_Click"/>
-                    <Button Style="{StaticResource RfhBtn}" x:Name="rfhBtn" Click="Button_Click"/>
-                    <Button Style="{StaticResource DelBtn}" x:Name="delBtn" Click="Button_Click"/>
+                    <Button Style="{StaticResource AddBtn}" x:Name="addServoBtn" Click="Button_Click"/>
+                    <Button Style="{StaticResource RfhBtn}" x:Name="rfhServoBtn" Click="Button_Click"/>
                 </StackPanel>
                 <TextBlock Style="{StaticResource TitleBox}" Text="{DynamicResource svo.title}"/>
             </DockPanel>
@@ -102,9 +127,6 @@
                                                         </Setter.Value>
                                                     </Setter>
                                                 </DataTrigger>
-                                                <Trigger Property="IsChecked" Value="True">
-                                                    <Setter Property="Background" Value="Red"/>
-                                                </Trigger>
                                             </Style.Triggers>
                                         </Style>
                                     </ToggleButton.Style>
@@ -131,7 +153,8 @@
                                       IsReadOnly="False"
                                       SelectionMode="Single"
                                       BorderThickness="0"
-                                      ItemsSource="{Binding Datas}">
+                                      SelectedItem="{Binding SelectedServo}"
+                                      ItemsSource="{Binding Servos}">
                                 <DataGrid.Columns>
                                     <DataGridTemplateColumn Header="#" IsReadOnly="True" CanUserResize="False">
                                         <DataGridTemplateColumn.CellTemplate>
@@ -166,7 +189,6 @@
                                         </DataGridTemplateColumn.CellTemplate>
                                     </DataGridTemplateColumn>
                                 </DataGrid.Columns>
-
                             </DataGrid>
                         </Grid>
 
@@ -203,136 +225,37 @@
                         </Grid.RowDefinitions>
 
                         <DockPanel>
-                            <StackPanel Style="{StaticResource ButtonGroup}">
-                                <TextBlock Style="{StaticResource TitleBox}" 
+                            <StackPanel Style="{StaticResource ButtonGroup}" HorizontalAlignment="Left">
+                                <!--<TextBlock Style="{StaticResource TitleBox}" 
                                            FontSize="{StaticResource ContentFontSize2}" 
-                                           Text="{DynamicResource svo.product}"/>
-                                <ComboBox x:Name="productInput" Style="{StaticResource FormComboxStyle}" MinWidth="180" />
+                                           Text="{DynamicResource svo.product.model}"/>
+                                <ComboBox x:Name="productInput" 
+                                          IsEnabled="{Binding HasSelectedServo}"
+                                          SelectedItem="{Binding SelectedProduct}"
+                                          ItemsSource="{Binding ServoProducts}"
+                                          DisplayMemberPath="Model"
+                                          Style="{StaticResource FormComboxStyle}" MinWidth="180" />
 
-                                <Button Style="{StaticResource AddBtn}" Click="Button_Click"/>
-                                <Button Style="{StaticResource EditBtn}" Click="Button_Click"/>
-                                <Button Style="{StaticResource RfhBtn}" Click="Button_Click"/>
-                                <Button Style="{StaticResource DelBtn}" Click="Button_Click"/>
+                                <Button Style="{StaticResource AddBtn}" x:Name="addProductBtn" Click="Button_Click"/>
+                                <Button Style="{StaticResource EditBtn}" x:Name="editProductBtn" Click="Button_Click"/>
+                                <Button Style="{StaticResource RfhBtn}" x:Name="rfhProductBtn" Click="Button_Click"/>
+                                <Button Style="{StaticResource DelBtn}" x:Name="delProductBtn" Click="Button_Click"/>-->
                             </StackPanel>
                         </DockPanel>
 
-                        <WrapPanel Grid.Row="1">
-                            <GroupBox Header="鎶ヨ" Padding="10">
-                                <StackPanel Style="{StaticResource ButtonGroup}">
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="鎺у埗鎶ヨ"/>
-                                        <Label Style="{StaticResource LabelText}" Content="鎺у埗鎶ヨ"/>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="椹卞姩鎶ヨ"/>
-                                        <Label Style="{StaticResource LabelText}" Content="鎺у埗鎶ヨ"/>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="鏁呴殰椹卞姩"/>
-                                        <Label Style="{StaticResource LabelText}" Content="0"/>
-                                    </StackPanel>
-                                </StackPanel>
-                            </GroupBox>
+                        <Grid Grid.Row="1" dp:GridHelper.Space="10" x:Name="panel">
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition/>
+                            </Grid.RowDefinitions>
 
-                            <GroupBox Header="浣嶇疆" Padding="10">
-                                <StackPanel Style="{StaticResource ButtonGroup}">
-                                    <StackPanel>
-                                        <Label Style="{StaticResource BDesc}" Content="褰撳墠浣嶇疆"/>
-                                        <Label Style="{StaticResource LabelText}" Content="0"/>
-                                    </StackPanel>
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="Auto"/>
+                                <ColumnDefinition Width="Auto"/>
+                                <ColumnDefinition Width="Auto"/>
+                            </Grid.ColumnDefinitions>
 
-                                    <StackPanel>
-                                        <Label Style="{StaticResource BDesc}" Content="褰撳墠閫熷害"/>
-                                        <Label Style="{StaticResource LabelText}" Content="0"/>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource BDesc}" Content="鍔犻�熷害"/>
-                                        <Label Style="{StaticResource LabelText}" Content="0"/>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource BDesc}" Content="鍑忛�熷害"/>
-                                        <Label Style="{StaticResource LabelText}" Content="0"/>
-                                    </StackPanel>
-                                </StackPanel>
-                            </GroupBox>
-
-                            <GroupBox Header="鐘舵��" Padding="10">
-                                <StackPanel Style="{StaticResource ButtonGroup}">
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="浣胯兘"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="鍑嗗濂�"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="杩愯涓�"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="鏁呴殰"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="杞存姤璀�"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <Label Style="{StaticResource YDesc}" Content="浠g爜"/>
-                                        <Label Style="{StaticResource LabelText}">
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                </StackPanel>
-                            </GroupBox>
-
-                            <GroupBox Header="闄愪綅浼犳劅鍣�" Padding="10">
-                                <StackPanel Style="{StaticResource ButtonGroup}" Orientation="Vertical">
-                                    <StackPanel Orientation="Horizontal">
-                                        <Label Style="{StaticResource YDesc}" Content="浣胯兘"/>
-                                        <Label Style="{StaticResource LabelText}" BorderThickness="0,1,1,1" >
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-
-                                    <StackPanel Orientation="Horizontal">
-                                        <Label Style="{StaticResource YDesc}" Content="鍑嗗濂�"/>
-                                        <Label Style="{StaticResource LabelText}" BorderThickness="0,1,1,1" >
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                    <StackPanel Orientation="Horizontal">
-                                        <Label Style="{StaticResource YDesc}" Content="杩愯涓�"/>
-                                        <Label Style="{StaticResource LabelText}" BorderThickness="0,1,1,1" >
-                                            <Ellipse Height="30" Width="30" Fill="{StaticResource Normal}" />
-                                        </Label>
-                                    </StackPanel>
-                                </StackPanel>
-                            </GroupBox>
-
-                            <GroupBox Header="瀵稿姩" Padding="10">
-                                <StackPanel Style="{StaticResource ButtonGroup}">
-                                    <Button Style="{StaticResource PrimaryButton}">瀵稿姩</Button>
-
-                                    <Label Style="{StaticResource LabelText}" BorderThickness="1" Content="鍑嗗濂�"/>
-
-                                    <Button Style="{StaticResource PrimaryButton}">姝e悜</Button>
-                                </StackPanel>
-                            </GroupBox>
-
-                            <GroupBox Header="鎿嶄綔" Padding="10">
+                            <GroupBox Header="{DynamicResource App.Opt}" Padding="10">
                                 <Grid dp:GridHelper.Space="10">
                                     <Grid.RowDefinitions>
                                         <RowDefinition Height="Auto"/>
@@ -340,32 +263,264 @@
                                         <RowDefinition Height="Auto"/>
                                         <RowDefinition Height="Auto"/>
                                         <RowDefinition Height="Auto"/>
+                                        <RowDefinition Height="Auto"/>
                                     </Grid.RowDefinitions>
-                                    <Button Style="{StaticResource PrimaryButton}">璋冭瘯妯″紡</Button>
-                                    <UniformGrid Grid.Row="1" Columns="2">
+                                    <Grid>
+                                        <Grid.ColumnDefinitions>
+                                            <ColumnDefinition Width="Auto"/>
+                                            <ColumnDefinition/>
+                                        </Grid.ColumnDefinitions>
+                                        <Label 
+                                            Style="{StaticResource BDesc}" MinWidth="80" Padding="0"
+                                            Content="{DynamicResource svo.product.model}"/>
+                                        <ComboBox Grid.Column="1"  x:Name="productInput" 
+IsEnabled="{Binding HasSelectedServo}"
+SelectedValue="{Binding SelectedProduct}"
+ItemsSource="{Binding ServoProducts}"
+SelectedValuePath="ProgramCode"
+DisplayMemberPath="Model"
+                                                  BorderThickness="0,1,1,1"
+                                    FontSize="14"
+                                    BorderBrush="Black"
+Style="{StaticResource FormComboxStyle}" MinWidth="180" />
+                                    </Grid>
+
+                                    <Button Grid.Row="1" Style="{StaticResource PrimaryButton}"
+                                            Content="{DynamicResource svo.debugMode}"/>
+                                    <UniformGrid Grid.Row="2" Columns="2">
+                                        <Button Margin="0,0,5,0" Tag="Enable" Click="Servo_Click">
+                                            <Button.Style>
+                                                <Style TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
+                                                    <Setter Property="Content" Value="{DynamicResource svo.enable}"/>
+                                                    <Style.Triggers>
+                                                        <DataTrigger Binding="{Binding Enable}" Value="1">
+                                                            <Setter Property="Content" Value="{DynamicResource svo.disable}"/>
+                                                        </DataTrigger>
+                                                    </Style.Triggers>
+                                                </Style>
+                                            </Button.Style>
+                                        </Button>
                                         <Button Style="{StaticResource PrimaryButton}"
-                                                Margin="0,0,5,0">璋冭瘯妯″紡</Button>
-                                        <Button Style="{StaticResource PrimaryButton}"
-                                                Margin="5,0,0,0">璋冭瘯妯″紡</Button>
+ Margin="5,0,0,0" Content="{DynamicResource svo.reset}" Tag="Reset"
+                                                PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                                PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp" />
                                     </UniformGrid>
-                                    <Button Grid.Row="2" Style="{StaticResource PrimaryButton}">鍒濆鍖�</Button>
-                                    <Button Grid.Row="3" Style="{StaticResource PrimaryButton}">鍋滄</Button>
-                                    <UniformGrid Grid.Row="4" Columns="3">
-                                        <Button Style="{StaticResource PrimaryButton}">璋冭瘯妯″紡</Button>
-                                        <Label Style="{StaticResource LabelText}" 
-                                               Margin="10,0,10,0"
-                                               BorderThickness="1" Content="鍑嗗濂�"/>
-                                        <Button Style="{StaticResource PrimaryButton}">璋冭瘯妯″紡</Button>
+                                    <Button Grid.Row="3" Style="{StaticResource PrimaryButton}"
+                                            Content="{DynamicResource svo.init}"
+                                            Tag="Initialization"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"/>
+                                    <Button Grid.Row="4" Style="{StaticResource PrimaryButton}"
+                                            Content="{DynamicResource svo.stop}"
+                                            Tag="Stop"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"/>
+                                    <UniformGrid Grid.Row="5" Columns="3">
+                                        <Button Style="{StaticResource PrimaryButton}"
+                                                Content="{DynamicResource svo.JOG+}"
+                                                Tag="JoGadd"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"/>
+                                        <Label Style="{StaticResource LabelText}" MinWidth="90"
+Margin="10,0,10,0"
+BorderThickness="1" MouseLeftButtonUp="Label_MouseLeftButtonUp" Tag="JogVelocity" Content="{Binding JogVelocity}"/>
+                                        <Button Style="{StaticResource PrimaryButton}"
+                                                Content="{DynamicResource svo.JOG-}"
+                                                Tag="JOGsub"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"/>
                                     </UniformGrid>
                                 </Grid>
-                                
                             </GroupBox>
+                            <StackPanel Grid.Column="1">
+                                <GroupBox Header="{DynamicResource svo.position}">
+                                    <Grid dp:GridHelper.Space="10">
+                                        <Grid.RowDefinitions>
+                                            <RowDefinition Height="Auto"/>
+                                            <RowDefinition Height="Auto"/>
+                                        </Grid.RowDefinitions>
+                                        <Grid.ColumnDefinitions>
+                                            <ColumnDefinition/>
+                                            <ColumnDefinition/>
+                                            <ColumnDefinition/>
+                                            <ColumnDefinition/>
+                                        </Grid.ColumnDefinitions>
 
+                                        <StackPanel>
+                                            <Label Style="{StaticResource BDesc}" 
+                                               Content="{DynamicResource svo.currentPosition}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding CurrentPosition}"/>
+                                        </StackPanel>
 
-                        </WrapPanel>
+                                        <StackPanel Grid.Column="1">
+                                            <Label Style="{StaticResource BDesc}" 
+                                               Content="{DynamicResource svo.currentSpeed}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding CurrentSpeed}"/>
+                                        </StackPanel>
+                                        <StackPanel Grid.Column="2">
+                                            <Label Style="{StaticResource BDesc}" 
+                                               Content="{DynamicResource svo.OverAcc}"/>
+                                            <Label Style="{StaticResource LabelText}"
+                                                   MouseLeftButtonUp="Label_MouseLeftButtonUp"
+                                                   Tag="OverAcc"
+                                                   Content="{Binding OverAcc}"/>
+                                        </StackPanel>
+                                        <StackPanel Grid.Column="3">
+                                            <Label Style="{StaticResource BDesc}" 
+                                                   Content="{DynamicResource svo.OverDec}"/>
+                                            <Label Style="{StaticResource LabelText}"
+                                                   MouseLeftButtonUp="Label_MouseLeftButtonUp" 
+                                                   Tag="OverDec"
+                                                   Content="{Binding OverDec}"/>
+                                        </StackPanel>
+
+                                        <StackPanel Grid.Row="1">
+                                            <Label Style="{StaticResource BDesc}"
+                                               Content="{DynamicResource svo.HMIPosition}"/>
+                                            <Label Style="{StaticResource LabelText}" 
+                                                   MouseLeftButtonUp="Label_MouseLeftButtonUp" 
+                                                   Tag="HMIPosition" Content="{Binding HMIPosition}"/>
+                                        </StackPanel>
+
+                                        <StackPanel Grid.Row="1" Grid.Column="1">
+                                            <Label Style="{StaticResource BDesc}"
+                                               Content="{DynamicResource svo.HMISpeed}"/>
+                                            <Label Style="{StaticResource LabelText}" 
+                                                   MouseLeftButtonUp="Label_MouseLeftButtonUp" 
+                                                   Tag="HMISpeed" 
+                                                   Content="{Binding HMISpeed}"/>
+                                        </StackPanel>
+                                        <Button Grid.Row="1" Grid.Column="2" 
+                                            Grid.ColumnSpan="2" 
+                                            Style="{StaticResource PrimaryButton}"
+                                            Tag="AbsExecute"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"
+                                            Content="{DynamicResource svo.absExecute}"/>
+                                    </Grid>
+                                </GroupBox>
+
+                                <GroupBox Header="{DynamicResource svo.inching}">
+                                    <DockPanel>
+                                        <Button DockPanel.Dock="Left" 
+                                                Margin="0,0,10,0"
+                                                Style="{StaticResource PrimaryButton}"
+                                                Tag="Inch"
+                                            PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown"
+                                            PreviewMouseLeftButtonUp="Button_PreviewMouseLeftButtonUp"
+                                                Content="{DynamicResource svo.inching}"/>
+                                        <Button DockPanel.Dock="Right"
+                                                Tag="Dir" Click="Servo_Click">
+                                            <Button.Style>
+                                                <Style TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
+                                                    <Setter Property="Content" Value="{DynamicResource svo.forward}"/>
+                                                    <Style.Triggers>
+                                                        <DataTrigger Binding="{Binding Dir}" Value="1">
+                                                            <Setter Property="Content" Value="{DynamicResource svo.backward}"/>
+                                                        </DataTrigger>
+                                                    </Style.Triggers>
+                                                </Style>
+                                            </Button.Style>
+                                        </Button>
+                                        <Label 
+                                             Margin="0,0,10,0"
+                                            Style="{StaticResource LabelText}" 
+                                            MouseLeftButtonUp="Label_MouseLeftButtonUp"
+                                            Tag="InchDistance"
+                                            BorderThickness="1" Content="{Binding InchDistance}"/>
+                                    </DockPanel>
+                                </GroupBox>
+                            </StackPanel>
+
+                            <StackPanel Grid.Column="2" HorizontalAlignment="Center">
+                                <GroupBox Header="{DynamicResource svo.alarm}">
+                                    <StackPanel Style="{StaticResource ButtonGroup}">
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}" 
+                   Content="{DynamicResource svo.controlAlarm}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding AlarmCode}"/>
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                   Content="{DynamicResource svo.driverAlarm}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding WarnCode}"/>
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}" 
+                   Content="{DynamicResource svo.faultDriven}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding FaultCode}"/>
+                                        </StackPanel>
+                                    </StackPanel>
+                                </GroupBox>
+
+                                <GroupBox Header="{DynamicResource svo.limitSensor}">
+                                    <StackPanel Style="{StaticResource ButtonGroup}">
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}" 
+                                                   Content="{DynamicResource svo.limit+}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding PositiveLimit}" />
+                                        </StackPanel>
+
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}" 
+                                                   Content="{DynamicResource svo.limit0}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding HomeSwitch}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.limit-}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding NegativeLimit}" />
+                                        </StackPanel>
+                                    </StackPanel>
+                                </GroupBox>
+                            </StackPanel>
+
+                            <StackPanel Grid.Row="1" Grid.ColumnSpan="2">
+                                <GroupBox Header="{DynamicResource svo.status}">
+                                    <StackPanel Style="{StaticResource ButtonGroup}" HorizontalAlignment="Center">
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.enable}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding AxisEnabled}"/>
+                                        </StackPanel>
+
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.isReady}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding ReadyOK}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.isRunning}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding Running}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+           Content="{DynamicResource svo.reOriginOk}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding Homed}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.fault}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding AxisError}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.axisAlarm}"/>
+                                            <Ellipse Style="{StaticResource LightBall}" DataContext="{Binding AxisWarn}" />
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <Label Style="{StaticResource YDesc}"
+                                                   Content="{DynamicResource svo.code}"/>
+                                            <Label Style="{StaticResource ReadLabel}" Content="{Binding PosCode}"/>
+                                        </StackPanel>
+                                    </StackPanel>
+                                </GroupBox>
+                            </StackPanel>
+                        </Grid>
                     </Grid>
                 </Border>
             </DockPanel>
         </Grid>
     </Border>
-</UserControl>
+</hb:PluginControl>

--
Gitblit v1.9.1