<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Focal.Model906.Diagnostics</name>
    </assembly>
    <members>
        <member name="T:Focal.Model906.Diagnostics.Model906">
            <summary>
            Encasulates data retrieval and formatting for one half (that is, 
            one of the two microcontrollers) on a Model906 module. 
            </summary>
            <remarks>
            A Model 906 module contains 2 microcontrollers, each of which exposes
            an identical set of Modbus registers. To view all data on a particular
            Model 906 board, create two instances of this class using the
            appropriate IP address for each microcontroller. 
            </remarks>
            <example>
            <para>This example demonstrates how to use the Focal.Model906.Diagnostics library
            to connect to one of the microcontrollers on a Model 906 module. </para>    
            <para>Perform the following steps to start retrieving data:</para>
            <list type="number">
                <item><p>Create a new Visual Studio project.</p></item>        
                <item><p>Add a reference to the Focal.Model906.Diagnostics.dll library.</p></item>    
                <item><p>Add a reference to the Focal.Communications.Modbus.dll library.</p></item>
                <item><p>Add a reference to the Focal.Utilities.dll library.</p></item>       
                
                <item><p>Create a new Model906 object:
                    <code>var _model906 = new Model906(IPAddress.Parse("192.168.0.100"), 1000);</code></p></item>
                    
                <item><p>Subscribe to the various communication status events, if you are interested:
                    <code>
                        _model906.ModbusController.DataRefreshComplete += (o, s) => 
                            Console.WriteLine("All Modbus data refreshed...");
                            
                        _model906.ModbusController.ModbusExceptionCodeReceived += (o, s) => 
                            Console.WriteLine("Modbus Exception Code received: " + 
                            "\nCode: " + s.Value + 
                            "\nDescription: " + s.Value2);
                            
                        _model906.ModbusController.DataRefreshEnabled += (o, s) => 
                            Console.WriteLine("Data refresh enabled...");
                            
                        _model906.ModbusController.DataRefreshDisabled += (o, s) => 
                            Console.WriteLine("Data refresh disabled...");
                    </code></p></item>
                    
                <item><p>Start automatic data refresh:
                    <code>_model906.ModbusController.StartDataRefresh();</code></p></item>
                
                <item><p>If you have subscribed to the 'DataRefreshComplete' event, you will receive
                notifications each time all register data has been refreshed from the card.
                That said, most objects in the library implement INotifyPropertyChanged,
                so in many cases it can be easier to bind directly to the property of interest.</p>
                </item>        
                
                <item><para>To access current diagnostic data, examine the properties of
                the _model906 object.  For example:
                    <code>
                        Console.WriteLine("SFP1 Rx Pwr: {0}", _model906.Sfps[0].RxPwr.Measured);          
                        Console.WriteLine("SFP2 Installed: {0}", _model906.LinkStatus.Sfp2Installed);
                        Console.WriteLine("Board Serial Number: {0}", _model906.BoardInfo.SerialNumber);
                    </code>         
                </para></item>
            </list>
            </example>     
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.ITagGroupRefresher">
            <summary>
            
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.#ctor">
            <summary>
            Constructs a new Model922 using default TCP connection parameters:
            IP = 192.168.0.100, Port = 502, Timeout = 1500ms.
            </summary>
            <example>
            <code>
            var _model906 = new Model906();
            </code>
            </example>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.#ctor(System.Net.IPAddress,System.Int32)">
            <summary>
            Constructs a new Model906 using the specified TCP connection parameters
            and the default ModbusTCP port of 502.
            </summary>
            <example>        
            <code>
            var _model906 = new Model906(IPAddress.Parse("192.168.0.100"), 1000);
            </code>
            </example>
            <param name="ip">The IP address of the Model906 card.</param>
            <param name="timeout">The connection timeout (milliseconds).</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.#ctor(System.Net.IPAddress,System.Int32,System.Int32)">
            <summary>
            Constructs a new Model906 using the specified TCP connection parameters,
            the specified ModbusTCP port and the default data refresh interval
            of 200ms.
            </summary>
            <example>        
            <code>
            var _model906 = new Model906(IPAddress.Parse("192.168.0.100"), 502, 1500);
            </code>
            </example>
            <param name="ip">The IP address of the Model906 card.</param>
            <param name="timeout">The connection timeout (milliseconds).</param>
            <param name="port">The TCP port number used for the modbus connection.</param>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.#ctor(System.Net.IPAddress,System.Int32,System.Int32,System.Int32)">
            <summary>
            Constructs a new Model906 using the specified TCP connection parameters. 
            </summary>
            <example>        
            <code>
            var _model906 = new Model906(IPAddress.Parse("192.168.0.100"), 502, 1000, 500);
            </code>
            </example>
            <param name="ip">The IP address of the diagnostics card.</param>
            <param name="port">The TCP port number used for the modbus connection.</param>
            <param name="timeout">The connection timeout (milliseconds).</param>
            <param name="refreshInterval">The interval, in milliseconds, at which to refresh all modbus registers.</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitBoardInfo">
            <summary>
            Initializes the ADC Status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitSfps">
            <summary>
            Initializes the list of SFPs.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitAdc">
            <summary>
            Initializes the ADC Status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitLinkStatus">
            <summary>
            Initializes the Link Status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitFirmwareStatus">
            <summary>
            Initializes the Firmware Status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitSwitchInfo">
            <summary>
            Initializes the Switch Info object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitSfpControl">
            <summary>
            Initializes the SFP Control status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.InitCardStatus">
            <summary>
            Initializes the Card status object.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.GetLinkSpeedForceBitNum(Focal.Model906.Diagnostics.Model906.CopperPortIdent)">
            <summary>
            Gets the bit number of the 'link speed force' for the 
            specified port.  
            </summary>
            <remarks>
            These bits are found in holding register 40175,
            where the bit value 0 = Force 100Base-TX and 1 = Force 10Base-T.
            </remarks>
            <param name="port">The port for which to determine the link speed
            force bit number</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.GetLinkSpeedForceEnableBitNum(Focal.Model906.Diagnostics.Model906.CopperPortIdent)">
            <summary>
            Gets the bit number of the 'enable link speed force' for the 
            specified port.  
            </summary>
            <remarks>
            These bits are found in holding register 40175,
            where the bit value 0 = Disable Link Speed Force and 
            1 = Enable Link Speed Force.
            </remarks>
            <param name="port">The port for which to determine the enable
            link speed force bit number</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ConverToUshort(System.UInt16,System.UInt16)">
            <summary>
            Converts a UInt16 number to ushort. 
            </summary> 
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.AssignIndividualSwAConfig(System.String,System.String)">
            <summary>
            Writes the switch A configuration provided in the input text boxes. 
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.AssignIndividualSwBConfig(System.String,System.String)">
            <summary>
            Writes the switch A configuration provided in the input text boxes. 
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.AssignSwAConfig(System.String,System.String)">
            <summary>
            Writes the switch A configuration provided. 
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.AssignSwBConfig(System.String,System.String)">
            <summary>
            Writes the switch B configuration provided in the input text boxes. 
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ReadSwAConfig">
            <summary>
            Reads the current switch A configuration and saves the read information in the specified file
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ReadSwBConfig">
            <summary>
            Reads the current switch B configuration
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteSwAConfig">
            <summary>
            Writes a new configuration to switch A using the selected file for this switch
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteSwBConfig">
            <summary>
            Writes a new configuration to switch B using the selected file for this switch
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ClearSwitchMsgs(System.String)">
            <summary>
            This method clears messages shown in the UI
            Example of valid input parameters are "SwARd", "SwBRd", "SwAWr" and "SwBWr"
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.OpenSelectFileDiag(System.String,System.String,System.Int32)">
            <summary>
            Opens the 'Open File Dialog' and returns the path and file name selected.
            It receives initialDirectory string (e.g.: "c:\\")
            It receives the string to filter file extensions, e.g.: "bin files (*.bin)|*.bin" to open only .bin type files.
            It receives a filter index number (e.g. 1)
            </summary>
            <returns>A string with the file path selected</returns>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.SaveAsSelectFile(System.String,System.String,System.Int32)">
            <summary>
            Creates an empty file and returns the path where the file is located
            </summary>
            <returns>returns the file name and path of the saved file</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwAConfig(System.Int32)">
            <summary>
            Triggers the uC to write switch A configuration.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwBConfig(System.Int32)">
            <summary>
            Triggers the uC to write switch B configuration.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchConfig(System.Int32,System.Int32)">
            <summary>
            Triggers the uC to write a new switch configuration.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.RedundantMode">
            <summary>
            Enables redundant mode. 
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.NormalMode">
            <summary>
            Enables normal mode (aka Daisy Chain mode). 
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.NormalModeConfirmation">
            <summary>
            Confirmation message to change card to Nomal Mode configuration. 
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.RedundantModeConfirmation">
            <summary>
            Confirmation message to change card to Nomal Mode configuration. 
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.SfpEnable(Focal.Model906.Diagnostics.Model906.SfpIdent)">
            <summary>
            Enables the specified SFP (Model 906 only).
            </summary>
            <param name="sfp">The sfp to enable.</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.SfpDisable(Focal.Model906.Diagnostics.Model906.SfpIdent)">
            <summary>
            Disables the specified SFP (Model 906 only).
            </summary>
            <param name="sfp">The sfp to disable.</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.EnableLinkSpeedForce(Focal.Model906.Diagnostics.Model906.CopperPortIdent,Focal.Model906.Diagnostics.Models.EthernetLinkSpeed)">
            <summary>
            Forces the link speed of the specified copper port.
            </summary>
            <param name="port">The port to force.</param>
            <param name="linkSpeed">The link speed to force.</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.DisableLinkSpeedForce(Focal.Model906.Diagnostics.Model906.CopperPortIdent)">
            <summary>
            Disables the link speed force on the specified copper port.
            </summary>
            <param name="port">The port on which to disable link speed force.</param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchBootFromBootstrapConfirmation">
            <summary>
            Triggers the switch to boot from bootstrap (hard-wire config) - Confirmation Message.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchBootFromBootstrap">
            <summary>
            Triggers the switch to boot from bootstrap (hard-wire config).
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchBootFromEepromConfirmation">
            <summary>
            Triggers the switch to boot from eeprom - Confirmation Message.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchBootFromEeprom">
            <summary>
            Triggers the switch to boot from eeprom.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchSaveCurrentConfigToEepromConfirmation">
            <summary>
            Triggers the switch to save to current ethernet configuration to EEPROM - Confirmation Message.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchSaveCurrentConfigToEeprom">
            <summary>
            Triggers the switch to save to current ethernet configuration to EEPROM.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerSwitchWriteToEeprom">
            <summary>
            Triggers the switch to write all 54 config registers to eeprom (this is valid for the Model 906 only).
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.LoadTestVLANConfigConfirmation">
            <summary>
            Triggers the switch to write load a test VLAN configuration pre-defined by the uC - Confirmation Message
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.LoadTestVLANConfig">
            <summary>
            Triggers the switch to write load a test VLAN configuration pre-defined by the uC.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.LoadTestPortPriorityConfig">
            <summary>
            Triggers the switch to write load a test Port Priority configuration pre-defined by the uC.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.TriggerFWUpdateReadyToLoadOrDone">
            <summary>
            Triggers the firmware update ready to load/done.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateActivateConfirmation">
            <summary>
            Confirmation message to trigger the uC to active the new code in Flash
            </summary>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateIgnoreConfirmation">
            <summary>
            Confirmation message to trigger the uC to ignore the new code in Flash
            </summary>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateActivate">
            <summary>
            Triggers the uC to active the new code in Flash
            A logic '1' will 'tell' the uC that the full verfication process has been
            completed successfully (no errors detected) and that the new code is okay to be used.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateIgnore">
            <summary>
            Triggers the uC to ignore the new code in Flash
            A logic '1' will 'tell' the uC that the full verfication process has been
            completed but with errors detected and that the new code is must not be used.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateFileSize(System.UInt32)">
            <summary>
            Writes to the modbus registes (listed below) the size of the new firmware file.
            40520 contains the upper 8-bits
            40519 contains the middle 8-bits
            40518 contains the lower 8-bits
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteFWData(System.Byte[])">
            <summary>
            Writes 512 bytes starting at 40523 Modbus register address. The input is a byte array with 512 bytes of data.
            </summary>
        </member>
        <member name="F:Focal.Model906.Diagnostics.Model906.configReadPage">
            <summary>
            Reads 512 bytes starting at 40523 Modbus register address. The result is placed in a byte array called 'configReadPage'
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.BlockReadMbData(System.UInt16,System.Int32)">
            <summary>
            Reads N bytes starting at the specified Modbus register address. The result is placed in a byte array
            </summary>
            <param name="startRegAddr">The start register address.</param>
            <param name="numBytesToRead">The number of bytes to read.</param>
            <returns>A byte array containing the read information from the modbus.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteFile(System.Byte[],System.String)">
            <summary>
            Writes the input byte array in a file in the specified path - the output file is a binary file
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteStreamFile(System.Byte[],System.String)">
            <summary>
            Writes the input byte array in a file in the specified path
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ConvertPageToFile(System.Byte[])">
            <summary>
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwPageWriteTrigger(System.Int32)">
            Trigger function to indicate to the micro that a new page is ready to be written
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FindStringInFile(System.String,System.String)">
            <summary>
            Opens a file and search for a string, closes the file and returns whether the string was found or not.
            </summary>
            <returns>True if the string was found, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.SelectFwFile">
            <summary>
            Selects the firmware file to be used to program the uC
            </summary>
            <returns>nothing</returns>        
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.SelectReadBackFwFile">
            <summary>
            Creates an empty *.bin file to be used to write the information read from the uC memory
            </summary>
            <returns>nothing</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.CreateReadBackFwFilePath">
            <summary>
            Creates a subfolder in the directory from which the app is running (CurrentDirectory).
            And it also combines a file name with the subfolder created
            </summary>
            <returns>nothing</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.OpenFolderDialogWindow">
            <summary>
            Prompts the user to select a folder 
            </summary>
            <returns>nothing</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.FwUpdateConfirmation(System.Boolean)">
            <summary>
            This method is link to the 'Load Firmware File" button
            Last check point before loading new FW file into the uC
            </summary>
            <returns>nothing</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.OpenFirmwareFile">
            <summary>
            Opens a file used for a uC firmware update.
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteFirmwareFile(System.Byte[])">
            <summary>
            Writes a file
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.VerifyFirmwareFile">
            <summary>
            Verifies that the content of the Flash in the uC is the same as the original file that
            was used to perform a firmware upate.
            </summary>
            <returns>True if the files are identical, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.WriteNewSwitchConfig(System.String,System.Int32)">
            <summary>
            Opens a *.CSV file with a switch configuration and writes the new config to the specified switch
            </summary>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.parseCSV(System.String)">
            <summary>
            Receives a path (expected to be valid) and opens a *.CSV file 
            The information in the CSV file is placed in a list.
            </summary>
            <comments>
            The input file should look like this:
               C0 C1 
            R0 10,20      
            R1 4C,AA
            R2 A0,E0 
            R3 FF,7F
            The column tiles Cx and row titles Rx should not be in the file (just the hex number separated by commas)
            C0 is expected to indicate a register addres and 
            C1 is expected to indicate a register data
            Rx is the number of register address and data
            </comments>
            <returns>A list </returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.ResetPacketCounters">
            <summary>
            Resets the ethernet the Tx and Rx Packet Counters of both remote and local cards.
            </summary>
            <param name=""></param>
            <returns>True if the command succeeded, False otherwise.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.OnPropertyChanged(System.String)">
            <summary>
            Raises <see cref="E:Focal.Model906.Diagnostics.Model906.PropertyChanged"/> for the specified object property. 
            </summary>        
            <param name="propertyName">The name of the property that has
            changed.</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Model906.OnTagDataRefreshed">
            <summary>
            Raises <see cref="E:Focal.Model906.Diagnostics.Model906.TagDataRefreshed"/>.
            </summary>        
            <remarks>
            We use this event to notify the various FormattedData objects
            that their raw tag data has been updated.
            </remarks>
        </member>
        <member name="F:Focal.Model906.Diagnostics.Model906._tagGroups">
            <summary>
            The list of Modbus tags available from a Model 920 microcontroller.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.ModbusController">
            <summary>
            Gets the ModbusController that manages modbus comms to the device.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.BoardInfo">
            <summary>
            Gets the Board Info object (serial number, etc).
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.Sfps">
            <summary>
            Gets the list of Diagnostic Master devices.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.LinkStatus">
            <summary>
            Gets the link status object.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.FirmwareStatus">
            <summary>
            Gets the Firmware status object.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.SwitchInfo">
            <summary>
            Gets the Switch Info object.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.SfpStatus">
            <summary>
            Gets the SFP Control status object.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.AdcStatus">
            <summary>
            Gets the ADC status object.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Model906.CardStatus">
            <summary>
            Gets the card status object.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Model906.SfpIdent">
            <summary>
            Enumerates the SFP's onboard a Model 906.
            </summary>
            <remarks>
            Each uC manages 2 SFP's.
            </remarks>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Model906.CopperPortIdent">
            <summary>
            Enumerates the copper ports onboard one of the switches.
            </summary>        
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.AdcStatus">
            <summary>
            Decodes formatted ADC data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "ADC Registers",
                new List<ITag>() {
                    new ModbusTag(40019, "Board 1.2V Voltage [L]",   MBRegType.Holding),
                    new ModbusTag(40020, "Board 3.3V Voltage [L]", MBRegType.Holding),
                    new ModbusTag(40021, "Board 24V Voltage [L]", MBRegType.Holding),
                    new ModbusTag(40024, "Board 1.2V Voltage [R]", MBRegType.Holding),
                    new ModbusTag(40025, "Board 3.3V Voltage [R]", MBRegType.Holding),
                    new ModbusTag(40026, "Board 24V Voltage [R]", MBRegType.Holding),
            }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.FormattedData">
            <summary>
            Defines commmonality between formatted data response types.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.FormattedData.#ctor(Focal.Communications.Modbus.TagGroup)">
            <summary>
            Constructs a new FormattedData object.
            </summary>
            <param name="tagGroup"></param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.FormattedData.#ctor(Focal.Communications.Modbus.TagGroup,Focal.Model906.Diagnostics.Models.ITagGroupRefresher)">
            <summary>
            Constructs a new FormattedData object.
            </summary>
            <param name="tagGroup"></param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.FormattedData.GetStringFromTags(System.Int32,System.Int32)">
            <summary>
            Extracts an ascii string from propLen consecutive tags in _tagGroup starting
            at propOffset.
            </summary>
            <param name="tagOffset"></param>
            <param name="numTags"></param>
            <returns></returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.FormattedData.OnPropertyChanged(System.String)">
            <summary>
            Raises <see cref="E:Focal.Model906.Diagnostics.Models.FormattedData.PropertyChanged"/>
            </summary>        
            <param name="propertyName">The name of the property that has
            changed.</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.AdcStatus.#ctor">
            <summary>
            Constructs a new LinkStatus using a default name of 'Link Status'.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.AdcStatus.ScaleAnalogValue(System.Double,System.Double,System.Int32)">
            <summary>
            Scales an onboard a/d value from the diagnostics card.
            </summary>
            <param name="adCounts">The A/D counts to scale.</param>
            <param name="scaleFactor"></param>
            <param name="numDecimals">The number of decimal points to round the result.</param>
            <returns></returns>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage12L">
            <summary>
            Gets the local voltage reading from the 1.2VDC rail.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage33L">
            <summary>
            Gets the local voltage reading from the 3.3VDC rail.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage24L">
            <summary>
            Gets the local voltage reading from the 24VDC rail.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage12R">
            <summary>
            Gets the remote voltage reading from the 1.2VDC rail.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage33R">
            <summary>
            Gets the remote voltage reading from the 3.3VDC rail.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.AdcStatus.Voltage24R">
            <summary>
            Gets the remote voltage reading from the 24VDC rail.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.AnalogTag">
            <summary>
            Encapsulates values associated with an analog process variable.
            </summary>
            <remarks>
            Typically an analog process variable has a measured value
            along with several values to indicate warning and alarm thresholds.
            This class allows us to carry these values as a single object.
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.AnalogTag.#ctor(System.String,System.String)">
            <summary>
            Constructs a new AnalogTag using the supplied description and
            units of measure.
            </summary>
            <param name="description">The description of the AnalogTag.</param>
            <param name="units">The units of measure for the AnalogTag (eg. mA, dBm, etc).</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.AnalogTag.#ctor(System.String)">
            <summary>
            Constructs a new AnalogTag using the supplied description.
            </summary>
            <param name="description">The description of the AnalogTag.</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.AnalogTag.#ctor">
            <summary>
            Constructs a new AnalogTag using the default description
            of 'AnalogTag'.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.BoardInfo">
            <summary>
            Decodes formatted ADC data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "Board Info Registers",
                new List<ITag>() {
                    new ModbusTag(40198, "Board Serial Number [0] - [L]", MBRegType.Holding),                /*tagOffset = 0*/
                    new ModbusTag(40199, "Board Serial Number [1] - [L]", MBRegType.Holding),                /*tagOffset = 1*/
                    new ModbusTag(40200, "Board Serial Number [2] - [L]", MBRegType.Holding),                /*tagOffset = 2*/
                    new ModbusTag(40201, "Board Serial Number [3] - [L]", MBRegType.Holding),                /*tagOffset = 3*/
                    new ModbusTag(40202, "Board Serial Number [4] - [L]", MBRegType.Holding),                /*tagOffset = 4*/
                    new ModbusTag(40203, "Board Serial Number [5] - [L]", MBRegType.Holding),                /*tagOffset = 5*/
                    new ModbusTag(40204, "Board Serial Number [6] - [L]", MBRegType.Holding),                /*tagOffset = 6*/
                    new ModbusTag(40205, "Board Serial Number [7] - [L]", MBRegType.Holding),                /*tagOffset = 7*/
                                                                                                       
                    new ModbusTag(40206, "Board Date Code [0] - [L]", MBRegType.Holding),                    /*tagOffset = 8*/
                    new ModbusTag(40207, "Board Date Code [1] - [L]", MBRegType.Holding),                    /*tagOffset = 9*/
                    new ModbusTag(40208, "Board Date Code [2] - [L]", MBRegType.Holding),                    /*tagOffset = 10*/
                    new ModbusTag(40209, "Board Date Code [3] - [L]", MBRegType.Holding),                    /*tagOffset = 11*/
                    new ModbusTag(40210, "Board Date Code [4] - [L]", MBRegType.Holding),                    /*tagOffset = 12*/
                    new ModbusTag(40211, "Board Date Code [5] - [L]", MBRegType.Holding),                    /*tagOffset = 13*/
                    new ModbusTag(40212, "Board Date Code [6] - [L]", MBRegType.Holding),                    /*tagOffset = 14*/
                    new ModbusTag(40213, "Board Date Code [7] - [L]", MBRegType.Holding),                    /*tagOffset = 15*/
                                                                                                       
                    new ModbusTag(40214, "Board Assembly Number [0] - [L]", MBRegType.Holding),              /*tagOffset = 16*/
                    new ModbusTag(40215, "Board Assembly Number [1] - [L]", MBRegType.Holding),              /*tagOffset = 17*/
                    new ModbusTag(40216, "Board Assembly Number [2] - [L]", MBRegType.Holding),              /*tagOffset = 18*/
                    new ModbusTag(40217, "Board Assembly Number [3] - [L]", MBRegType.Holding),              /*tagOffset = 19*/
                    new ModbusTag(40218, "Board Assembly Number [4] - [L]", MBRegType.Holding),              /*tagOffset = 20*/
                    new ModbusTag(40219, "Board Assembly Number [5] - [L]", MBRegType.Holding),              /*tagOffset = 21*/
                    new ModbusTag(40220, "Board Assembly Number [6] - [L]", MBRegType.Holding),              /*tagOffset = 22*/
                    new ModbusTag(40221, "Board Assembly Number [7] - [L]", MBRegType.Holding),              /*tagOffset = 23*/
                                                                                                       
                    new ModbusTag(40222, "Board PCB Number [0] - [L]", MBRegType.Holding),                   /*tagOffset = 24*/
                    new ModbusTag(40223, "Board PCB Number [1] - [L]", MBRegType.Holding),                   /*tagOffset = 25*/
                    new ModbusTag(40224, "Board PCB Number [2] - [L]", MBRegType.Holding),                   /*tagOffset = 26*/
                    new ModbusTag(40225, "Board PCB Number [3] - [L]", MBRegType.Holding),                   /*tagOffset = 27*/
                    new ModbusTag(40226, "Board PCB Number [4] - [L]", MBRegType.Holding),                   /*tagOffset = 28*/
                    new ModbusTag(40227, "Board PCB Number [5] - [L]", MBRegType.Holding),                   /*tagOffset = 29*/
                    new ModbusTag(40228, "Board PCB Number [6] - [L]", MBRegType.Holding),                   /*tagOffset = 30*/
                    new ModbusTag(40229, "Board PCB Number [7] - [L]", MBRegType.Holding),                   /*tagOffset = 31*/
                    
                    new ModbusTag(40230, "Board Serial Number [0] - [R]", MBRegType.Holding),                /*tagOffset = 32*/
                    new ModbusTag(40231, "Board Serial Number [1] - [R]", MBRegType.Holding),                /*tagOffset = 33*/
                    new ModbusTag(40232, "Board Serial Number [2] - [R]", MBRegType.Holding),                /*tagOffset = 34*/
                    new ModbusTag(40233, "Board Serial Number [3] - [R]", MBRegType.Holding),                /*tagOffset = 35*/
                    new ModbusTag(40234, "Board Serial Number [4] - [R]", MBRegType.Holding),                /*tagOffset = 36*/
                    new ModbusTag(40235, "Board Serial Number [5] - [R]", MBRegType.Holding),                /*tagOffset = 37*/
                    new ModbusTag(40236, "Board Serial Number [6] - [R]", MBRegType.Holding),                /*tagOffset = 38*/
                    new ModbusTag(40237, "Board Serial Number [7] - [R]", MBRegType.Holding),                /*tagOffset = 39*/
                                                                                                       
                    new ModbusTag(40238, "Board Date Code [0] - [R]", MBRegType.Holding),                    /*tagOffset = 40*/
                    new ModbusTag(40239, "Board Date Code [1] - [R]", MBRegType.Holding),                    /*tagOffset = 41*/
                    new ModbusTag(40240, "Board Date Code [2] - [R]", MBRegType.Holding),                    /*tagOffset = 42*/
                    new ModbusTag(40241, "Board Date Code [3] - [R]", MBRegType.Holding),                    /*tagOffset = 43*/
                    new ModbusTag(40242, "Board Date Code [4] - [R]", MBRegType.Holding),                    /*tagOffset = 44*/
                    new ModbusTag(40243, "Board Date Code [5] - [R]", MBRegType.Holding),                    /*tagOffset = 45*/
                    new ModbusTag(40244, "Board Date Code [6] - [R]", MBRegType.Holding),                    /*tagOffset = 46*/
                    new ModbusTag(40245, "Board Date Code [7] - [R]", MBRegType.Holding),                    /*tagOffset = 47*/
                                                                                                       
                    new ModbusTag(40246, "Board Assembly Number [0] - [R]", MBRegType.Holding),              /*tagOffset = 48*/
                    new ModbusTag(40247, "Board Assembly Number [1] - [R]", MBRegType.Holding),              /*tagOffset = 49*/
                    new ModbusTag(40248, "Board Assembly Number [2] - [R]", MBRegType.Holding),              /*tagOffset = 50*/
                    new ModbusTag(40249, "Board Assembly Number [3] - [R]", MBRegType.Holding),              /*tagOffset = 51*/
                    new ModbusTag(40250, "Board Assembly Number [4] - [R]", MBRegType.Holding),              /*tagOffset = 52*/
                    new ModbusTag(40251, "Board Assembly Number [5] - [R]", MBRegType.Holding),              /*tagOffset = 53*/
                    new ModbusTag(40252, "Board Assembly Number [6] - [R]", MBRegType.Holding),              /*tagOffset = 54*/
                    new ModbusTag(40253, "Board Assembly Number [7] - [R]", MBRegType.Holding),              /*tagOffset = 55*/
                                                                                                       
                    new ModbusTag(40254, "Board PCB Number [0] - [R]", MBRegType.Holding),                   /*tagOffset = 56*/
                    new ModbusTag(40255, "Board PCB Number [1] - [R]", MBRegType.Holding),                   /*tagOffset = 57*/
                    new ModbusTag(40256, "Board PCB Number [2] - [R]", MBRegType.Holding),                   /*tagOffset = 58*/
                    new ModbusTag(40257, "Board PCB Number [3] - [R]", MBRegType.Holding),                   /*tagOffset = 59*/
                    new ModbusTag(40258, "Board PCB Number [4] - [R]", MBRegType.Holding),                   /*tagOffset = 60*/
                    new ModbusTag(40259, "Board PCB Number [5] - [R]", MBRegType.Holding),                   /*tagOffset = 61*/
                    new ModbusTag(40260, "Board PCB Number [6] - [R]", MBRegType.Holding),                   /*tagOffset = 62*/
                    new ModbusTag(40261, "Board PCB Number [7] - [R]", MBRegType.Holding),                   /*tagOffset = 63*/
                                                                                                       
                    new ModbusTag(40022, "Firmware Rev [FPGA, uC] - [L]", MBRegType.Holding),                /*tagOffset = 64*/
                    new ModbusTag(40023, "Micro Cause of Last Processor Reset [L]", MBRegType.Holding),      /*tagOffset = 65*/
                    new ModbusTag(40027, "Firmware Rev [FPGA, uC] - [R]", MBRegType.Holding),                /*tagOffset = 66*/
                    new ModbusTag(40028, "Micro Cause of Last Processor Reset [R]", MBRegType.Holding),      /*tagOffset = 67*/                   
                    new ModbusTag(40392, "FPGA Firmware Rev - [L]", MBRegType.Holding),                     /*tagOffset = 68*/
                    new ModbusTag(40776, "FPGA Firmware Rev - [R]", MBRegType.Holding),                     /*tagOffset = 69*/
                }), 
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.BoardInfo.#ctor">
            <summary>
            Constructs a new BoardInfo using a default name of 'Board Info'.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.SerialNumberL">
            <summary>
             Gets the board serial number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.DateCodeL">
            <summary>
             Gets the board date code.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.AssemblyNumberL">
            <summary>
             Gets the board assembly number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.PcbNumberL">
            <summary>
             Gets the board PCB number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.SerialNumberR">
            <summary>
             Gets the board serial number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.DateCodeR">
            <summary>
             Gets the board date code.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.AssemblyNumberR">
            <summary>
             Gets the board assembly number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.PcbNumberR">
            <summary>
             Gets the board PCB number.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.FirmwareRevision">
            <summary>
            Gets the microcontroller firmware revision number.
            Info found in the LOWER 8 bits of the FirmwareRevision modbus register.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.FpgaRevision">
            <summary>
            Gets the Local FPGA revision number.        
            Info found in the LOWER 8 bits of the FPGA Firmware Rev modbus register.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.CauseOfLastMicroprocessorReset">
            <summary>
             Gets the cause of the last microprocessor reset.
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.FirmwareRevisionR">
            <summary>
            Gets the microcontroller firmware revision number.
            Info found in the LOWER 8 bits of the FirmwareRevision modbus register.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.FpgaRevisionR">
            <summary>
            Gets the Remote FPGA revision number.        
            Info found in the LOWER 8 bits of the FPGA Firmware Rev modbus register.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.BoardInfo.CauseOfLastMicroprocessorResetR">
            <summary>
             Gets the cause of the last microprocessor reset.
             </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.CardStatus">
            <summary>
            Decodes formatted Card Status diagnostic data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "Card Status Registers",
                new List<ITag>() {
                    new ModbusTag(40001, "Card Status Local", MBRegType.Holding),
                    new ModbusTag(40002, "Card Status Remote", MBRegType.Holding),
            }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.CardStatus.#ctor">
            <summary>
            Constructs a new CardStatus using a default name of 'Card Status'.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanMasterSetL">
            <summary>
            Gets the Master Set status of the card.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanBaudSetL">
            <summary>
            Gets the CAN bus baud rate set.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanErrorL">
            <summary>
            Gets the CAN bus error count.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanTxCountL">
            <summary>
            Gets the CAN bus TX messages count.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanRxCountL">
            <summary>
            Gets the CAN bus TX messages count.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanMasterSetR">
            <summary>
            Gets the Master Set status of the card.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanBaudSetR">
            <summary>
            Gets the CAN bus baud rate set.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanErrorR">
            <summary>
            Gets the CAN bus error count.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanTxCountR">
            <summary>
            Gets the CAN bus TX messages count.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.CardStatus.CanRxCountR">
            <summary>
            Gets the CAN bus TX messages count.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.SwitchInfo">
            <summary>
            Decodes formatted Switch diagnostic data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "Ethernet Switch Registers",
                    new List<ITag>() {
                        new ModbusTag(40175, "Ethernet Switch Control Register", MBRegType.Holding),
                        new ModbusTag(40176, "Ethernet Switch Control Register Status", MBRegType.Holding),
                        new ModbusTag(40177, "Ethernet Switch A Write Data", MBRegType.Holding),
                        new ModbusTag(40178, "Ethernet Switch A Trigger Write", MBRegType.Holding),
                        new ModbusTag(40179, "Ethernet Switch B Write Address", MBRegType.Holding),
                        new ModbusTag(40180, "Ethernet Switch B Write Data", MBRegType.Holding),
                        new ModbusTag(40181, "Ethernet Switch B Trigger Write", MBRegType.Holding),
                        new ModbusTag(40182, "Ethernet Switch Control Status", MBRegType.Holding),
                        }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.SwitchInfo.#ctor">
            <summary>
            Constructs a new SwitchInfo using a default name of 'Switch Info'.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.SwAReadMsgs">
            <summary>
            Gets the text to be displayed on the UI when
            READING the current configuration of switch A
            </summary>        
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.SwBReadMsgs">
            <summary>
            Gets the text to be displayed on the UI when
            READING the current configuration of switch B
            </summary>        
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.SwAWriteMsgs">
            <summary>
            Gets the text to be displayed on the UI when
            WRITING the current configuration of switch A
            </summary>        
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.SwBWriteMsgs">
            <summary>
            Gets the text to be displayed on the UI when
            WRITING the current configuration of switch B
            </summary>        
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu1Status">
            <summary>
            Gets whether an ethernet link is forced or not
            1 = Enet link is forced
            0 = Enet link is not force ('auto')
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu2Status">
            <summary>
            Gets whether an ethernet link is forced or not
            1 = Enet link is forced
            0 = Enet link is not force ('auto')
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu3Status">
            <summary>
            Gets whether an ethernet link is forced or not
            1 = Enet link is forced
            0 = Enet link is not force ('auto')
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu4Status">
            <summary>
            Gets whether an ethernet link is forced or not
            1 = Enet link is forced
            0 = Enet link is not force ('auto')
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu5Status">
            <summary>
            Gets whether an ethernet link is forced or not
            1 = Enet link is forced
            0 = Enet link is not force ('auto')
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu1Force">
            <summary>
            Gets whether an ethernet link (Cu-1) is forced to 10Mbps or 100Mbps
            linkSpeedForceTo10Mbps = Enet link is forced to 10 Mbps
            linkSpeedForceTo100Mbps = Enet link is forced to 100 Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu2Force">
            <summary>
            Gets whether an ethernet link (Cu-2) is forced to 10Mbps or 100Mbps
            linkSpeedForceTo10Mbps = Enet link is forced to 10 Mbps
            linkSpeedForceTo100Mbps = Enet link is forced to 100 Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu3Force">
            <summary>
            Gets whether an ethernet link (Cu-3) is forced to 10Mbps or 100Mbps
            linkSpeedForceTo10Mbps = Enet link is forced to 10 Mbps
            linkSpeedForceTo100Mbps = Enet link is forced to 100 Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu4Force">
            <summary>
            Gets whether an ethernet link (Cu-4) is forced to 10Mbps, 100Mbps or 1000Mbps
            linkSpeedForceTo10Mbps = Enet link is forced to 10 Mbps
            linkSpeedForceTo100Mbps = Enet link is forced to 100 Mbps
            linkSpeedForceTo1000Mbps = Enet link is forced to 1000 Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkCu5Force">
            <summary>
            Gets whether an ethernet link (Cu-5) is forced to 10Mbps or 100Mbps
            linkSpeedForceTo10Mbps = Enet link is forced to 10 Mbps
            linkSpeedForceTo100Mbps = Enet link is forced to 100 Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce10MbitCu1_Opacity">
            <summary>
            Gets the opacity level for a Cu1 - 10 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu1 is 'Force-Enable' and the ethernet link is forced to 10Mbps
            opacityDefault = Ethernet link for Cu1 is not 'Force-Enabled' or Enet link is not forced to 10Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce100MbitCu1_Opacity">
            <summary>
            Gets the opacity level for a Cu1 - 100 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu1 is 'Force-Enable' and the ethernet link is forced to 100Mbps
            opacityDefault = Ethernet link for Cu1 is not 'Force-Enabled' or Enet link is not forced to 100Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedRemoveForcesCu1_Opacity">
            <summary>
            Gets the opacity level for a Cu1 - Auto-Negotiation button.
            opacityValue1 = An Ethernet link for copper port Cu1 is 'Force-Disable' (Auto)
            opacityDefault = Ethernet link for Cu1 is not 'Force-Disable' (Auto)
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce10MbitCu2_Opacity">
            <summary>
            Gets the opacity level for a Cu2 - 10 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu2 is 'Force-Enable' and the ethernet link is forced to 10Mbps
            opacityDefault = Ethernet link for Cu2 is not 'Force-Enabled' or Enet link is not forced to 10Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce100MbitCu2_Opacity">
            <summary>
            Gets the opacity level for a Cu2 - 100 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu2 is 'Force-Enable' and the ethernet link is forced to 100Mbps
            opacityDefault = Ethernet link for Cu2 is not 'Force-Enabled' or Enet link is not forced to 100Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedRemoveForcesCu2_Opacity">
            <summary>
            Gets the opacity level for a Cu2 - Auto-Negotiation button.
            opacityValue1 = An Ethernet link for copper port Cu2 is 'Force-Disable' (Auto)
            opacityDefault = Ethernet link for Cu2 is not 'Force-Disable' (Auto)
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce10MbitCu3_Opacity">
            <summary>
            Gets the opacity level for a Cu3 - 10 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu3 is 'Force-Enable' and the ethernet link is forced to 10Mbps
            opacityDefault = Ethernet link for Cu3 is not 'Force-Enabled' or Enet link is not forced to 10Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce100MbitCu3_Opacity">
            <summary>
            Gets the opacity level for a Cu3 - 100 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu3 is 'Force-Enable' and the ethernet link is forced to 100Mbps
            opacityDefault = Ethernet link for Cu3 is not 'Force-Enabled' or Enet link is not forced to 100Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedRemoveForcesCu3_Opacity">
            <summary>
            Gets the opacity level for a Cu3 - Auto-Negotiation button.
            opacityValue1 = An Ethernet link for copper port Cu3 is 'Force-Disable' (Auto)
            opacityDefault = Ethernet link for Cu3 is not 'Force-Disable' (Auto)
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce10MbitCu4_Opacity">
            <summary>
            Gets the opacity level for a Cu4 - 10 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu4 is 'Force-Enable' and the ethernet link is forced to 10Mbps
            opacityDefault = Ethernet link for Cu4 is not 'Force-Enabled' or Enet link is not forced to 10Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce100MbitCu4_Opacity">
            <summary>
            Gets the opacity level for a Cu4 - 100 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu4 is 'Force-Enable' and the ethernet link is forced to 100Mbps
            opacityDefault = Ethernet link for Cu4 is not 'Force-Enabled' or Enet link is not forced to 100Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce1000MbitCu4_Opacity">
            <summary>
            Gets the opacity level for a Cu4 - 1000 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu4 is 'Force-Enable' and the ethernet link is forced to 1000Mbps
            opacityDefault = Ethernet link for Cu4 is not 'Force-Enabled' or Enet link is not forced to 1000Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedRemoveForcesCu4_Opacity">
            <summary>
            Gets the opacity level for a Cu4 - Auto-Negotiation button.
            opacityValue1 = An Ethernet link for copper port Cu4 is 'Force-Disable' (Auto)
            opacityDefault = Ethernet link for Cu4 is not 'Force-Disable' (Auto)
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce10MbitCu5_Opacity">
            <summary>
            Gets the opacity level for a Cu5 - 10 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu5 is 'Force-Enable' and the ethernet link is forced to 10Mbps
            opacityDefault = Ethernet link for Cu5 is not 'Force-Enabled' or Enet link is not forced to 10Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedForce100MbitCu5_Opacity">
            <summary>
            Gets the opacity level for a Cu5 - 100 Mbps button.
            opacityValue1 = An Ethernet link for copper port Cu5 is 'Force-Enable' and the ethernet link is forced to 100Mbps
            opacityDefault = Ethernet link for Cu5 is not 'Force-Enabled' or Enet link is not forced to 100Mbps
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SwitchInfo.LinkSpeedRemoveForcesCu5_Opacity">
            <summary>
            Gets the opacity level for a Cu5 - Auto-Negotiation button.
            opacityValue1 = An Ethernet link for copper port Cu5 is 'Force-Disable' (Auto)
            opacityDefault = Ethernet link for Cu5 is not 'Force-Disable' (Auto)
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.FirmwareStatus">
            <summary>
            Decodes formatted Firmware Status diagnostic data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
            "Firmware Status Registers",
                new List<ITag>() {
                new ModbusTag(40518, "FW Update File Size (Upper 8-bits)", MBRegType.Holding),
                new ModbusTag(40519, "FW Update File Size (Middle 8-bits)", MBRegType.Holding),
                new ModbusTag(40520, "FW Update File Size (Lower 8-bits)", MBRegType.Holding),
                new ModbusTag(40521, "FW Update Ready to Load or Done", MBRegType.Holding),
                new ModbusTag(40522, "Page Ready/Done", MBRegType.Holding),
                }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.FirmwareStatus.#ctor">
            <summary>
            Constructs a new FirmwareStatus using a default name of 'Firmware Status'.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.FirmwareStatus.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.FirmwareStatus.FWUpdateReadyToLoadOrDone">
            <summary>
            Gets the status of the register 40521 (FW Update Ready to Load or Done)
            1 = New update firmware is ready to be loaded to flash in uC.
            0 = The uC has finished loading the new code in flash.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.FirmwareStatus.FWUpdatePageWriteStatus">
            <summary>
            Gets the status of the register 40522 (Page Ready/Done)
            1 = Ready
            0 = Done
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.FirmwareStatus.FWUpdatePageReadStatus">
            <summary>
            Gets the status of the register 40522 (Page Read Ready/Done)
            1 = Ready
            0 = Done
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.SfpStatus">
            <summary>
            Decodes formatted Link Status diagnostic data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "SFP Misc Registers",
                new List<ITag>() {
                    new ModbusTag(40001, "SFP Mask",    MBRegType.Holding),
                    new ModbusTag(40002, "SFP Control", MBRegType.Holding), 
            }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.SfpStatus.#ctor">
            <summary>
            Constructs a new LinkStatus using a default name of 'Link Status'.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SfpStatus.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SfpStatus.Sfp1Disabled">
            <summary>
            Gets whether SFP1 is installed.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.SfpStatus.Sfp2Disabled">
            <summary>
            Gets whether SFP1 is installed.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.EthernetLinkSpeed">
            <summary>
            Enumerates ethernet link speeds.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.ResetCause">
            <summary>
            Enumerates the possible causes of uC processor resets.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.EthernetCopperPort">
            <summary>
            Encapsulates the status of an ethernet copper port.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.EthernetCopperPort.#ctor(System.String)">
            <summary>
            Constructs a new EthernetCopperPort using the specified port name.
            </summary>
            <param name="name">The name of the port.</param>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.EthernetCopperPort.OnPropertyChanged(System.String)">
            <summary>
            Raises <see cref="E:Focal.Model906.Diagnostics.Models.EthernetCopperPort.PropertyChanged"/> for the specified object property. 
            </summary>        
            <param name="propertyName">The name of the property that has
            changed.</param>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.EthernetCopperPort.Name">
            <summary>
            Gets or sets the name of this port.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.EthernetCopperPort.LinkSpeed">
            <summary>
            Gets or Sets the link speed of the port.
            </summary>
        </member>
        <member name="T:Focal.Model906.Diagnostics.Models.LinkStatus">
            <summary>
            Decodes formatted Link Status diagnostic data from a list of ITags.
            </summary>
            <remarks>
            The order of the tags in the list of ITags must be as follows:
            <code>
            <![CDATA[
            new TagGroup(
                "Link Status Registers",
                new List<ITag>() {
                    new ModbusTag(40003, "Link Status 1", MBRegType.Holding),
                    new ModbusTag(40004, "Link Status 2", MBRegType.Holding),
                    
                    new ModbusTag(40414, "Tx Packets Byte0 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 2 */
                    new ModbusTag(40415, "Tx Packets Byte1 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 3 */
                    new ModbusTag(40416, "Tx Packets Byte2 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 4 */
                    new ModbusTag(40417, "Tx Packets Byte3 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 5 */
                    
                    new ModbusTag(40418, "Rx Packets Byte0 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 6 */
                    new ModbusTag(40419, "Rx Packets Byte1 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 7 */
                    new ModbusTag(40420, "Rx Packets Byte2 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 8 */
                    new ModbusTag(40421, "Rx Packets Byte3 CH-1 - [L]", MBRegType.Holding),   /* tagOffset = 9 */
                                                                                   
                    new ModbusTag(40422, "Tx Packets Byte0 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 10 */
                    new ModbusTag(40423, "Tx Packets Byte1 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 11 */
                    new ModbusTag(40424, "Tx Packets Byte2 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 12 */
                    new ModbusTag(40425, "Tx Packets Byte3 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 13 */
                                                                                        
                    new ModbusTag(40426, "Rx Packets Byte0 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 14 */
                    new ModbusTag(40427, "Rx Packets Byte1 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 15 */
                    new ModbusTag(40428, "Rx Packets Byte2 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 16 */
                    new ModbusTag(40429, "Rx Packets Byte3 CH-2 - [L]", MBRegType.Holding),   /* tagOffset = 17 */
                    
                    new ModbusTag(40798, "Tx Packets Byte0 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 18 */
                    new ModbusTag(40799, "Tx Packets Byte1 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 19 */
                    new ModbusTag(40800, "Tx Packets Byte2 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 20 */
                    new ModbusTag(40801, "Tx Packets Byte3 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 21 */
                                    
                    new ModbusTag(40802, "Rx Packets Byte0 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 22 */
                    new ModbusTag(40803, "Rx Packets Byte1 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 23 */
                    new ModbusTag(40804, "Rx Packets Byte2 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 24 */
                    new ModbusTag(40805, "Rx Packets Byte3 CH-1 - [R]", MBRegType.Holding),   /* tagOffset = 25 */
                                                             
                    new ModbusTag(40806, "Tx Packets Byte0 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 26 */
                    new ModbusTag(40807, "Tx Packets Byte1 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 27 */
                    new ModbusTag(40808, "Tx Packets Byte2 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 28 */
                    new ModbusTag(40809, "Tx Packets Byte3 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 29 */
                                          
                    new ModbusTag(40810, "Rx Packets Byte0 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 30 */
                    new ModbusTag(40811, "Rx Packets Byte1 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 31 */
                    new ModbusTag(40812, "Rx Packets Byte2 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 32 */
                    new ModbusTag(40813, "Rx Packets Byte3 CH-2 - [R]", MBRegType.Holding),   /* tagOffset = 33 */
                    
            }),
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.LinkStatus.#ctor">
            <summary>
            Constructs a new LinkStatus using a default name of 'Link Status'.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.LinkStatus.ErrorRateTxRx(System.Single,System.Single)">
            <summary>
            Calculates a % error rate of transmit and receive packets
            </summary>
            <param name="txP">The number of transmit packets.</param>
            <param name="rxP">The number of receive packets</param>
            <returns></returns>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.Description">
            <summary>
            The description.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.SystemStatusL">
            <summary>
            Gets the local system card status.
            1 = system good, 2 = system fault
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.SystemStatusR">
            <summary>
            Gets the remote system card status.
            1 = system good, 2 = system fault
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.CanActivityL">
            <summary>
            Gets the local CAN Activity status of the card.
            1 = Activity, 0 = No Activity
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.CanActivityR">
            <summary>
            Gets the remote CAN Activity status of the card.
            1 = Activity, 0 = No Activity
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSfp1">
            <summary>
            Gets whether an ethernet link is established for Sfp1.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSfp2">
            <summary>
            Gets whether an ethernet link is established for Sfp2.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkCh1L">
            <summary>
            Gets whether an ethernet link is established for copper port Channel 1 (Local).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkCh2L">
            <summary>
            Gets whether an ethernet link is established for copper port Channel 2 (Local).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkGbeL">
            <summary>
            Gets whether an ethernet link is established for copper port GBE (Local).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkDiagL">
            <summary>
            Gets whether an ethernet link is established for copper port DIAG (Local).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkCh1R">
            <summary>
            Gets whether an ethernet link is established for copper port Channel 1 (Remote).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkCh2R">
            <summary>
            Gets whether an ethernet link is established for copper port Channel 2 (Remote).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkGbeR">
            <summary>
            Gets whether an ethernet link is established for copper port GBE (Remote).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkDiagR">
            <summary>
            Gets whether an ethernet link is established for copper port DIAG (Remote).
            1 = link ok, 0 = no link
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.Sfp1Installed">
            <summary>
            Gets whether SFP1 is installed.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.Sfp2Installed">
            <summary>
            Gets whether SFP2 is installed.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LossOfSignalSfp1">
            <summary>
            Gets whether Sfp1 is in LOS.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LossOfSignalSfp2">
            <summary>
            Gets whether Sfp2 is in LOS.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedCh1L">
            <summary>
            Gets the ethernet link speed for established Cu Channel 1 (Local).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedCh2L">
            <summary>
            Gets the ethernet link speed for established Cu Channel 2 (Local).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedGbeL">
            <summary>
            Gets the ethernet link speed for established Cu GBE (Local).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedDiagL">
            <summary>
            Gets the ethernet link speed for established Cu DIAG (Local).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedCh1R">
            <summary>
            Gets the ethernet link speed for established Cu Channel 1 (Remote).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedCh2R">
            <summary>
            Gets the ethernet link speed for established Cu Channel 2 (Remote).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedGbeR">
            <summary>
            Gets the ethernet link speed for established Cu GBE (Remote).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.LinkSpeedDiagR">
            <summary>
            Gets the ethernet link speed for established Cu DIAG (Remote).
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.TxPacketsCh1L">
            <summary>
            Gets the number of Tx-Packets of the CH-1 port
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.RxPacketsCh1L">
            <summary>
            Gets the number of Rx-Packets of the CH-1 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.TxPacketsCh2L">
            <summary>
            Gets the number of Tx-Packets of the CH-2 port
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.RxPacketsCh2L">
            <summary>
            Gets the number of Rx-Packets of the CH-2 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.TxPacketsCh1R">
            <summary>
            Gets the number of Tx-Packets of the CH-1 port
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.RxPacketsCh1R">
            <summary>
            Gets the number of Rx-Packets of the CH-1 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.TxPacketsCh2R">
            <summary>
            Gets the number of Tx-Packets of the CH-2 port
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.RxPacketsCh2R">
            <summary>
            Gets the number of Rx-Packets of the CH-2 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.ErrorRateCh1L">
            <summary>
            Gets the percentage of packet loss for CH-1 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.ErrorRateCh2L">
            <summary>
            Gets the percentage of packet loss for CH-2 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.ErrorRateCh1R">
            <summary>
            Gets the percentage of packet loss for CH-1 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.LinkStatus.ErrorRateCh2R">
            <summary>
            Gets the percentage of packet loss for CH-2 port.
            </summary>
            <remarks>
            Only valid if data refresh is enabled.
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Focal.Model906.Diagnostics.Models.Sfp" -->
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.#ctor">
            <summary>
            Constructs a new SFP using a default name of 'SFP'.
            </summary>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.InitializeAnalogTagList">
            <summary>
            Initializes the list of analog tags.
            </summary>        
            <remarks>
            Typically this list is lazily-initialized when someone requests
            the 'alarm active' or 'warning active' property.
            </remarks>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.CalculateExternallylCalibratedSlope(System.Int32)">
            <summary>
            Calculates the slope for a calibration constant at the specified
            offset in the A2 data array using the formula specified in SFF-8472.        
            </summary>
            <remarks>
            Slope is calculated as follows:
            The most significant byte is the integer portion in the range 0 to +255. 
            The least significant byte represents the fractional portion in the
            range of 0.00391 (1/256) to 0.9961 (255/256). 
            </remarks>
            <param name="startIndex"></param>
            <returns></returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.CalculateExternallyCalibratedRxPower(System.UInt16)">
            <summary>
            Calculates RxPwr (dBm) from the supplied A/D counts using the equation specified in SFF-8472.
            </summary>
            <remarks>
            The equation to calculate an externally calibrated RxPwr is specified in SFF-8472 as:
            <![CDATA[
            RxPwr (uW) = (RxPwr4 * adCounts^4) + (RxPwr3 * adCounts^3) + (RxPwr2 * adCounts^2) + (RxPwr1 * adCounts) + RxPwr0
            ]]>
            The result is in units of 0.1uW.  
            This method converts the uW result to mW.
            </remarks>
            <param name="adCounts">The raw RxPwr A/D counts.</param>
            <returns>RxPwr in mW.</returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.ScaleAnalogValue(System.Double,System.Double,System.Double,System.Double,System.Int32)">
            <summary>
            Scales an a/d value from the sfp (internally calibrated).
            </summary>
            <param name="ADCounts">The A/D counts to scale.</param>
            <param name="scaleFactor"></param>
            <param name="slope"></param>
            <param name="offset"></param>
            <param name="numDecimals">The number of decimal points to round the result.</param>
            <returns></returns>
        </member>
        <member name="M:Focal.Model906.Diagnostics.Models.Sfp.ConvertTodBm(System.Double,System.Int32)">
            <summary>
            Converts mW to dBm.
            </summary>
            <param name="mW">The value to convert (milliwatts).</param>
            <param name="numDecimals">The number of decimal points to round the result.</param>
            <returns>The converted dBm value.</returns>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.Description">
            <summary>
            The description of the sfp.
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.VendorName">
            <summary>
             Gets SFP Vendor Name. Table A0, Bytes[20-35].
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.VendorPN">
            <summary>
             Gets SFP Vendor Part Number. Table A0h, Bytes[40-55].
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.Wavelength">
            <summary>
             Gets (nm) nominal laser wavelength. Table A0h, Bytes[60-61].
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.VendorSN">
            <summary>
             Gets SFP Vendor Serial Number. Table A0h, Bytes[68-83].
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.DateCode">
            <summary>
             Gets Vendor's manufacturing date code. Table 01h, Bytes[84-91].
             </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.InternallyCalibrated">
            <summary>
            Gets the flag indicating that the SFP reports calibrated diagnostic
            values as opposed to A/D counts. Byte[92:5].
            For 920-EDM:
            Bit 14, 1 = Diagnostic Monitoring Implemented
            Bit 13, 1 = Internally Calibrated
            Bit 12, 1 = Externally Calibrated
            Bit 7, 1  = Alarm/Warning Flags Implemented
            Bit 6, 1  = Soft Tx Disable Control Implemented
            There are no reserved Modbus register for externally calibrated values. Calibrated constants can be found in SFF-8472, table 3.16
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.CalibrationConstants">
            <summary>
            Gets the calibration constants for particular SFPs. This is a workaround for a particular 920-EDM demo only        
            Demo will be shipped on early dec 2014
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.Temperature">
            <summary>
            Gets the internally measured module temperature (°C). Bytes[96-97].
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.Voltage">
            <summary>
            Gets the internally measured tranceiver supply voltage (V). Bytes[98-99]".
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.TxBias">
            <summary>
            Gets the Tx Bias Current (mA). Bytes[100-101].
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.TxPwr">
            <summary>
            Gets the Tx Output Power (dBm). Bytes[102-103].
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.RxPwr">
            <summary>
            Gets Rx Input Power (dBm). Bytes[104-105].
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.AnalogAlarmActive">
            <summary>
            Gets the flag indicating whether one or more of the analog tags is 
            currently in alarm. 
            </summary>
        </member>
        <member name="P:Focal.Model906.Diagnostics.Models.Sfp.AnalogWarningActive">
            <summary>
            Gets the flag indicating whether one or more of the analog tags is 
            currently in warning. 
            </summary>
        </member>
    </members>
</doc>
