PageRenderTime 39ms CodeModel.GetById 4ms app.highlight 18ms RepoModel.GetById 1ms app.codeStats 1ms

/AcquisitionInterface/bin/Release/API-1.0.xml

https://bitbucket.org/maccosslab/acquisitionwithqeapi
XML | 2666 lines | 2612 code | 54 blank | 0 comment | 0 complexity | a8c9e0b0ae87ae6418833e672630a8b6 MD5 | raw file
   1<?xml version="1.0"?>
   2<doc>
   3    <assembly>
   4        <name>API-1.0</name>
   5    </assembly>
   6    <members>
   7        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.AnalogTracePointEventArgs">
   8            <summary>
   9            This implementation of EventArgs carries an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTracePoint"/>.
  10            </summary>
  11            <remarks>
  12            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer"/> for an example how this class can be used.
  13            <para>
  14            An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.AnalogTracePointArrived"/>.
  15            </para>
  16            </remarks>
  17        </member>
  18        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.AnalogTracePointEventArgs.#ctor">
  19            <summary>
  20            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.AnalogTracePointEventArgs"/>.
  21            </summary>
  22        </member>
  23        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.AnalogTracePointEventArgs.TracePoint">
  24            <summary>
  25            Get access to the analog trace point that has just arrived from the instrument.
  26            It has replaced already the LastValue in the <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer"/>.
  27            </summary>
  28        </member>
  29        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription">
  30            <summary>
  31            This interface has information about a possible Set argument for an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue"/> or
  32            a property in a Scan parameter set.
  33            </summary>
  34            <remarks>
  35            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.SetParameterDescription"/> or by
  36            <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.PossibleParameters"/> or by
  37            IExactiveValue.Commands.
  38            </remarks>
  39        </member>
  40        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription.Name">
  41            <summary>
  42            This is the name of the command/property this parameter description belongs to.
  43            </summary>
  44        </member>
  45        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription.Selection">
  46            <summary>
  47            The selection is a little bit complicated. It can have these values:
  48            <list type="table">
  49            <listheader><description>value/example</description><description>description</description></listheader>
  50            <item><description>empty</description><description>This empty string is allowed and doesn't allow the user any selection</description></item>
  51            <item><description>string</description><description>This special value (verbatim "string") allows the user to enter an arbitrary string</description></item>
  52            <item><description>num1-num2</description><description>Integer selection between num1 and num2 inclusively</description></item>
  53            <item><description>num1.frac-num2.frac</description><description>Floating point selection between num1.frac and num2.frac inclusively, frac may be "0"</description></item>
  54            <item><description>selection1,selection2,...</description><description>lets the user select one of the shown values</description></item>
  55            </list>
  56            </summary>
  57        </member>
  58        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription.DefaultValue">
  59            <summary>
  60            This value will be the default value for the argument or
  61            the empty string if it is unknown.
  62            </summary>
  63        </member>
  64        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription.Help">
  65            <summary>
  66            This returns the empty string or some help about the command/property.
  67            </summary>
  68        </member>
  69        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer">
  70             <summary>
  71             All analog trace points of the instrument can be accessed by using this
  72             interface.
  73             <para>
  74             The last-seen value is accessible all the time but may change frequently.
  75             It is also possible to get notice of a new value as soon as it is accessible.
  76             </para>
  77             </summary>
  78             <remarks>
  79             An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetAnalogTraceContainer(System.Int32)"/>.
  80             </remarks>
  81             <example>
  82             In the following example it is assumed that the instrument has two analog
  83             input devices as most Orbitrap systems and many other MS instruments have:
  84             <code>
  85             using System;
  86             using System.Collections.Generic;
  87             using System.Linq;
  88             using System.Text;
  89            
  90             using Thermo.Interfaces.ExactiveAccess_V1;
  91             using Thermo.Interfaces.InstrumentAccess_V1;
  92             using Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer;
  93            
  94             namespace UserAccess
  95             {
  96            		/// <summary>
  97            		/// This class displays the output of the analog channels when they arrive.
  98            		/// </summary>
  99            		internal class AnalogOutput
 100            		{
 101            			/// &lt;summary&gt;
 102            			/// Create a new &lt;see cref="AnalogOutput"/&gt; and make sure two analog channels are observed.
 103            			/// &lt;/summary&gt;
 104            			/// &lt;param name="instrument"&gt;the instrument instance&lt;/param&gt;
 105            			internal AnalogOutput(IInstrumentAccess instrument)
 106            			{
 107            				Analog1 = instrument.GetAnalogTraceContainer(0);
 108            				Analog1.AnalogTracePointArrived += new EventHandler{AnalogTracePointEventArgs}(Instrument_AnalogTracePointArrived);
 109            				Analog2 = instrument.GetAnalogTraceContainer(1);
 110            				Analog2.AnalogTracePointArrived += new EventHandler{AnalogTracePointEventArgs}(Instrument_AnalogTracePointArrived);
 111            			}
 112            
 113            			/// &lt;summary&gt;
 114            			/// Cleanup this instance.
 115            			/// &lt;/summary&gt;
 116            			internal void CloseDown()
 117            			{
 118            				// Be tolerant to thread-switches
 119            				IAnalogTraceContainer analogContainer;
 120            
 121            				analogContainer = Analog1;
 122            				Analog1 = null;
 123            				if (analogContainer != null)
 124            				{
 125            					analogContainer.AnalogTracePointArrived -= new EventHandler{AnalogTracePointEventArgs}(Instrument_AnalogTracePointArrived);
 126            				}
 127            
 128            				analogContainer = Analog2;
 129            				Analog2 = null;
 130            				if (analogContainer != null)
 131            				{
 132            					analogContainer.AnalogTracePointArrived -= new EventHandler{AnalogTracePointEventArgs}(Instrument_AnalogTracePointArrived);
 133            				}
 134            			}
 135            
 136            			/// &lt;summary&gt;
 137            			/// Access to the first analog container.
 138            			/// &lt;/summary&gt;
 139            			private IAnalogTraceContainer Analog1 { get; set; }
 140            
 141            			/// &lt;summary&gt;
 142            			/// Access to the second analog container.
 143            			/// &lt;/summary&gt;
 144            			private IAnalogTraceContainer Analog2 { get; set; }
 145            
 146            			/// &lt;summary&gt;
 147            			/// When an analog event arrives we dump the content.
 148            			/// &lt;/summary&gt;
 149            			/// &lt;param name="sender"&gt;used to identify the channel&lt;/param&gt;
 150            			/// &lt;param name="e"&gt;content will be dumped&lt;/param&gt;
 151            			private void Instrument_AnalogTracePointArrived(object sender, AnalogTracePointEventArgs e)
 152            			{
 153            				IAnalogTraceContainer analogTrace = sender as IAnalogTraceContainer;
 154            				if (analogTrace != null)
 155            				{
 156            					Console.WriteLine("{0}: [{1} - {2}]: {3} at {4} s", analogTrace.DetectorClass, analogTrace.Minimum, analogTrace.Maximum, e.TracePoint.Value, e.TracePoint.Occurrence.TotalSeconds);
 157            				}
 158            			}
 159            		}
 160            	}
 161             </code>
 162             </example>
 163        </member>
 164        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.DetectorClass">
 165            <summary>
 166            Get access to the detector class.
 167            <para>
 168            Example: The detector name may be "PDA", but "Analog Input Channel 1"
 169            or something similar is also possible.
 170            </para>
 171            </summary>
 172        </member>
 173        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.Minimum">
 174            <summary>
 175            Get access to the lowest possible value of the detector or analog input.
 176            </summary>
 177        </member>
 178        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.Maximum">
 179            <summary>
 180            Get access to the highest possible value of the detector or analog input.
 181            </summary>
 182        </member>
 183        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.UpdateFrequencyHz">
 184            <summary>
 185            Get access to acquisition frequency of the values. null is returned if the
 186            system has no specific frequency. The value is returned in 1/s (Hertz).
 187            </summary>
 188        </member>
 189        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.LastValue">
 190            <summary>
 191            Get access to the last value seen in the system.
 192            The value can be null initially.
 193            </summary>
 194        </member>
 195        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.AnalogTracePointArrived">
 196            <summary>
 197            This event will be fired when a new analog value has been emitted by the
 198            instrument. There may be no specific update frequency.
 199            </summary>
 200        </member>
 201        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer">
 202            <summary>
 203            All MS scans of the instrument can be accessed by using this
 204            interface.
 205            <para>
 206            The last-seen scan is accessible all the time but may change frequently.
 207            It is also possible to get notice of a new scan as soon as it is accessible.
 208            </para>
 209            </summary>
 210            <remarks>
 211            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetMsScanContainer(System.Int32)"/>.
 212            </remarks>
 213            <example>
 214            In the following example it is assumed that the instrument has at least one
 215            MS device. Most functions and classes of this namesspace are used.
 216            <code>
 217            using System;
 218            using System.Collections.Generic;
 219            using System.Linq;
 220            using System.Text;
 221            
 222            using Thermo.Interfaces.InstrumentAccess_V1;
 223            using Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer;
 224            
 225            namespace UserAccess
 226            {
 227            	/// &lt;summary&gt;
 228            	/// This class presents the output of the scans being acquired by the instrument.
 229            	/// &lt;/summary&gt;
 230            	internal class ScansOutput
 231            	{
 232            		/// &lt;summary&gt;
 233            		/// Crate a new &lt;see cref="ScansOutput"/&gt;
 234            		/// &lt;/summary&gt;
 235            		/// &lt;param name="instrument"&gt;the instrument instance&lt;/param&gt;
 236            		internal ScansOutput(IInstrumentAccess instrument)
 237            		{
 238            			ScanContainer = instrument.GetMsScanContainer(0);
 239            			Console.WriteLine("Detector class: " + ScanContainer.DetectorClass);
 240            
 241            			ScanContainer.AcquisitionStreamOpening += new EventHandler&lt;MsAcquisitionOpeningEventArgs&gt;(ScanContainer_AcquisitionStarted);
 242            			ScanContainer.AcquisitionStreamClosing += new EventHandler(ScanContainer_AcquisitionEnded);
 243            			ScanContainer.MsScanArrived += new EventHandler&lt;MsScanEventArgs&gt;(ScanContainer_ScanArrived);
 244            		}
 245            
 246            		/// &lt;summary&gt;
 247            		/// Show the last acquired scan if that exists and cleanup.
 248            		/// &lt;/summary&gt;
 249            		internal void CloseDown()
 250            		{
 251            			// Be tolerant to thread-switches
 252            			IMsScanContainer scanContainer = ScanContainer;
 253            			ScanContainer = null;
 254            
 255            			if (scanContainer != null)
 256            			{
 257            				scanContainer.MsScanArrived -= new EventHandler&lt;MsScanEventArgs&gt;(ScanContainer_ScanArrived);
 258            				scanContainer.AcquisitionStreamClosing -= new EventHandler(ScanContainer_AcquisitionEnded);
 259            				scanContainer.AcquisitionStreamOpening -= new EventHandler&lt;MsAcquisitionOpeningEventArgs&gt;(ScanContainer_AcquisitionStarted);
 260            				using (IMsScan scan = scanContainer.GetLastMsScan())
 261            				{
 262            					DumpScan("GetLastScan()", scan);
 263            				}
 264            			}
 265            		}
 266            
 267            		/// &lt;summary&gt;
 268            		/// Access to the scan container hosted by this instance.
 269            		/// &lt;/summary&gt;
 270            		private IMsScanContainer ScanContainer { get; set; }
 271            
 272            		/// &lt;summary&gt;
 273            		/// When a new acquisition starts we dump that information.
 274            		/// &lt;/summary&gt;
 275            		/// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
 276            		/// &lt;param name="e"&gt;doesn't matter&lt;/param&gt;
 277            		private void ScanContainer_AcquisitionStarted(object sender, EventArgs e)
 278            		{
 279            			Console.WriteLine("START OF ACQUISITION");
 280            		}
 281            
 282            		/// &lt;summary&gt;
 283            		/// When an acquisitions ends we dump that information.
 284            		/// &lt;/summary&gt;
 285            		/// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
 286            		/// &lt;param name="e"&gt;doesn't matter&lt;/param&gt;
 287            		private void ScanContainer_AcquisitionEnded(object sender, EventArgs e)
 288            		{
 289            			Console.WriteLine("END OF ACQUISITION");
 290            		}
 291            
 292            		/// &lt;summary&gt;
 293            		/// When a new scan arrives we dump that information in verbose mode.
 294            		/// &lt;/summary&gt;
 295            		/// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
 296            		/// &lt;param name="e"&gt;used to access the scan information&lt;/param&gt;
 297            		private void ScanContainer_ScanArrived(object sender, MsScanEventArgs e)
 298            		{
 299            			Console.WriteLine("Scan arrived");
 300            			// As an example we access all centroids
 301            			using (IMsScan scan = e.GetScan())
 302            			{
 303            				DumpScan("Scan arrived", scan);
 304            			}
 305            		}
 306            
 307            		/// &lt;summary&gt;
 308            		/// Dump a scan and prepend it with an intro string.
 309            		/// &lt;/summary&gt;
 310            		/// &lt;param name="intro"&gt;string to prepend&lt;/param&gt;
 311            		/// &lt;param name="scan"&gt;thing to dump&lt;/param&gt;
 312            		private void DumpScan(string intro, IMsScan scan)
 313            		{
 314            			StringBuilder sb = new StringBuilder();
 315            			sb.AppendFormat(Instrument.Now.ToString(Program.TimeFormat));
 316            			sb.Append(": ");
 317            			sb.Append(intro);
 318            			sb.Append(", ");
 319            			if (scan == null)
 320            			{
 321            				sb.Append("(empty scan)");
 322            				Console.WriteLine(sb.ToString());
 323            				return;
 324            			}
 325            			else
 326            			{
 327            				sb.Append("detector=");
 328            				sb.Append(scan.DetectorName);
 329            				string id;
 330            				if (scan.SpecificInformation.TryGetValue("Access Id:", out id))
 331            				{
 332            					sb.Append(", id=");
 333            					sb.Append(id);
 334            				}
 335            				Console.WriteLine(sb.ToString());
 336            			}
 337            
 338            			// This is rather noisy, dump all variables:
 339            			DumpVars(scan);
 340            
 341            			Console.Write("  Noise: ");
 342            			foreach (INoiseNode noise in scan.NoiseBand)
 343            			{
 344            				Console.Write("[{0}, {1}], ", noise.Mz, noise.Intensity);
 345            			}
 346            			Console.WriteLine();
 347            
 348            			// Not so useful:
 349            			Console.WriteLine("{0} centroids, {1} profile peaks", scan.CentroidCount ?? 0, scan.ProfileCount ?? 0);
 350            
 351            			// Iterate over all centroids and access dump all profile elements for each.
 352            			foreach (ICentroid centroid in scan.Centroids)
 353            			{
 354            				Console.WriteLine(" {0,10:F5}, I={1:E5}, C={2}, E={3,-5} F={4,-5} M={5,-5} R={6,-5}",
 355            									centroid.Mz, centroid.Intensity, centroid.Charge ?? -1, centroid.IsExceptional, centroid.IsFragmented, centroid.IsMerged, centroid.IsReferenced);
 356            				Console.Write("    Profile:");
 357            				try
 358            				{
 359            					foreach (IMassIntensity profilePeak in centroid.Profile)
 360            					{
 361            						Console.Write(" [{0,10:F5},{1:E5}] ", profilePeak.Mz, profilePeak.Intensity);
 362            					}
 363            				}
 364            				catch
 365            				{
 366            				}
 367            				Console.WriteLine();
 368            			}
 369            		}
 370            
 371            		/// &lt;summary&gt;
 372            		/// Dump all variables belonging to a scan
 373            		/// &lt;/summary&gt;
 374            		/// &lt;param name="scan"&gt;the scan for which to dump all variables&lt;/param&gt;
 375            		private void DumpVars(IMsScan scan)
 376            		{
 377            			Console.WriteLine("  COMMON");
 378            			DumpVars(scan.CommonInformation);
 379            			Console.WriteLine("  SPECIFIC");
 380            			DumpVars(scan.SpecificInformation);
 381            		}
 382            
 383            		/// &lt;summary&gt;
 384            		/// Dump all scan variables belonging to a specific container in a scan.
 385            		/// &lt;/summary&gt;
 386            		/// &lt;param name="container"&gt;container to dump all contained variables for&lt;/param&gt;
 387            		private void DumpVars(IInfoContainer container)
 388            		{
 389            			foreach (string s in container.Names)
 390            			{
 391            				DumpVar(container, s);
 392            			}
 393            		}
 394            
 395            		/// &lt;summary&gt;
 396            		/// Dump the content of a single variable to the console after testing the consistency.
 397            		/// &lt;/summary&gt;
 398            		/// &lt;param name="container"&gt;container that variable belongs to&lt;/param&gt;
 399            		/// &lt;param name="name"&gt;name of the variable&lt;/param&gt;
 400            		/// &lt;param name="sb"&gt;buffer to be reused for speed&lt;/param&gt;
 401            		private void DumpVar(IInfoContainer container, string name)
 402            		{
 403            			object o = null;
 404            			string s = null;
 405            			MsScanInformationSource i = MsScanInformationSource.Unknown;
 406            
 407            			if (container.TryGetValue(name, out s, ref i))
 408            			{
 409            				// i should have a reasonable value now
 410            				if (container.TryGetRawValue(name, out o, ref i))
 411            				{
 412            					Console.WriteLine("  {0}: type={1}, text='{2}', raw='{3}'",
 413            						name, i, s, o);
 414            				}
 415            			}
 416            		}
 417            	}
 418            }
 419            </code>
 420            </example>
 421        </member>
 422        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.GetLastMsScan">
 423            <summary>
 424            Get access to the last scan seen in the system.
 425            The value can be null initially.
 426            <para>
 427            Note that accessing this property forces the consumer to dispose
 428            the item as soon as possible in order to free its shared memory resources.
 429            </para>
 430            </summary>
 431            <returns>The method returns the latest scan the framework is aware off. It may be null.</returns>
 432        </member>
 433        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.DetectorClass">
 434            <summary>
 435            Get access to the detector class. The class should include describe
 436            the instrument detector set precisely, although the individual
 437            detector type of a scan uses only a part of the instrument set.
 438            <para>
 439            Example: The instrument name may be "Thermo Orbitrap Velos Pro", the
 440            detector class may be "Hybrid LinearIonTrap Orbitrap" and the
 441            scan detector name may be "LinearIonTrap".
 442            </para>
 443            </summary>
 444        </member>
 445        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.MsScanArrived">
 446            <summary>
 447            This event will be fired when a new scan has been emitted by the
 448            instrument.
 449            <para>
 450            Any listener to this event must handle the event as fast as possible.
 451            It is good practice by analyzing tool to enqueue the scan into
 452            queue and process that queue in another thread.
 453            </para>
 454            </summary>
 455        </member>
 456        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.AcquisitionStreamOpening">
 457            <summary>
 458            This event will be fired when a new acquisition is started and the system
 459            is about to open rawfiles, etc.
 460            <para>
 461            Scans may be created without an explicite acquisition if the instrument is
 462            'just' set to running. An acquisition is not necessarily bound to a
 463            rawfile, but it is in most cases.
 464            </para>
 465            <para>
 466            The specific information of a scan will reflect the information whether
 467            a scan belongs to an acquisition or not.
 468            </para>
 469            </summary>
 470        </member>
 471        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.AcquisitionStreamClosing">
 472            <summary>
 473            This event will be fired when the current acquisition ended.
 474            <para>
 475            Scans may be created without an explicite acquisition, so further scans may
 476            arrive after an acquisition stopped. It may even be possible that few scans
 477            belonging to the last acquisition may arrive and that an opened rawfile
 478            will gather them because of a flushing data queue on the transport layer.
 479            </para>
 480            <para>
 481            The specific information of a scan will reflect the information whether
 482            a scan belongs to an acquisition or not.
 483            </para>
 484            </summary>
 485        </member>
 486        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScanDefinition">
 487            <summary>
 488            This interface covers the functionality to define a custom or repeating scan.
 489            </summary>
 490            <remarks>
 491            This is a base interface of <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan"/> and <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan"/>.
 492            </remarks>
 493        </member>
 494        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScanDefinition.Values">
 495            <summary>
 496            Get access to the value set. Any value nor defined will be replaced by the
 497            value defined in the default scan.
 498            <para>
 499            Illegal values will be ignored, values out of range will not be accepted.
 500            </para>
 501            <para>
 502            The set of possible values can be queried by accessing PossibleParameters
 503            in <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/>. The key must be an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription"/> Name,
 504            the value must match the Selection definition.
 505            </para>
 506            </summary>
 507        </member>
 508        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScanDefinition.RunningNumber">
 509            <summary>
 510            This number will be passed along with the scan job and can be used
 511            to identify it later when the acquired scan results arrive.
 512            0 is a reserved value. The default value is 1.
 513            </summary>
 514        </member>
 515        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.NamespaceDoc">
 516            <summary>
 517            This namespace covers the functionality that a user may have to manipulate methods of an instrument.
 518            These manipulations can be applied to the running acquisition.
 519            <para>
 520            Most functionality in this namespace is accessible offline.
 521            </para>
 522            <para>
 523            Obtain <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl"/>.<see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Methods"/>
 524            to create the desired base class.
 525            </para>
 526            </summary>
 527        </member>
 528        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.StateChangedEventArgs">
 529            <summary>
 530            This implementation of EventArgs carries an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState"/>.
 531            </summary>
 532            <remarks>
 533            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this class can be used.
 534            <para>
 535            An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.StateChanged"/>.
 536            </para>
 537            </remarks>
 538        </member>
 539        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.StateChangedEventArgs.#ctor">
 540            <summary>
 541            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.StateChangedEventArgs"/>.
 542            </summary>
 543        </member>
 544        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.StateChangedEventArgs.State">
 545            <summary>
 546            Get access to the current state of the instrument.
 547            It has replaced already the State in the <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/>.
 548            </summary>
 549        </member>
 550        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IOnMode">
 551            <summary>
 552            This mode lets an instrument enter the On state or change the behaviour in the On state.
 553            The request may be rejected if the instrument is in a state that should not be disturbed. See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedStandbyMode"/>.
 554            </summary>
 555            <remarks>
 556            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
 557            <para>
 558            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateOnMode"/>.
 559            </para>
 560            </remarks>
 561        </member>
 562        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode">
 563            <summary>
 564            A mode is a more or less complex information that selects a new operation mode of an instrument.
 565            </summary>
 566        </member>
 567        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode.ToString">
 568            <summary>
 569            This is an informational description of the new mode.
 570            </summary>
 571            <returns>The returned string gives a short description of the mode.</returns>
 572        </member>
 573        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode.AdditionalValues">
 574            <summary>
 575            Get access to a collection of additional values. This will not be used in most cases.
 576            </summary>
 577        </member>
 578        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedOffMode">
 579            <summary>
 580            This mode lets an instrument enter the Off state. The request will be honoured even if the
 581            instrument is within an acquisition or another state where it is usually better to continue.
 582            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedOffMode"/>.
 583            </summary>
 584            <remarks>
 585            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
 586            <para>
 587            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateForcedOffMode"/>.
 588            </para>
 589            </remarks>
 590        </member>
 591        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult">
 592            <summary>
 593            Defines the result of a requested instrument mode change.
 594            </summary>
 595            <remarks>
 596            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this enumeration can be used.
 597            </remarks>
 598        </member>
 599        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.Submitted">
 600            <summary>
 601            This state change request has been submitted to the instrument. The instrument itself may dishonour this request
 602            if the needed condition to apply the state change request have changed between the submitting and the arrival
 603            in the instrument.
 604            </summary>
 605        </member>
 606        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.InstrumentDisconnected">
 607            <summary>
 608            The instrument is disconnected.
 609            </summary>
 610        </member>
 611        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.IllegalValues">
 612            <summary>
 613            The state change request has illegal values.
 614            </summary>
 615        </member>
 616        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.UnknownRequestType">
 617            <summary>
 618            The state change request is of an unknown type. Use <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> to generate a valid type.
 619            </summary>
 620        </member>
 621        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.ForeignControl">
 622            <summary>
 623            The instrument is under exclusive use of a different component or software package.
 624            </summary>
 625        </member>
 626        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.ChangeResult.IllegalOperationState">
 627            <summary>
 628            The instrument is not in the proper condition to accept the state change request.
 629            </summary>
 630        </member>
 631        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.IError">
 632            <summary>
 633            An IError describes an error coming from the instrument during an acquisition.
 634            This interface will not be used for status reports or messages of the
 635            transport layer.
 636            </summary>
 637            <remarks>
 638            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs"/> for an example how this interface can be used.
 639            <para>
 640            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs.Errors"/>.
 641            </para>
 642            </remarks>
 643        </member>
 644        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IError.Content">
 645            <summary>
 646            The textual content of the error.
 647            </summary>
 648        </member>
 649        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IError.Occurrence">
 650            <summary>
 651            The time difference between acquisition start and this error occurred.
 652            </summary>
 653        </member>
 654        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan">
 655            <summary>
 656            This scan definition can be placed in the instrument's
 657            job queue with individual properties. A custom scan will
 658            be executed only once.
 659            </summary>
 660            <remarks>
 661            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/> for an example how this interface can be used.
 662            <para>
 663            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CreateCustomScan"/>.
 664            </para>
 665            </remarks>
 666        </member>
 667        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan.SingleProcessingDelay">
 668            <summary>
 669            The instrument will not execute any further custom scan
 670            if this property is positive until the delay has expired
 671            or a new custom scan has been defined.
 672            <para>
 673            The unit of this property is seconds and possible values are
 674            between 0 and 600 inclusively. The default value is 0.
 675            </para>
 676            </summary>
 677        </member>
 678        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans">
 679            <summary>
 680            This interface allows the control over the next scan to be performed by the
 681            instrument with or without a method.
 682            <para>
 683            Either this interface or the <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods"/> interface should be used.
 684            </para>
 685            </summary>
 686            <remarks>
 687            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.GetScans(System.Boolean)"/>.
 688            <para>
 689            Using this interface allows one to insert some scans in the normal flow of
 690            operation. It has several three layers of execution.
 691            </para>
 692            <para>
 693            The lowest layer is defined by the instrument. It performs those steps that
 694            are defined elsewhere, this can be either method execution, tuning or other things.
 695            </para>
 696            <para>
 697            The next layer that has a higher priority is the repeated scans layer which are
 698            defined here. If they are set they will be executed instead of the previous layer.
 699            A further Set call replaces the previous repition. A Cancel call will stop
 700            the repetition and operation falls back one layer. A custom scan can still be
 701            defined, though. The repition can be switched on and off on demand as often
 702            as desired.
 703            </para>
 704            <para>
 705            The most prioritized layer is that of custom scans. They will be executed before
 706            any furcher scan defined in the other layers. However, a Set operation may result
 707            in undefined behaviour (but no system fault happens) if the previous scan has not been
 708            started yet. It is best to avoid this situation. The custom scan will be scheduled and
 709            the AcceptsNextScan event will be fired at the next possible point in time. If a
 710            custom scan has a delay time set the instrument will wait this additional time
 711            until it falls back to a lower layer; either the repetition scans if they are
 712            defined or the normal operation mode.
 713            </para>
 714            </remarks>
 715            <example>
 716            The following code illustrates the use of most functionality in this namespace.
 717            A running acquisition (Press "On" in Tune) will be modified so that the polarity
 718            will be toggled between each scan.
 719            <code>
 720            using System;
 721            using System.Collections.Generic;
 722            using System.Linq;
 723            using System.Text;
 724            using System.Threading;
 725            using System.Globalization;
 726            
 727            using Thermo.Interfaces.InstrumentAccess_V1;
 728            using Thermo.Interfaces.InstrumentAccess_V1.Control;
 729            using Thermo.Interfaces.InstrumentAccess_V1.Control.Scans;
 730            
 731            namespace UserAccess
 732            {
 733                /// &lt;summary&gt;
 734                /// This class demonstrates the use of the &lt;see cref="IScans"/&gt; interface.
 735                /// &lt;/summary&gt;
 736                internal class ScansTest : IDisposable
 737                {
 738                    private IScans m_scans;
 739                    private bool m_startCustomScan = true;
 740                    private object m_lock = new object();
 741                    private int m_disposed;
 742                    private long m_runningNumber = 12345;	// start with an offset to make sure it's "us"
 743                    private int m_polarity = 0;
 744                    
 745                    /// &lt;summary&gt;
 746                    /// Create a new &lt;see cref="ScansTest"/&gt; and start the performance test immediately.
 747                    /// &lt;/summary&gt;
 748                    /// &lt;param name="instrument"&gt;the instrument instance&lt;/param&gt;
 749                    /// &lt;param name="arguments"&gt;program arguments&lt;/param&gt;
 750                    internal ScansTest(IInstrumentAccess instrument)
 751                    {
 752                        m_scans = instrument.Control.GetScans(false);
 753                        m_scans.CanAcceptNextCustomScan += new EventHandler(Scans_CanAcceptNextCustomScan);
 754                        m_scans.PossibleParametersChanged += new EventHandler(Scans_PossibleParametersChanged);
 755                        
 756                        DumpPossibleParameters();
 757                        bool startNewScan = false;
 758                        lock (m_lock)
 759                        {
 760                            if (m_scans.PossibleParameters.Length &gt; 0)
 761                            {
 762                                startNewScan = m_startCustomScan;
 763                                m_startCustomScan = false;
 764                            }
 765                        }
 766                        
 767                        if (startNewScan)
 768                        {
 769                            StartNewScan();
 770                        }
 771                    }
 772                    
 773                    /// &lt;summary&gt;
 774                    /// The final destructor releases allocated system resources.
 775                    /// &lt;/summary&gt;
 776                    ~ScansTest()
 777                    {
 778                        // Let the GC dispose managed members itself.
 779                        Dispose(false);
 780                    }
 781                
 782                    /// &lt;summary&gt;
 783                    /// Clean up any resources being used.
 784                    /// &lt;/summary&gt;
 785                    /// &lt;param name="disposeEvenManagedStuff"&gt;true to dispose managed and unmanaged resources; false to dispose unmanaged resources&lt;/param&gt;
 786                    protected void Dispose(bool disposeEvenManagedStuff)
 787                    {
 788                        // prevent double disposing
 789                        if (Interlocked.Exchange(ref m_disposed, 1) != 0)
 790                        {
 791                            return;
 792                        }
 793                    
 794                        if (disposeEvenManagedStuff)
 795                        {
 796                            if (m_scans != null)
 797                            {
 798                                m_scans.CanAcceptNextCustomScan -= new EventHandler(Scans_CanAcceptNextCustomScan);
 799                                m_scans.PossibleParametersChanged -= new EventHandler(Scans_PossibleParametersChanged);
 800                                m_scans.Dispose();
 801                                m_scans = null;
 802                            }
 803                        }
 804                    }
 805                    
 806                    /// &lt;summary&gt;
 807                    /// Clean up any resources being used.
 808                    /// &lt;/summary&gt;
 809                    virtual public void Dispose()
 810                    {
 811                        // Dispose managed and unmanaged resources and tell GC we don't need the destructor getting called.
 812                        Dispose(true);
 813                        GC.SuppressFinalize(this);
 814                    }
 815                    
 816                    /// &lt;summary&gt;
 817                    /// Get access to the flag whether this object is disposed.
 818                    /// &lt;/summary&gt;
 819                    internal bool Disposed { get { return m_disposed != 0; } }
 820                    
 821                    /// &lt;summary&gt;
 822                    /// Dump the list of possible commands.
 823                    /// &lt;/summary&gt;
 824                    private bool DumpPossibleParameters()
 825                    {
 826                        IParameterDescription[] parameters = m_scans.PossibleParameters;
 827                        if (parameters.Length == 0)
 828                        {
 829                            Console.WriteLine("No possible IScans parameters known.");
 830                            return false;
 831                        }
 832                        
 833                        Console.WriteLine("IScans parameters:");
 834                        foreach (IParameterDescription parameter in parameters)
 835                        {
 836                            StringBuilder sb = new StringBuilder();
 837                            sb.AppendFormat("   '{0}' ", parameter.Name);
 838                            if (parameter.Selection == "")
 839                            {
 840                                sb.AppendFormat("doesn't accept an argument, help: {0}", parameter.Help);
 841                            }
 842                            else
 843                            {
 844                                sb.AppendFormat("accepts '{0}', default='{1}', help: {2}", parameter.Selection, parameter.DefaultValue, parameter.Help);
 845                            }
 846                            Console.WriteLine(sb.ToString());
 847                        }
 848                        return true;
 849                    }
 850                
 851                    /// &lt;summary&gt;
 852                    /// Start a new custom scan.
 853                    /// &lt;/summary&gt;
 854                    private void StartNewScan()
 855                    {
 856                        ICustomScan cs = m_scans.CreateCustomScan();
 857                        cs.RunningNumber = m_runningNumber++;
 858                        
 859                        // Allow an extra delay of 500 ms, we will answer as fast as possible, so this is a maximum value.
 860                        cs.SingleProcessingDelay = 0.50D;
 861                        
 862                        // Toggle the polarity:
 863                        m_polarity = (m_polarity == 0) ? 1 : 0;
 864                        cs.Values["pol"] = m_polarity.ToString(NumberFormatInfo.InvariantInfo);
 865                        
 866                        try
 867                        {
 868                            DateTime now = Instrument.Now;
 869                            if (!m_scans.SetCustomScan(cs))
 870                            {
 871                                Console.WriteLine("NEW CUSTOM SCAN HAS NOT BEEN PLACED, CONNECTION TO SERVICE BROKEN.");
 872                            }
 873                            Console.WriteLine(now.ToString(Program.TimeFormat) + ": Placed a new custom scan(" + cs.RunningNumber + ")");
 874                        }
 875                        catch (Exception e)
 876                        {
 877                            Console.WriteLine("PLACING A NEW SCAN: " + e.Message);
 878                        }
 879                    }
 880                    
 881                    /// &lt;summary&gt;
 882                    /// Called when the current custom scan has been processed and the next custom scan can be accepted.
 883                    /// We start a new scan.
 884                    /// &lt;/summary&gt;
 885                    /// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
 886                    /// &lt;param name="e"&gt;doesn't matter&lt;/param&gt;
 887                    private void Scans_CanAcceptNextCustomScan(object sender, EventArgs e)
 888                    {
 889                        Console.WriteLine(Instrument.Now.ToString(Program.TimeFormat) + ": CanAcceptNextCustomScan");
 890                        if ((m_scans != null) &amp;&amp; (m_scans.PossibleParameters.Length &gt; 0))
 891                        {
 892                            // Assume we are able to place a new scan.
 893                            StartNewScan();
 894                        }
 895                    }
 896                  
 897                    /// &lt;summary&gt;
 898                    /// Called when the list of possible commands have changed we dump them.
 899                    /// Additionally we start a new scan.
 900                    /// &lt;/summary&gt;
 901                    /// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
 902                    /// &lt;param name="e"&gt;doesn't matter&lt;/param&gt;
 903                    private void Scans_PossibleParametersChanged(object sender, EventArgs e)
 904                    {
 905                        if (!DumpPossibleParameters())
 906                        {
 907                            return;
 908                        }
 909                     
 910                        bool startNewScan = false;
 911                        lock (m_lock)
 912                        {
 913                            if (m_scans.PossibleParameters.Length &gt; 0)
 914                            {
 915                                startNewScan = m_startCustomScan;
 916                                m_startCustomScan = false;
 917                            }
 918                        }
 919                        
 920                        if (startNewScan)
 921                        {
 922                            StartNewScan();
 923                        }
 924                    }
 925                }
 926            }    
 927            </code>
 928            </example>
 929        </member>
 930        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetRepetitionScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan)">
 931            <summary>
 932            Define or replace the repetition scan to be performed.
 933            <para>
 934            The scan may be partially defined in which case the properties of the previously
 935            executed scan will be used. At least one property needs to be specified.
 936            </para>
 937            </summary>
 938            <param name="scan">object containing new default scan definitions</param>
 939            <returns>true if the command has been sent to the instrument, false otherwise</returns>
 940        </member>
 941        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CancelRepetition">
 942            <summary>
 943            Cancels any repetition of scans that have been defined by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetRepetitionScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan)"/>.
 944            </summary>
 945            <returns>true if the command has been sent to the instrument, false otherwise</returns>
 946        </member>
 947        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetCustomScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan)">
 948            <summary>
 949            Define a scan to be performed next. The current standard operation (method, prepetition scan, etc)
 950            will continue after this scan and maybe following custom scans have been acquired.
 951            <para>
 952            The operation on the instrument is undefined if several custom scans are set without having the
 953            instrument dealt with the previous custom scans. However, the instrument will not stop
 954            to run, choke or show any other fatal error.
 955            </para>
 956            <para>
 957            The event <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CanAcceptNextCustomScan"/> is fired once after the instrument has processed a
 958            custom scan. The further custom scan can be set then or within the delay time that
 959            might have been defined in <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan.SingleProcessingDelay"/>.
 960            </para>
 961            <para>
 962            The scan may be partially defined in which case the properties of the previously
 963            executed scan will be used. At least one property needs to be specified.
 964            </para>
 965            </summary>
 966            <param name="scan">object containing custom scan definitions</param>
 967            <returns>true if the command has been sent to the instrument, false otherwise</returns>
 968        </member>
 969        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CancelCustomScan">
 970            <summary>
 971            Cancels any custom scan and/or the delay after that custom scan defined by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetCustomScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan)"/>.
 972            </summary>
 973            <returns>true if the command has been sent to the instrument, false otherwise</returns>
 974        </member>
 975        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CreateRepeatingScan">
 976            <summary>
 977            Create an empty <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan"/> implementation.
 978            </summary>
 979            <returns>
 980            The return value will be a newly created repeating scan with default values. Assignment of properties
 981            is needed to let the call of <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetRepetitionScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan)"/> have an effect.
 982            </returns>
 983        </member>
 984        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CreateCustomScan">
 985            <summary>
 986            Create an empty <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan"/> implementation.
 987            </summary>
 988            <returns>
 989            The return value will be a newly created repeating scan with default values. Assignment of properties
 990            is needed to let the call of <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetCustomScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan)"/> have an effect.
 991            </returns>
 992        </member>
 993        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.PossibleParameters">
 994            <summary>
 995            All possible parameters of a scan will be listed here.
 996            </summary>
 997        </member>
 998        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.PossibleParametersChanged">
 999            <summary>
