diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 310e5de7e..7be9379bb 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -32,7 +32,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/ComIOP/Common/UA COM Interop Library.csproj b/ComIOP/Common/UA COM Interop Library.csproj
index 4a88e0ed6..bb4df2e20 100644
--- a/ComIOP/Common/UA COM Interop Library.csproj
+++ b/ComIOP/Common/UA COM Interop Library.csproj
@@ -265,13 +265,13 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj b/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj
index 686d12e18..3cd4437e6 100644
--- a/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj
+++ b/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj
@@ -140,7 +140,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/Client.Net4/UA Sample Client.csproj b/Samples/Client.Net4/UA Sample Client.csproj
index 4e42a61b3..558b0abd6 100644
--- a/Samples/Client.Net4/UA Sample Client.csproj
+++ b/Samples/Client.Net4/UA Sample Client.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -134,8 +134,11 @@
+
+ 7.0.1
+
- 1.4.371.96
+ 1.4.372.56
4.3.4
diff --git a/Samples/Client/Opc.Ua.SampleClient.csproj b/Samples/Client/Opc.Ua.SampleClient.csproj
index 28bcd5b9f..6ae58869d 100644
--- a/Samples/Client/Opc.Ua.SampleClient.csproj
+++ b/Samples/Client/Opc.Ua.SampleClient.csproj
@@ -158,7 +158,7 @@
6.2.14
- 1.4.371.96
+ 1.4.372.56
4.3.0
diff --git a/Samples/ClientControls.Net4/Common/Client/SubscribeDataListViewCtrl.cs b/Samples/ClientControls.Net4/Common/Client/SubscribeDataListViewCtrl.cs
index ec5b9d4a9..79eda8096 100644
--- a/Samples/ClientControls.Net4/Common/Client/SubscribeDataListViewCtrl.cs
+++ b/Samples/ClientControls.Net4/Common/Client/SubscribeDataListViewCtrl.cs
@@ -51,10 +51,10 @@ public partial class SubscribeDataListViewCtrl : UserControl
public SubscribeDataListViewCtrl()
{
InitializeComponent();
- m_PublishStatusChanged = new EventHandler(OnPublishStatusChanged);
+ m_PublishStatusChanged = new PublishStateChangedEventHandler(OnPublishStatusChanged);
ResultsDV.AutoGenerateColumns = false;
ImageList = new ClientUtils().ImageList;
-
+
m_dataset = new DataSet();
m_dataset.Tables.Add("Requests");
@@ -86,7 +86,7 @@ public SubscribeDataListViewCtrl()
private Subscription m_subscription;
private DisplayState m_state;
private EditComplexValueDlg m_EditComplexValueDlg;
- private EventHandler m_PublishStatusChanged;
+ private PublishStateChangedEventHandler m_PublishStatusChanged;
#endregion
#region Stage Enum
@@ -196,7 +196,7 @@ public void SetSubscription(Subscription subscription)
m_subscription.Handle = this;
}
}
-
+
///
/// Adds the monitored items to the subscription.
///
@@ -217,7 +217,7 @@ public void AddItems(params ReadValueId[] itemsToMonitor)
{
continue;
}
-
+
DataRow row = m_dataset.Tables[0].NewRow();
MonitoredItem monitoredItem = new MonitoredItem(m_subscription.DefaultItem);
@@ -421,7 +421,7 @@ private void UpdateRow(DataRow row, MonitoredItemNotification notification)
if (value != null)
{
- row[1] = ImageList.Images[ClientUtils.GetImageIndex(Attributes.Value, value.Value)];
+ row[1] = ImageList.Images[ClientUtils.GetImageIndex(Attributes.Value, value.Value)];
row[12] = (value.WrappedValue.TypeInfo != null) ? value.WrappedValue.TypeInfo.ToString() : String.Empty;
row[13] = value.WrappedValue;
row[14] = value.StatusCode;
@@ -445,13 +445,13 @@ private string GetDisplayString(Subscription subscription)
buffer.Append("/");
buffer.Append(subscription.CurrentLifetimeCount);
buffer.Append("}");
-
+
return buffer.ToString();
}
#endregion
#region Event Handlers
- private void OnPublishStatusChanged(object sender, EventArgs e)
+ private void OnPublishStatusChanged(object sender, PublishStateChangedEventArgs e)
{
if (!Object.ReferenceEquals(sender, m_subscription))
{
@@ -466,12 +466,12 @@ private void OnPublishStatusChanged(object sender, EventArgs e)
try
{
- if (m_subscription.PublishingStopped)
+ if ((e.Status & PublishStateChangedMask.Stopped) != 0)
{
SubscriptionStateTB.Text = "STOPPED";
SubscriptionStateTB.ForeColor = Color.Red;
}
- else
+ else if ((e.Status & PublishStateChangedMask.Recovered) != 0)
{
SubscriptionStateTB.Text = GetDisplayString(m_subscription);
SubscriptionStateTB.ForeColor = Color.Empty;
@@ -649,7 +649,7 @@ private void ViewValueMI_Click(object sender, EventArgs e)
m_EditComplexValueDlg = new EditComplexValueDlg();
m_EditComplexValueDlg.Tag = monitoredItem;
-
+
m_EditComplexValueDlg.ShowDialog(
m_session,
monitoredItem.ResolvedNodeId,
@@ -706,10 +706,10 @@ private void SetMonitoringModeMI_Click(object sender, EventArgs e)
MonitoringMode oldMonitoringMode = monitoredItems[0].MonitoringMode;
MonitoringMode newMonitoringMode = new EditMonitoredItemDlg().ShowDialog(oldMonitoringMode);
- if (oldMonitoringMode != newMonitoringMode)
+ if (oldMonitoringMode != newMonitoringMode)
{
List itemsToModify = new List();
-
+
foreach (MonitoredItem monitoredItem in monitoredItems)
{
DataRow row = (DataRow)monitoredItem.Handle;
@@ -723,7 +723,7 @@ private void SetMonitoringModeMI_Click(object sender, EventArgs e)
monitoredItem.MonitoringMode = newMonitoringMode;
}
-
+
if (itemsToModify.Count != 0)
{
m_subscription.SetMonitoringMode(newMonitoringMode, itemsToModify);
diff --git a/Samples/ClientControls.Net4/Common/Client/SubscribeEventsDlg.cs b/Samples/ClientControls.Net4/Common/Client/SubscribeEventsDlg.cs
index 1def8482a..cba47b470 100644
--- a/Samples/ClientControls.Net4/Common/Client/SubscribeEventsDlg.cs
+++ b/Samples/ClientControls.Net4/Common/Client/SubscribeEventsDlg.cs
@@ -56,7 +56,7 @@ public SubscribeEventsDlg()
BrowseCTRL.BrowseTV.CheckBoxes = true;
BrowseCTRL.BrowseTV.AfterCheck += new TreeViewEventHandler(BrowseTV_AfterCheck);
- m_PublishStatusChanged = new EventHandler(OnPublishStatusChanged);
+ m_PublishStatusChanged = new PublishStateChangedEventHandler(OnPublishStatusChanged);
ItemsDV.AutoGenerateColumns = false;
ImageList = new ClientUtils().ImageList;
@@ -74,14 +74,14 @@ public SubscribeEventsDlg()
ItemsDV.DataSource = m_dataset.Tables[0];
}
#endregion
-
+
#region Private Fields
private DataSet m_dataset;
private FilterDeclaration m_filter;
private DisplayState m_state;
private Session m_session;
private Subscription m_subscription;
- private EventHandler m_PublishStatusChanged;
+ private PublishStateChangedEventHandler m_PublishStatusChanged;
#endregion
private enum DisplayState
@@ -389,9 +389,9 @@ private string GetDisplayString(Subscription subscription)
buffer.Append(" (");
buffer.Append(subscription.CurrentPublishingInterval);
buffer.Append("ms/");
- buffer.Append(subscription.CurrentPublishingInterval*subscription.CurrentKeepAliveCount/1000);
+ buffer.Append(subscription.CurrentPublishingInterval * subscription.CurrentKeepAliveCount / 1000);
buffer.Append("s/");
- buffer.Append(subscription.CurrentPublishingInterval*subscription.CurrentLifetimeCount/1000);
+ buffer.Append(subscription.CurrentPublishingInterval * subscription.CurrentLifetimeCount / 1000);
buffer.Append("s}");
return buffer.ToString();
@@ -504,7 +504,7 @@ private void UpdateFilter()
fields.Add(field);
}
-
+
// update filter.
m_filter.EventTypeId = eventTypeId;
m_filter.Fields = fields;
@@ -644,7 +644,7 @@ private void SetEventTypeChecks(TreeNode node, bool isChecked)
#endregion
#region Event Handlers
- private void OnPublishStatusChanged(object sender, EventArgs e)
+ private void OnPublishStatusChanged(object sender, PublishStateChangedEventArgs e)
{
if (!Object.ReferenceEquals(sender, m_subscription))
{
@@ -659,12 +659,12 @@ private void OnPublishStatusChanged(object sender, EventArgs e)
try
{
- if (m_subscription.PublishingStopped)
+ if ((e.Status & PublishStateChangedMask.Stopped) != 0)
{
SubscriptionStateTB.Text = "STOPPED";
SubscriptionStateTB.ForeColor = Color.Red;
}
- else
+ else if ((e.Status & PublishStateChangedMask.Recovered) != 0)
{
SubscriptionStateTB.Text = GetDisplayString(m_subscription);
SubscriptionStateTB.ForeColor = Color.Empty;
diff --git a/Samples/ClientControls.Net4/Common/DiscoveredServerOnNetworkListCtrl.cs b/Samples/ClientControls.Net4/Common/DiscoveredServerOnNetworkListCtrl.cs
index fad86baf1..b4ae4c372 100644
--- a/Samples/ClientControls.Net4/Common/DiscoveredServerOnNetworkListCtrl.cs
+++ b/Samples/ClientControls.Net4/Common/DiscoveredServerOnNetworkListCtrl.cs
@@ -57,17 +57,17 @@ public DiscoveredServerOnNetworkListCtrl()
ItemsLV.MultiSelect = false;
}
#endregion
-
+
#region Private Fields
// The columns to display in the control.
- private readonly object[][] m_ColumnNames = new object[][]
- {
- new object[] { "RecordId", HorizontalAlignment.Left, null },
- new object[] { "ServerName", HorizontalAlignment.Left, null },
- new object[] { "DiscoveryUrl", HorizontalAlignment.Left, null },
- new object[] { "ServerCapabilities", HorizontalAlignment.Left, null }
- };
-
+ private readonly object[][] m_ColumnNames = new object[][]
+ {
+ new object[] { "RecordId", HorizontalAlignment.Left, null },
+ new object[] { "ServerName", HorizontalAlignment.Left, null },
+ new object[] { "DiscoveryUrl", HorizontalAlignment.Left, null },
+ new object[] { "ServerCapabilities", HorizontalAlignment.Left, null }
+ };
+
private ApplicationConfiguration m_configuration;
private int m_discoveryTimeout;
private int m_discoverCount;
@@ -115,7 +115,7 @@ public void Initialize(string hostname, NumericUpDown startingRecordId, NumericU
{
hostname = System.Net.Dns.GetHostName();
}
-
+
this.Instructions = Utils.Format("Discovering servers on host '{0}'.", hostname);
AdjustColumns();
@@ -131,7 +131,7 @@ public void Initialize(string hostname, NumericUpDown startingRecordId, NumericU
{
discoveryUrls = new StringCollection(Utils.DiscoveryUrls);
}
-
+
// update the urls with the hostname.
StringCollection urlsToUse = new StringCollection();
@@ -154,7 +154,7 @@ private void OnUpdateServers(object state)
this.BeginInvoke(new WaitCallback(OnUpdateServers), state);
return;
}
-
+
ItemsLV.Items.Clear();
ServerOnNetworkCollection servers = state as ServerOnNetworkCollection;
@@ -254,7 +254,7 @@ private bool DiscoverServersOnNetwork(Uri discoveryUrl)
}
catch (Exception e)
{
- Utils.LogError("Error retrieving FindServersOnNetwork parameters. Error=({1}){0}", e.Message, e.GetType());
+ Utils.LogError("Error retrieving FindServersOnNetwork parameters. Error=({0}){1}", e.GetType(), e.Message);
return false;
}
@@ -265,7 +265,7 @@ private bool DiscoverServersOnNetwork(Uri discoveryUrl)
}
catch (Exception e)
{
- Utils.LogError("DISCOVERY ERROR - Could not fetch servers from url: {0}. Error=({2}){1}", discoveryUrl, e.Message, e.GetType());
+ Utils.LogError("DISCOVERY ERROR - Could not fetch servers from url: {0}. Error=({1}){2}", discoveryUrl, e.GetType(), e.Message);
return false;
}
finally
@@ -295,7 +295,7 @@ protected override void UpdateItem(ListViewItem listItem, object item)
listItem.SubItems[0].Text = String.Format("{0}", server.RecordId);
listItem.SubItems[1].Text = String.Format("{0}", server.ServerName);
listItem.SubItems[2].Text = String.Format("{0}", server.DiscoveryUrl);
- listItem.SubItems[3].Text = String.Format("{0}", string.Join(",", server.ServerCapabilities));
+ listItem.SubItems[3].Text = String.Format("{0}", string.Join(",", server.ServerCapabilities));
listItem.ImageKey = GuiUtils.Icons.Service;
}
diff --git a/Samples/ClientControls.Net4/Configuration/Common (OLD)/DataListCtrl.cs b/Samples/ClientControls.Net4/Configuration/Common (OLD)/DataListCtrl.cs
index 078f57ee1..848dba32e 100644
--- a/Samples/ClientControls.Net4/Configuration/Common (OLD)/DataListCtrl.cs
+++ b/Samples/ClientControls.Net4/Configuration/Common (OLD)/DataListCtrl.cs
@@ -55,8 +55,8 @@ public partial class DataListCtrl : Opc.Ua.Client.Controls.BaseListCtrl
///
public DataListCtrl()
{
- InitializeComponent();
- SetColumns(m_ColumnNames);
+ InitializeComponent();
+ SetColumns(m_ColumnNames);
}
#region Private Fields
@@ -64,11 +64,11 @@ public DataListCtrl()
/// The columns to display in the control.
///
private readonly object[][] m_ColumnNames = new object[][]
- {
- new object[] { "Name", HorizontalAlignment.Left, null },
- new object[] { "Value", HorizontalAlignment.Left, null, 250 },
- new object[] { "Type", HorizontalAlignment.Left, null }
- };
+ {
+ new object[] { "Name", HorizontalAlignment.Left, null },
+ new object[] { "Value", HorizontalAlignment.Left, null, 250 },
+ new object[] { "Type", HorizontalAlignment.Left, null }
+ };
private bool m_latestValue = true;
private bool m_expanding;
@@ -76,11 +76,11 @@ public DataListCtrl()
private Font m_defaultFont;
private MonitoredItem m_monitoredItem;
- private const string UnknownType = "(unknown)";
- private const string NullValue = "(null)";
- private const string ExpandIcon = "ExpandPlus";
+ private const string UnknownType = "(unknown)";
+ private const string NullValue = "(null)";
+ private const string ExpandIcon = "ExpandPlus";
private const string CollapseIcon = "ExpandMinus";
- #endregion
+ #endregion
#region Public Interface
///
@@ -88,7 +88,7 @@ public DataListCtrl()
///
public bool AutoUpdate
{
- get { return UpdatesMI.Checked; }
+ get { return UpdatesMI.Checked; }
set { UpdatesMI.Checked = value; }
}
@@ -97,16 +97,16 @@ public bool AutoUpdate
///
public bool LatestValue
{
- get { return m_latestValue; }
+ get { return m_latestValue; }
set { m_latestValue = value; }
}
-
+
///
/// The monitored item associated with the value.
///
public MonitoredItem MonitoredItem
{
- get { return m_monitoredItem; }
+ get { return m_monitoredItem; }
set { m_monitoredItem = value; }
}
@@ -118,7 +118,7 @@ public void Clear()
ItemsLV.Items.Clear();
AdjustColumns();
}
-
+
///
/// Displays a value in the control.
///
@@ -142,13 +142,13 @@ public void ShowValue(object value, bool overwrite)
m_defaultFont = new Font("Courier New", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0)));
}
else
- {
+ {
m_defaultFont = ItemsLV.Font;
}
m_expanding = false;
m_depth = 0;
-
+
// show the value.
int index = 0;
ShowValue(ref index, ref overwrite, value);
@@ -156,8 +156,8 @@ public void ShowValue(object value, bool overwrite)
// adjust columns.
AdjustColumns();
}
- #endregion
-
+ #endregion
+
#region Overridden Methods
///
/// Enables the menu items.
@@ -165,7 +165,7 @@ public void ShowValue(object value, bool overwrite)
protected override void EnableMenuItems(ListViewItem clickedItem)
{
RefreshMI.Enabled = true;
- ClearMI.Enabled = true;
+ ClearMI.Enabled = true;
if (ItemsLV.SelectedItems.Count == 1)
{
@@ -173,8 +173,8 @@ protected override void EnableMenuItems(ListViewItem clickedItem)
EditMI.Enabled = IsEditableType(state.Component);
}
}
- #endregion
-
+ #endregion
+
#region ValueState Class
///
/// Stores the state associated with an item.
@@ -188,7 +188,7 @@ private class ValueState
public object ComponentId = null;
public object ComponentIndex = null;
}
- #endregion
+ #endregion
#region Private Members
///
@@ -196,20 +196,20 @@ private class ValueState
///
private bool IsEditableType(object value)
{
- if (value is bool) return true;
- if (value is sbyte) return true;
- if (value is byte) return true;
- if (value is short) return true;
- if (value is ushort) return true;
- if (value is int) return true;
- if (value is uint) return true;
- if (value is long) return true;
- if (value is ulong) return true;
- if (value is float) return true;
- if (value is double) return true;
- if (value is string) return true;
- if (value is DateTime) return true;
- if (value is Guid) return true;
+ if (value is bool) return true;
+ if (value is sbyte) return true;
+ if (value is byte) return true;
+ if (value is short) return true;
+ if (value is ushort) return true;
+ if (value is int) return true;
+ if (value is uint) return true;
+ if (value is long) return true;
+ if (value is ulong) return true;
+ if (value is float) return true;
+ if (value is double) return true;
+ if (value is string) return true;
+ if (value is DateTime) return true;
+ if (value is Guid) return true;
if (value is LocalizedText) return true;
return false;
@@ -219,7 +219,7 @@ private bool IsEditableType(object value)
/// Shows the components of a value in the control.
///
private void ShowChildren(ListViewItem listItem)
- {
+ {
ValueState state = listItem.Tag as ValueState;
if (state == null || !state.Expandable || state.Expanded)
@@ -228,19 +228,19 @@ private void ShowChildren(ListViewItem listItem)
}
m_expanding = true;
- m_depth = listItem.IndentCount+1;
-
+ m_depth = listItem.IndentCount + 1;
+
state.Expanded = true;
listItem.ImageKey = CollapseIcon;
- int index = listItem.Index+1;
+ int index = listItem.Index + 1;
bool overwrite = false;
ShowValue(ref index, ref overwrite, state.Component);
AdjustColumns();
}
-
+
///
/// Hides the components of a value in the control.
///
@@ -253,10 +253,10 @@ private void HideChildren(ListViewItem listItem)
return;
}
- for (int ii = listItem.Index+1; ii < ItemsLV.Items.Count;)
+ for (int ii = listItem.Index + 1; ii < ItemsLV.Items.Count;)
{
ListViewItem childItem = ItemsLV.Items[ii];
-
+
if (childItem.IndentCount <= listItem.IndentCount)
{
break;
@@ -275,17 +275,17 @@ private void HideChildren(ListViewItem listItem)
private ListViewItem GetListItem(int index, ref bool overwrite, string name, string type)
{
ListViewItem listitem = null;
-
+
// switch to detail view as soon as an item is added.
if (ItemsLV.View == View.List)
{
- ItemsLV.Items.Clear();
+ ItemsLV.Items.Clear();
ItemsLV.View = View.Details;
}
// check if there is an item that could be re-used.
if (!m_expanding && index < ItemsLV.Items.Count)
- {
+ {
listitem = ItemsLV.Items[index];
// check if still possible to overwrite values.
@@ -296,24 +296,24 @@ private ListViewItem GetListItem(int index, ref bool overwrite, string name, str
overwrite = false;
}
}
-
+
listitem.SubItems[0].Text = name;
listitem.SubItems[2].Text = type;
return listitem;
}
-
+
overwrite = false;
listitem = new ListViewItem(name);
listitem.SubItems.Add(String.Empty);
listitem.SubItems.Add(type);
-
- listitem.Font = m_defaultFont;
- listitem.ImageKey = ExpandIcon;
+
+ listitem.Font = m_defaultFont;
+ listitem.ImageKey = ExpandIcon;
listitem.IndentCount = m_depth;
- listitem.Tag = new ValueState();
+ listitem.Tag = new ValueState();
if (!m_expanding)
{
@@ -323,10 +323,10 @@ private ListViewItem GetListItem(int index, ref bool overwrite, string name, str
{
ItemsLV.Items.Insert(index, listitem);
}
-
+
return listitem;
}
-
+
///
/// Returns true if the type can be expanded.
///
@@ -343,15 +343,15 @@ private bool IsExpandableType(object value)
{
return IsExpandableType(((Variant)value).Value);
}
-
+
// check for bytes.
byte[] bytes = value as byte[];
if (bytes != null)
{
return false;
- }
-
+ }
+
// check for xml element.
XmlElement xml = value as XmlElement;
@@ -363,8 +363,8 @@ private bool IsExpandableType(object value)
}
return xml.HasChildNodes;
- }
-
+ }
+
// check for array.
Array array = value as Array;
@@ -381,8 +381,8 @@ private bool IsExpandableType(object value)
if (array != null)
{
return array.Length > 0;
- }
-
+ }
+
// check for list.
IList list = value as IList;
@@ -390,7 +390,7 @@ private bool IsExpandableType(object value)
{
return list.Count > 0;
}
-
+
// check for encodeable object.
IEncodeable encodeable = value as IEncodeable;
@@ -401,23 +401,23 @@ private bool IsExpandableType(object value)
// check for extension object.
ExtensionObject extension = value as ExtensionObject;
-
+
if (extension != null)
{
return IsExpandableType(extension.Body);
}
-
+
// check for data value.
DataValue datavalue = value as DataValue;
-
+
if (datavalue != null)
{
return true;
}
-
+
// check for event value.
EventFieldList eventFields = value as EventFieldList;
-
+
if (eventFields != null)
{
return true;
@@ -437,7 +437,7 @@ private string GetValueText(object value)
{
return "(null)";
}
-
+
// format bytes.
byte[] bytes = value as byte[];
@@ -447,7 +447,7 @@ private string GetValueText(object value)
for (int ii = 0; ii < bytes.Length; ii++)
{
- if (ii != 0 && ii%16 == 0)
+ if (ii != 0 && ii % 16 == 0)
{
buffer.Append(" ");
}
@@ -456,8 +456,8 @@ private string GetValueText(object value)
}
return buffer.ToString();
- }
-
+ }
+
// format xml element.
XmlElement xml = value as XmlElement;
@@ -468,7 +468,7 @@ private string GetValueText(object value)
{
return xml.OuterXml;
}
-
+
// show only the start tag.
string text = xml.OuterXml;
@@ -478,10 +478,10 @@ private string GetValueText(object value)
{
text = text.Substring(0, index);
}
-
+
return text;
- }
-
+ }
+
// format array.
Array array = value as Array;
@@ -496,14 +496,14 @@ private string GetValueText(object value)
lenghts[i] = array.GetLength(i);
}
- return Utils.Format("{1}[{0}]", string.Join(",", lenghts), value.GetType().GetElementType().Name);
+ return Utils.Format("{0}[{1}]", value.GetType().GetElementType().Name, string.Join(",", lenghts));
}
else
{
- return Utils.Format("{1}[{0}]", array.Length, value.GetType().GetElementType().Name);
+ return Utils.Format("{0}[{1}]", value.GetType().GetElementType().Name, array.Length);
}
}
-
+
// format list.
IList list = value as IList;
@@ -520,9 +520,9 @@ private string GetValueText(object value)
type = "Object";
}
- return Utils.Format("{1}[{0}]", list.Count, type);
+ return Utils.Format("{0}[{1}]", type, list.Count);
}
-
+
// format encodeable object.
IEncodeable encodeable = value as IEncodeable;
@@ -533,15 +533,15 @@ private string GetValueText(object value)
// format extension object.
ExtensionObject extension = value as ExtensionObject;
-
+
if (extension != null)
{
return GetValueText(extension.Body);
}
-
+
// check for event value.
EventFieldList eventFields = value as EventFieldList;
-
+
if (eventFields != null)
{
if (m_monitoredItem != null)
@@ -554,7 +554,7 @@ private string GetValueText(object value)
// check for data value.
DataValue dataValue = value as DataValue;
-
+
if (dataValue != null)
{
StringBuilder formattedValue = new StringBuilder();
@@ -590,7 +590,7 @@ private string GetValueText(object value)
formattedValue.AppendFormat("{0}", dataValue.Value);
return formattedValue.ToString();
}
-
+
// use default formatting.
return Utils.Format("{0}", value);
}
@@ -599,13 +599,13 @@ private string GetValueText(object value)
/// Updates the list with the specified value.
///
private void UpdateList(
- ref int index,
+ ref int index,
ref bool overwrite,
- object value,
- object componentValue,
- object componentId,
- string name,
- string type)
+ object value,
+ object componentValue,
+ object componentId,
+ string name,
+ string type)
{
// get the list item to update.
ListViewItem listitem = GetListItem(index, ref overwrite, name, type);
@@ -617,13 +617,13 @@ private void UpdateList(
{
// update list item.
listitem.SubItems[1].Text = GetValueText(componentValue);
- }
+ }
// move to next item.
index++;
ValueState state = listitem.Tag as ValueState;
-
+
// recursively update sub-values if item is expanded.
if (overwrite)
{
@@ -636,10 +636,10 @@ private void UpdateList(
}
// update state.
- state.Expandable = IsExpandableType(componentValue);
- state.Value = value;
- state.Component = componentValue;
- state.ComponentId = componentId;
+ state.Expandable = IsExpandableType(componentValue);
+ state.Value = value;
+ state.Component = componentValue;
+ state.ComponentId = componentId;
state.ComponentIndex = index;
if (!state.Expandable)
@@ -704,7 +704,7 @@ private void UpdateList(
/// Shows property of an encodeable object in the control.
///
private void ShowValue(ref int index, ref bool overwrite, IEncodeable value, PropertyInfo property)
- {
+ {
// get the name of the property.
string name = Utils.GetDataMemberName(property);
@@ -712,7 +712,7 @@ private void ShowValue(ref int index, ref bool overwrite, IEncodeable value, Pro
{
return;
}
-
+
// get the property value.
object propertyValue = null;
@@ -726,12 +726,12 @@ private void ShowValue(ref int index, ref bool overwrite, IEncodeable value, Pro
break;
}
}
-
+
if (propertyValue is Variant)
{
propertyValue = ((Variant)propertyValue).Value;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -742,15 +742,15 @@ private void ShowValue(ref int index, ref bool overwrite, IEncodeable value, Pro
name,
property.PropertyType.Name);
}
-
+
///
/// Shows the element of an array in the control.
///
private void ShowValue(ref int index, ref bool overwrite, Array value, int element)
- {
+ {
// get the name of the element.
string name = Utils.Format("[{0}]", element);
-
+
// get the element value.
object elementValue = null;
@@ -794,7 +794,7 @@ private void ShowValue(ref int index, ref bool overwrite, Array value, int eleme
{
elementValue = value.GetValue(element);
}
-
+
// get the type name.
string type = null;
@@ -802,7 +802,7 @@ private void ShowValue(ref int index, ref bool overwrite, Array value, int eleme
{
type = elementValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -849,19 +849,19 @@ private void ShowValue(ref int index, ref bool overwrite, Array value, int eleme
/// Asks for confirmation before expanding a long list.
///
private bool PromptOnLongList(int length)
- {
+ {
if (length < 256)
{
return true;
}
-
+
DialogResult result = MessageBox.Show("It may take a long time to display the list are you sure you want to continue?", "Warning", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
return true;
}
-
+
return false;
}
@@ -869,13 +869,13 @@ private bool PromptOnLongList(int length)
/// Shows the element of a list in the control.
///
private void ShowValue(ref int index, ref bool overwrite, IList value, int element)
- {
+ {
// get the name of the element.
string name = Utils.Format("[{0}]", element);
-
+
// get the element value.
object elementValue = value[element];
-
+
// get the type name.
string type = null;
@@ -883,7 +883,7 @@ private void ShowValue(ref int index, ref bool overwrite, IList value, int eleme
{
type = elementValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -894,12 +894,12 @@ private void ShowValue(ref int index, ref bool overwrite, IList value, int eleme
name,
type);
}
-
+
///
/// Shows an XML element in the control.
///
private void ShowValue(ref int index, ref bool overwrite, XmlElement value, int childIndex)
- {
+ {
// ignore children that are not elements.
XmlElement child = value.ChildNodes[childIndex] as XmlElement;
@@ -907,13 +907,13 @@ private void ShowValue(ref int index, ref bool overwrite, XmlElement value, int
{
return;
}
-
+
// get the name of the element.
string name = Utils.Format("{0}", child.Name);
-
+
// get the type name.
string type = value.GetType().Name;
-
+
// update the list view.
UpdateList(
ref index,
@@ -923,13 +923,13 @@ private void ShowValue(ref int index, ref bool overwrite, XmlElement value, int
childIndex,
name,
type);
- }
-
+ }
+
///
/// Shows an event in the control.
///
private void ShowValue(ref int index, ref bool overwrite, EventFieldList value, int fieldIndex)
- {
+ {
// ignore children that are not elements.
object field = value.EventFields[fieldIndex].Value;
@@ -937,18 +937,18 @@ private void ShowValue(ref int index, ref bool overwrite, EventFieldList value,
{
return;
}
-
+
// get the name of the element.
string name = null;
if (m_monitoredItem != null)
- {
+ {
name = m_monitoredItem.GetFieldName(fieldIndex);
}
-
+
// get the type name.
string type = value.GetType().Name;
-
+
// update the list view.
UpdateList(
ref index,
@@ -958,18 +958,18 @@ private void ShowValue(ref int index, ref bool overwrite, EventFieldList value,
fieldIndex,
name,
type);
- }
-
+ }
+
///
/// Shows a byte array in the control.
///
private void ShowValue(ref int index, ref bool overwrite, byte[] value, int blockStart)
- {
+ {
// get the name of the element.
string name = Utils.Format("[{0:X4}]", blockStart);
-
+
int bytesLeft = value.Length - blockStart;
-
+
if (bytesLeft > 16)
{
bytesLeft = 16;
@@ -978,10 +978,10 @@ private void ShowValue(ref int index, ref bool overwrite, byte[] value, int bloc
// get the element value.
byte[] blockValue = new byte[bytesLeft];
Array.Copy(value, blockStart, blockValue, 0, bytesLeft);
-
+
// get the type name.
string type = value.GetType().Name;
-
+
// update the list view.
UpdateList(
ref index,
@@ -992,12 +992,12 @@ private void ShowValue(ref int index, ref bool overwrite, byte[] value, int bloc
name,
type);
}
-
+
///
/// Shows a data value in the control.
///
private void ShowValue(ref int index, ref bool overwrite, DataValue value, int component)
- {
+ {
string name = null;
object componentValue = null;
@@ -1009,7 +1009,7 @@ private void ShowValue(ref int index, ref bool overwrite, DataValue value, int c
componentValue = value.Value;
ExtensionObject extension = componentValue as ExtensionObject;
-
+
if (extension != null)
{
componentValue = extension.Body;
@@ -1061,7 +1061,7 @@ private void ShowValue(ref int index, ref bool overwrite, DataValue value, int c
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1077,7 +1077,7 @@ private void ShowValue(ref int index, ref bool overwrite, DataValue value, int c
/// Shows a node id in the control.
///
private void ShowValue(ref int index, ref bool overwrite, NodeId value, int component)
- {
+ {
string name = null;
object componentValue = null;
@@ -1118,7 +1118,7 @@ private void ShowValue(ref int index, ref bool overwrite, NodeId value, int comp
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1129,12 +1129,12 @@ private void ShowValue(ref int index, ref bool overwrite, NodeId value, int comp
name,
type);
}
-
+
///
/// Shows am expanded node id in the control.
///
private void ShowValue(ref int index, ref bool overwrite, ExpandedNodeId value, int component)
- {
+ {
string name = null;
object componentValue = null;
@@ -1182,7 +1182,7 @@ private void ShowValue(ref int index, ref bool overwrite, ExpandedNodeId value,
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1193,12 +1193,12 @@ private void ShowValue(ref int index, ref bool overwrite, ExpandedNodeId value,
name,
type);
}
-
+
///
/// Shows qualified name in the control.
///
private void ShowValue(ref int index, ref bool overwrite, QualifiedName value, int component)
- {
+ {
string name = null;
object componentValue = null;
@@ -1232,7 +1232,7 @@ private void ShowValue(ref int index, ref bool overwrite, QualifiedName value, i
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1243,12 +1243,12 @@ private void ShowValue(ref int index, ref bool overwrite, QualifiedName value, i
name,
type);
}
-
+
///
/// Shows localized text in the control.
///
private void ShowValue(ref int index, ref bool overwrite, LocalizedText value, int component)
- {
+ {
string name = null;
object componentValue = null;
@@ -1282,7 +1282,7 @@ private void ShowValue(ref int index, ref bool overwrite, LocalizedText value, i
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1293,12 +1293,12 @@ private void ShowValue(ref int index, ref bool overwrite, LocalizedText value, i
name,
type);
}
-
+
///
/// Shows a string in the control.
///
private void ShowValue(ref int index, ref bool overwrite, string value)
- {
+ {
string name = "Value";
object componentValue = value;
@@ -1315,7 +1315,7 @@ private void ShowValue(ref int index, ref bool overwrite, string value)
{
type = componentValue.GetType().Name;
}
-
+
// update the list view.
UpdateList(
ref index,
@@ -1345,8 +1345,8 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
m_monitoredItem = monitoredItem;
ShowValue(ref index, ref overwrite, monitoredItem.LastValue);
return;
- }
-
+ }
+
// show data changes
MonitoredItemNotification datachange = value as MonitoredItemNotification;
@@ -1388,7 +1388,7 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
EventFieldList eventFields = value as EventFieldList;
if (eventFields != null)
- {
+ {
for (int ii = 0; ii < eventFields.EventFields.Count; ii++)
{
ShowValue(ref index, ref overwrite, eventFields, ii);
@@ -1420,22 +1420,22 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
return;
}
-
+
// show bytes.
byte[] bytes = value as byte[];
if (bytes != null)
{
- if (!PromptOnLongList(bytes.Length/16))
+ if (!PromptOnLongList(bytes.Length / 16))
{
return;
}
- for (int ii = 0; ii < bytes.Length; ii+=16)
+ for (int ii = 0; ii < bytes.Length; ii += 16)
{
ShowValue(ref index, ref overwrite, bytes, ii);
}
-
+
return;
}
@@ -1445,7 +1445,7 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
if (array == null)
{
Matrix matrix = value as Matrix;
-
+
if (matrix != null)
{
array = matrix.ToArray();
@@ -1484,10 +1484,10 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
return;
}
-
+
// show xml elements
XmlElement xml = value as XmlElement;
-
+
if (xml != null)
{
if (!PromptOnLongList(xml.ChildNodes.Count))
@@ -1502,7 +1502,7 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
return;
}
-
+
// show data value.
DataValue datavalue = value as DataValue;
@@ -1536,7 +1536,7 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
ShowValue(ref index, ref overwrite, expandedNodeId, 2);
ShowValue(ref index, ref overwrite, expandedNodeId, 3);
return;
- }
+ }
// show qualified name value.
QualifiedName qualifiedName = value as QualifiedName;
@@ -1557,7 +1557,7 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
ShowValue(ref index, ref overwrite, localizedText, 1);
return;
}
-
+
// show variant.
Variant? variant = value as Variant?;
@@ -1574,12 +1574,12 @@ private void ShowValue(ref int index, ref bool overwrite, object value)
private void ItemsLV_MouseClick(object sender, MouseEventArgs e)
{
try
- {
+ {
if (e.Button != MouseButtons.Left)
{
return;
}
-
+
ListViewItem listItem = ItemsLV.GetItemAt(e.X, e.Y);
if (listItem == null)
@@ -1588,12 +1588,12 @@ private void ItemsLV_MouseClick(object sender, MouseEventArgs e)
}
ValueState state = listItem.Tag as ValueState;
-
+
if (state == null || !state.Expandable)
{
return;
}
-
+
if (state.Expanded)
{
HideChildren(listItem);
@@ -1605,11 +1605,11 @@ private void ItemsLV_MouseClick(object sender, MouseEventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
- #endregion
-
+ #endregion
+
#region Event Handlers
private void UpdatesMI_CheckedChanged(object sender, EventArgs e)
{
@@ -1631,7 +1631,7 @@ private void UpdatesMI_CheckedChanged(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -1646,7 +1646,7 @@ private void RefreshMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -1658,7 +1658,7 @@ private void ClearMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -1700,7 +1700,7 @@ private void EditMI_Click(object sender, EventArgs e)
if (state.Value is IEncodeable)
{
PropertyInfo property = (PropertyInfo)state.ComponentId;
-
+
MethodInfo[] accessors = property.GetAccessors();
for (int ii = 0; ii < accessors.Length; ii++)
@@ -1713,7 +1713,7 @@ private void EditMI_Click(object sender, EventArgs e)
}
}
}
-
+
DataValue datavalue = state.Value as DataValue;
if (datavalue != null)
@@ -1743,7 +1743,7 @@ private void EditMI_Click(object sender, EventArgs e)
}
bool overwrite = true;
- ShowValue(ref index, ref overwrite, state.Value);
+ ShowValue(ref index, ref overwrite, state.Value);
}
catch (Exception exception)
{
diff --git a/Samples/ClientControls.Net4/UA Client Controls.csproj b/Samples/ClientControls.Net4/UA Client Controls.csproj
index 500c80b11..4a6b74a06 100644
--- a/Samples/ClientControls.Net4/UA Client Controls.csproj
+++ b/Samples/ClientControls.Net4/UA Client Controls.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -1015,16 +1015,16 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/ClientControls/Opc.Ua.Client.Controls.csproj b/Samples/ClientControls/Opc.Ua.Client.Controls.csproj
index e6b5e1840..707386adf 100644
--- a/Samples/ClientControls/Opc.Ua.Client.Controls.csproj
+++ b/Samples/ClientControls/Opc.Ua.Client.Controls.csproj
@@ -267,7 +267,7 @@
6.2.14
- 1.4.371.96
+ 1.4.372.56
4.3.0
diff --git a/Samples/Controls.Net4/Subscriptions/MonitoredItemDlg.cs b/Samples/Controls.Net4/Subscriptions/MonitoredItemDlg.cs
index a855685fb..93bfef1e0 100644
--- a/Samples/Controls.Net4/Subscriptions/MonitoredItemDlg.cs
+++ b/Samples/Controls.Net4/Subscriptions/MonitoredItemDlg.cs
@@ -51,7 +51,7 @@ public MonitoredItemDlg()
m_SubscriptionStateChanged = new SubscriptionStateChangedEventHandler(Subscription_StateChanged);
m_MonitoredItemNotification = new MonitoredItemNotificationEventHandler(MonitoredItem_Notification);
- m_PublishStatusChanged = new EventHandler(Subscription_PublishStatusChanged);
+ m_PublishStatusChanged = new PublishStateChangedEventHandler(Subscription_PublishStatusChanged);
}
#endregion
@@ -60,9 +60,9 @@ public MonitoredItemDlg()
private MonitoredItem m_monitoredItem;
private SubscriptionStateChangedEventHandler m_SubscriptionStateChanged;
private MonitoredItemNotificationEventHandler m_MonitoredItemNotification;
- private EventHandler m_PublishStatusChanged;
+ private PublishStateChangedEventHandler m_PublishStatusChanged;
#endregion
-
+
#region Public Interface
///
/// Displays the dialog.
@@ -70,7 +70,7 @@ public MonitoredItemDlg()
public void Show(MonitoredItem monitoredItem)
{
if (monitoredItem == null) throw new ArgumentNullException("monitoredItem");
-
+
Show();
BringToFront();
@@ -81,11 +81,11 @@ public void Show(MonitoredItem monitoredItem)
monitoredItem.Subscription.PublishStatusChanged -= m_PublishStatusChanged;
monitoredItem.Notification -= m_MonitoredItemNotification;
}
-
+
// start receiving notifications from the new subscription.
m_monitoredItem = monitoredItem;
- m_subscription = null;
-
+ m_subscription = null;
+
if (m_monitoredItem != null)
{
m_subscription = monitoredItem.Subscription;
@@ -103,7 +103,7 @@ public void Show(MonitoredItem monitoredItem)
LatestValueCTRL.ShowValue(m_monitoredItem, false);
}
#endregion
-
+
#region Private Methods
///
/// Updates the controls displaying the status of the subscription.
@@ -132,14 +132,14 @@ private void UpdateStatus()
MonitoringModeTB.ForeColor = Color.Red;
MonitoringModeTB.Font = new Font(MonitoringModeTB.Font, FontStyle.Bold);
}
-
+
LastUpdateTimeTB.Text = String.Empty;
- LastMessageIdTB.Text = String.Empty;
+ LastMessageIdTB.Text = String.Empty;
if (lastMessage != null)
{
LastUpdateTimeTB.Text = String.Format("{0:HH:mm:ss}", lastMessage.PublishTime.ToLocalTime());
- LastMessageIdTB.Text = String.Format("{0}", lastMessage.SequenceNumber);
+ LastMessageIdTB.Text = String.Format("{0}", lastMessage.SequenceNumber);
}
}
#endregion
@@ -167,7 +167,7 @@ void MonitoredItem_Notification(MonitoredItem monitoredItem, MonitoredItemNotifi
{
return;
}
-
+
// notify controls of the change.
EventsCTRL.NotificationReceived(e);
DataChangesCTRL.NotificationReceived(e);
@@ -181,7 +181,7 @@ void MonitoredItem_Notification(MonitoredItem monitoredItem, MonitoredItemNotifi
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -218,14 +218,14 @@ void Subscription_StateChanged(Subscription subscription, SubscriptionStateChang
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
///
/// Handles a change to the publish status for the subscription.
///
- void Subscription_PublishStatusChanged(object subscription, EventArgs e)
+ void Subscription_PublishStatusChanged(object subscription, PublishStateChangedEventArgs e)
{
if (InvokeRequired)
{
@@ -240,7 +240,7 @@ void Subscription_PublishStatusChanged(object subscription, EventArgs e)
try
{
// ignore notifications for other subscriptions.
- if (!Object.ReferenceEquals(m_subscription, subscription))
+ if (!Object.ReferenceEquals(m_subscription, subscription))
{
return;
}
@@ -250,7 +250,7 @@ void Subscription_PublishStatusChanged(object subscription, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -260,39 +260,39 @@ private void WindowMI_Click(object sender, EventArgs e)
{
if (sender == WindowStatusMI)
{
- WindowStatusMI.Checked = !WindowStatusMI.Checked;
+ WindowStatusMI.Checked = !WindowStatusMI.Checked;
WindowLatestValueMI.Checked = false;
- MonitoredItemsCTRL.Visible = true;
- SplitterPN.Panel1Collapsed = !WindowStatusMI.Checked;
+ MonitoredItemsCTRL.Visible = true;
+ SplitterPN.Panel1Collapsed = !WindowStatusMI.Checked;
}
else if (sender == WindowHistoryMI)
{
- WindowHistoryMI.Checked = true;
- WindowLatestValueMI.Checked = false;
- MonitoredItemsCTRL.Visible = true;
- EventsCTRL.Visible = m_monitoredItem.NodeClass != NodeClass.Variable;
- DataChangesCTRL.Visible = !EventsCTRL.Visible;
- LatestValueCTRL.Visible = false;
+ WindowHistoryMI.Checked = true;
+ WindowLatestValueMI.Checked = false;
+ MonitoredItemsCTRL.Visible = true;
+ EventsCTRL.Visible = m_monitoredItem.NodeClass != NodeClass.Variable;
+ DataChangesCTRL.Visible = !EventsCTRL.Visible;
+ LatestValueCTRL.Visible = false;
Text = String.Format("{0} - {1} - {2}", m_subscription.DisplayName, m_monitoredItem.DisplayName, "Recent Values");
}
-
+
else if (sender == WindowLatestValueMI)
{
- WindowHistoryMI.Checked = false;
- WindowLatestValueMI.Checked = true;
- MonitoredItemsCTRL.Visible = true;
- EventsCTRL.Visible = false;
- DataChangesCTRL.Visible = false;
- LatestValueCTRL.Visible = true;
+ WindowHistoryMI.Checked = false;
+ WindowLatestValueMI.Checked = true;
+ MonitoredItemsCTRL.Visible = true;
+ EventsCTRL.Visible = false;
+ DataChangesCTRL.Visible = false;
+ LatestValueCTRL.Visible = true;
Text = String.Format("{0} - {1} - {2}", m_subscription.DisplayName, m_monitoredItem.DisplayName, "Latest Value");
}
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -306,7 +306,7 @@ private void MonitoringModeMI_Click(object sender, EventArgs e)
{
monitoringMode = MonitoringMode.Reporting;
}
-
+
else if (sender == MonitoringModeSamplingMI)
{
monitoringMode = MonitoringMode.Sampling;
@@ -316,33 +316,33 @@ private void MonitoringModeMI_Click(object sender, EventArgs e)
{
monitoringMode = MonitoringMode.Disabled;
}
-
+
m_monitoredItem.Subscription.SetMonitoringMode(monitoringMode, new MonitoredItem[] { m_monitoredItem });
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
private void MonitoringModeMI_DropDownOpening(object sender, EventArgs e)
- {
+ {
try
{
MonitoringModeReportingMI.Checked = false;
- MonitoringModeSamplingMI.Checked = false;
- MonitoringModeDisabledMI.Checked = false;
+ MonitoringModeSamplingMI.Checked = false;
+ MonitoringModeDisabledMI.Checked = false;
switch (m_monitoredItem.MonitoringMode)
{
case MonitoringMode.Reporting: { MonitoringModeReportingMI.Checked = true; break; }
- case MonitoringMode.Sampling: { MonitoringModeSamplingMI.Checked = true; break; }
- case MonitoringMode.Disabled: { MonitoringModeDisabledMI.Checked = true; break; }
+ case MonitoringMode.Sampling: { MonitoringModeSamplingMI.Checked = true; break; }
+ case MonitoringMode.Disabled: { MonitoringModeDisabledMI.Checked = true; break; }
}
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
#endregion
diff --git a/Samples/Controls.Net4/Subscriptions/SubscriptionDlg.cs b/Samples/Controls.Net4/Subscriptions/SubscriptionDlg.cs
index 3d02e4d98..e5c9aa484 100644
--- a/Samples/Controls.Net4/Subscriptions/SubscriptionDlg.cs
+++ b/Samples/Controls.Net4/Subscriptions/SubscriptionDlg.cs
@@ -52,7 +52,7 @@ public SubscriptionDlg()
m_SessionNotification = new NotificationEventHandler(Session_Notification);
m_SubscriptionStateChanged = new SubscriptionStateChangedEventHandler(Subscription_StateChanged);
- m_PublishStatusChanged = new EventHandler(Subscription_PublishStatusChanged);
+ m_PublishStatusChanged = new PublishStateChangedEventHandler(Subscription_PublishStatusChanged);
}
#endregion
@@ -61,15 +61,15 @@ public SubscriptionDlg()
private NotificationEventHandler m_SessionNotification;
private SubscriptionStateChangedEventHandler m_SubscriptionStateChanged;
private CreateMonitoredItemsDlg m_createDialog;
- private EventHandler m_PublishStatusChanged;
+ private PublishStateChangedEventHandler m_PublishStatusChanged;
#endregion
-
+
#region Public Interface
///
/// Creates a new subscription.
///
public Subscription New(Session session)
- {
+ {
if (session == null) throw new ArgumentNullException("session");
Subscription subscription = new Subscription(session.DefaultSubscription);
@@ -78,8 +78,8 @@ public Subscription New(Session session)
{
return null;
}
-
- session.AddSubscription(subscription);
+
+ session.AddSubscription(subscription);
subscription.Create();
Subscription duplicateSubscription = session.Subscriptions.FirstOrDefault(s => s.Id != 0 && s.Id.Equals(subscription.Id) && s != subscription);
@@ -98,7 +98,7 @@ public Subscription New(Session session)
}
Show(subscription);
-
+
return subscription;
}
@@ -108,7 +108,7 @@ public Subscription New(Session session)
public void Show(Subscription subscription)
{
if (subscription == null) throw new ArgumentNullException("subscription");
-
+
Show();
BringToFront();
@@ -119,16 +119,16 @@ public void Show(Subscription subscription)
m_subscription.PublishStatusChanged -= m_PublishStatusChanged;
m_subscription.Session.Notification -= m_SessionNotification;
}
-
+
// start receiving notifications from the new subscription.
m_subscription = subscription;
-
+
if (subscription != null)
{
m_subscription.StateChanged += m_SubscriptionStateChanged;
m_subscription.PublishStatusChanged += m_PublishStatusChanged;
m_subscription.Session.Notification += m_SessionNotification;
- }
+ }
MonitoredItemsCTRL.Initialize(subscription);
EventsCTRL.Initialize(subscription, null);
@@ -139,7 +139,7 @@ public void Show(Subscription subscription)
UpdateStatus();
}
#endregion
-
+
#region Private Methods
///
/// Updates the controls displaying the status of the subscription.
@@ -157,7 +157,7 @@ private void UpdateStatus()
if (m_subscription != null)
{
- PublishingEnabledTB.Text = (m_subscription.CurrentPublishingEnabled)?"Enabled":"Disabled";
+ PublishingEnabledTB.Text = (m_subscription.CurrentPublishingEnabled) ? "Enabled" : "Disabled";
}
LastUpdateTimeTB.Text = String.Empty;
@@ -173,7 +173,7 @@ private void UpdateStatus()
{
LastMessageIdTB.Text = String.Format("{0}", message.SequenceNumber);
}
-
+
// determine what window to show.
bool hasEvents = false;
bool hasDatachanges = false;
@@ -184,12 +184,12 @@ private void UpdateStatus()
{
hasEvents = true;
}
-
+
if (monitoredItem.NodeClass == NodeClass.Variable)
{
hasDatachanges = true;
}
- }
+ }
// enable appropriate windows.
WindowEventsMI.Enabled = hasEvents;
@@ -228,11 +228,11 @@ void Session_Notification(ISession session, NotificationEventArgs e)
try
{
// ignore notifications for other subscriptions.
- if (!Object.ReferenceEquals(m_subscription, e.Subscription))
+ if (!Object.ReferenceEquals(m_subscription, e.Subscription))
{
return;
}
-
+
// notify controls of the change.
EventsCTRL.NotificationReceived(e);
DataChangesCTRL.NotificationReceived(e);
@@ -242,7 +242,7 @@ void Session_Notification(ISession session, NotificationEventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -264,7 +264,7 @@ void Subscription_StateChanged(Subscription subscription, SubscriptionStateChang
try
{
// ignore notifications for other subscriptions.
- if (!Object.ReferenceEquals(m_subscription, subscription))
+ if (!Object.ReferenceEquals(m_subscription, subscription))
{
return;
}
@@ -279,10 +279,10 @@ void Subscription_StateChanged(Subscription subscription, SubscriptionStateChang
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
-
+
///
/// Handles a change to the publish status for the subscription.
///
@@ -301,7 +301,7 @@ void Subscription_PublishStatusChanged(object subscription, EventArgs e)
try
{
// ignore notifications for other subscriptions.
- if (!Object.ReferenceEquals(m_subscription, subscription))
+ if (!Object.ReferenceEquals(m_subscription, subscription))
{
return;
}
@@ -311,19 +311,19 @@ void Subscription_PublishStatusChanged(object subscription, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
private void SubscriptionMI_DropDownOpening(object sender, EventArgs e)
- {
+ {
try
{
SubscriptionEnablePublishingMI.Checked = m_subscription.CurrentPublishingEnabled;
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -334,36 +334,36 @@ private void WindowMI_Click(object sender, EventArgs e)
if (sender == WindowMonitoredItemsMI)
{
WindowMonitoredItemsMI.Checked = !WindowMonitoredItemsMI.Checked;
- WindowEventsMI.Checked = false;
- MonitoredItemsCTRL.Visible = true;
- SplitterPN.Panel1Collapsed = !WindowMonitoredItemsMI.Checked;
+ WindowEventsMI.Checked = false;
+ MonitoredItemsCTRL.Visible = true;
+ SplitterPN.Panel1Collapsed = !WindowMonitoredItemsMI.Checked;
}
else if (sender == WindowDataChangesMI)
{
- WindowDataChangesMI.Checked = true;
- WindowEventsMI.Checked = false;
- MonitoredItemsCTRL.Visible = true;
- EventsCTRL.Visible = false;
- DataChangesCTRL.Visible = true;
+ WindowDataChangesMI.Checked = true;
+ WindowEventsMI.Checked = false;
+ MonitoredItemsCTRL.Visible = true;
+ EventsCTRL.Visible = false;
+ DataChangesCTRL.Visible = true;
Text = String.Format("{0} - {1}", m_subscription.DisplayName, "Data Changes");
}
-
+
else if (sender == WindowEventsMI)
{
- WindowDataChangesMI.Checked = false;
- WindowEventsMI.Checked = true;
- MonitoredItemsCTRL.Visible = true;
- EventsCTRL.Visible = true;
- DataChangesCTRL.Visible = false;
+ WindowDataChangesMI.Checked = false;
+ WindowEventsMI.Checked = true;
+ MonitoredItemsCTRL.Visible = true;
+ EventsCTRL.Visible = true;
+ DataChangesCTRL.Visible = false;
Text = String.Format("{0} - {1}", m_subscription.DisplayName, "Events");
}
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -375,7 +375,7 @@ private void SubscriptionEnablePublishingMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -392,7 +392,7 @@ private void SubscriptionDlg_FormClosing(object sender, FormClosingEventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -404,12 +404,12 @@ private void EditMI_Click(object sender, EventArgs e)
{
return;
}
-
+
m_subscription.Modify();
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -427,7 +427,7 @@ private void SubscriptionCreateItemMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -442,7 +442,7 @@ void CreateDialog_FormClosing(object sender, FormClosingEventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -460,7 +460,7 @@ private void SubscriptionCreateItemFromTypeMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
@@ -472,7 +472,7 @@ private void ConditionRefreshMI_Click(object sender, EventArgs e)
}
catch (Exception exception)
{
- GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
+ GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}
#endregion
diff --git a/Samples/Controls.Net4/UA Sample Controls.csproj b/Samples/Controls.Net4/UA Sample Controls.csproj
index 190a382f9..0d3381238 100644
--- a/Samples/Controls.Net4/UA Sample Controls.csproj
+++ b/Samples/Controls.Net4/UA Sample Controls.csproj
@@ -708,7 +708,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/Controls/Opc.Ua.Sample.Controls.csproj b/Samples/Controls/Opc.Ua.Sample.Controls.csproj
index 825039e7a..cf9d45dd3 100644
--- a/Samples/Controls/Opc.Ua.Sample.Controls.csproj
+++ b/Samples/Controls/Opc.Ua.Sample.Controls.csproj
@@ -207,7 +207,7 @@
6.2.14
- 1.4.371.96
+ 1.4.372.56
4.3.0
diff --git a/Samples/GDS/Client/GlobalDiscoveryClient.csproj b/Samples/GDS/Client/GlobalDiscoveryClient.csproj
index 1c53307c8..9b4ea55a0 100644
--- a/Samples/GDS/Client/GlobalDiscoveryClient.csproj
+++ b/Samples/GDS/Client/GlobalDiscoveryClient.csproj
@@ -139,10 +139,10 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
4.3.4
diff --git a/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj b/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj
index ddbe1f927..e57857898 100644
--- a/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj
+++ b/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj
@@ -217,10 +217,10 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj b/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj
index e5ccc71f0..233c6412f 100644
--- a/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj
+++ b/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj
@@ -13,8 +13,8 @@
-
-
+
+
diff --git a/Samples/GDS/Server/GlobalDiscoveryServer.csproj b/Samples/GDS/Server/GlobalDiscoveryServer.csproj
index c5f87b0a4..025732fbb 100644
--- a/Samples/GDS/Server/GlobalDiscoveryServer.csproj
+++ b/Samples/GDS/Server/GlobalDiscoveryServer.csproj
@@ -191,10 +191,10 @@
6.1.3
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj b/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj
index aa578b9ab..a61abf6ab 100644
--- a/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj
+++ b/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj
@@ -23,8 +23,8 @@
-
-
+
+
diff --git a/Samples/Server.Net4/UA Sample Server.csproj b/Samples/Server.Net4/UA Sample Server.csproj
index d81c932bd..4f5e81c81 100644
--- a/Samples/Server.Net4/UA Sample Server.csproj
+++ b/Samples/Server.Net4/UA Sample Server.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -142,8 +142,11 @@
+
+ 7.0.1
+
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/Server/Opc.Ua.SampleServer.csproj b/Samples/Server/Opc.Ua.SampleServer.csproj
index 2099c2e54..15dbe2e85 100644
--- a/Samples/Server/Opc.Ua.SampleServer.csproj
+++ b/Samples/Server/Opc.Ua.SampleServer.csproj
@@ -158,7 +158,7 @@
6.2.14
- 1.4.371.96
+ 1.4.372.56
4.3.0
diff --git a/Samples/ServerControls.Net4/UA Server Controls.csproj b/Samples/ServerControls.Net4/UA Server Controls.csproj
index fa74694cb..8926f6e5a 100644
--- a/Samples/ServerControls.Net4/UA Server Controls.csproj
+++ b/Samples/ServerControls.Net4/UA Server Controls.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -139,13 +139,13 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj b/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj
index 35f5eb9c8..fa0c1a6ea 100644
--- a/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj
+++ b/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/Workshop/Aggregation/Client/Aggregation Client.csproj b/Workshop/Aggregation/Client/Aggregation Client.csproj
index aa5a11c70..05307556d 100644
--- a/Workshop/Aggregation/Client/Aggregation Client.csproj
+++ b/Workshop/Aggregation/Client/Aggregation Client.csproj
@@ -134,7 +134,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj b/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj
index 6ad6cd97d..134345d6d 100644
--- a/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj
+++ b/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj
@@ -41,16 +41,16 @@
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/Workshop/Aggregation/ConsoleAggregationServer/Properties/launchSettings.json b/Workshop/Aggregation/ConsoleAggregationServer/Properties/launchSettings.json
index 3879df067..394997e72 100644
--- a/Workshop/Aggregation/ConsoleAggregationServer/Properties/launchSettings.json
+++ b/Workshop/Aggregation/ConsoleAggregationServer/Properties/launchSettings.json
@@ -5,6 +5,11 @@
},
"Docker": {
"commandName": "Docker"
+ },
+ "WSL": {
+ "commandName": "WSL2",
+ "environmentVariables": {},
+ "distributionName": ""
}
}
}
\ No newline at end of file
diff --git a/Workshop/Aggregation/Server/Aggregation Server.csproj b/Workshop/Aggregation/Server/Aggregation Server.csproj
index 6ebfb311b..1ccacffcb 100644
--- a/Workshop/Aggregation/Server/Aggregation Server.csproj
+++ b/Workshop/Aggregation/Server/Aggregation Server.csproj
@@ -129,16 +129,16 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/AlarmCondition/Client/AlarmCondition Client.csproj b/Workshop/AlarmCondition/Client/AlarmCondition Client.csproj
index 7ae62df4a..acd0c8518 100644
--- a/Workshop/AlarmCondition/Client/AlarmCondition Client.csproj
+++ b/Workshop/AlarmCondition/Client/AlarmCondition Client.csproj
@@ -215,7 +215,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/AlarmCondition/Server/AlarmCondition Server.csproj b/Workshop/AlarmCondition/Server/AlarmCondition Server.csproj
index cad52daf0..358ee8862 100644
--- a/Workshop/AlarmCondition/Server/AlarmCondition Server.csproj
+++ b/Workshop/AlarmCondition/Server/AlarmCondition Server.csproj
@@ -178,7 +178,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Boiler/Client/Boiler Client.csproj b/Workshop/Boiler/Client/Boiler Client.csproj
index f39a30179..94b97ca51 100644
--- a/Workshop/Boiler/Client/Boiler Client.csproj
+++ b/Workshop/Boiler/Client/Boiler Client.csproj
@@ -141,7 +141,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Boiler/Server/Boiler Server.csproj b/Workshop/Boiler/Server/Boiler Server.csproj
index aacc95541..7d16b9663 100644
--- a/Workshop/Boiler/Server/Boiler Server.csproj
+++ b/Workshop/Boiler/Server/Boiler Server.csproj
@@ -139,7 +139,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Common/Quickstart Library.csproj b/Workshop/Common/Quickstart Library.csproj
index e01da99a9..fb24bf768 100644
--- a/Workshop/Common/Quickstart Library.csproj
+++ b/Workshop/Common/Quickstart Library.csproj
@@ -131,7 +131,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/DataAccess/Client/DataAccess Client.csproj b/Workshop/DataAccess/Client/DataAccess Client.csproj
index 5bde31409..57bd98006 100644
--- a/Workshop/DataAccess/Client/DataAccess Client.csproj
+++ b/Workshop/DataAccess/Client/DataAccess Client.csproj
@@ -183,7 +183,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/DataAccess/Server/DataAccess Server.csproj b/Workshop/DataAccess/Server/DataAccess Server.csproj
index 690490d51..0c43fb089 100644
--- a/Workshop/DataAccess/Server/DataAccess Server.csproj
+++ b/Workshop/DataAccess/Server/DataAccess Server.csproj
@@ -166,7 +166,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/DataTypes/Client/DataTypes Client.csproj b/Workshop/DataTypes/Client/DataTypes Client.csproj
index 53cafcc61..b0a9fc72d 100644
--- a/Workshop/DataTypes/Client/DataTypes Client.csproj
+++ b/Workshop/DataTypes/Client/DataTypes Client.csproj
@@ -123,7 +123,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/DataTypes/Common/DataTypes Library.csproj b/Workshop/DataTypes/Common/DataTypes Library.csproj
index aaac043d2..7fc711a9f 100644
--- a/Workshop/DataTypes/Common/DataTypes Library.csproj
+++ b/Workshop/DataTypes/Common/DataTypes Library.csproj
@@ -102,7 +102,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/DataTypes/Server/DataTypes Server.csproj b/Workshop/DataTypes/Server/DataTypes Server.csproj
index c3317f93b..f2a481e82 100644
--- a/Workshop/DataTypes/Server/DataTypes Server.csproj
+++ b/Workshop/DataTypes/Server/DataTypes Server.csproj
@@ -143,7 +143,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Empty/Client/Empty Client.csproj b/Workshop/Empty/Client/Empty Client.csproj
index 1eb0ec8a0..210d5ca92 100644
--- a/Workshop/Empty/Client/Empty Client.csproj
+++ b/Workshop/Empty/Client/Empty Client.csproj
@@ -132,7 +132,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Empty/Server/Empty Server.csproj b/Workshop/Empty/Server/Empty Server.csproj
index c41b361bd..3b00d84a3 100644
--- a/Workshop/Empty/Server/Empty Server.csproj
+++ b/Workshop/Empty/Server/Empty Server.csproj
@@ -129,7 +129,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/HistoricalAccess/Client/HistoricalAccess Client.csproj b/Workshop/HistoricalAccess/Client/HistoricalAccess Client.csproj
index 234963a18..4b132e4fe 100644
--- a/Workshop/HistoricalAccess/Client/HistoricalAccess Client.csproj
+++ b/Workshop/HistoricalAccess/Client/HistoricalAccess Client.csproj
@@ -178,7 +178,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/HistoricalAccess/Server/HistoricalAccess Server.csproj b/Workshop/HistoricalAccess/Server/HistoricalAccess Server.csproj
index b8f467d39..1fa10d3ea 100644
--- a/Workshop/HistoricalAccess/Server/HistoricalAccess Server.csproj
+++ b/Workshop/HistoricalAccess/Server/HistoricalAccess Server.csproj
@@ -192,7 +192,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/HistoricalAccess/Tester/Aggregate Tester.csproj b/Workshop/HistoricalAccess/Tester/Aggregate Tester.csproj
index f7c343984..d79fd4a10 100644
--- a/Workshop/HistoricalAccess/Tester/Aggregate Tester.csproj
+++ b/Workshop/HistoricalAccess/Tester/Aggregate Tester.csproj
@@ -142,10 +142,10 @@
- 1.4.371.96
+ 1.4.372.56
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/HistoricalEvents/Client/HistoricalEvents Client.csproj b/Workshop/HistoricalEvents/Client/HistoricalEvents Client.csproj
index 7a44e8b2b..7971afb47 100644
--- a/Workshop/HistoricalEvents/Client/HistoricalEvents Client.csproj
+++ b/Workshop/HistoricalEvents/Client/HistoricalEvents Client.csproj
@@ -187,7 +187,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/HistoricalEvents/Server/HistoricalEvents Server.csproj b/Workshop/HistoricalEvents/Server/HistoricalEvents Server.csproj
index 4a869f669..2de3e5f51 100644
--- a/Workshop/HistoricalEvents/Server/HistoricalEvents Server.csproj
+++ b/Workshop/HistoricalEvents/Server/HistoricalEvents Server.csproj
@@ -142,7 +142,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Methods/Client/Methods Client.csproj b/Workshop/Methods/Client/Methods Client.csproj
index 37b2e76d0..6f4a730a6 100644
--- a/Workshop/Methods/Client/Methods Client.csproj
+++ b/Workshop/Methods/Client/Methods Client.csproj
@@ -132,7 +132,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Methods/Server/Methods Server.csproj b/Workshop/Methods/Server/Methods Server.csproj
index ca569d929..eb63f3387 100644
--- a/Workshop/Methods/Server/Methods Server.csproj
+++ b/Workshop/Methods/Server/Methods Server.csproj
@@ -131,7 +131,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/PerfTest/Client/PerfTest Client.csproj b/Workshop/PerfTest/Client/PerfTest Client.csproj
index 601c9cce4..12688c9cc 100644
--- a/Workshop/PerfTest/Client/PerfTest Client.csproj
+++ b/Workshop/PerfTest/Client/PerfTest Client.csproj
@@ -130,7 +130,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/PerfTest/Server/PerfTest Server.csproj b/Workshop/PerfTest/Server/PerfTest Server.csproj
index e3eead1dc..d4db1b76d 100644
--- a/Workshop/PerfTest/Server/PerfTest Server.csproj
+++ b/Workshop/PerfTest/Server/PerfTest Server.csproj
@@ -133,7 +133,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/SimpleEvents/Client/SimpleEvents Client.csproj b/Workshop/SimpleEvents/Client/SimpleEvents Client.csproj
index ee215a837..73765c158 100644
--- a/Workshop/SimpleEvents/Client/SimpleEvents Client.csproj
+++ b/Workshop/SimpleEvents/Client/SimpleEvents Client.csproj
@@ -119,7 +119,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj b/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj
index b38668c84..3e0a488af 100644
--- a/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj
+++ b/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj
@@ -137,7 +137,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj b/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj
index 08e3436ef..0b9f7f909 100644
--- a/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj
+++ b/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj
@@ -125,7 +125,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj b/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj
index b377eadc3..b0f9b702c 100644
--- a/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj
+++ b/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj
@@ -154,7 +154,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Views/Client/Views Client.csproj b/Workshop/Views/Client/Views Client.csproj
index e353f4816..3ff3a78b8 100644
--- a/Workshop/Views/Client/Views Client.csproj
+++ b/Workshop/Views/Client/Views Client.csproj
@@ -131,7 +131,7 @@
- 1.4.371.96
+ 1.4.372.56
diff --git a/Workshop/Views/Server/Views Server.csproj b/Workshop/Views/Server/Views Server.csproj
index 81e7a2cf1..a91b6c1e9 100644
--- a/Workshop/Views/Server/Views Server.csproj
+++ b/Workshop/Views/Server/Views Server.csproj
@@ -145,7 +145,7 @@
- 1.4.371.96
+ 1.4.372.56