Skip to content

Changing the Table of Contents

The driver help file table of contents is specified in a special XML file in the Template folder of the driver help project. This file is referred to as the help template manifest file, and it is always named Manifest.xml.

The code below is an excerpt from the manifest file for an IVI.NET driver:

Manifest.xml
<HelpTOC Resource="IviNetDriver.TocRoot.html">
<HelpTOCNode Resource="GettingStarted.html">
<HelpTOCNode Resource="IviBackgrounder.html">
<HelpTOCNode Resource="InherentCapabilities.html"/>
<HelpTOCNode Resource="Interchangeability.html"/>
<HelpTOCNode Resource="InstrumentSpecificCapabilities.html"/>
<HelpTOCNode Resource="IviSharedComponents.html"/>
<HelpTOCNode Resource="RepeatedCapabilities.html"/>
<HelpTOCNode Resource="LxiFundamentals.html"/>
</HelpTOCNode>
<HelpTOCNode Resource="Installation.html"/>
<HelpTOCNode Resource="IviCompliance.html" Condition="NotNoClass" Output="IviCompliance.html"/>
<HelpTOCNode Resource="IviComplianceNoClass.html" Condition="NoClass" Output="IviCompliance.html"/>
<HelpTOCNode Resource="IviConfigStore.html"/>
</HelpTOCNode>
<HelpTOCNode Resource="IviNetDriver.html">
<HelpTOCNode Resource="IviNetInitialize.html"/>

The \<HelpTOC\> element is the root of the help table of contents. Child \<HelpTOCNode\> elements are used to create a hierarchy of help topics. The Resource attribute refers to the HTML file that contains the content for the topic. The title is established by a special \<MSHelp:TOCTitle\> element within the HTML file itself.

Topics can be removed from the help file by simply deleting them from the manifest file. Alternatively, the help topics can be rearranged by simply moving the desired \<HelpTOCNode\> elements in the desired order.

Most of the help topics that appear in the final driver help file are not listed explicitly in the help template manifest file. For instance, the help topics for the driver methods and properties (or functions and attributes, in the case of IVI-C drivers) do not explicitly appear in this XML file. These topics are far too numerous to include in the help template manifest file, so they are instead generated dynamically and placed under special topics that have a Content attribute.

The special content topics are included in the manifest file so that other topics can be arranged around them to produce the desired table of contents. The following code snippet shows all of the special content topics for an IVI.NET driver.

Manifest.xml
<!-- ... -->
<HelpTOCNode Resource="IviNetDriverReference.html">
<HelpTOCNode Title="Driver Hierarchy" Content="IviNetHierarchy"/>
<HelpTOCNode Title="Driver Interfaces" Content="IviNetFlat"/>
<HelpTOCNode Resource="IviNetCommandReference.html"/>
</HelpTOCNode>
<!-- ... -->

Help topics can be conditionally included by use of the Condition attribute. In the example below, the help topic for “AccessingRepCaps.html” will only be included in the help file if the condition “RepCap” is true. This particular condition is true as long as the driver includes one or more repeated capabilities. Similarly, the help topic for “IviNetClassCompliant-IviDCPwr.html” will only be included if the driver implements the IviDCPwr instrument class. Conditions are generally used when adding custom boilerplate help content.

IviNetDriverHelpTemplate.xml
<HelpTOCNode Resource="IviNetClassCompliant-IviDCPwr.html" Condition="IviDCPwr" Output="IviNetClassCompliant.html"/>
<!-- ... -->
<HelpTOCNode Resource="AccessingRepCaps.html" Condition="RepCap"/>

The table below lists all of the pre-built conditions that can be used for conditionally including help file content:

ConditionDescription
LxiTrue if the driver is compliant with the LXI Core 2016 base class.
NotLxiTrue if the driver is not compliant with the LXI Core 2016 base class.
LxiClockSynchronizationTrue if the driver supports the LXI Clock Synchronization extended function.
LxiEventLogsTrue if the driver supports the LXI Event Logs extended function.
LxiEventMessagingTrue if the driver supports the LXI Event Messaging extended function.
LxiTimestampedDataTrue if the driver supports the LXI Timestamped Data extended function.
LxiWiredTriggerBusTrue if the driver supports the LXI Wired Trigger Bus extended function.
RepCapTrue if the driver has at least one repeated capability.
NotRepCapTrue if the driver does not have any repeated capabilities.
NoClassTrue if the driver does not implement an instrument class.
NotNoClassTrue if the driver implements at least one instrument class.
IviCounterTrue if the driver implements the IviCounter instrument class.
IviDCPwrTrue if the driver implements the IviDCPwr instrument class.
IviDigitizerTrue if the driver implements the IviDigitizer instrument class.
IviDmmTrue if the driver implements the IviDmm instrument class.
IviDownconverterTrue if the driver implements the IviDownconverter instrument class.
IviFgenTrue if the driver implements the IviFgen instrument class.
IviPwrMeterTrue if the driver implements the IviPwrMeter instrument class.
IviRFSigGenTrue if the driver implements the IviRFSigGen instrument class.
IviScopeTrue if the driver implements the IviScope instrument class.
IviSpecAnTrue if the driver implements the IviSpecAn instrument class.
IviSwtchTrue if the driver implements the IviSwtch instrument class.
IviUpconverterTrue if the driver implements the IviUpconverter instrument class.

Using the Output Attribute to Change Content File Names

Section titled “Using the Output Attribute to Change Content File Names”

When help pages are conditionally included as described in the previous section, it can be difficult or impossible to manage links to the conditionally included pages. For example, consider the following portion of a help template manifest file:

Manifest.xml
<HelpTOC>
<HelpTOCNode Resource="GettingStarted.html">
<HelpTOCNode Resource="Installation.html"/>
<HelpTOCNode Resource="IviComplianceWithClass.html" Condition="NotNoClass"/>
<HelpTOCNode Resource="IviComplianceNoClass.html" Condition="NoClass"/>
<HelpTOCNode Resource="IviConfigStore.html"/>
</HelpTOCNode>

If the driver complies with at least one instrument class, the content file “IviComplianceWithClass.html” will be included in the help file. If the driver does not comply with any instrument class, the content file “IviComplianceNoClass.html” will be included in the help file. Other pages within the help file may wish to create a link to whichever of these two files was included. For instance, the first help topic “GettingStarted.html” is a parent of the two pages and likely needs to include a link to all of its child topics. Since links cannot be conditional, this presents a fundamental problem.

Nimbus provides the Output attribute to enable links to be created to conditionally included content. The Output attribute simply renames a content file from the name indicated by the Resource attribute to that specified with the Output attribute. Conditionally included topics use the Output attribute to “re-direct” multiple mutually exclusive topics to the same file name so that links can be created to the conditionally included topics.

The following example demonstrates use of the Output attribute.

IviNetDriverHelpTemplate.xml
<HelpTOC>
<HelpTOCNode Resource="GettingStarted.html">
<HelpTOCNode Resource="Installation.html"/>
<HelpTOCNode Resource="IviComplianceWithClass.html" Condition="NotNoClass" Output="IviCompliance.html"/>
<HelpTOCNode Resource="IviComplianceNoClass.html" Condition="NoClass" Output="IviCompliance.html"/>
<HelpTOCNode Resource="IviConfigStore.html"/>
</HelpTOCNode>

In the above example, the Output attribute has been used with the conditionally included topics “IviComplianceWithClass.html” and “IviComplianceNoClass.html”. Irrespective of which of these topics is included in the help file, the resulting file name will be “IviCompliance.html”. This allows other help pages to create links to the “IviCompliance.html” page without regard to the conditional inclusion logic.