1000            This event will be fired when the <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.PossibleParameters"/>
1001            have received an update. The initial parameter set may be void
1002            during initialization or after an instrument reconnect.
1003            </summary>
1004        </member>
1005        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CanAcceptNextCustomScan">
1006            <summary>
1007            The instrument raises this event when it has processed a custom scan defined by
1008            <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.SetCustomScan(Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan)"/>. It will accept a further custom scan until the
1009            <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.ICustomScan.SingleProcessingDelay"/> has expired or an instrument specific
1010            delay of few milliseconds has passed. After this time, the instrument continues
1011            with the previous action, usually a method or a repetition.
1012            <para>
1013            The event should be handled as fast as possible.
1014            </para>
1015            </summary>
1016        </member>
1017        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback">
1018            <summary>
1019            This interface describes the methods and properties of a readback. An IReadback
1020            is a representation of a item that provides information but does not accept any command
1021            or set value.
1022            <para>
1023            The content of the readback can be taken from the property <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Content"/>.
1024            </para>
1025            </summary>
1026            <remarks>
1027            <para>
1028            The interface <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue"/> derives from this interface.
1029            </para>
1030            <para>
1031            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
1032            </para>
1033            </remarks>
1034        </member>
1035        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Name">
1036            <summary>
1037            Get access to the name of the value.
1038            </summary>
1039        </member>
1040        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Content">
1041            <summary>
1042            Get access to the content of the readback. The access to this property is sufficient in most
1043            cases, but for values that change frequently like logging information it might be better
1044            to rely on the information passed along by the <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.ContentChanged"/> event.
1045            </summary>
1046        </member>
1047        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.ContentChanged">
1048            <summary>
1049            This event will be fired when the content of the readback has changed. The calling thread
1050            should not be blocked by complex actions. A long-term data processing should move the
1051            processing into a separate thread and copy the content of this event into a queue.
1052            </summary>
1053        </member>
1054        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.NamespaceDoc">
1055            <summary>
1056            This namespace covers the central access to standard instruments of the new generation. The
1057            central access point is <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer"/> which serves as a master
1058            to get access to all other interfaces in this namespace and all contained namespaces.
1059            <para>
1060            See the documentation of <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer"/>
1061            for an example how to get access to this primary interface.
1062            </para>
1063            </summary>
1064        </member>
1065        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan">
1066            <summary>
1067            This class deals with scan specific information. The class is disposable, but the
1068            content will be released only under these circumstances:
1069            <list type="bullet">
1070            <item><description>The last IMsScan reference has been released.</description></item>
1071            <item><description>The <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/>'s LastScan property has changed.</description></item>
1072            </list>
1073            </summary>
1074            <remarks>
1075            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this interface can be used.
1076            <para>
1077            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.GetLastMsScan"/> or by
1078            <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanEventArgs.GetScan"/>.
1079            </para>
1080            </remarks>
1081        </member>
1082        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.GetProfileData(System.Double[]@,System.Double[]@)">
1083            <summary>
1084            Get access to the profile data. The caller has to make sure that the arrays are big enough.
1085            The property <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.ProfileCount"/> indicates the minimum size.
1086            <para>
1087            An exception will be thrown if one of the arrays is too small to keep all profile
1088            peaks or if profile peaks are inaccessible, mainly because the detector doesn't support it.
1089            </para>
1090            <para>
1091            It is good practice to access profile information by use of <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid"/>
1092            if that is possible but use <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.GetProfileData(System.Double[]@,System.Double[]@)"/> otherwise.
1093            </para>
1094            </summary>
1095            <param name="masses">
1096            Array of m/z values that will be filled up to the last element keeping valueable information.
1097            Extra elements will not be set to 0. The array must be big enough, see <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.ProfileCount"/>.
1098            </param>
1099            <param name="intensities">
1100            Array of intensities that will be filled up to the last element keeping valueable information.
1101            Extra elements will not be set to 0. The array must be big enough, see <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.ProfileCount"/>.
1102            </param>
1103            <returns>
1104            The method returns pure profile information. Although this call acts rather fast it is more helpful
1105            in most cases to have the relation to centroids present. The access can be performed using <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.Centroids"/>.
1106            </returns>
1107        </member>
1108        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.DetectorName">
1109            <summary>
1110            Get access to the name of the detector that acquired this scan.
1111            <para>
1112            Example: The instrument name may be "Thermo Orbitrap Velos Pro", the
1113            detector class may be "Hybrid LinearIonTrap Orbitrap" and the
1114            scan detector name may be "LinearIonTrap".
1115            </para>
1116            </summary>
1117        </member>
1118        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.CommonInformation">
1119            <summary>
1120            Get access to the information being common part between all Thermo MS instruments.
1121            Number will be presented in US locale, default values may be omitted.
1122            The dictionary is read-only.
1123            </summary>
1124        </member>
1125        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.SpecificInformation">
1126            <summary>
1127            Get access to the information being specific to this instrument class or acquisition type.
1128            Number will be presented in US locale, default values may be omitted.
1129            The dictionary is read-only.
1130            </summary>
1131        </member>
1132        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.AdditiveNoise">
1133            <summary>
1134            This value will be true if the noise intensity information at a specific point
1135            has to be added to the intensity at that m/z point of an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid"/>
1136            or profile peak to get the real intensity information.
1137            </summary>
1138        </member>
1139        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.NoiseBand">
1140            <summary>
1141            Get access to the noise information. The noise nodes form a polygon that covers the noise area.
1142            An empty enumeration is returned if noise information is not present.
1143            This value will not be null.
1144            </summary>
1145        </member>
1146        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.HasCentroidInformation">
1147            <summary>
1148            This value will be true if centroid information is part of the scan. Even without
1149            centroid information there may be profile peaks. It is good practice to access
1150            profile information by use of <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid"/> if that is possible but use
1151            <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.GetProfileData(System.Double[]@,System.Double[]@)"/> otherwise.
1152            </summary>
1153        </member>
1154        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.CentroidCount">
1155            <summary>
1156            Get access to the number of centroids in this scan. The value is null if the detector
1157            is not capable to provide centroids. The value may also be null if a computation
1158            cannot be performed.
1159            </summary>
1160        </member>
1161        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.Centroids">
1162            <summary>
1163            Get access to the centroids and further information to those peaks.
1164            An empty enumeration is returned if centroid information is not present.
1165            This value will not be null.
1166            </summary>
1167        </member>
1168        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.HasProfileInformation">
1169            <summary>
1170            This value will be true if profile information is part of the scan.
1171            </summary>
1172        </member>
1173        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.ProfileCount">
1174            <summary>
1175            Get access to the number of profile peaks in this scan. The value is null if the detector
1176            is not capable to provide profile peaks. The value may also be null if a computation
1177            cannot be performed.
1178            The value will always be non-null if a call to <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.GetProfileData(System.Double[]@,System.Double[]@)"/> is possible.
1179            </summary>
1180        </member>
1181        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess">
1182            <summary>
1183            This interface describes the access to one particular instrument both for reading data
1184            as for managing access or behaviour of the instrument.
1185            <para>
1186            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer.Get(System.Int32)"/>.
1187            </para>
1188            </summary>
1189        </member>
1190        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetMsScanContainer(System.Int32)">
1191            <summary>
1192            Get access to the container of MS scan information to be accessible
1193            by a a specific MS detector set.
1194            </summary>
1195            <param name="msDetectorSet">index of the detector starting from 0</param>
1196            <remarks>
1197            Hybrid machines may only offer one detector set because they cannot be
1198            operated separately. However, it is possible that they offer detector
1199            specific subsets. The standard detector set has a smaller
1200            detector set number.
1201            </remarks>
1202            <returns>
1203            The mass spectrometer properties and data access points the instrument has
1204            for one particular MS detector.
1205            </returns>
1206        </member>
1207        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetAnalogTraceContainer(System.Int32)">
1208            <summary>
1209            Get access to the container of analog trace information to be accessible
1210            by a a specific analog detector set (UV, PDA, etc).
1211            </summary>
1212            <param name="analogDetectorSet">index of the detector starting from 0</param>
1213            <returns>
1214            The mass spectrometer properties and data access points the instrument has
1215            for one particular analog detector.
1216            </returns>
1217        </member>
1218        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.InstrumentId">
1219            <summary>
1220            Access to the id of the instrument. This is the same id as used
1221            to get access to this instance.
1222            <para>
1223            This property is accessible offline.
1224            </para>
1225            </summary>
1226        </member>
1227        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.InstrumentName">
1228            <summary>
1229            Access to the name of the instrument.
1230            <para>
1231            Example: The instrument name may be "Thermo Orbitrap Velos Pro", the
1232            detector class may be "Hybrid LinearIonTrap Orbitrap" and the
1233            scan detector name may be "LinearIonTrap".
1234            </para>
1235            <para>
1236            This property is accessible offline.
1237            </para>
1238            </summary>
1239        </member>
1240        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.Connected">
1241            <summary>
1242            Get access to the connection state of the instrument and of this driver to
1243            the communication layer. Most functionality is not available if the instrument
1244            is not connected.
1245            <para>
1246            This property is accessible offline.
1247            </para>
1248            </summary>
1249        </member>
1250        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.ConnectionChanged">
1251            <summary>
1252            This event will be fired when the connection to the instrument changes.
1253            Note that the initial connection state will be disconnected until a
1254            connection has been established to the instrument.
1255            <para>
1256            This property is accessible offline.
1257            </para>
1258            </summary>
1259        </member>
1260        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.ErrorsArrived">
1261            <summary>
1262            This event will be thrown when at least one error arrived from the instrument
1263            during an acquisition.
1264            This event handler will not be used for status reports or messages of the
1265            transport layer.
1266            <para>
1267            This event handler is accessible offline.
1268            </para>
1269            </summary>
1270        </member>
1271        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.Control">
1272            <summary>
1273            Get access to the interface covering all control functionality of an instrument.
1274            <para>
1275            This property is accessible offline.
1276            </para>
1277            </summary>
1278        </member>
1279        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer">
1280            <summary>
1281            This interface describes the methods and properties to access name/value pairs
1282            within an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan"/>.
1283            </summary>
1284            <remarks>
1285            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this interface can be used.
1286            <para>
1287            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.CommonInformation"/> or by
1288            <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.SpecificInformation"/>.
1289            </para>
1290            </remarks>
1291        </member>
1292        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer.TryGetValue(System.String,System.String@)">
1293            <summary>
1294            Try to retrieve the textual representation of an item. Numbers will be presented
1295            in the US locale.
1296            </summary>
1297            <param name="name">name of the item</param>
1298            <param name="value">textual representation of the value of the item</param>
1299            <returns>true if the value has been found, false otherwise</returns>
1300        </member>
1301        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer.TryGetRawValue(System.String,System.Object@)">
1302            <summary>
1303            Try to retrieve the value of an item.
1304            </summary>
1305            <param name="name">name of the item</param>
1306            <param name="value">value of the item</param>
1307            <returns>true if the value has been found, false otherwise</returns>
1308        </member>
1309        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer.TryGetValue(System.String,System.String@,Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource@)">
1310            <summary>
1311            Try to retrieve the textual representation of an item. Numbers will be presented
1312            in the US locale.
1313            </summary>
1314            <param name="name">name of the item</param>
1315            <param name="value">textual representation of the value of the item</param>
1316            <param name="source">
1317            On output it describes the source of information, on input any selection other than
1318            Unknown will find only an item in the specified name space.
1319            </param>
1320            <returns>true if the value has been found, false otherwise</returns>
1321        </member>
1322        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer.TryGetRawValue(System.String,System.Object@,Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource@)">
1323            <summary>
1324            Try to retrieve the value of an item.
1325            </summary>
1326            <param name="name">name of the item</param>
1327            <param name="value">value of the item</param>
1328            <param name="source">
1329            On output it describes the source of information, on input any selection other than
1330            Unknown will find only an item in the specified name space.
1331            </param>
1332            <returns>true if the value has been found, false otherwise</returns>
1333        </member>
1334        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer.Names">
1335            <summary>
1336            Get access to the possible names of all items within this container.
1337            </summary>
1338        </member>
1339        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues">
1340            <summary>
1341            IInstrumentValues allow access to instrument values on an individual basis.
1342            It is helpful for status control and direct value manipulation (e.g. system
1343            status, source voltages, etc).
1344            <para>
1345            A synchroneous change of several scan-related elements should better
1346            be performed using <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/>.
1347            </para>
1348            </summary>
1349            <remarks>
1350            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.InstrumentValues"/>.
1351            </remarks>
1352            <example>
1353            The following code illustrates the use of most functionality in this namespace.
1354            A known value node will be linked and dumped on changes.
1355            <code>
1356            using System;
1357            using System.Collections.Generic;
1358            using System.Linq;
1359            using System.Text;
1360            
1361            using Thermo.Interfaces.InstrumentAccess_V1.Control;
1362            using Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues;
1363            using Thermo.Interfaces.ExactiveAccess_V1.Control.InstrumentValues;
1364            
1365            namespace UserAccess
1366            {
1367                /// &lt;summary&gt;
1368                /// This class provides tests for the IInstrumentValues interface.
1369                /// &lt;/summary&gt;
1370                internal class ValuesTest
1371                {
1372                    private IValue m_instrumentAcquisition;
1373            	    
1374                    /// &lt;summary&gt;
1375                    /// Create a new &lt;see cref="ValuesTest"/&gt; and start the performance immediately.
1376                    /// &lt;/summary&gt;
1377                    /// &lt;param name="instrumentValues"&gt;the values access point of the instrument instance&lt;/param&gt;
1378                    internal ValuesTest(IInstrumentValues instrumentValues)
1379                    {
1380                        m_instrumentAcquisition = instrumentValues.Get("InstrumentAcquisition");
1381                        if (m_instrumentAcquisition != null)
1382                        {
1383                            m_instrumentAcquisition.ContentChanged += new EventHandler&lt;ValueContentChangedEventArgs&gt;(ContentChanged);
1384                            IExactiveValue exactiveValue = m_instrumentAcquisition as IExactiveValue;
1385                            if (exactiveValue != null)
1386                            {
1387                                exactiveValue.CommandsChanged += new EventHandler(CommandsChanged);
1388                            }
1389                            Console.WriteLine("instrument acquisition node: ID={0}, name={1}", m_instrumentAcquisition.Id, m_instrumentAcquisition.Name);
1390                        }
1391                    }
1392                    
1393                    /// &lt;summary&gt;
1394                    /// Cleanup this instance.
1395                    /// &lt;/summary&gt;
1396                    internal void CloseDown()
1397                    {
1398                        m_instrumentAcquisition.ContentChanged -= new EventHandler&lt;ValueContentChangedEventArgs&gt;(ContentChanged);
1399                        IExactiveValue exactiveValue = m_instrumentAcquisition as IExactiveValue;
1400                        if (exactiveValue != null)
1401                        {
1402                            exactiveValue.CommandsChanged -= new EventHandler(CommandsChanged);
1403                        }
1404                    }
1405                    
1406                    /// &lt;summary&gt;
1407                    /// Return the status text of a status value.
1408                    /// &lt;/summary&gt;
1409                    /// &lt;param name="contentStatus"&gt;value of the status enumeration of an instrument value&lt;/param&gt;
1410                    private string Status(int contentStatus)
1411                    {
1412                        switch (contentStatus)
1413                        {
1414                            case 0: return "OK";
1415                            case 1: return "Info";
1416                            case 2: return "Warning";
1417                            case 3: return "Error";
1418                            case 4: return "Fatal";
1419                            default: break;
1420                        }
1421                        return "Unknown";
1422                    }
1423            	    
1424                    /// &lt;summary&gt;
1425                    /// Called when the content change we print them.
1426                    /// &lt;/summary&gt;
1427                    /// &lt;param name="sender"&gt;the instrument value which value change&lt;/param&gt;
1428                    /// &lt;param name="e"&gt;used to extract the value&lt;/param&gt;
1429                    private void ContentChanged(object sender, ValueContentChangedEventArgs e)
1430                    {
1431                        IValue value = sender as IValue;
1432                        if (value != null)
1433                        {
1434                            if (e.Content == null)
1435                            {
1436                                Console.WriteLine("Value of ({0}) changed to null.", value.Name);
1437                            }
1438                            else if (e.Content == null)
1439                            {
1440                                Console.WriteLine("Value of ({0}) is unknown to the instrument or the connection is lost.", value.Name);
1441                            }
1442                            else
1443                            {
1444                                IValueContent content = e.Content;
1445                                Console.WriteLine("Value of ({0}) changed to '{1}', unit='{2}', status={3}, help='{4}'", value.Name, content.Content, content.Unit, Status(content.Status), content.Help);
1446                            }
1447                        }
1448                    }
1449                
1450                    /// &lt;summary&gt;
1451                    /// Called when the set of possible commands change we print them if we act verbosely.
1452                    /// &lt;/summary&gt;
1453                    /// &lt;param name="sender"&gt;the instrument value which commands change&lt;/param&gt;
1454                    /// &lt;param name="e"&gt;doesn't matter&lt;/param&gt;
1455                    void CommandsChanged(object sender, EventArgs e)
1456                    {
1457                        IExactiveValue value = sender as IExactiveValue;
1458                        if (value != null)
1459                        {
1460                            if (value.Commands.Length == 0)
1461                            {
1462                                Console.WriteLine("Commands for ({0}) are not registered", value.Name);
1463                            }
1464                            else
1465                            {
1466                                Console.WriteLine("Commands for ({0}):", value.Name);
1467                                foreach (IParameterDescription command in value.Commands)
1468                                {
1469                                    StringBuilder sb = new StringBuilder();
1470                                    sb.AppendFormat("   '{0}' ", command.Name);
1471                                    if (command.Selection == "")
1472                                    {
1473                                        sb.AppendFormat("doesn't accept an argument, help: {0}", command.Help);
1474                                    }
1475                                    else
1476                                    {
1477                                        sb.AppendFormat("accepts '{0}', default='{1}', help: {2}", command.Selection, command.DefaultValue, command.Help);
1478                                    }
1479                                    Console.WriteLine(sb.ToString());
1480                                }
1481                            }
1482                        }
1483                    }
1484                }
1485            }
1486            </code>
1487            </example>
1488        </member>
1489        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.String)">
1490            <summary>
1491            Get access to an instrument value by its name.
1492            <para>
1493            Each name has also a numeric representation, see <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.UInt64)"/>.
1494            </para>
1495            </summary>
1496            <param name="name">The name of the value</param>
1497            <returns>null is returned for an invalid or unknown name, otherwise the value linked with the passed name is returned.</returns>
1498        </member>
1499        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.UInt64)">
1500            <summary>
1501            Get access to an instrument value by its number.
1502            </summary>
1503            <param name="number">The number of the value</param>
1504            <returns>The value linked with the passed name is returned. Nodes unknown to the instrument may return in a dumb value instance.</returns>
1505        </member>
1506        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.ValueNames">
1507            <summary>
1508            Get access to the list of all possible names for <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.String)"/>.
1509            </summary>
1510        </member>
1511        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid">
1512            <summary>
1513            This interface describes information about a centroid peak.
1514            </summary>
1515            <remarks>
1516            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this interface can be used.
1517            <para>
1518            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.Centroids"/>.
1519            </para>
1520            </remarks>
1521        </member>
1522        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMassIntensity">
1523            <summary>
1524            This interface is used to store the basic information about peaks.
1525            </summary>
1526            <remarks>
1527            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this interface can be used.
1528            <para>
1529            Derived classes are <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid"/> and <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.INoiseNode"/>.
1530            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.Profile"/>.
1531            </para>
1532            </remarks>
1533        </member>
1534        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMassIntensity.Mz">
1535            <summary>
1536            m/z value of the information.
1537            </summary>
1538        </member>
1539        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMassIntensity.Intensity">
1540            <summary>
1541            Intensity at the given m/z value.
1542            </summary>
1543        </member>
1544        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.IsExceptional">
1545            <summary>
1546            Get access to the flag whether this peak is an artificial exception.
1547            null is returned if the value couldn't be determined.
1548            </summary>
1549        </member>
1550        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.IsReferenced">
1551            <summary>
1552            Get access to the flag whether this peak is a referenced (lock mass) peak.
1553            null is returned if the value couldn't be determined.
1554            </summary>
1555        </member>
1556        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.IsMerged">
1557            <summary>
1558            Get access to the flag whether this peak is a merged peak.
1559            null is returned if the value couldn't be determined.
1560            </summary>
1561        </member>
1562        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.IsFragmented">
1563            <summary>
1564            Get access to the flag whether this peak is a fragmented peak.
1565            null is returned if the value couldn't be determined.
1566            </summary>
1567        </member>
1568        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.IsMonoisotopic">
1569            <summary>
1570            Get access to the flag whether this peak is a monoisotopic peak.
1571            null is returned if the value couldn't be determined.
1572            </summary>
1573        </member>
1574        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.Charge">
1575            <summary>
1576            Get access to the charge state.
1577            null is returned if this value couldn't be determined.
1578            </summary>
1579        </member>
1580        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.ICentroid.Profile">
1581            <summary>
1582            Get access to the profile information. The return value
1583            will be an empty array if no profile information is related to this
1584            centroid.
1585            </summary>
1586        </member>
1587        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IInclusionTable">
1588            <summary>
1589            This flag interface defines a table which carries inclusion items.
1590            </summary>
1591        </member>
1592        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable">
1593            <summary>
1594            This interface covers the methods and properties being accessible on tables that will
1595            be used in the instruments like inclusion tables or exclusion tables.
1596            <para>
1597            The type of this interface cannot be used directly in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods.CreateTable(System.Type)"/>,
1598            please use <c>typeof(<see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IInclusionTable"/>)</c>, etc.
1599            </para>
1600            </summary>
1601        </member>
1602        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable.CreateRow">
1603            <summary>
1604            Create a new row which can be added to every table of the same type.
1605            <para>
1606            This method is accessible offline.
1607            </para>
1608            </summary>
1609            <returns>The created row can be used to extend <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable.Rows"/>.</returns>
1610        </member>
1611        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable.ColumnInfo">
1612            <summary>
1613            Return information about the columns in the table.
1614            <para>
1615            This method is accessible offline.
1616            </para>
1617            </summary>
1618        </member>
1619        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable.Rows">
1620            <summary>
1621            Access to the rows of the table.
1622            <para>
1623            This method is accessible offline.
1624            </para>
1625            </summary>
1626        </member>
1627        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.ContentChangedEventArgs">
1628            <summary>
1629            This implementation of EventArgs carries an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent"/>.
1630            </summary>
1631            <remarks>
1632            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues"/> for an example how this interface can be used.
1633            <para>
1634            An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.ContentChanged"/>.
1635            </para>
1636            </remarks>
1637        </member>
1638        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.ContentChangedEventArgs.#ctor">
1639            <summary>
1640            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.ContentChangedEventArgs"/>.
1641            </summary>
1642        </member>
1643        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.ContentChangedEventArgs.Content">
1644            <summary>
1645            Get access to the content of the value that has changed.
1646            It has replaced already the Content in the referenced <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue"/>.
1647            </summary>
1648        </member>
1649        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState">
1650            <summary>
1651            This interface describes the current system and acquisition state.
1652            <para>
1653            A missing connection can be detected by examining <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemState"/>.
1654            NotConnected informs about a missing link between driver and instrument,
1655            ServerFailed about a missing link between the current software and the driver.
1656            </para>
1657            </summary>
1658        </member>
1659        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.Description">
1660            <summary>
1661            This is the general description of the instrument state. The text may change even if the <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemState"/>
1662            and <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemMode"/> doesn't change.
1663            </summary>
1664        </member>
1665        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemMode">
1666            <summary>
1667            The system mode returns the processing mode the instrument is currently in.
1668            Another state information is <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemState"/>.
1669            </summary>
1670        </member>
1671        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemState">
1672            <summary>
1673            The system state returns the instrument state with respect to data acquisition.
1674            Another state information is <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemMode"/>.
1675            </summary>
1676        </member>
1677        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.ElapsedRuntime">
1678            <summary>
1679            During an operation (see <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SystemMode"/>) with a more or less defined 
1680            runtime this value reflects the processed time in percent of the total runtime.
1681            null is returned if that value is not appropriate.
1682            </summary>
1683        </member>
1684        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.MethodName">
1685            <summary>
1686            This value is either null or the name of the method being processed.
1687            </summary>
1688        </member>
1689        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.LastOpenedRawFileName">
1690            <summary>
1691            This value is either null or the name of the last opened raw file. It is the true name,
1692            not the expected name.
1693            </summary>
1694        </member>
1695        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SequenceFileName">
1696            <summary>
1697            This value is either null or the name of the used sequence file. It is only set during
1698            a method execution.
1699            </summary>
1700        </member>
1701        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState.SequenceFileIndex">
1702            <summary>
1703            This value is either null or the row number in the sequence file. The value is 1-based.
1704            </summary>
1705        </member>
1706        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IRepeatingScan">
1707            <summary>
1708            This scan definition can be placed in the instrument's
1709            job queue for repetition.
1710            </summary>
1711            <remarks>
1712            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/> for an example how this interface can be used.
1713            <para>
1714            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans.CreateRepeatingScan"/>.
1715            </para>
1716            </remarks>
1717        </member>
1718        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.NamespaceDoc">
1719            <summary>
1720            This namespace covers the functionality that a user may have to start or stop the acquisition of scans.
1721            <para>
1722            Obtain <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl"/>.<see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Acquisition"/>
1723            to create the desired base class.
1724            </para>
1725            </summary>
1726        </member>
1727        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue">
1728            <summary>
1729            This interface describes the methods and properties of a value. An IValue
1730            is a representation of a value of various purposes in the instrument.
1731            <para>
1732            The content of the value can be taken from the property <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Content"/>.
1733            </para>
1734            <para>
1735            A request for a value change will be sent to the instrument by using
1736            <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.Set(System.String)"/>, but there is no guarantee for acceptance or execution at all.
1737            The <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Content"/> or other values can be observed to test for a proper response.
1738            </para>
1739            </summary>
1740            <remarks>
1741            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues"/> for an example how this interface can be used.
1742            <para>
1743            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.UInt64)"/> or
1744            by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues.Get(System.String)"/>.
1745            </para>
1746            </remarks>
1747        </member>
1748        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.Set(System.String)">
1749            <summary>
1750            Set the content of the value. The command will be verified using <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.SetParameterDescription"/>.
1751            </summary>
1752            <param name="argument">null or the argument of the command.</param>
1753            <returns>true if the value change command has been sent to the instrument, false otherwise</returns>
1754        </member>
1755        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.Id">
1756            <summary>
1757            Get access to the ID of the value.
1758            </summary>
1759        </member>
1760        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.SetParameterDescription">
1761            <summary>
1762            Get a description about the parameter to the set access to a list of available commands.
1763            The list may change if the user role changes.
1764            Any executed command name will be tested against this list.
1765            <para>
1766            The commands will be null if the instrument is not connected or if the IValue is unknown
1767            to the instrument or if <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue.Set(System.String)"/> cannot be performed for this value.
1768            </para>
1769            </summary>
1770        </member>
1771        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer">
1772            <summary>
1773            This interface is the central access point for a direct access of an instrument.
1774            It covers both online functionality as well as offline manipulation of methods.
1775            <para>
1776            Use the instrument container to get access to a particular instrument accessor by means of
1777            <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer.Get(System.Int32)"/>
1778            </para>
1779            <para>
1780            Any functionality in this interface is accessible offline.
1781            </para>
1782            </summary>
1783            <example>
1784            Although this can be handled differently by a particular instrument, it is
1785            common practice to have COM functionality available to access this interface.
1786            Accessing this interface for Exactive based instruments can be performed this way in C#:
1787            <code>
1788             Type type = Type.GetTypeFromProgID("Thermo Exactive.API_Clr2_32_V1", true);
1789             object o = Activator.CreateInstance(type);
1790             IInstrumentAccessContainer container = (IInstrumentAccessContainer) o;
1791            </code>
1792            <para>
1793             The string <codeInline>Thermo Exactive.API_Clr2_32_V1</codeInline> is the ProgId in terms
1794             of COM to access the implementing class type.
1795            </para>
1796            <para>
1797             The use of the Activator is the .NET way to create an instance of the implementing class and
1798             in the next line the desired interface IInstrumentAccessContainer
1799             is pulled out of the implementing class. Of course, standard COM techniques can also be used
1800             with COM's IUnknown::QueryInterface and so on.
1801            </para>
1802            </example>
1803        </member>
1804        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccessContainer.Get(System.Int32)">
1805            <summary>
1806            Get access to a particular instrument accessor using this method. All calls within one
1807            process will return an instance that share the same 'real' instrument accessor.
1808            This will ensure maximum speed. Multithreaded code is still supported.
1809            <para>
1810            The returned object is disposable, it will count down the usage count
1811            on each disposal. The connection to the instrument is dropped when the last
1812            instrument access instance is disposed.
1813            </para>
1814            </summary>
1815            <example>
1816            A typical use can be performed by .NET's <c>using</c> statement as shown
1817            here. This ensures proper disposal after use:
1818            <code>
1819            using (IInstrumentAccess instrument = container.Get(1))
1820            {
1821            	// further code
1822            }
1823            </code>
1824            </example>
1825            <param name="index">
1826            Index of the instrument starting from 1. Values of 2 or more need additional
1827            instruments attached to the data system.
1828            </param>
1829            <returns>
1830            The return value allows access to a particular instrument. If one service hosts
1831            several instruments in parallel, this value can be of a different type for each.
1832            Furthermore, the return class instance may implement other interfaces beside
1833            <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess"/>.
1834            </returns>
1835        </member>
1836        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition">
1837            <summary>
1838            This interface allows the direct access to method/acquisition starts, to
1839            wait for contact closure or to extend the delay between the start of
1840            the acquisition process and the real start of the first scan
1841            programmatically. 
1842            </summary>
1843            <remarks>
1844            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Acquisition"/>.
1845            </remarks>
1846        </member>
1847        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)">
1848            <summary>
1849            Transport a new state change request to the instrument. Even if the command has been
1850            submitted successfully to the instrument it may still be possible that the instrument
1851            rejects the request because it has entered a different state in between.
1852            </summary>
1853            <param name="newMode">The new mode that shall be assumed by the instrument.</param>
1854            <returns>The result of the state change request as far as the task is processed in the current process</returns>
1855        </member>
1856        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.Pause">
1857            <summary>
1858            Pause the current operation.
1859            </summary>
1860            <returns>true if it was possible to pause the operation and if the pause command has been transmitted to the instrument.</returns>
1861        </member>
1862        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.Resume">
1863            <summary>
1864            Resume the current operation.
1865            </summary>
1866            <returns>true if it was possible to resume the operation from a pause and if the resume command has been transmitted to the instrument.</returns>
1867        </member>
1868        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateOnMode">
1869            <summary>
1870            Create a new state change object that can put the instrument in the On state.
1871            No data acquisition will be performed, a separate command/logic exists for this purpose.
1872            </summary>
1873            <returns>The created state change object can be used in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)"/> to set the new state.</returns>
1874        </member>
1875        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateOffMode">
1876            <summary>
1877            Create a new state change object that can put the instrument in the Off state.
1878            </summary>
1879            <returns>The created state change object can be used in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)"/> to set the new mode.</returns>
1880        </member>
1881        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateStandbyMode">
1882            <summary>
1883            Create a new state change object that can put the instrument in the Standby state.
1884            </summary>
1885            <returns>The created state change object can be used in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)"/> to set the new state.</returns>
1886        </member>
1887        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateForcedOffMode">
1888            <summary>
1889            Create a new state change object that can put the instrument in the Off state unconditionally. A running acquisition even started by a a foreign control may be terminated.
1890            </summary>
1891            <returns>The created state change object can be used in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)"/> to set the new mode.</returns>
1892        </member>
1893        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateForcedStandbyMode">
1894            <summary>
1895            Create a new state change object that can put the instrument in the Standby state unconditionally. A running acquisition even started by a a foreign control may be terminated.
1896            </summary>
1897            <returns>The created state change object can be used in <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.SetMode(Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IMode)"/> to set the new state.</returns>
1898        </member>
1899        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.WaitFor(System.TimeSpan,Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode[])">
1900            <summary>
1901            Wait for the instrument to assume one of several <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode"/>s during a specific time interval
1902            starting from the time it was submitted.
1903            <para>
1904            Passing no modes at all will let this call wait the desired duration.
1905            </para>
1906            </summary>
1907            <param name="duration">non-negative duration this call shall wait at most</param>
1908            <param name="modes">List of modes for which this call looks. If one is assumed the call returns immediately.</param>
1909            <returns>true if one of the listed modes has been assumed during the timespan, false otherwise</returns>
1910        </member>
1911        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.WaitFor(System.TimeSpan,Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState[])">
1912            <summary>
1913            Wait for the instrument to assume one of several <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState"/>s during a specific time interval
1914            starting from the time it was submitted.
1915            <para>
1916            Passing no states at all will let this call wait the desired duration.
1917            </para>
1918            </summary>
1919            <param name="duration">non-negative duration this call shall wait at most</param>
1920            <param name="states">List of states for which this call looks. If one is assumed the call returns immediately.</param>
1921            <returns>true if one of the listed states has been assumed during the timespan, false otherwise</returns>
1922        </member>
1923        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.WaitForOtherThan(System.TimeSpan,Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode[])">
1924            <summary>
1925            Wait for the instrument to assume another than those <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode"/>s given in a list during a specific time interval
1926            starting from the time it was submitted.
1927            <para>
1928            Passing no modes at all will force an immediate return.
1929            </para>
1930            </summary>
1931            <param name="duration">non-negative duration this call shall wait at most</param>
1932            <param name="modes">List of modes for which this call looks. If none is assumed the call returns immediately.</param>
1933            <returns>true if none of the listed modes has been assumed during the timespan, false otherwise</returns>
1934        </member>
1935        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.WaitForOtherThan(System.TimeSpan,Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState[])">
1936            <summary>
1937            Wait for the instrument to assume another than those <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState"/>s given in a list during a specific time interval
1938            starting from the time it was submitted.
1939            <para>
1940            Passing no states at all will force an immediate return.
1941            </para>
1942            </summary>
1943            <param name="duration">non-negative duration this call shall wait at most</param>
1944            <param name="states">List of states for which this call looks. If none is assumed the call returns immediately.</param>
1945            <returns>true if none of the listed states has been assumed during the timespan, false otherwise</returns>
1946        </member>
1947        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.State">
1948            <summary>
1949            Get access to the current state of the instrument.
1950            </summary>
1951        </member>
1952        <member name="E:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.StateChanged">
1953            <summary>
1954            This event will be fired after <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.State"/> has changed its value. The current
1955            instrument state will be carried along.
1956            </summary>
1957        </member>
1958        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CanPause">
1959            <summary>
1960            Will it be possible to pause the current operation?
1961            </summary>
1962        </member>
1963        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CanResume">
1964            <summary>
1965            Will it be possible to pause the current operation?
1966            </summary>
1967        </member>
1968        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.NamespaceDoc">
1969            <summary>
1970            This namespace covers those interfaces for sole use by mass spectrometers.
1971            <para>
1972            Call <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess"/>.<see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetMsScanContainer(System.Int32)"/>
1973            to create the desired base class.
1974            </para>
1975            </summary>
1976        </member>
1977        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods">
1978            <summary>
1979            This interface defines all actions that belong to method-based data
1980            acquisition and for method-based information access.
1981            </summary>
1982            <remarks>
1983            An instance of this class will be created by <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl"/>.<see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Methods"/>.
1984            </remarks>
1985        </member>
1986        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods.CreateTable(System.Type)">
1987            <summary>
1988            Create a table of the passed type.
1989            <para>
1990            This method is accessible offline.
1991            </para>
1992            </summary>
1993            <param name="tableType">Type of the table which has to derive from ITable like IInclusionTable</param>
1994            <returns>The created table can be used to call <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods.ReplaceTable(System.Int32,System.Int64,Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable)"/>.</returns>
1995        </member>
1996        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods.ReplaceTable(System.Int32,System.Int64,Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable)">
1997            <summary>
1998            Replace a table currently used by the instrument.
1999            </summary>
2000            <param name="tableIndex">Index of the table starting from 1. Keep this on 1 in case of doubt.</param>
2001            <param name="runningNumber">This value will be reflected by the instrument in the scan so that the point in time becomes clear when the instrument used the updated table the first time. It is under the responsibility of the user to change this value. 0 is a reserved value.</param>
2002            <param name="table">The new table to be used. The table can be empty, but null will raise an exception.</param>
2003            <returns>true if the command has been sent to the instrument, false otherwise</returns>
2004        </member>
2005        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IMethods.LoadTable(System.String,System.Int32,System.Type)">
2006            <summary>
2007            Load a table of the passed type with the specified table index from a named method file. This is an expensive operation.
2008            An exception will be thrown if the method doesn't exist.
2009            <para>
2010            This method is accessible offline.
2011            </para>
2012            </summary>
2013            <param name="methodName">Name of the method file.</param>
2014            <param name="tableIndex">index of the table starting with 1.</param>
2015            <param name="tableType">Type of the table which has to derive from ITable like IInclusionTable</param>
2016            <returns>null if the table was not found, otherwise the table filled with found items.</returns>
2017        </member>
2018        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl">
2019            <summary>
2020            This interface covers all control functionality of an instrument.
2021            </summary>
2022            <remarks>
2023            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.Control"/>.
2024            </remarks>
2025        </member>
2026        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.GetScans(System.Boolean)">
2027            <summary>
2028            Get access to the scans interface. This interface allows to execute
2029            repeating and custum scans during a method or any other execution.
2030            <para>
2031            Calling this method will lock that interface until it is disposed.
2032            The instrument will not stop its current operation for the first.
2033            If exclusive access is requested it will be guaranteed that no other
2034            <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/> interface is in use and that any further request for
2035            such an interface no matter whether exclusive or cooperative will be
2036            rejected. If non-exclusive access is requested it will not be
2037            satisfied if an exclusive access is already granted.
2038            </para>
2039            </summary>
2040            <param name="exclusiveAccess">request for exclusive access(true) or cooperative access (false)</param>
2041            <returns>The <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/> interface being capable to receive user commands.</returns>
2042        </member>
2043        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.InstrumentValues">
2044            <summary>
2045            Get access to the instrument values that can be accessed individually.
2046            The returned instance is helpful for status control and direct value
2047            manipulation.
2048            <para>
2049            A synchroneous change of several scan-related elements should better
2050            be performed using <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.GetScans(System.Boolean)"/>.
2051            </para>
2052            </summary>
2053        </member>
2054        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Methods">
2055            <summary>
2056            Get access to the method interface. The interface should be used
2057            for method-based data acquisition and for method-based information
2058            access.
2059            <para>
2060            This property is accessible offline.
2061            </para>
2062            </summary>
2063        </member>
2064        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.Acquisition">
2065            <summary>
2066            Get access to the acquisition interface.
2067            </summary>
2068        </member>
2069        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITableRow">
2070            <summary>
2071            A table item allows to set and retrieve column values of one row in a table.
2072            <para>
2073            A table item created for one table type cannot be used in another table of a different type.
2074            </para>
2075            </summary>
2076        </member>
2077        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITableRow.ColumnValues">
2078            <summary>
2079            Get access to the set of cell data store values.
2080            <para>
2081            It is not possible to add keys for unknown columns. On assignment using
2082            IDictionary.Add or the indexer, values will be tested for range conformance.
2083            </para>
2084            <para>
2085            Requesting values with the indexer will return the default value of a
2086            column if the cell hasn't been assigned already. Use ContainsKey or
2087            TryGetValue to test for assigned values.
2088            </para>
2089            </summary>
2090        </member>
2091        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedStandbyMode">
2092            <summary>
2093            This mode lets an instrument enter the Standby state. The request will be honoured even if the
2094            instrument is within an acquisition or another state where it is usually better to continue.
2095            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedOffMode"/>.
2096            </summary>
2097            <remarks>
2098            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
2099            <para>
2100            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateForcedStandbyMode"/>.
2101            </para>
2102            </remarks>
2103        </member>
2104        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.NamespaceDoc">
2105            <summary>
2106            This namespace covers the various modes which can be assumed by the instrument such as On, Off, Standby.
2107            </summary>
2108        </member>
2109        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode">
2110            <summary>
2111            This enumeration returns the overall system mode the instrument currently is in.
2112            </summary>
2113            <remarks>
2114            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this enumeration can be used.
2115            </remarks>
2116        </member>
2117        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Malconfigured">
2118            <summary>
2119            The instrument description within the PC does not allow a proper connection to the instrument.
2120            This is a very rare condition.
2121            </summary>
2122        </member>
2123        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Disconnected">
2124            <summary>
2125            The instrument is not connected to the service or the current program is not connected.
2126            This state is also entered when the instrument reboots.
2127            </summary>
2128        </member>
2129        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.On">
2130            <summary>
2131            The instrument is on. Other values in <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IState"/> show if an acquisition is ongoing.
2132            </summary>
2133        </member>
2134        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Standby">
2135            <summary>
2136            The instrument is on standby and ready for another operation mode.
2137            </summary>
2138        </member>
2139        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Off">
2140            <summary>
2141            The instrument is off and may need some time for perfect operation if it is set to on.
2142            </summary>
2143        </member>
2144        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.RemoteControl">
2145            <summary>
2146            The instrument is under remote control, usually by a program of Thermo Fisher.
2147            </summary>
2148        </member>
2149        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.DirectControl">
2150            <summary>
2151            The instrument is under direct control, usually by a user or GUI program.
2152            </summary>
2153        </member>
2154        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Maintenance">
2155            <summary>
2156            The instrument or its driver entered the maintenance mode.
2157            </summary>
2158        </member>
2159        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Calibration">
2160            <summary>
2161            The instrument performs a calibration.
2162            </summary>
2163        </member>
2164        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Evaluation">
2165            <summary>
2166            A system evaluation is pending.
2167            </summary>
2168        </member>
2169        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.Bakeout">
2170            <summary>
2171            The instrument performs a bakeout.
2172            </summary>
2173        </member>
2174        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.AutoTune">
2175            <summary>
2176            The instrument is optimizing its internal system parameters.
2177            </summary>
2178        </member>
2179        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.CalibrationPaused">
2180            <summary>
2181            The instrument performs a calibration, but the operation pauses.
2182            </summary>
2183        </member>
2184        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.EvaluationPaused">
2185            <summary>
2186            A system evaluation is pending, but the evaluation pauses.
2187            </summary>
2188        </member>
2189        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.BakeoutPaused">
2190            <summary>
2191            The instrument performs a bakeout, but that operation pauses.
2192            </summary>
2193        </member>
2194        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.AutoTunePaused">
2195            <summary>
2196            The instrument is optimizing its internal system parameters, but the process pauses.
2197            </summary>
2198        </member>
2199        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.SystemMode.DirectControlPaused">
2200            <summary>
2201            The instrument is under direct control and acquires data, but storing data has been paused.
2202            </summary>
2203        </member>
2204        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IOffMode">
2205            <summary>
2206            This mode lets an instrument enter the Off state. The request may be rejected if the instrument
2207            is in a state that should not be disturbed. See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedOffMode"/>.
2208            </summary>
2209            <remarks>
2210            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
2211            <para>
2212            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateOffMode"/>.
2213            </para>
2214            </remarks>
2215        </member>
2216        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState">
2217            <summary>
2218            This enumeration defines the instrument state during an acquisition. The enumeration
2219            is the so called DeviceStatus of Thermo Fisher virtual instruments.
2220            </summary>
2221            <remarks>
2222            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this enumeration can be used.
2223            </remarks>
2224        </member>
2225        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Initializing">
2226            <summary>
2227            "Initializing"<br/>
2228            Set during boot up or initialization of an acquisition service.
2229            </summary>
2230        </member>
2231        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.ReadyToDownload">
2232            <summary>
2233            "Ready to Download"<br/>
2234            The instrument is ready to load a method, but any other mode is also possible.
2235            <para>This state will be used even in case of power saving.</para>
2236            </summary>
2237        </member>
2238        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Downloading">
2239            <summary>
2240            "Downloading"<br/>
2241            The instrument downloads a method.
2242            </summary>
2243        </member>
2244        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.PreparingForRun">
2245            <summary>
2246            "Preparing for Run"<br/>
2247            After method downloading the instrument sets up everything to start immediately without
2248            actually starting.
2249            </summary>
2250        </member>
2251        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.ReadyForRun">
2252            <summary>
2253            "Ready for Run"<br/>
2254            The instrument is ready to run, but it still awaits the go.
2255            </summary>
2256        </member>
2257        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.WaitingForContactClosure">
2258            <summary>
2259            "Waiting for contact closure"<br/>
2260            The instrument has been started but waits for a contact closure or another trigger.
2261            </summary>
2262        </member>
2263        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Running">
2264            <summary>
2265            "Running"<br/>
2266            The instrument acquires data. The instrument closes the data file before it leaves this state.
2267            </summary>
2268        </member>
2269        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.PostRun">
2270            <summary>
2271            "Post Run"<br/>
2272            The instrument is doing some post cleanup.
2273            </summary>
2274        </member>
2275        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Error">
2276            <summary>
2277            "Error"<br/>
2278            The instrument entered an error condition. The user must start the instrument setup
2279            program to resolve the error.
2280            </summary>
2281        </member>
2282        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Busy">
2283            <summary>
2284            "Busy"<br/>
2285            The instrument is busy somehow, usually due to a maintenance operation.
2286            </summary>
2287        </member>
2288        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.NotConnected">
2289            <summary>
2290            "Not Connected"<br/>
2291            The instrument software has lost the connection to the instrument.
2292            </summary>
2293        </member>
2294        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.StandBy">
2295            <summary>
2296            "Stand By"<br/>
2297            From the standby state it should take a very short time to be able to continue
2298            work.
2299            </summary>
2300        </member>
2301        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.Off">
2302            <summary>
2303            "Off"<br/>
2304            As much hardware as possible is turned off by software. Some amount of time should be expected so that
2305            operation can be performed with best precision.
2306            </summary>
2307        </member>
2308        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.ServerFailed">
2309            <summary>
2310            "Not Connected" in Xcalibur's run manager.<br/>
2311            There exists no connection to the service keeping the connection to the instrument.
2312            </summary>
2313        </member>
2314        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.LampWarmup">
2315            <summary>
2316            "Lamp Warmup"<br/>
2317            Typically used by UV devices to indicate when they are waiting for their lamp to become ready.
2318            This may include lamps of the APPI source.
2319            </summary>
2320        </member>
2321        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.NotReady">
2322            <summary>
2323            "Not Ready"<br/>
2324            The instrument is not  ready to perform any operation.
2325            </summary>
2326        </member>
2327        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.InstrumentState.DirectControl">
2328            <summary>
2329            "Direct Control"<br/>
2330            The device is under direct control of a user or GUI program.
2331            </summary>
2332        </member>
2333        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Properties.Resources">
2334            <summary>
2335              A strongly-typed resource class, for looking up localized strings, etc.
2336            </summary>
2337        </member>
2338        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Properties.Resources.ResourceManager">
2339            <summary>
2340              Returns the cached ResourceManager instance used by this class.
2341            </summary>
2342        </member>
2343        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Properties.Resources.Culture">
2344            <summary>
2345              Overrides the current thread's CurrentUICulture property for all
2346              resource lookups using this strongly typed resource class.
2347            </summary>
2348        </member>
2349        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTracePoint">
2350            <summary>
2351            An IAnalogTracePoint describes a value of an analog detector.
2352            </summary>
2353            <remarks>
2354            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer"/> for an example how this interface can be used.
2355            <para>
2356            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTraceContainer.LastValue"/> or by
2357            <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.AnalogTracePointEventArgs.TracePoint"/>.
2358            </para>
2359            </remarks>
2360        </member>
2361        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTracePoint.Value">
2362            <summary>
2363            The value of the analog detector.
2364            </summary>
2365        </member>
2366        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.IAnalogTracePoint.Occurrence">
2367            <summary>
2368            The time difference between acquisition start and the arrival of the analog value.
2369            </summary>
2370        </member>
2371        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.NamespaceDoc">
2372            <summary>
2373            This namespace covers the direct control functionality that a user may have to manage an instrument.
2374            Such a control is not permitted all the time for each Value/Readback and allows 
2375            the change of values individually.
2376            <para>
2377            The use of this namespace should be avoided if individual scans should be placed. Better use
2378            the <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.IScans"/> interface instead.
2379            </para>
2380            <para>
2381            Obtain <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl"/>.<see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.InstrumentValues"/>
2382            to create the desired base class.
2383            </para>
2384            </summary>
2385        </member>
2386        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsAcquisitionOpeningEventArgs">
2387            <summary>
2388            This implementation of EventArgs carries information about further
2389            <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan"/>s to be acquired.
2390            </summary>
2391            <remarks>
2392            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this class can be used.
2393            <para>
2394            An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.AcquisitionStreamOpening"/>.
2395            </para>
2396            </remarks>
2397        </member>
2398        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsAcquisitionOpeningEventArgs.#ctor">
2399            <summary>
2400            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsAcquisitionOpeningEventArgs"/>.
2401            </summary>
2402        </member>
2403        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsAcquisitionOpeningEventArgs.SpecificInformation">
2404            <summary>
2405            Get access to the information being specific to this instrument class or acquisition type.
2406            Number will be presented in US locale, default values may be omitted.
2407            The dictionary is read-only.
2408            <para>
2409            The information is very similar to that of a scan but covers only those information
2410            that is available before a scan has been acquired.
2411            </para>
2412            </summary>
2413        </member>
2414        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent">
2415            <summary>
2416            A value content describes the content of an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback"/> or <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IValue"/> representation
2417            of the instrument.
2418            </summary>
2419            <remarks>
2420            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.InstrumentValues.IInstrumentValues"/> or <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for examples how this interface can be used.
2421            <para>
2422            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IReadback.Content"/> or by
2423            <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.ContentChangedEventArgs.Content"/>.
2424            </para>
2425            </remarks>
2426        </member>
2427        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent.Content">
2428            <summary>
2429            The current content of the instrument's value representation. Every content is a string,
2430            a numerical content will be encoded according to en-US rules.
2431            <para>
2432            The content will be null if the instrument is not connected or if the IReadback is unknown
2433            to the instrument.
2434            </para>
2435            </summary>
2436        </member>
2437        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent.Unit">
2438            <summary>
2439            The unit of the <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent.Content"/> is the empty string in most cases, value of the
2440            instrument's value representation. All values are strings,
2441            numerical values will be encoded according to en-US rules.
2442            <para>
2443            The unit will be null if the instrument is not connected or if the IReadback is unknown
2444            to the instrument.
2445            </para>
2446            </summary>
2447        </member>
2448        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent.Status">
2449            <summary>
2450            The status of a value will be 0 for OK, 1 if the value represents an information,
2451            2 describes a warning, 3 an error and 4 a fatal error. The value will be -1 if the
2452            status is unknown.
2453            </summary>
2454        </member>
2455        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IContent.Help">
2456            <summary>
2457            The help string may be set only in some cases and gives a brief description of this Value.
2458            <para>
2459            The help will be null if the information is not present due to various reasons.
2460            </para>
2461            </summary>
2462        </member>
2463        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IStandbyMode">
2464            <summary>
2465            This mode lets an instrument enter the Standby state. The request may be rejected if the instrument
2466            is in a state that should not be disturbed. See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.Modes.IForcedStandbyMode"/>.
2467            </summary>
2468            <remarks>
2469            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition"/> for an example how this interface can be used.
2470            <para>
2471            An instance of this class will be created by <see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.Acquisition.IAcquisition.CreateStandbyMode"/>.
2472            </para>
2473            </remarks>
2474        </member>
2475        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanEventArgs">
2476            <summary>
2477            This implementation of EventArgs carries an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan"/>.
2478            </summary>
2479            <remarks>
2480            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this class can be used.
2481            <para>
2482            An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer.MsScanArrived"/>.
2483            </para>
2484            </remarks>
2485        </member>
2486        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanEventArgs.#ctor">
2487            <summary>
2488            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanEventArgs"/>.
2489            </summary>
2490        </member>
2491        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanEventArgs.GetScan">
2492            <summary>
2493            Get the scan that has just arrived from the instrument.
2494            It has replaced already the LastScan in the <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/>.
2495            <para>
2496            Note that accessing this method forces the consumer to dispose
2497            the item as soon as possible in order to free its shared memory resources.
2498            </para>
2499            </summary>
2500            <returns>The method returns the scan data of a scan event.</returns>
2501        </member>
2502        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs">
2503             <summary>
2504             This implementation of EventArgs carries a list of <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IError"/>s.
2505             This class will not be used for status reports or messages of the
2506             transport layer.
2507             </summary>
2508             <remarks>
2509             An instance of this class will be created by <see cref="E:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.ErrorsArrived"/>.
2510             </remarks>
2511             <example>
2512             This example shows how to use this class. The removal of the handler is not shown.
2513             <code>
2514             /// &lt;summary&gt;
2515             /// Set up all the instrument.
2516             /// &lt;/summary&gt;
2517             /// &lt;param name="instrument"&gt;instrument for which errors shall be logged&lt;/param&gt;
2518             void Init(IInstrumentAccess instrument)
2519             {
2520            	    InstrumentInstance.ErrorsArrived += new EventHandler&lt;ErrorsArrivedEventArgs&gt;(Instrument_ErrorsArrived);
2521             }
2522            
2523             /// &lt;summary&gt;
2524             /// When errors from the instrument arrived we publish them.
2525             /// &lt;/summary&gt;
2526             /// &lt;param name="sender"&gt;doesn't matter&lt;/param&gt;
2527             /// &lt;param name="e"&gt;contains the messages to be dumped&lt;/param&gt;
2528             private void Instrument_ErrorsArrived(object sender, ErrorsArrivedEventArgs e)
2529             {
2530            	    foreach (IError error in e.Errors)
2531            	    {
2532            	        Console.WriteLine("ERROR&gt;&gt;&gt; " + error.Content);
2533            	    }
2534             }
2535             </code>
2536             </example>
2537        </member>
2538        <member name="M:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs.#ctor">
2539            <summary>
2540            Create a new <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs"/>.
2541            </summary>
2542        </member>
2543        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.ErrorsArrivedEventArgs.Errors">
2544            <summary>
2545            Get access to the errors that have arrived from the instrument.
2546            </summary>
2547        </member>
2548        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Scans.NamespaceDoc">
2549            <summary>
2550            This namespace covers the functionality that a user needs to place invididual scans or repeating scans
2551            that are not part of a method.
2552            <para>
2553            Obtain <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl"/>.<see cref="M:Thermo.Interfaces.InstrumentAccess_V1.Control.IControl.GetScans(System.Boolean)"/>
2554            to create the desired base class.
2555            </para>
2556            </summary>
2557        </member>
2558        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.NamespaceDoc">
2559            <summary>
2560            This namespace covers the control functionality that a user may have to manage an instrument.
2561            Not all interfaces need to be implemented by a particular instrument.
2562            <para>
2563            Obtain <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess"/>.<see cref="P:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.Control"/>
2564            to create the desired base class.
2565            </para>
2566            </summary>
2567        </member>
2568        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.AnalogTraceContainer.NamespaceDoc">
2569            <summary>
2570            This namespace covers those interfaces for sole use by analog trace devices.
2571            Such devices are PDAs, UVs, etc.
2572            <para>
2573            Call <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess"/>.<see cref="M:Thermo.Interfaces.InstrumentAccess_V1.IInstrumentAccess.GetAnalogTraceContainer(System.Int32)"/>
2574            to create the desired base class.
2575            </para>
2576            </summary>
2577        </member>
2578        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.INoiseNode">
2579            <summary>
2580            One noise node is part of a set of noise nodes which describe the individual noise
2581            by interpolation at a specific point. Each noise node should be combined with its
2582            neightbors in a polygonial way.
2583            </summary>
2584            <remarks>
2585            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this interface can be used.
2586            <para>
2587            An instance of this class will be created by <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScan.NoiseBand"/>.
2588            </para>
2589            </remarks>
2590        </member>
2591        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.INoiseNode.Baseline">
2592            <summary>
2593            Baseline of the noise node. The value will be null if no baseline is available.
2594            </summary>
2595        </member>
2596        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource">
2597            <summary>
2598            The enum describes where an information comes from in an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IInfoContainer"/>.
2599            </summary>
2600            <remarks>
2601            See <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.IMsScanContainer"/> for an example how this enumeration can be used.
2602            </remarks>
2603        </member>
2604        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.Unknown">
2605            <summary>
2606            The source is unknown or does not matter. When requesting information
2607            this value will let the interface search the following sources in the
2608            numerical order.
2609            </summary>
2610        </member>
2611        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.Common">
2612            <summary>
2613            The common parameter set is that that will be used by all Thermo instruments
2614            if the information is known to all all instruments. Such information
2615            covers polarity, etc.
2616            </summary>
2617        </member>
2618        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.Trailer">
2619            <summary>
2620            The Trailer data source covers values which are very specific to the instrument
2621            and which change or may change on a scan by scan bysis.
2622            </summary>
2623        </member>
2624        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.Status">
2625            <summary>
2626            The Status data source covers values which represents status values like
2627            detector temperatures, etc. In opposite to the <see cref="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.Trailer"/> this
2628            information may not be updated scan by scan. The information might be
2629            buffered.
2630            </summary>
2631        </member>
2632        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.TuneData">
2633            <summary>
2634            The TuneData source covers values taken from the tune file if the instrument
2635            uses such techniques. The information may be buffered because tune files
2636            will not change frequently.
2637            </summary>
2638        </member>
2639        <member name="F:Thermo.Interfaces.InstrumentAccess_V1.MsScanContainer.MsScanInformationSource.AcquisitionFixed">
2640            <summary>
2641            The AcquisitionFixed source covers values present since the start of the
2642            acquisition.
2643            </summary>
2644        </member>
2645        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITableColumnDescription">
2646            <summary>
2647            This interface allows one to retrieve information about a column of an <see cref="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITable"/>.
2648            </summary>
2649        </member>
2650        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITableColumnDescription.Optional">
2651            <summary>
2652            Returns whether the column is optional.
2653            </summary>
2654        </member>
2655        <member name="P:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.ITableColumnDescription.AcceptedHeaderNames">
2656            <summary>
2657            Get all alternate names to the header of the column. The standard name is returned in <see cref="P:Thermo.Interfaces.InstrumentAccess_V1.Control.IParameterDescription.Name"/>.
2658            </summary>
2659        </member>
2660        <member name="T:Thermo.Interfaces.InstrumentAccess_V1.Control.Methods.IExclusionTable">
2661            <summary>
2662            This flag interface defines a table which carries exclusion items.
2663            </summary>
2664        </member>
2665    </members>
2666</doc>