FM2014TestBench: - initial setup to test multiple FM2014 - 3.Step
This commit is contained in:
parent
007681e95c
commit
cb4c9a66b8
@ -21,11 +21,11 @@
|
||||
</ItemsPanelTemplate>
|
||||
</Menu.ItemsPanel>
|
||||
<MenuItem x:Name="optionsMenu" HorizontalAlignment="Right" Height="26" Width="60" Header="_Options" >
|
||||
<!-- <MenuItem x:Name="optionsMenuLogin" Header="_Login" HorizontalAlignment="Left" Click="OnLogin_Click"/>
|
||||
<!-- <MenuItem x:Name="optionsMenuLogin" Header="_Login" HorizontalAlignment="Left" Click="OnLogin_Click"/>
|
||||
<MenuItem x:Name="optionsMenuLogout" Header="L_ogout" HorizontalAlignment="Left" Click="OnLogout_Click"/>
|
||||
<MenuItem x:Name="optionsMenuChangePassword" Header="Change Password" HorizontalAlignment="Left" Click="OnChangePassword_Click"/> -->
|
||||
</MenuItem>
|
||||
<!-- <Label Content="Slot: " Margin="2,2,2,2" Visibility="Hidden"/>
|
||||
<!-- <Label Content="Slot: " Margin="2,2,2,2" Visibility="Hidden"/>
|
||||
<ComboBox x:Name="cbxSlotBox" Margin="2,2,2,2" SelectionChanged="CbxSlotBox_SelectionChanged" Visibility="Hidden"/>
|
||||
<Label x:Name="lblApprovalText" Margin="110,1,1,1" Content="SPECIAL APPROVAL - Id.Ver: 10.07" Foreground="#FFFB0808" FontSize="16" MouseDown="LblApprovalText_Click" HorizontalAlignment="Center"/> -->
|
||||
<MenuItem x:Name="hlpMenu" HorizontalAlignment="Right" Height="26" Width="40" FontSize="12" Header="Help" Click="HlpMenu_Click" />
|
||||
@ -129,19 +129,103 @@
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- User controls placeholder for devices-->
|
||||
<StackPanel x:Name="spDevice1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="4" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="6" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="8" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="10" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="12" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice6" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="14" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice7" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="16" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="18" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice9" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="20" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.RowSpan="11" Grid.Column="22" Grid.ColumnSpan="2" />
|
||||
<GroupBox Header="FM2014" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="0" Grid.RowSpan="13" Grid.Column="0" Grid.ColumnSpan="24" >
|
||||
<Grid Background="AliceBlue" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="2,2,2,2">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Common labels for devices -->
|
||||
<Label x:Name="lblConnectStatusText" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Content="Status:" />
|
||||
<Label x:Name="lblMeasurement1Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement1:" />
|
||||
<Label x:Name="lblMeasurement2Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement2:" />
|
||||
<Label x:Name="lblMeasurement3Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement3:" />
|
||||
<Label x:Name="lblMeasurement4Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement4:" />
|
||||
<Label x:Name="lblMeasurement5Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement5:" />
|
||||
<Label x:Name="lblMeasurement6Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement6:" />
|
||||
<Label x:Name="lblMeasurement7Text" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" Content="Measurement7:" />
|
||||
<Label x:Name="lblFwVersionText" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="3" Content="FW Version:" />
|
||||
<Label x:Name="lblSerialNumberText" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="3" Content="Serial Number:" />
|
||||
<Label x:Name="lblLifeTimeText" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="10" Grid.Column="0" Grid.ColumnSpan="3" Content="Lifetime:" />
|
||||
<Button HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="2,2,2,2" Grid.Row="11" Grid.Column="0" Grid.ColumnSpan="3" Content="Connect" Click="btnConnect_Click" />
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="10" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/>
|
||||
<!--Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,-1,0,0" Grid.Row="11" Grid.Column="0" Grid.ColumnSpan="3" Stroke="LightGray"/-->
|
||||
|
||||
<!-- Stack panels for devices -->
|
||||
<StackPanel x:Name="spDevice1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="3" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="5" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="7" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="9" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="11" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice6" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="13" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice7" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="15" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="17" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice9" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="19" Grid.ColumnSpan="2" />
|
||||
<StackPanel x:Name="spDevice10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="21" Grid.ColumnSpan="2" />
|
||||
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="3" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="5" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="7" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="9" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="11" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="13" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="15" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="17" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="19" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1,0,0,0" Grid.Row="0" Grid.RowSpan="11" Grid.Column="21" Grid.ColumnSpan="2" Stroke="LightGray"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<!--Pictures-->
|
||||
<Border Grid.Row="0" Grid.RowSpan="2" Grid.Column="27" Grid.ColumnSpan="5" Margin="2,2,2,2" BorderThickness="1" BorderBrush="Black" >
|
||||
|
||||
@ -42,8 +42,10 @@ using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Threading;
|
||||
using Sensus.Ui.FM2014TestBench.UserControls;
|
||||
using Xylem.Common.CommonCore.Consts;
|
||||
using Xylem.Common.Utils.ProcessExec.EventArguments;
|
||||
using static Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core.Consts.FM2014CmdDef;
|
||||
|
||||
namespace Sensus.Ui.FM2014TestBench
|
||||
{
|
||||
@ -57,10 +59,22 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
private CancellationTokenSource _cancellationTokenSource;
|
||||
private CancellationToken _cancellationToken;
|
||||
|
||||
private const Int32 MaxFm2014s = 10;
|
||||
|
||||
/// <summary>
|
||||
/// The FM2014s served by this program
|
||||
/// </summary>
|
||||
private List<FM2014> Fm2014s { get; set; }
|
||||
private readonly List<FM2014> Fm2014s = [];
|
||||
|
||||
/// <summary>
|
||||
/// Stack panels for UcFM2014Device
|
||||
/// </summary>
|
||||
private readonly List<StackPanel> PanelsForUcFM2014s = [];
|
||||
|
||||
/// <summary>
|
||||
/// User controls of FM2014Device
|
||||
/// </summary>
|
||||
private readonly List<UserControl> UcFM2014s = [];
|
||||
|
||||
/// <summary>
|
||||
/// The start time is going to be used for time measurements of processes. It has to be set to
|
||||
@ -136,6 +150,7 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
|
||||
_cancellationTokenSource = new CancellationTokenSource();
|
||||
_cancellationToken = _cancellationTokenSource.Token;
|
||||
|
||||
}
|
||||
|
||||
private void Window_Loaded(Object sender, RoutedEventArgs e)
|
||||
@ -144,12 +159,6 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
// OnLogin_Click(this, null);
|
||||
}
|
||||
|
||||
//TODO THW TEST FM2014 multiple objects
|
||||
/// <summary>
|
||||
/// The single FM2014 for this program
|
||||
/// </summary>
|
||||
private FM2014 Fm2014_TEST { get; set; }
|
||||
|
||||
private void Window_Initialized(Object sender, EventArgs e)
|
||||
{
|
||||
Init();
|
||||
@ -162,18 +171,56 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
LogText(StrSeparator);
|
||||
}
|
||||
|
||||
////btnFM2014Connect.Focus();
|
||||
////TODO THW TEST FM2014 multiple objects
|
||||
//Fm2014_TEST = new FM2014
|
||||
//{
|
||||
// Address = 1
|
||||
//};
|
||||
//Fm2014_TEST.OnRawRecordReceived += DataReceived_Handler;
|
||||
//Fm2014_TEST.Connect("COM23");
|
||||
//Fm2014_TEST.Login();
|
||||
// Add user controls
|
||||
// Initiate the stack panels
|
||||
PanelsForUcFM2014s.Add(spDevice1);
|
||||
PanelsForUcFM2014s.Add(spDevice2);
|
||||
PanelsForUcFM2014s.Add(spDevice3);
|
||||
PanelsForUcFM2014s.Add(spDevice4);
|
||||
PanelsForUcFM2014s.Add(spDevice5);
|
||||
PanelsForUcFM2014s.Add(spDevice6);
|
||||
PanelsForUcFM2014s.Add(spDevice7);
|
||||
PanelsForUcFM2014s.Add(spDevice8);
|
||||
PanelsForUcFM2014s.Add(spDevice9);
|
||||
PanelsForUcFM2014s.Add(spDevice10);
|
||||
|
||||
// Assign user controls
|
||||
for (var ctr = 0; ctr < MaxFm2014s; ctr++)
|
||||
{
|
||||
var fm2014 = new FM2014
|
||||
{
|
||||
Address = ctr + 1
|
||||
};
|
||||
|
||||
fm2014.OnRawRecordReceived += DataReceived_Handler;
|
||||
Fm2014s.Add(fm2014);
|
||||
UcFM2014s.Add(new UserControls.UcFM2014Device(Fm2014s[ctr]));
|
||||
SetNewUserControl(PanelsForUcFM2014s[ctr], UcFM2014s[ctr]);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dispatch new user control to main screen
|
||||
/// </summary>
|
||||
/// <param name="sp"></param>
|
||||
/// <param name="uc"></param>
|
||||
private void SetNewUserControl(StackPanel sp, UserControl? uc)
|
||||
{
|
||||
sp.Dispatcher.Invoke(DispatcherPriority.Normal,
|
||||
new Action(() =>
|
||||
{
|
||||
// remove last userControl
|
||||
sp.Children.Clear();
|
||||
if (uc != null)
|
||||
{
|
||||
sp.Children.Add(uc);
|
||||
DockPanel.SetDock(uc, Dock.Top); // & Dock.Left);
|
||||
}
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
private void Window_Closing(Object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
_cancellationTokenSource.Cancel();
|
||||
@ -490,123 +537,93 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
/// </remarks>
|
||||
private void Connect()
|
||||
{
|
||||
//try
|
||||
//{
|
||||
// Init();
|
||||
// if (string.IsNullOrEmpty(cbxFM2014ComPort?.SelectedItem?.ToString()) ||
|
||||
// cbxFM2014ComPort.SelectedItem.ToString().Equals("?"))
|
||||
// {
|
||||
// var text = Resources.StrErrorMsgComPortNotAssigned;
|
||||
// MessageBox.Show(text, Resources.StrError, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
// LogText(text);
|
||||
// return;
|
||||
// }
|
||||
try
|
||||
{
|
||||
Init();
|
||||
//if (string.IsNullOrEmpty(cbxFM2014ComPort?.SelectedItem?.ToString()) ||
|
||||
// cbxFM2014ComPort.SelectedItem.ToString().Equals("?"))
|
||||
//{
|
||||
// var text = Resources.StrErrorMsgComPortNotAssigned;
|
||||
// MessageBox.Show(text, Resources.StrError, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
// LogText(text);
|
||||
// return;
|
||||
//}
|
||||
|
||||
// StoreFM2014Settings();
|
||||
StoreFM2014Settings();
|
||||
|
||||
// ActionControl(true);
|
||||
ActionControl(true);
|
||||
|
||||
// if (Fm2014 != null)
|
||||
// {
|
||||
// Fm2014.OnRawRecordReceived -= DataReceived_Handler;
|
||||
// Fm2014.Dispose();
|
||||
// //dispose old meter
|
||||
// Fm2014 = null;
|
||||
// }
|
||||
ResetCancellationToken();
|
||||
FM2014.SharedCancellationToken = _cancellationToken;
|
||||
//lblActualProcess.Text = Resources.StrMsgConnecting;
|
||||
//Fm2014.Connect(cbxFM2014ComPort.SelectedItem.ToString());
|
||||
|
||||
// //assign new meter
|
||||
// Fm2014 = new FM2014();
|
||||
var comPort = "COM23";
|
||||
|
||||
// Fm2014.OnRawRecordReceived += DataReceived_Handler;
|
||||
// ResetCancellationToken();
|
||||
// FM2014.SharedCancellationToken = _cancellationToken;
|
||||
// if (int.TryParse(cbxFM2014Address.SelectedItem.ToString(), out var address))
|
||||
// {
|
||||
// Fm2014.Address = address;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ActionControl(false);
|
||||
// LogErrorText(Resources.StrErrorMsgFM2014AddressInvalid);
|
||||
// }
|
||||
// if (int.TryParse(cbxFM2014TolerancePercent.SelectedItem.ToString(), out var tolerancePercent)
|
||||
// && (tolerancePercent == 3 || tolerancePercent == 5))
|
||||
// {
|
||||
// Fm2014.Tolerance_percent = tolerancePercent;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ActionControl(false);
|
||||
// LogErrorText(Resources.StrErrorMsgFM2014ToleranceInvalid);
|
||||
// }
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
for (var ctr = 0; ctr < MaxFm2014s; ctr++)
|
||||
{
|
||||
var ucFm2014Device = (UcFM2014Device)UcFM2014s[ctr];
|
||||
var fm2014 = Fm2014s[ctr];
|
||||
|
||||
// lblActualProcess.Text = Resources.StrMsgConnecting;
|
||||
// Fm2014.Connect(cbxFM2014ComPort.SelectedItem.ToString());
|
||||
if (!fm2014.Connect(comPort))
|
||||
{
|
||||
ucFm2014Device.SetConnectionStatus(ConnectionStatusName.OFFLINE);
|
||||
continue;
|
||||
}
|
||||
fm2014.Login();
|
||||
|
||||
// //TODO THW TEST FM2014 multiple objects
|
||||
// if (cbxMultipleFm2014.Checked)
|
||||
// {
|
||||
// Fm2014_TEST = new FM2014
|
||||
// {
|
||||
// Address = 2
|
||||
// };
|
||||
// Fm2014_TEST.OnRawRecordReceived += DataReceived_Handler_TEST;
|
||||
// Fm2014_TEST.Connect(cbxFM2014ComPort.SelectedItem.ToString());
|
||||
// }
|
||||
if (fm2014.IsLoggedOn)
|
||||
{
|
||||
ucFm2014Device.SetConnectionStatus(ConnectionStatusName.ONLINE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ucFm2014Device.SetConnectionStatus(ConnectionStatusName.OFFLINE);
|
||||
}
|
||||
}
|
||||
//if (!Fm2014.IsLoggedOn)
|
||||
//{
|
||||
// LogErrorText(Resources.StrErrorMsgFM2014AccessDenied);
|
||||
// ActionControl(false);
|
||||
// return;
|
||||
//}
|
||||
|
||||
// Task.Factory.StartNew(() =>
|
||||
// {
|
||||
// Fm2014.Login();
|
||||
//if (Fm2014.IsLoggedOn)
|
||||
//{
|
||||
// Invoke(new Action(() =>
|
||||
// {
|
||||
// lblConnectionStatus.Text = Resources.StrLblFM2014Connected;
|
||||
// lblConnectionStatus.ForeColor = Color.Green;
|
||||
// tbxFM2014ApplicationFwVersion.Text = Fm2014.FwVersion;
|
||||
// tbxFM2014SerialNumber.Text = Fm2014.SerialNumber;
|
||||
|
||||
// //TODO THW TEST FM2014 multiple objects
|
||||
// if (cbxMultipleFm2014.Checked)
|
||||
// {
|
||||
// Fm2014_TEST.Login();
|
||||
// }
|
||||
// // Logging to history window
|
||||
// LogText("FM2014 ID: " + Fm2014.ConnectResponse);
|
||||
// LogText("FM2014 Firmware Version: " + Fm2014.FwVersion);
|
||||
// LogText($"FM2014 {Resources.StrLblFM2014SerialNumber} " + Fm2014.SerialNumber);
|
||||
// LogText($"FW2014 {Resources.StrLblFM2014Address} " + Fm2014.Address);
|
||||
// var dt = DateTime.UtcNow;
|
||||
// var msg = $"{dt:yyyy-MM-dd HH:mm:ss} UTC";
|
||||
// LogText($"{Resources.StrMsgPcDateTime} {msg}");
|
||||
// LogText(StrSeparator);
|
||||
|
||||
// if (!Fm2014.IsLoggedOn)
|
||||
// {
|
||||
// LogErrorText(Resources.StrErrorMsgFM2014AccessDenied);
|
||||
// Fm2014.Logout();
|
||||
// ActionControl(false);
|
||||
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (Fm2014.IsLoggedOn)
|
||||
// {
|
||||
// Invoke(new Action(() =>
|
||||
// {
|
||||
// lblConnectionStatus.Text = Resources.StrLblFM2014Connected;
|
||||
// lblConnectionStatus.ForeColor = Color.Green;
|
||||
// tbxFM2014ApplicationFwVersion.Text = Fm2014.FwVersion;
|
||||
// tbxFM2014SerialNumber.Text = Fm2014.SerialNumber;
|
||||
|
||||
// // Logging to history window
|
||||
// LogText("FM2014 ID: " + Fm2014.ConnectResponse);
|
||||
// LogText("FM2014 Firmware Version: " + Fm2014.FwVersion);
|
||||
// LogText($"FM2014 {Resources.StrLblFM2014SerialNumber} " + Fm2014.SerialNumber);
|
||||
// LogText($"FW2014 {Resources.StrLblFM2014Address} " + Fm2014.Address);
|
||||
// var dt = DateTime.UtcNow;
|
||||
// var msg = $"{dt:yyyy-MM-dd HH:mm:ss} UTC";
|
||||
// LogText($"{Resources.StrMsgPcDateTime} {msg}");
|
||||
// LogText(StrSeparator);
|
||||
|
||||
// CheckUpdateEnabled();
|
||||
// }));
|
||||
// }
|
||||
// }, _cancellationToken).ContinueWith(delegate
|
||||
// {
|
||||
// ActionControl(false);
|
||||
// }, _cancellationToken);
|
||||
//}
|
||||
//catch (Exception ex)
|
||||
//{
|
||||
// ActionControl(false);
|
||||
// MessageBox.Show(ex.Message, Resources.StrError, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
// LogErrorText(ex.Message);
|
||||
// Fm2014?.Dispose();
|
||||
//}
|
||||
// CheckUpdateEnabled();
|
||||
// }));
|
||||
//}
|
||||
}, _cancellationToken).ContinueWith(delegate
|
||||
{
|
||||
ActionControl(false);
|
||||
}, _cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ActionControl(false);
|
||||
//MessageBox.Show(ex.Message, Resources.StrError, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
LogErrorText(ex.Message);
|
||||
//Fm2014?.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion BoardControls
|
||||
@ -885,7 +902,7 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
private void btnConnect_Click(Object sender, EventArgs e)
|
||||
{
|
||||
_startTime = DateTimeOffset.UtcNow;
|
||||
//Connect();
|
||||
Connect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1387,6 +1404,11 @@ namespace Sensus.Ui.FM2014TestBench
|
||||
/// </remarks>
|
||||
private void DataReceived_Handler(Object? sender, ProcessExecEventArgs e)
|
||||
{
|
||||
Int32 address = 0;
|
||||
if (sender is FM2014 fm2014)
|
||||
{
|
||||
address = fm2014.Address;
|
||||
}
|
||||
// Progress info section
|
||||
if (e.ActualProcessMessage != null)
|
||||
{
|
||||
|
||||
@ -8,45 +8,45 @@
|
||||
<DockPanel Background="AliceBlue" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,0,0,0">
|
||||
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,0,0,0">
|
||||
<!-- Bordered Static Labels -->
|
||||
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray">
|
||||
<Label Name="lblStatus" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="OFFLINE" />
|
||||
</Border>
|
||||
<Border Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblFirmwareVersion" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="FW" />
|
||||
<Border Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,-1,0,0" BorderThickness="1" BorderBrush="LightGray">
|
||||
<Label Name="lblFirmwareVersion" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="Firmware" />
|
||||
</Border>
|
||||
<Border Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblSerialNumber" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="#" />
|
||||
<Border Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,-1,0,0" BorderThickness="1" BorderBrush="LightGray">
|
||||
<Label Name="lblSerialNumber" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="Serial No" />
|
||||
</Border>
|
||||
<Border Grid.Row="10" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblLifetime_h" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="?" />
|
||||
<Border Grid.Row="10" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,-1,0,0" BorderThickness="1" BorderBrush="LightGray">
|
||||
<Label Name="lblLifetime_h" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="Lifetime" />
|
||||
</Border>
|
||||
|
||||
<!-- Bordered Dynamic Labels -->
|
||||
<Border x:Name="brdMeasurement1" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement1" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement1" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement1" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement2" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement2" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement2" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement2" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement3" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement3" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement3" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement3" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement4" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement4" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement4" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement4" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement5" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement5" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement5" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement5" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement6" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement6" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement6" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement6" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
<Border x:Name="brdMeasurement7" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" >
|
||||
<Label Name="lblMeasurement7" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,0,0,0" Content="0" />
|
||||
<Border x:Name="brdMeasurement7" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Label Name="lblMeasurement7" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,-1,0,0" Content="0" />
|
||||
</Border>
|
||||
|
||||
<!-- Bordered Image -->
|
||||
<Border x:Name="brdFM2014Pic" Grid.Row="1" Grid.RowSpan="7" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="Black" Visibility="Hidden">
|
||||
<Image Name="picFM2014" HorizontalAlignment="Center" VerticalAlignment="Stretch" Margin="0,0,-1,-1" Source="/UserControls/FM2014 58x172.jpg" Stretch="Fill" />
|
||||
<Border x:Name="brdFM2014Pic" Grid.Row="1" Grid.RowSpan="7" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,0,0" BorderThickness="1" BorderBrush="LightGray" >
|
||||
<Image Name="picFM2014" HorizontalAlignment="Center" VerticalAlignment="Stretch" Margin="0,0,-1,-1" Source="/UserControls/FM2014 58x172.jpg" Stretch="Fill" Opacity="0.5" />
|
||||
</Border>
|
||||
|
||||
<!--Background Grid Design-->
|
||||
|
||||
@ -30,9 +30,11 @@
|
||||
*
|
||||
*=======================================================================================\n
|
||||
*/
|
||||
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Threading;
|
||||
using Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core.Consts;
|
||||
using Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core;
|
||||
using static Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core.Consts.FM2014CmdDef;
|
||||
|
||||
namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
@ -43,25 +45,29 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
public partial class UcFM2014Device : IUserControl
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Switches between picture or measurement fields
|
||||
/// </summary>
|
||||
private Boolean MeasurementIsActive { set; get; }
|
||||
///// <summary>
|
||||
///// Switches between picture or measurement fields
|
||||
///// </summary>
|
||||
//private Boolean MeasurementIsActive { set; get; }
|
||||
|
||||
private List<UIElement> MeasurementBorders;
|
||||
private List<UIElement> MeasurementLabels;
|
||||
private readonly List<UIElement> MeasurementBorders;
|
||||
private readonly List<UIElement> MeasurementLabels;
|
||||
|
||||
private readonly FM2014 _fM2014;
|
||||
|
||||
/// <summary>
|
||||
/// Ctor
|
||||
/// </summary>
|
||||
/// <param name="fm2014"></param>
|
||||
/// <remarks date="2026-Feb-03" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
public UcFM2014Device()
|
||||
public UcFM2014Device(FM2014 fm2014)
|
||||
{
|
||||
InitializeComponent();
|
||||
MeasurementBorders = new List<UIElement>();
|
||||
MeasurementLabels = new List<UIElement>();
|
||||
_fM2014 = fm2014;
|
||||
MeasurementBorders = [];
|
||||
MeasurementLabels = [];
|
||||
MeasurementBorders.Add(brdMeasurement1);
|
||||
MeasurementBorders.Add(brdMeasurement2);
|
||||
MeasurementBorders.Add(brdMeasurement3);
|
||||
@ -83,9 +89,38 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
public void Clear()
|
||||
{
|
||||
SetConnectionStatus(ConnectionStatusName.OFFLINE);
|
||||
HideMeasurements();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set a value to a label
|
||||
/// </summary>
|
||||
/// <param name="labelNumber"></param>
|
||||
/// <param name="valueStr"></param>
|
||||
/// <returns></returns>
|
||||
public Boolean SetValue(Int32 labelNumber, String valueStr)
|
||||
{
|
||||
var index = labelNumber - 1;
|
||||
if (index < 0 || labelNumber > MeasurementLabels.Count ||
|
||||
!MeasurementLabels[index].IsEnabled)
|
||||
return false;
|
||||
|
||||
var label = (Label)MeasurementLabels[index];
|
||||
UpdateValue(label, valueStr);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hide measurements and switch back to display the picture of FM2014
|
||||
/// </summary>
|
||||
/// <remarks date="2026-Feb-03" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void HideMeasurements()
|
||||
{
|
||||
UiElmEnable(brdFM2014Pic, true);
|
||||
// Initially the device is NOT connected
|
||||
UiElmEnable(picFM2014, false);
|
||||
UiElmEnable(picFM2014, lblStatus.Content.Equals(ConnectionStatusName.ONLINE));
|
||||
|
||||
// Hide all measurement borders
|
||||
foreach (var borders in MeasurementBorders)
|
||||
{
|
||||
@ -103,6 +138,9 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
/// </summary>
|
||||
/// <param name="numberOfMeasurementFields">1..7</param>
|
||||
/// <returns></returns>
|
||||
/// <remarks date="2026-Feb-03" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
public Boolean EnableMeasurements(UInt32 numberOfMeasurementFields)
|
||||
{
|
||||
// Check if device is connected and logged in
|
||||
@ -110,6 +148,19 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
numberOfMeasurementFields == 0)
|
||||
return false;
|
||||
|
||||
//MeasurementIsActive = true;
|
||||
// Hide the picture and the border of it
|
||||
UiElmEnable(picFM2014, false, false);
|
||||
UiElmEnable(brdFM2014Pic, false, false);
|
||||
|
||||
// Display the measurement fields
|
||||
for (var ctr = 0; ctr < numberOfMeasurementFields; ctr++)
|
||||
{
|
||||
if (ctr > MeasurementBorders.Count)
|
||||
break;
|
||||
UiElmEnable(MeasurementBorders[ctr], true);
|
||||
UiElmEnable(MeasurementLabels[ctr], true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -117,6 +168,9 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
/// Refresh connection status
|
||||
/// </summary>
|
||||
/// <param name="statusName"></param>
|
||||
/// <remarks date="2026-Feb-03" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
public void SetConnectionStatus(ConnectionStatusName statusName)
|
||||
{
|
||||
var connectionStatusStr = GetConnectionStatusInfo(statusName);
|
||||
@ -124,14 +178,63 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
new Action(() =>
|
||||
{
|
||||
lblStatus.Content = connectionStatusStr;
|
||||
var isEnabled = statusName.Equals(ConnectionStatusName.ONLINE);
|
||||
UiElmEnable(picFM2014, isEnabled);
|
||||
if (!statusName.Equals(ConnectionStatusName.ONLINE))
|
||||
{
|
||||
brdFM2014Pic.Visibility = Visibility.Visible;
|
||||
picFM2014.Visibility = Visibility.Visible;
|
||||
picFM2014.IsEnabled = false;
|
||||
HideMeasurements();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
lblLifetime_h.Content = _fM2014.Lifetime_h;
|
||||
lblFirmwareVersion.Content = _fM2014.FwVersion;
|
||||
lblSerialNumber.Content = _fM2014.SerialNumber;
|
||||
}
|
||||
}
|
||||
));
|
||||
));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Output message to control without access violation.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <remarks date="????" author="Roland Drabesch">
|
||||
/// - Initial
|
||||
/// </remarks>
|
||||
/// <remarks date="2023-07-11" author="Thomas Wiedebusch">
|
||||
/// - Introduced multi line text with center alignment.
|
||||
/// </remarks>
|
||||
private static void UpdateContentControl(ContentControl ctl, String text)
|
||||
{
|
||||
ctl.Dispatcher.Invoke(DispatcherPriority.Normal,
|
||||
new Action(() =>
|
||||
{
|
||||
ctl.Content = new TextBlock()
|
||||
{
|
||||
Text = text,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
TextAlignment = TextAlignment.Center
|
||||
};
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Publish value to label
|
||||
/// </summary>
|
||||
/// <param name="label"></param>
|
||||
/// <param name="valueStr"></param>
|
||||
/// <remarks date="2026-Feb-03" author="Thomas Wiedebusch">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
private void UpdateValue(Label label, String valueStr)
|
||||
{
|
||||
Dispatcher.Invoke(DispatcherPriority.Normal,
|
||||
new Action(() =>
|
||||
{
|
||||
label.Content = valueStr ;
|
||||
}));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -140,16 +243,15 @@ namespace Sensus.Ui.FM2014TestBench.UserControls
|
||||
/// <param name="elm"></param>
|
||||
/// <param name="isEnabled"></param>
|
||||
/// <param name="isVisible"></param>
|
||||
public void UiElmEnable(UIElement elm, Boolean isEnabled, Boolean isVisible = true)
|
||||
private static void UiElmEnable(UIElement elm, Boolean isEnabled, Boolean isVisible = true)
|
||||
{
|
||||
elm.Dispatcher.Invoke(DispatcherPriority.Normal,
|
||||
new Action(() =>
|
||||
{
|
||||
elm.Visibility = isVisible ? Visibility.Visible : Visibility.Hidden;
|
||||
elm.IsEnabled = isEnabled;
|
||||
|
||||
elm.Opacity = isEnabled ? 1.0 : 0.2;
|
||||
}));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user