public int getNumberMaxChannel()
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RDBC_GetNumberMaxChannel, 0, 0, 0);

            return(response == null ? 0 : response.responseWord1);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="period"></param>
        /// <param name="Vant"></param>
        public void GetCarrierFrequency(out UInt16 period, out UInt16 Vant)
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_GetCarrierFrequency,
                typeof(PbRspRfidBackDoor), 0, 0, 0);

            period = response.responseWord1;
            Vant   = (UInt16)response.responseLong1;
        }
        /// <summary>
        /// Method to retreive 12v value
        /// </summary>
        /// <returns>int of the batterie value from ADC</returns>
        public int getSupply12V()
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_GetSupply12V, 0, 0, 0);

            if (response == null)
            {
                return(0);
            }
            return(response.responseWord1);
        }
        /// <summary>
        /// Method to request Threshold value
        /// </summary>
        /// <returns>value of the threshold - must be between 5 and 200</returns>
        public byte getCorrelationThreshold()
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_GetCorrelationThreshold, 0, 0, 0);

            if (response == null)
            {
                return(0);
            }
            return(response.responseByte1);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public uint getSerialNumber()
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_GetDeviceSerialNumber,
                typeof(PbRspRfidBackDoor), 0, 0, 0);

            if (response != null)
            {
                return(response.responseLong1);
            }
            return(0);
        }
        /// <summary>
        /// Function to send basic order
        /// </summary>
        /// <param name="theCmd">command to lanch</param>
        /// <param name="Rcor">N/A</param>
        /// <returns>true id command succeed</returns>
        public byte sendCommand(byte theCmd, out ushort Rcor)
        {
            Rcor = 0;
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_SendLowLevelOrder, theCmd, 0, 0);

            if (response == null)
            {
                return(0);
            }
            Rcor = response.responseWord1;
            return(response.responseByte1);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="bEnableHalfBridge"></param>
        /// <param name="fullBridgeDutyCycle"></param>
        /// <param name="halfBridgeDutyCycle"></param>
        public void getBridgeState(out bool bEnableHalfBridge, out uint fullBridgeDutyCycle, out uint halfBridgeDutyCycle)
        {
            PbRspRfidBackDoor response = (PbRspRfidBackDoor)backDoor(
                RfidCommandType.RBDC_GetBridgeState,
                typeof(PbRspRfidBackDoor), 0, 0, 0);

            bEnableHalfBridge   = ((response.responseByte1 & 1) != 0);
            fullBridgeDutyCycle = response.responseWord1;
            halfBridgeDutyCycle = response.responseLong1;
            if (fullBridgeDutyCycle == 0) // Previous versions of firmware returned only the half-bridge duty cycle.
            {
                fullBridgeDutyCycle = DeviceRfidBoard.MAX_DutyCycle;
            }
        }