/// <summary>
        /// Initializes a new instance of the SetPmbusExtendedDeviceConfigRequest class.
        /// </summary>
        internal SetPmbusExtendedDeviceConfigRequest(byte deviceIndex, NodeManagerSensorBus sensorBus, byte smbusAddress,
                                                     byte muxAddress, byte muxChannel, bool useMuxConfig, bool disablePolling, bool reportHealth)
            : base(deviceIndex, extendedFormat)
        {
            // Sensor Bus
            this.sensorBus = (byte)sensorBus;

            // [7:1] � 7-bit SMBUS address.
            // [0] � Reserved. Write as 0b
            this.smbusAddress = (byte)(smbusAddress << 1);

            // MUX Address
            // [7:1] � 7-bit SMBUS address for SMBUS MUX or 0 for MGPIO controlled.
            // [0] � Reserved. Write as 0b
            this.muxAddress = (byte)(muxAddress << 1);

            // MUX channel selection
            this.muxChannel = muxChannel;

            if (useMuxConfig)
            {
                this.configureMux = 0x01;
            }

            // Device configuration
            // [0] � Disabled State
            //  0 � PMBUS device is enabled and may be polled for readings
            //  1 � PMBUS device is disabled and should not be poled for readings,
            //      but access to the device may be available using PMBUS Proxy
            if (disablePolling)
            {
                this.deviceConfig = 0x01;
            }

            // [1] � Device Mode:
            //  1 � the device is installed and lack of power readings should be
            //      reported to Management Console Node Manager Health Event
            //  0   (default) � the device is installed or may be attached in the future.
            if (reportHealth)
            {
                this.deviceConfig = (byte)(this.deviceConfig | 0x02);
            }
        }
        /// <summary>
        /// Initializes a new instance of the SetPmbusExtendedDeviceConfigRequest class.
        /// </summary>
        internal SetPmbusExtendedDeviceConfigRequest(byte deviceIndex, NodeManagerSensorBus sensorBus, byte smbusAddress,
            byte muxAddress, byte muxChannel, bool useMuxConfig, bool disablePolling, bool reportHealth)
            : base(deviceIndex, extendedFormat)
        {
            // Sensor Bus
            this.sensorBus = (byte)sensorBus;

            // [7:1] � 7-bit SMBUS address.
            // [0] � Reserved. Write as 0b
            this.smbusAddress = (byte)(smbusAddress << 1);

            // MUX Address
            // [7:1] � 7-bit SMBUS address for SMBUS MUX or 0 for MGPIO controlled.
            // [0] � Reserved. Write as 0b
            this.muxAddress = (byte)(muxAddress << 1);

            // MUX channel selection
            this.muxChannel = muxChannel;

            if (useMuxConfig)
                this.configureMux = 0x01;

            // Device configuration
            // [0] � Disabled State
            //  0 � PMBUS device is enabled and may be polled for readings
            //  1 � PMBUS device is disabled and should not be poled for readings,
            //      but access to the device may be available using PMBUS Proxy
            if (disablePolling)
                this.deviceConfig = 0x01;

            // [1] � Device Mode:
            //  1 � the device is installed and lack of power readings should be
            //      reported to Management Console Node Manager Health Event
            //  0   (default) � the device is installed or may be attached in the future.
            if (reportHealth)
                this.deviceConfig = (byte)(this.deviceConfig | 0x02);
        }
        /// <summary>
        /// Initializes a new instance of the SendRawPmbusStandardRequest class.
        /// </summary>
        internal SendRawPmbusExtendedRequest(bool enablePec, NodeManagerSmbusTransactionType transactionType, NodeManagerSensorBus sensorBus,
                                             byte psuAddress, byte muxPsuAddress, byte muxChannel, bool configureMux, byte writeLenght, byte readLenght, byte[] pmbusCmd)
            : base(enablePec, transactionType, psuAddress, writeLenght, readLenght, pmbusCmd, extendedFormat)
        {
            // Sensor Bus
            this.sensorBus = (byte)sensorBus;

            // 7-bit SMBUS address for SMBUS MUX or 0 for MGPIO controlled.
            base.muxPsuAddress = (byte)(muxPsuAddress << 1);

            // MUX channel selection
            this.muxChannel = muxChannel;

            if (configureMux)
            {
                this.configureMux = 0x01;
            }
        }
        /// <summary>
        /// Initializes a new instance of the SendRawPmbusStandardRequest class.
        /// </summary>
        internal SendRawPmbusExtendedRequest(bool enablePec, NodeManagerSmbusTransactionType transactionType, NodeManagerSensorBus sensorBus, 
            byte psuAddress, byte muxPsuAddress, byte muxChannel, bool configureMux, byte writeLenght, byte readLenght, byte[] pmbusCmd)
            : base(enablePec, transactionType, psuAddress, writeLenght, readLenght, pmbusCmd, extendedFormat)
        {
            // Sensor Bus
            this.sensorBus = (byte)sensorBus;

            // 7-bit SMBUS address for SMBUS MUX or 0 for MGPIO controlled.
            base.muxPsuAddress = (byte)(muxPsuAddress << 1);

            // MUX channel selection
            this.muxChannel = muxChannel;

            if (configureMux)
                this.configureMux = 0x01;
        }