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