Commit de7b534e authored by 潘栩锋's avatar 潘栩锋 🚴

1. 修复 修复IBC, 收卷,称重当读取旧配置文件时,有不支持的property,点WdDRList 界面会出错

2. 修复 修复方型图标按钮 IsEnable = false 时,整个按钮前景背景都是灰色
3. 优化 称重, 使用  “切边回收” 代替 “切边不回收 ×”
4. 添加 添加 和美有股份的公司 锐发 IBC与收卷资料
parent 15a9758f
......@@ -30,7 +30,7 @@ namespace FLY.DownBlowing.UI.Server
public WdDRList()
{
InitializeComponent();
}
public void Init(Modbus.WithThread.ModbusMapper_Client plc)
{
......@@ -43,6 +43,11 @@ namespace FLY.DownBlowing.UI.Server
//获取描述
var type = dr.owner.GetType();
var propertyInfo = type.GetProperty(dr.propertyName);
if (propertyInfo == null)
{
//这个属性已经不存在,跳过
continue;
}
var attributes = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
string description = "";
if (attributes.Length > 0)
......
......@@ -51,7 +51,7 @@ using System.Windows;
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("8.0.0.0")]
[assembly: AssemblyFileVersion("8.0.0.0")]
[assembly: AssemblyVersion("8.1.0.0")]
[assembly: AssemblyFileVersion("8.1.0.0")]
[assembly: Guid("32104657-86E9-4380-9113-606589E6D812")]
......@@ -138,7 +138,10 @@ namespace FLY.FeedbackRenZiJia.Server
/// </summary>
public int HeatsOfGroup { get; set; } = 12;
/// <summary>
/// 测试时,加热每个动作等待的时间 3秒
/// </summary>
public int HeatWait { get; set; } = 3;
#endregion
#endregion
......@@ -273,7 +276,8 @@ namespace FLY.FeedbackRenZiJia.Server
Misc.BindingOperations.SetBinding(mHeatCheck, nameof(mHeatCheck.CheckNo), this, nameof(CheckNo));
Misc.BindingOperations.SetBinding(mHeatCheck, nameof(mHeatCheck.Bads), this, nameof(Bads));
Misc.BindingOperations.SetBinding(this, nameof(HeatsOfGroup), mHeatCheck, nameof(mHeatCheck.HeatsOfGroup));
Misc.BindingOperations.SetBinding(this, nameof(HeatWait), mHeatCheck, nameof(mHeatCheck.HEAT_WAIT));
}
void mHeatCheck_PropertyChanged(object sender, PropertyChangedEventArgs e)
......@@ -983,7 +987,12 @@ namespace FLY.FeedbackRenZiJia.Server
/// <summary>
/// 偏移量图, Y轴显示比例
/// </summary>
public double OffsetGraphYRangePercent = 3;
public double OffsetGraphYRangePercent = 3;
/// <summary>
/// 测试时,加热每个动作等待的时间 3秒
/// </summary>
public int HeatWait = 3;
#endregion
}
......
......@@ -58,7 +58,7 @@
<StackPanel Visibility="{Binding IsSearchByTime,Converter={StaticResource visbilityconv},ConverterParameter=CollapsedWhenTrue}" >
<TextBlock Style="{StaticResource Styles.Text.FieldHeader.Editable}" Text="{StaticResource str.IBC.PgWidthTable.SearchId}" />
<StackPanel Orientation="Horizontal">
<TextBox Style="{StaticResource TextBoxStyle_FieldContent}" Text="{Binding SearchId}" />
<TextBox Style="{StaticResource Styles.Text.FieldContent.Input.Card}" Text="{Binding SearchId}" />
</StackPanel>
</StackPanel>
<DatePicker
......@@ -92,32 +92,16 @@
<Run Text="{StaticResource str.IBC.PgWidthTable.Current}"/><Run Text="{Binding Id,Mode=OneWay}"/>
</TextBlock>
</StackPanel>
<Button Command="{Binding NextViewCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding NextViewCmd}">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Command="{Binding ToNewestCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding ToNewestCmd}">
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
</Button>
......@@ -167,7 +151,7 @@
<DataGridTextColumn Binding="{Binding OutletAirFreq,StringFormat={}{0:F1}}" >
<DataGridTextColumn.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource Styles.Text.FieldHeader}" Text="出风" />
<TextBlock Style="{StaticResource Styles.Text.FieldHeader}" Text="{StaticResource str.IBC.PgWidthTable.OutletAirFreq}" />
<TextBlock Style="{StaticResource Styles.Text.FieldContent.Unit}" Text="Hz"/>
</StackPanel>
</DataGridTextColumn.Header>
......
......@@ -4,7 +4,6 @@
>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Converters.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Styles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.IBC.UI.Client;component/Themes/Color.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--字体大小-->
......
......@@ -46,7 +46,7 @@
</ResourceDictionary>
</UserControl.Resources>
<Border Style="{StaticResource BorderStyle_module}" Background="#FF50B7F9" >
<Border Style="{StaticResource Styles.Module.Border}" Background="#FF50B7F9" >
<Grid d:DataContext="{StaticResource viewModel}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
......
......@@ -26,32 +26,16 @@
<iconPacks:PackIconMaterial Kind="ArrowLeft" />
</Grid>
</Button>
<Button Click="btnNextClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNextClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Click="btnNewestClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNewestClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
<!--当不是最新, 弹出 自动按[最新] 倒计时-->
......
......@@ -30,7 +30,7 @@ namespace FLY.IBC.UI.Server
public WdDRList()
{
InitializeComponent();
}
public void Init(Modbus.WithThread.ModbusMapper_Client plc)
{
......@@ -43,6 +43,11 @@ namespace FLY.IBC.UI.Server
//获取描述
var type = dr.owner.GetType();
var propertyInfo = type.GetProperty(dr.propertyName);
if (propertyInfo == null)
{
//这个属性已经不存在,跳过
continue;
}
var attributes = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
string description = "";
if (attributes.Length > 0)
......
......@@ -49,28 +49,14 @@
<Run Text="{StaticResource str.Blowing.Graph.CurrentID}"/>:<Run Text="{Binding Id,Mode=OneWay}"/>
</TextBlock>
</StackPanel>
<Button Click="btnNextClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNextClick">
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Button>
<Button Click="btnNewestClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNewestClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
<!--当不是最新, 弹出 自动按[最新] 倒计时-->
......
......@@ -66,16 +66,9 @@
</Button.Style>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Button>
<Button Click="btnNewestClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNewestClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
<!--当不是最新, 弹出 自动按[最新] 倒计时-->
......@@ -128,30 +121,14 @@
</GroupBox.Header>
<StackPanel Orientation="Horizontal" DataContext="{Binding DataContext,ElementName=grid_trend}">
<Button Click="btnPreSelectedClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding CanSelested}" Value="False">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnPreSelectedClick">
<iconPacks:PackIconMaterial Kind="ArrowLeft" />
</Button>
<Button Click="btnNextSelectedClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding CanSelested}" Value="False">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNextSelectedClick">
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Button>
</StackPanel>
......
......@@ -14,7 +14,7 @@
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Styles.xaml"/>
<!--项目字符串-->
<ResourceDictionary Source="Themes/StringResources/en/StringResource.xaml"/>
<ResourceDictionary Source="Themes/StringResources/zh/StringResource.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="GroupBox" />
......
......@@ -119,30 +119,16 @@
<Run Text="{StaticResource str.Weight.FlowTable.Current}"/>:<Run Text="{Binding Id,Mode=OneWay}"/>
</TextBlock>
</StackPanel>
<Button Command="{Binding NextViewCmd}" >
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding NextViewCmd}" >
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Command="{Binding ToNewestCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding ToNewestCmd}">
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
</Button>
......
......@@ -76,13 +76,13 @@ namespace FLY.Weight.UI.Client
sp.Children.Add(
new TextBlock()
{
Style = this.FindResource("TextBlockStyle_FieldHeader") as Style,
Style = this.FindResource("Styles.Text.FieldHeader") as Style,
Text = $"{name}比例"
});
sp.Children.Add(
new TextBlock()
{
Style = this.FindResource("TextBlockStyle_FieldContent_mm") as Style,
Style = this.FindResource("Styles.Text.FieldContent.Unit") as Style,
Text = "%",
Margin = new Thickness(10, 0, 10, 0)
});
......
......@@ -98,32 +98,16 @@
<Run Text="{StaticResource str.Weight.PgMixTable.Current}"/>:<Run Text="{Binding Id,Mode=OneWay}"/>
</TextBlock>
</StackPanel>
<Button Command="{Binding NextViewCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding NextViewCmd}">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Command="{Binding ToNewestCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding ToNewestCmd}">
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
</Button>
......
......@@ -93,36 +93,19 @@
<Run Text="{StaticResource str.Weight.PgRollMixTable.Current}"/>:<Run Text="{Binding Id,Mode=OneWay}"/>
</TextBlock>
</StackPanel>
<Button Command="{Binding NextViewCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding NextViewCmd}">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Command="{Binding ToNewestCmd}">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Command="{Binding ToNewestCmd}">
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
</Button>
<TextBlock Style="{StaticResource Styles.Text.FieldContent}" VerticalAlignment="Center"
Text="{StaticResource str.Weight.PgRollMixTable.Loading}" Visibility="{Binding IsLoading,Converter={StaticResource visbilityconv}}"/>
</StackPanel>
......
......@@ -112,12 +112,4 @@
<Setter Property="Background" Value="Gray"/>
<Setter Property="Foreground" Value="White"/>
</Style>
<Style TargetType="TextBlock" x:Key="TextBlockStyle_FieldHeader">
<Setter Property="Margin" Value="3,0" />
<Setter Property="Foreground" Value="#FF3B3B3B" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontFamily" Value="YouYuan" />
<Setter Property="TextAlignment" Value="Left" />
</Style>
</ResourceDictionary>
......@@ -20,6 +20,7 @@
<!--UcTotalFlowV3_2.xaml-->
<system:String x:Key="str.Weight.MainGraph.IsRimNoRecycle2" xml:space="preserve">Trimming&#13;No Recy.</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimRecycle2" xml:space="preserve">Trimming&#13;Recycle</system:String>
<system:String x:Key="str.Weight.MainGraph.RimWidth2" xml:space="preserve">Trimming&#13;Width</system:String>
<system:String x:Key="str.Weight.MainGraph.TotalFilmWidth2" xml:space="preserve">Total&#13;Width</system:String>
<system:String x:Key="str.Weight.MainGraph.ActFilmWidth2"
......@@ -89,7 +90,8 @@
<system:String x:Key="str.Weight.MainGraph.RimWidth">Trim Width</system:String>
<system:String x:Key="str.Weight.MainGraph.SetThickness">Target THK</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimNoRecycle">Trim No Recy.</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimRecycle">Trim Recycle</system:String>
<system:String x:Key="str.Weight.MainGraph.Error">Error</system:String>
<system:String x:Key="str.Weight.MainGraph.SetThicknessMustGreaterThan10">Target THK &gt; 10um</system:String>
<system:String x:Key="str.Weight.MainGraph.TotalFilmWidthMustGreaterThan300">Total Width &gt; 300um</system:String>
......
......@@ -20,6 +20,7 @@
<!--UcTotalFlowV3_2.xaml-->
<system:String x:Key="str.Weight.MainGraph.IsRimNoRecycle2" xml:space="preserve">切边&#13;不回收</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimRecycle2" xml:space="preserve">切边&#13;回收</system:String>
<system:String x:Key="str.Weight.MainGraph.RimWidth2" xml:space="preserve">切边&#13;宽度</system:String>
<system:String x:Key="str.Weight.MainGraph.TotalFilmWidth2" xml:space="preserve">吹膜&#13;宽度</system:String>
<system:String x:Key="str.Weight.MainGraph.ActFilmWidth2" xml:space="preserve">收卷&#13;宽度</system:String>
......@@ -83,6 +84,7 @@
<system:String x:Key="str.Weight.MainGraph.RimWidth">切边</system:String>
<system:String x:Key="str.Weight.MainGraph.SetThickness">设定厚度</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimNoRecycle">边料不回收</system:String>
<system:String x:Key="str.Weight.MainGraph.IsRimRecycle">边料回收</system:String>
<system:String x:Key="str.Weight.MainGraph.Error">异常</system:String>
<system:String x:Key="str.Weight.MainGraph.SetThicknessMustGreaterThan10">设置厚度 必须大于 10um</system:String>
......
......@@ -31,32 +31,16 @@
<iconPacks:PackIconMaterial Kind="ArrowLeft" />
</Grid>
</Button>
<Button Click="btnNextClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNextClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowRight" />
</Grid>
</Button>
<Button Click="btnNewestClick">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsNewest}" Value="True">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button Style="{StaticResource Styles.Button.Icon.Rectangle}"
IsEnabled="{Binding IsNewest,Converter={StaticResource brconv}}"
Click="btnNewestClick">
<Grid>
<iconPacks:PackIconMaterial Kind="ArrowCollapseRight" />
<!--当不是最新, 弹出 自动按[最新] 倒计时-->
......
......@@ -16,9 +16,25 @@
<Run Text="{Binding Accessory.TotalFilmWidth,StringFormat={}{0:F0}}" Style="{StaticResource RunStyle_text_activity}" />
<Run Text="mm" Style="{StaticResource RunStyle_unit}" /></TextBlock>
</StackPanel>
<StackPanel Margin="3">
<!--<StackPanel Margin="3">
<TextBlock Text="{StaticResource str.Weight.MainGraph.IsRimNoRecycle}" Style="{StaticResource TextBlockStyle_title_activity}" />
<ToggleButton Style="{StaticResource ToggleButtonStyle1}" IsChecked="{Binding Accessory.IsRimNoRecycle}" HorizontalAlignment="Left" IsEnabled="False" />
</StackPanel>-->
<StackPanel Margin="3" Background="{StaticResource Color_background2}">
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource TextBlockStyle_title_activity}">
<Setter Property="Text" Value="{StaticResource str.Weight.MainGraph.IsRimNoRecycle}"/>
<Setter Property="Foreground" Value="{StaticResource Color_off}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Accessory.IsRimNoRecycle}" Value="False">
<Setter Property="Text" Value="{StaticResource str.Weight.MainGraph.IsRimRecycle}"/>
<Setter Property="Foreground" Value="{StaticResource Color_on}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
<StackPanel Margin="3">
<TextBlock Text="{StaticResource str.Weight.MainGraph.RimWidth}" Style="{StaticResource TextBlockStyle_title_activity}" />
......
......@@ -97,8 +97,23 @@
<Button Style="{StaticResource Styles.Button.Empty}" Background="Transparent" Click="button_thickness_Click" >
<StackPanel Orientation="Horizontal">
<StackPanel Margin="2">
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{StaticResource str.Weight.MainGraph.IsRimNoRecycle2}" Style="{StaticResource TextBlockStyle_title_activity}" />
<StackPanel Orientation="Horizontal" Background="{StaticResource Color_background2}" >
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource TextBlockStyle_title_activity}">
<Setter Property="Text" Value="{StaticResource str.Weight.MainGraph.IsRimNoRecycle2}"/>
<Setter Property="Foreground" Value="{StaticResource Color_off}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Accessory.IsRimNoRecycle}" Value="False">
<Setter Property="Text" Value="{StaticResource str.Weight.MainGraph.IsRimRecycle2}"/>
<Setter Property="Foreground" Value="{StaticResource Color_on}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<!--<TextBlock Text="{StaticResource str.Weight.MainGraph.IsRimNoRecycle2}" Style="{StaticResource TextBlockStyle_title_activity}" />
<Grid Style="{StaticResource Styles.Shadow}" VerticalAlignment="Center">
<iconPacks:PackIconMaterial >
<iconPacks:PackIconMaterial.Style>
......@@ -115,7 +130,7 @@
</iconPacks:PackIconMaterial.Style>
</iconPacks:PackIconMaterial>
</Grid>
</Grid>-->
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{StaticResource str.Weight.MainGraph.RimWidth2}" Style="{StaticResource TextBlockStyle_title_activity}"/>
......
......@@ -30,7 +30,7 @@ namespace FLY.Weight.UI.Server
public WdDRList()
{
InitializeComponent();
}
public void Init(Modbus.WithThread.ModbusMapper_Client plc)
{
......@@ -43,6 +43,11 @@ namespace FLY.Weight.UI.Server
//获取描述
var type = dr.owner.GetType();
var propertyInfo = type.GetProperty(dr.propertyName);
if (propertyInfo == null)
{
//这个属性已经不存在,跳过
continue;
}
var attributes = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
string description = "";
if (attributes.Length > 0)
......
......@@ -20,13 +20,17 @@ namespace FLY.Weight2.UI.Server
/// <summary>
/// DRList.xaml 的交互逻辑
/// </summary>
public partial class WdDRList : Window
public partial class WdDRList : Window, System.ComponentModel.INotifyPropertyChanged
{
ObservableCollection<DataToRegsView> dataToRegsViews = new ObservableCollection<DataToRegsView>();
Modbus.WithThread.ModbusMapper_Client plc;
public event PropertyChangedEventHandler PropertyChanged;
public WdDRList()
{
InitializeComponent();
}
public void Init(Modbus.WithThread.ModbusMapper_Client plc)
{
......@@ -39,6 +43,11 @@ namespace FLY.Weight2.UI.Server
//获取描述
var type = dr.owner.GetType();
var propertyInfo = type.GetProperty(dr.propertyName);
if (propertyInfo == null)
{
//这个属性已经不存在,跳过
continue;
}
var attributes = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
string description = "";
if (attributes.Length > 0)
......@@ -49,19 +58,23 @@ namespace FLY.Weight2.UI.Server
dataToRegsViews.Add(new DataToRegsView()
{
Index = i,
dr = dr,
Addr = dr.addr,
RegAddr = dr.regAddr,
DataArea = dr.dataArea,
OwnerName = dr.ownerName,
IsNeedUpdate = dr.isNeedUpdate,
PropertyName = dr.propertyName,
Description = description,
Value = dr.value
});
}); ;
}
plc.PropertyChanged += Plc_PropertyChanged;
plc.NameDataChanged += Plc_NameDataChanged;
dataGrid.ItemsSource = dataToRegsViews;
this.DataContext = this;
}
private void Plc_NameDataChanged(object sender, DataToRegs dr)
......@@ -88,14 +101,122 @@ namespace FLY.Weight2.UI.Server
}
}
}
public int SearchIndex { get; private set; } = -1;
public string SearchText { get; set; }
private void btnSearchDownClick(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(SearchText))
{
MessageBox.Show("输入为空", "异常", MessageBoxButton.OK, MessageBoxImage.Hand);
return;
}
int newSearchIndex = -1;
for (int i = SearchIndex + 1; i < dataToRegsViews.Count(); i++)
{
if (dataToRegsViews[i].OwnerName.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].PropertyName.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].Description.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].RegAddr.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
}
if (newSearchIndex != -1)
{
SearchIndex = newSearchIndex;
dataGrid.SelectedItem = dataToRegsViews[newSearchIndex];
dataGrid.ScrollIntoView(dataGrid.SelectedItem);
return;
}
else
{
SearchIndex = -1;
MessageBox.Show("不能找到更多", "异常", MessageBoxButton.OK, MessageBoxImage.Hand);
return;
}
}
private void btnSearchUpClick(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(SearchText))
{
MessageBox.Show("输入为空", "异常", MessageBoxButton.OK, MessageBoxImage.Hand);
return;
}
int newSearchIndex = -1;
for (int i = SearchIndex - 1; i >= 0 && i < dataToRegsViews.Count(); i--)
{
if (dataToRegsViews[i].OwnerName.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].PropertyName.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].Description.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
if (dataToRegsViews[i].RegAddr.Contains(SearchText))
{
//找到了
newSearchIndex = i;
break;
}
}
if (newSearchIndex != -1)
{
SearchIndex = newSearchIndex;
dataGrid.SelectedItem = dataToRegsViews[newSearchIndex];
return;
}
else
{
SearchIndex = -1;
MessageBox.Show("不能找到更多", "异常", MessageBoxButton.OK, MessageBoxImage.Hand);
return;
}
}
}
/// <summary>
/// 数据映射的类;
/// Data: PC 属性
/// Regs: PLC 对象(寄存器、线圈)
/// </summary>
public class DataToRegsView : INotifyPropertyChanged
public class DataToRegsView : System.ComponentModel.INotifyPropertyChanged
{
public int Index { get; set; }
public DataToRegs dr;
/// <summary>
/// 对应 PLC寄存器区 coil or register
......@@ -103,10 +224,16 @@ namespace FLY.Weight2.UI.Server
public PLCAddressArea DataArea { get; set; }
/// <summary>
/// PLC 首地址
/// PLC寄存器 首地址
/// </summary>
public int Addr { get; set; }
/// <summary>
/// 寄存器 原始地址字符串
/// </summary>
public string RegAddr { get; set; }
public string OwnerName { get; set; }
/// <summary>
/// object 的 property 名称, 只能是 数字类型都是double, 剩下就是 bool
/// </summary>
......
......@@ -43,6 +43,11 @@ namespace FLY.Winder.UI.Server
//获取描述
var type = dr.owner.GetType();
var propertyInfo = type.GetProperty(dr.propertyName);
if (propertyInfo == null)
{
//这个属性已经不存在,跳过
continue;
}
var attributes = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
string description = "";
if (attributes.Length > 0)
......

using Misc;
using System.ComponentModel;
namespace FLY.Winder.Common
{
public class WinderInsideOutside : INotifyPropertyChanged
{
#region 辅助代码生成
/// <summary>
/// 收卷实际m
/// </summary>
[Description("收卷实际m")]
public float MeasureLen{ get; set; }
/// <summary>
/// 收卷设定m
/// </summary>
[Description("收卷设定m")]
public float MeasureLenSet{ get; set; }
/// <summary>
/// 收卷预警m
/// </summary>
[Description("收卷预警m")]
public float MeasurePreWarning{ get; set; }
/// <summary>
/// 收卷计量关
/// </summary>
[Description("收卷计量关")]
public bool MeasureStop{ get; set; }
/// <summary>
/// 收卷计量清零(┷)
/// </summary>
[Description("收卷计量清零(┷)")]
public bool MeasureReset{ get; set; }
/// <summary>
/// 收卷翻转点动(┷)
/// </summary>
[Description("收卷翻转点动(┷)")]
public bool TurnoverInching{ get; set; }
/// <summary>
/// 收卷切膜飞刀(┷)
/// </summary>
[Description("收卷切膜飞刀(┷)")]
public bool CuttingFilm{ get; set; }
/// <summary>
/// 收卷翻转原点(┷)
/// </summary>
[Description("收卷翻转原点(┷)")]
public bool TurnoverOrg{ get; set; }
/// <summary>
/// 收卷压臂平移(┷)
/// </summary>
[Description("收卷压臂平移(┷)")]
public bool PressureArmOffset{ get; set; }
/// <summary>
/// 收卷翻转上位等待(s)
/// </summary>
[Description("收卷翻转上位等待(s)")]
public float TurnoverUpperWait{ get; set; }
/// <summary>
/// 收卷翻转原点延时(s)
/// </summary>
[Description("收卷翻转原点延时(s)")]
public float TurnoverOrgDelay{ get; set; }
/// <summary>
/// 收卷翻转返回延时(s)
/// </summary>
[Description("收卷翻转返回延时(s)")]
public float TurnoverBackDelay{ get; set; }
/// <summary>
/// 收卷锯齿切膜延时(s)
/// </summary>
[Description("收卷锯齿切膜延时(s)")]
public float CuttingFilmDelay{ get; set; }
/// <summary>
/// 收卷锯齿切膜时间(s)
/// </summary>
[Description("收卷锯齿切膜时间(s)")]
public float CuttingFilmElapsed{ get; set; }
/// <summary>
/// 收卷压臂返回时间(s)
/// </summary>
[Description("收卷压臂返回时间(s)")]
public float PressureArmBackElapsed{ get; set; }
/// <summary>
/// 收卷气涨轴检测报警(s)
/// </summary>
[Description("收卷气涨轴检测报警(s)")]
public float AirRollerCheck{ get; set; }
/// <summary>
/// 收卷一次平移时间(s)
/// </summary>
[Description("收卷一次平移时间(s)")]
public float OffsetElapsed{ get; set; }
/// <summary>
/// 收卷平移停顿时间(s)
/// </summary>
[Description("收卷平移停顿时间(s)")]
public float ElapsedWait{ get; set; }
/// <summary>
/// 收卷接料限幅
/// </summary>
[Description("收卷接料限幅")]
public float TapeLimit{ get; set; }
/// <summary>
/// 收卷设定张力(kg)
/// </summary>
[Description("收卷设定张力(kg)")]
public float TensionKgSet{ get; set; }
/// <summary>
/// 收卷实际张力(kg)
/// </summary>
[Description("收卷实际张力(kg)")]
public float TensionKg{ get; set; }
/// <summary>
/// 收卷电机电流(A)
/// </summary>
[Description("收卷电机电流(A)")]
public float Current{ get; set; }
/// <summary>
/// 收卷手动
/// </summary>
[Description("收卷手动")]
public bool IsManual{ get; set; }
/// <summary>
/// 收卷开启显示
/// </summary>
[Description("收卷开启显示")]
public bool IsOn{ get; set; }
/// <summary>
/// 收卷开启设置
/// </summary>
[Description("收卷开启设置")]
public bool IsOnSet{ get; set; }
/// <summary>
/// 收卷张力反馈
/// </summary>
[Description("收卷张力反馈")]
public float Tension{ get; set; }
/// <summary>
/// 收卷张力设定
/// </summary>
[Description("收卷张力设定")]
public float TensionSet{ get; set; }
/// <summary>
/// 收卷增益设定
/// </summary>
[Description("收卷增益设定")]
public float Gain{ get; set; }
/// <summary>
/// 收卷积分时间
/// </summary>
[Description("收卷积分时间")]
public float ITime{ get; set; }
/// <summary>
/// 收卷调节系数
/// </summary>
[Description("收卷调节系数")]
public float Factor{ get; set; }
/// <summary>
/// 收卷辊筒直径
/// </summary>
[Description("收卷辊筒直径")]
public float RollerD{ get; set; }
/// <summary>
/// 收卷传动速比
/// </summary>
[Description("收卷传动速比")]
public float GearRatio{ get; set; }
/// <summary>
/// 收卷PID结果
/// </summary>
[Description("收卷PID结果")]
public float PIDResult{ get; set; }
/// <summary>
/// 收卷PID调节
/// </summary>
[Description("收卷PID调节")]
public float PIDAdjust{ get; set; }
/// <summary>
/// 收卷同步速度
/// </summary>
[Description("收卷同步速度")]
public float SyncV{ get; set; }
/// <summary>
/// 收卷实际速度
/// </summary>
[Description("收卷实际速度")]
public float Velocity{ get; set; }
/// <summary>
/// 收卷升降增益
/// </summary>
[Description("收卷升降增益")]
public float LiftGain{ get; set; }
/// <summary>
/// 收卷速度补偿
/// </summary>
[Description("收卷速度补偿")]
public float VelocityComp{ get; set; }
/// <summary>
/// 收卷变频故障报警!!!请检查
/// </summary>
[Description("收卷变频故障报警!!!请检查")]
[IsError()]
public bool IsError_VFD{ get; set; }
/// <summary>
/// 收卷风机过载报警!!!请检查
/// </summary>
[Description("收卷风机过载报警!!!请检查")]
[IsError()]
public bool IsError_Fan{ get; set; }
/// <summary>
/// 收翻转刀架过载报警!!!请检查
/// </summary>
[Description("收翻转刀架过载报警!!!请检查")]
[IsError()]
public bool IsError_Turnover{ get; set; }
/// <summary>
/// 收卷急停开启!!!请复位
/// </summary>
[Description("收卷急停开启!!!请复位")]
[IsError()]
public bool IsError_Scram{ get; set; }
/// <summary>
/// 收卷换卷气涨轴检测未到位报警!!!请检查
/// </summary>
[Description("收卷换卷气涨轴检测未到位报警!!!请检查")]
[IsError()]
public bool IsError_AirRollerNoReady{ get; set; }
/// <summary>
/// 收预警长度报警!!!请准备换卷
/// </summary>
[Description("收预警长度报警!!!请准备换卷")]
[IsError()]
public bool IsError_MeasurePreWarning{ get; set; }
/// <summary>
/// 收卷换卷提醒报警!!!请注意安全
/// </summary>
[Description("收卷换卷提醒报警!!!请注意安全")]
[IsError()]
public bool IsError_ChangeRoll{ get; set; }
/// <summary>
/// 收卸料臂检测报警
/// </summary>
[Description("收卸料臂检测报警")]
[IsError()]
public bool IsError_UnloadArm{ get; set; }
/// <summary>
/// 表面变频通讯故障!!!请检查
/// </summary>
[Description("表面变频通讯故障!!!请检查")]
[IsError()]
public bool IsError_SurfaceCommErr{ get; set; }
#endregion
public event PropertyChangedEventHandler PropertyChanged;
}
}
#!/bin/bash
cp WinderInsideOutside.cs ../../../../Project.FLY.Winder_20190413/FLY.Winder/Common
cp WinderAccessory.cs ../../../../Project.FLY.Winder_20190413/FLY.Winder/Common
cp plcgroup.json ../../../../Project.FLY.Winder_20190413/FLY.Winder.UI.Server/bin/Debug/Gage1
\ No newline at end of file
# @2024/10/11 version=v8.1.0.2
1.[添加] 旋转架支持脉冲+复位信号
# @2024/11/11 version=v8.2.0.0
1.[添加] 下吹支持英语
Subproject commit 6aeafc95240ad165c887429cb779a652ddff128f
Subproject commit 9eca2e65347939ecd435354af3afd5ab6ad15ed6
{
"InstallZipVersion":"8.2.0.0",
"InstallZipUrl":"http://server.flyautomation.net:8889/download/和美安装包_v8.2.0.0_20241111.7z"
"InstallZipVersion":"8.2.2.0",
"InstallZipUrl":"http://server.flyautomation.net:8889/download/和美安装包_v8.2.2.0_20241201.7z"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment