Commit 5998999a authored by 潘栩锋's avatar 潘栩锋 🚴

添加 称重添加电流显示, 版本号是V35, 只有 和美公司里面的那个而已

parent a077b3db
......@@ -89,6 +89,12 @@
<Compile Include="PgReduce.xaml.cs">
<DependentUpon>PgReduce.xaml</DependentUpon>
</Compile>
<Compile Include="UiModule\V3.5\MainGraphV3p5_2.xaml.cs">
<DependentUpon>MainGraphV3p5_2.xaml</DependentUpon>
</Compile>
<Compile Include="UiModule\V3.5\UcWeighterItemV3p5_2.xaml.cs">
<DependentUpon>UcWeighterItemV3p5_2.xaml</DependentUpon>
</Compile>
<Compile Include="UiModule\V4\MenuSettingV4.xaml.cs">
<DependentUpon>MenuSettingV4.xaml</DependentUpon>
</Compile>
......@@ -245,6 +251,14 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UiModule\V3.5\MainGraphV3p5_2.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UiModule\V3.5\UcWeighterItemV3p5_2.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UiModule\V4\MenuSettingV4.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
......
......@@ -71,6 +71,11 @@ namespace FLY.Weight.UI.Client.UiModule
}
}
break;
case 35:
{
return container.Resolve<MainGraphV3p5_2>();
}
break;
default:
{
if (itemStyle == 0)
......
<UserControl x:Class="FLY.Weight.UI.Client.UiModule.MainGraphV3p5_2"
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"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FLY.Weight.UI.Client.UiModule"
xmlns:control="clr-namespace:FLY.Weight.UI.Client.Control"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d" >
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.Weight.UI.Client;component/Themes/UcWeighterItemStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid x:Name="container_grid"/>
<Viewbox Stretch="Uniform" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid Name="root_grid" d:DataContext="{StaticResource unittests_weighters}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition />
</Grid.RowDefinitions>
<local:UcTotalFlow x:Name="ucTotalFlow" Margin="{StaticResource ControlMargin}" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<local:UcThickness x:Name="ucThickness" Margin="{StaticResource ControlMargin}"/>
<ItemsControl x:Name="itemsControl" Grid.Column="1" ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:UcWeighterItemV3p5_2 Margin="{StaticResource ControlMargin}"
WeightSystemService="{Binding DataContext,ElementName=root_grid}"
Container="{Binding DataContext,ElementName=container_grid}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Grid>
</Viewbox>
</Grid>
</UserControl>
using FLY.OBJComponents.Client;
using FLY.Weight.Client;
using FLY.Weight.Common;
using FLY.Weight.IService;
using MultiLayout;
using MultiLayout.UiModule;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Unity;
namespace FLY.Weight.UI.Client.UiModule
{
/// <summary>
/// Page_Main.xaml 的交互逻辑
/// </summary>
public partial class MainGraphV3p5_2 : UserControl
{
IWeightSystemService weightSystemService;
List<SetPLCUpdatePlan> setPlan_items = new List<SetPLCUpdatePlan>();
public MainGraphV3p5_2()
{
InitializeComponent();
}
[InjectionMethod]
public void Init(
IUnityContainer container,
IWeightSystemService weightSystemService)
{
this.container_grid.DataContext = container;
ucTotalFlow.Init(weightSystemService);
ucThickness.Init(weightSystemService);
this.weightSystemService = weightSystemService;
root_grid.DataContext = this.weightSystemService;
for (int i = 0; i < this.weightSystemService.Items.Count(); i++)
{
SetPLCUpdatePlan plan = new SetPLCUpdatePlan(
this.weightSystemService.PLCos,
this.weightSystemService.Items[i],
UcWeighterItem.item_update_propertynames);
setPlan_items.Add(plan);
}
if (weightSystemService is WeightSystemServiceClient) {
(weightSystemService as WeightSystemServiceClient).ResetItemsEvent += MWeighterCsService_ResetItemsEvent;
}
}
private void MWeighterCsService_ResetItemsEvent()
{
//把多出来的删除
int remove_cnt = setPlan_items.Count() - weightSystemService.Items.Count();
if (remove_cnt > 0)
{
for (int i = 0; i < remove_cnt; i++)
{
SetPLCUpdatePlan plan = setPlan_items[setPlan_items.Count() - 1 - i];
plan.Dispose();
}
setPlan_items.RemoveRange(setPlan_items.Count() - remove_cnt, remove_cnt);
}
else
{
int start_idx = setPlan_items.Count();
int add_cnt = -remove_cnt;
for (int i = 0; i < add_cnt; i++)
{
SetPLCUpdatePlan plan = new SetPLCUpdatePlan(
weightSystemService.PLCos,
weightSystemService.Items[start_idx+i],
UcWeighterItem.item_update_propertynames);
setPlan_items.Add(plan);
}
}
}
}
}
<UserControl x:Class="FLY.Weight.UI.Client.UiModule.UcWeighterItemV3p5_2"
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"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FLY.Weight.UI.Client.UiModule"
xmlns:flyctrl="clr-namespace:FLY.ControlLibrary;assembly=FLY.ControlLibrary"
xmlns:control="clr-namespace:FLY.Weight.UI.Client.Control"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d" d:DesignHeight="600" >
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.Weight.UI.Client;component/Themes/UcWeighterItemStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Border Style="{StaticResource BorderStyle_block}" d:DataContext="{StaticResource unittests_weighters}">
<Viewbox Margin="{StaticResource ControlMargin}" d:DataContext="{Binding Items[0]}" HorizontalAlignment="Left" VerticalAlignment="Top">
<StackPanel >
<Button Margin="2" Style="{StaticResource ButtonStyle_empty}" Background="{Binding Color}"
Click="button_ingredient_Click"
Tag="{Binding .}"
>
<Border >
<StackPanel>
<TextBlock Width="100" Height="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="-20,0,0,0"
FontSize="100" FontWeight="Bold" FontFamily="Arial Black" TextAlignment="Right"
Foreground="{StaticResource Color_background}"
Text="{Binding Number}" >
<TextBlock.Clip>
<RectangleGeometry Rect="20,0,80,100"/>
</TextBlock.Clip>
</TextBlock>
<StackPanel Margin="10" Grid.Column="1" >
<StackPanel >
<TextBlock Text="设定产量" Style="{StaticResource TextBlockStyle_title}" Foreground="{StaticResource Color_background}" Margin="3,0" />
<TextBlock >
<Run Text="{Binding FlowSetting,StringFormat={}{0:F1}}" Foreground="{StaticResource Color_background}" Style="{StaticResource RunStyle_text}" FontSize="30" />
<Run Text="kg/h" Style="{StaticResource RunStyle_unit}" Foreground="{StaticResource Color_background}"/>
</TextBlock>
</StackPanel>
<TextBlock Text="当前产量" Style="{StaticResource TextBlockStyle_title}" Margin="3,0" Foreground="{StaticResource Color_background2}" />
<Viewbox Width="180" Height="80" HorizontalAlignment="Left">
<TextBlock >
<Run Text="{Binding CurrentFlow,StringFormat={}{0:F1}}" Style="{StaticResource RunStyle_text}" FontSize="60" />
<Run Text="kg/h" Style="{StaticResource RunStyle_unit}" Foreground="{StaticResource Color_background2}"/>
</TextBlock>
</Viewbox>
</StackPanel>
</StackPanel>
</Border>
</Button>
<Border x:Name="border_p" Background="{StaticResource Color_background2}" Height="30" Margin="2" >
<Rectangle HorizontalAlignment="Left" Fill="{Binding Color}" >
<Rectangle.Width>
<MultiBinding Converter="{StaticResource ratioconv}" Mode="OneWay">
<Binding Path="ScrewPDisp" />
<Binding Source="{StaticResource d100}" />
<Binding Path="ActualWidth" ElementName="border_p"/>
</MultiBinding>
</Rectangle.Width>
</Rectangle>
</Border>
<Button Grid.Row="1" Grid.Column="1" Margin="3" Style="{StaticResource ButtonStyle_empty}" Click="button_ratio_Click" Tag="{Binding .}">
<StackPanel>
<StackPanel Margin="3">
<TextBlock Text="当前电流" Style="{StaticResource TextBlockStyle_title}"/>
<TextBlock>
<Run Text="{Binding ScrewEleCurrent,StringFormat={}{0:F1}}" Style="{StaticResource RunStyle_text}" FontSize="60" />
<Run Text="A" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
<StackPanel Margin="3">
<TextBlock Text="当前比例" Style="{StaticResource TextBlockStyle_title}"/>
<TextBlock>
<Run Text="{Binding ScrewPDisp,StringFormat={}{0:F1}}" Style="{StaticResource RunStyle_text}" FontSize="60" />
<Run Text="%" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
<StackPanel Grid.Column="1" Margin="3" >
<TextBlock Text="设置比例" Style="{StaticResource TextBlockStyle_title_activity}"/>
<TextBlock >
<Run Text="{Binding ScrewPSet,StringFormat={}{0:F1}}" Style="{StaticResource RunStyle_text_activity}"/>
<Run Text="%" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
</StackPanel>
</Button>
<StackPanel Visibility="{Binding IsSingle,Converter={StaticResource visbilityconv},ConverterParameter=HiddenWhenTrue}">
<StackPanel Margin="3" >
<TextBlock Text="料斗重量" Style="{StaticResource TextBlockStyle_title}"/>
<TextBlock >
<Run Text="{Binding MixBucketWeight,StringFormat={}{0:F4}}" Style="{StaticResource RunStyle_text}" FontSize="36"/>
<Run Text="kg" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
</StackPanel>
<StackPanel Margin="3" >
<TextBlock Text="失重仓重量" Style="{StaticResource TextBlockStyle_title}"/>
<TextBlock >
<Run Text="{Binding BinWeight,StringFormat={}{0:F3}}" Style="{StaticResource RunStyle_text}" />
<Run Text="kg" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
<StackPanel Visibility="{Binding IsSingle,Converter={StaticResource visbilityconv},ConverterParameter=HiddenWhenTrue}">
<StackPanel Margin="3" >
<TextBlock Text="配料" Style="{StaticResource TextBlockStyle_title_activity}"/>
<flyctrl:ToggleButtonOnOff
Width="200"
IsChecked="{Binding MixIsOn}"
OffLabel=" 关 闭 " OffBrush="{StaticResource Color_off}"
OnLabel=" 启 动 " OnBrush="{StaticResource Color_on}"
>
</flyctrl:ToggleButtonOnOff>
</StackPanel>
<StackPanel Margin="3" >
<TextBlock Text="卸料阀" Style="{StaticResource TextBlockStyle_title_activity}"/>
<flyctrl:ToggleButtonOnOff
Width="200"
IsChecked="{Binding BucketValveIsOpen}"
OffLabel=" 关 闭 " OffBrush="{StaticResource Color_off}"
OnLabel=" 启 动 " OnBrush="{StaticResource Color_on}"
>
</flyctrl:ToggleButtonOnOff>
</StackPanel>
</StackPanel>
<Button Style="{StaticResource ButtonStyle_empty}" Background="Transparent" Click="button_frequency_Click"
Tag="{Binding .}"
>
<StackPanel Margin="3" >
<TextBlock Text="运行频率" Style="{StaticResource TextBlockStyle_title_activity}"/>
<TextBlock >
<Run Text="{Binding ScrewMotorFreq,StringFormat={}{0:F1}}" Style="{StaticResource RunStyle_text_activity}" />
<Run Text="Hz" Style="{StaticResource RunStyle_unit}" />
</TextBlock>
</StackPanel>
</Button>
<StackPanel Margin="3" Grid.Row="4" VerticalAlignment="Center" >
<TextBlock Text="螺杆操作" Style="{StaticResource TextBlockStyle_title_activity}"/>
<flyctrl:ToggleButtonOnOff Name="togglebutton_screw"
Width="200"
IsChecked="{Binding ScrewMotorIsOn}"
OffLabel=" 关 闭 " OffBrush="{StaticResource Color_off}"
OnLabel=" 启 动 " OnBrush="{StaticResource Color_on}"
>
</flyctrl:ToggleButtonOnOff>
</StackPanel>
<StackPanel Margin="3" Grid.Row="4" Grid.Column="1" VerticalAlignment="Center" >
<TextBlock Text="螺杆模式" Style="{StaticResource TextBlockStyle_title_activity}"/>
<flyctrl:ToggleButtonOnOff
Width="200"
IsChecked="{Binding ScrewIsAutoMode}"
OffLabel=" 手 动 " OffBrush="{StaticResource Color_off}"
OnLabel=" 自 动 " OnBrush="{StaticResource Color_on}"
>
</flyctrl:ToggleButtonOnOff>
</StackPanel>
</StackPanel>
</Viewbox>
</Border>
</UserControl>
using FLY.OBJComponents.Client;
using FLY.Weight.Client;
using FLY.Weight.IService;
using MultiLayout.UiModule;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Unity;
namespace FLY.Weight.UI.Client.UiModule
{
/// <summary>
/// UcWeighterItem.xaml 的交互逻辑
/// </summary>
public partial class UcWeighterItemV3p5_2 : UserControl
{
#region DependencyProperty
// Using a DependencyProperty as the backing store for WeightSystemService. This enables animation, styling, binding, etc...
public static readonly DependencyProperty WeightSystemServiceProperty =
DependencyProperty.Register(nameof(WeightSystemService), typeof(IWeightSystemService), typeof(UcWeighterItemV3p5_2), new PropertyMetadata(null));
public IWeightSystemService WeightSystemService
{
get { return (IWeightSystemService)GetValue(WeightSystemServiceProperty); }
set { SetValue(WeightSystemServiceProperty, value); }
}
public static readonly DependencyProperty ContainerProperty =
DependencyProperty.Register(nameof(Container), typeof(IUnityContainer), typeof(UcWeighterItemV3p5_2), new PropertyMetadata(null));
public IUnityContainer Container
{
get { return (IUnityContainer)GetValue(ContainerProperty); }
set { SetValue(ContainerProperty, value); }
}
#endregion
SetPLCUpdatePlan plan;
int Index = 0;
public UcWeighterItemV3p5_2()
{
InitializeComponent();
}
[InjectionMethod]
public void Init(
IUnityContainer container,
int id,
IWeightSystemService weightSystemService)
{
this.Container = container;
this.WeightSystemService = weightSystemService;
//查找参数
if (WeighterItemParams.Current.Indexs.ContainsKey(id))
{
Index = WeighterItemParams.Current.Indexs[id];
}
else
{
for (int i = 0; i < this.WeightSystemService.Items.Count(); i++)
{
if (!WeighterItemParams.Current.Indexs.ContainsValue(i))
{
WeighterItemParams.Current.Indexs.Add(id, i);
Index = i;
break;
}
}
}
int idx = Index;
if (idx >= this.WeightSystemService.Items.Count())
idx = this.WeightSystemService.Items.Count() - 1;
else if (idx < 0)
idx = 0;
this.DataContext = this.WeightSystemService.Items[idx];
plan = new SetPLCUpdatePlan(
this.WeightSystemService.PLCos,
this.WeightSystemService.Items[idx],
item_update_propertynames);
}
public static string[] item_update_propertynames = new string[] {
// "CumulativeProduction",
nameof(Common.WeighterC.FlowSetting),
nameof(Common.WeighterC.CurrentFlow),
nameof(Common.WeighterC.ScrewPDisp),
nameof(Common.WeighterC.ScrewPSet),
nameof(Common.WeighterC.ScrewPDisp),
nameof(Common.WeighterC.ScrewEleCurrent),
nameof(Common.WeighterC.MixBucketWeight),
nameof(Common.WeighterC.BinWeight),
nameof(Common.WeighterC.MixIsOn),
nameof(Common.WeighterC.BucketValveIsOpen),
nameof(Common.WeighterC.ScrewMotorFreq),
nameof(Common.WeighterC.ScrewMotorIsOn),
nameof(Common.WeighterC.ScrewIsAutoMode),
nameof(Common.WeighterC.ScrewManualFreq)
};
private async void button_frequency_Click(object sender, RoutedEventArgs e)
{
WdFrequency w = new WdFrequency();
var weight = ((Button)sender).Tag as FLY.Weight.Common.WeighterC;
w.FrequencySet = weight.ScrewManualFreq;
w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
if (w.ShowDialog() == true)
{
//TODO
weight.ScrewManualFreq = (float)w.FrequencySet;
weight.ScrewManualFreqIsSet = true;
//不用写下降沿!!!!!
}
}
private void button_ratio_Click(object sender, RoutedEventArgs e)
{
WdRatioSet w = new WdRatioSet();
w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
w.Init(WeightSystemService);
w.ShowDialog();
}
private void button_ingredient_Click(object sender, RoutedEventArgs e)
{
FLY.Weight.Common.WeighterC weight = ((Button)sender).Tag as FLY.Weight.Common.WeighterC;
if (weight.IsSingle)
{
//单组份,没有配料
return;
}
WdIngredient w = new WdIngredient();
w.Init(Container, weight, WeightSystemService);
w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this);
w.ShowDialog();
}
}
}
......@@ -78,7 +78,8 @@ namespace FLY.Weight.UI.Server
new DataVersion(){Name = "V2", Version =2},
new DataVersion(){Name = "V3", Version =3},
new DataVersion(){Name = "V4", Version =4},
new DataVersion(){Name = "V5", Version =5}
new DataVersion(){Name = "V5", Version =5},
new DataVersion(){Name = "V35", Version =35}
};
public ObservableCollection<WeightStyle> WeightStyles { get; } = new ObservableCollection<WeightStyle>{
......@@ -321,7 +322,7 @@ namespace FLY.Weight.UI.Server
public string Path { get; set; }
}
public class DataVersion
public class DataVersion:INotifyPropertyChanged
{
/// <summary>
/// 名称
......@@ -331,8 +332,10 @@ namespace FLY.Weight.UI.Server
/// 版本
/// </summary>
public int Version { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
public class WeightStyle
public class WeightStyle : INotifyPropertyChanged
{
/// <summary>
/// 名称
......@@ -342,6 +345,8 @@ namespace FLY.Weight.UI.Server
/// 版本
/// </summary>
public int ItemStyle { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
public class BinCntsConverter : IValueConverter
{
......
......@@ -114,6 +114,12 @@ namespace FLY.Weight.Common
[Description("设定比例")]
public float ScrewPSet{ get; set; }
/// <summary>
/// 螺杆电流
/// </summary>
[Description("螺杆电流")]
public float ScrewEleCurrent { get; set; }
/// <summary>
/// 本层密度
/// </summary>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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