private void GetAvailableServers(Opc.Ua.Com.ServerFactory factory, Specification specification)
{
Uri[] serverUrls = factory.GetAvailableServers(specification);
for (int ii = 0; ii < serverUrls.Length; ii++)
{
ComServerDescription server = factory.ParseUrl(serverUrls[ii]);
// don't wrap proxies.
if (ConfigUtils.CLSID_UaComDaProxyServer == server.Clsid)
{
continue;
}
if (ConfigUtils.CLSID_UaComAeProxyServer == server.Clsid)
{
continue;
}
if (ConfigUtils.CLSID_UaComHdaProxyServer == server.Clsid)
{
continue;
}
// don't wrap UA psuedo-servers.
List<Guid> catids = ConfigUtils.GetImplementedCategories(server.Clsid);
bool suppress = false;
for (int jj = 0; jj < catids.Count; jj++)
{
if (catids[jj] == ConfigUtils.CATID_PseudoComServers)
{
suppress = true;
break;
}
}
if (suppress)
{
continue;
}
// assume regular COM server.
ListViewItem item = new ListViewItem(server.ProgId);
item.SubItems.Add(server.Description);
item.SubItems.Add(specification.ToString());
item.Tag = new Item(specification, server);
ServersLV.Items.Add(item);
}
}