public void WriteXml(XmlWriter writer)
 {
     writer.WriteAttributeString(inputRateAttributeName, InputRate.ToString(CultureInfo.InvariantCulture));
     writer.WriteAttributeString(outputRateAttributeName, OutputRate.ToString(CultureInfo.InvariantCulture));
     writer.WriteAttributeString(capacityAttributeName, Capacity.ToString(CultureInfo.InvariantCulture));
     writer.WriteAttributeString(accumulatedPowerAttributeName, AccumulatedPower.ToString(CultureInfo.InvariantCulture));
 }
Exemple #2
0
        /// <summary>
        /// Initialize a new HMC5883L device connected through I2C
        /// </summary>
        /// <param name="sensor">I2C Device, like UnixI2cDevice or Windows10I2cDevice</param>
        /// <param name="gain">Gain Setting</param>
        /// <param name="measuringMode">The Mode of Measuring</param>
        /// <param name="outputRate">Typical Data Output Rate (Hz)</param>
        /// <param name="samplesAmount">Number of samples averaged per measurement output</param>
        /// <param name="measurementConfig">Measurement configuration</param>
        public Hmc5883l(
            I2cDevice sensor,
            Gain gain = Gain.Gain1090,
            MeasuringMode measuringMode = MeasuringMode.Continuous,
            OutputRate outputRate       = OutputRate.Rate15,
            SamplesAmount samplesAmount = SamplesAmount.One,
            MeasurementConfiguration measurementConfig = MeasurementConfiguration.Normal)
        {
            _sensor            = sensor;
            _gain              = (byte)gain;
            _measuringMode     = (byte)measuringMode;
            _outputRate        = (byte)outputRate;
            _samplesAmount     = (byte)samplesAmount;
            _measurementConfig = (byte)measurementConfig;

            Initialize();
        }
Exemple #3
0
        /// <summary>
        /// Initialize a new HMC5883L device connected through I2C
        /// </summary>
        /// <param name="i2cDevice">The I2C device used for communication.</param>
        /// <param name="gain">Gain Setting</param>
        /// <param name="measuringMode">The Mode of Measuring</param>
        /// <param name="outputRate">Typical Data Output Rate (Hz)</param>
        /// <param name="samplesAmount">Number of samples averaged per measurement output</param>
        /// <param name="measurementConfig">Measurement configuration</param>
        public Hmc5883l(
            I2cDevice i2cDevice,
            Gain gain = Gain.Gain1090,
            MeasuringMode measuringMode = MeasuringMode.Continuous,
            OutputRate outputRate       = OutputRate.Rate15,
            SamplesAmount samplesAmount = SamplesAmount.One,
            MeasurementConfiguration measurementConfig = MeasurementConfiguration.Normal)
        {
            _i2cDevice         = i2cDevice ?? throw new ArgumentNullException(nameof(i2cDevice));
            _gain              = (byte)gain;
            _measuringMode     = (byte)measuringMode;
            _outputRate        = (byte)outputRate;
            _samplesAmount     = (byte)samplesAmount;
            _measurementConfig = (byte)measurementConfig;

            Initialize();
        }
Exemple #4
0
        public Qmc5883(II2cBus i2cBus, byte address = 0x0D,
                       Gain gain = Gain.Gain1090,
                       MeasuringMode measuringMode = MeasuringMode.Continuous,
                       OutputRate outputRate       = OutputRate.Rate15,
                       SamplesAmount samplesAmount = SamplesAmount.One,
                       MeasurementConfiguration measurementConfig = MeasurementConfiguration.Normal)
        {
            i2cPeripheral = new I2cPeripheral(i2cBus, address);

            base.gain              = (byte)gain;
            base.measuringMode     = (byte)measuringMode;
            base.outputRate        = (byte)outputRate;
            sampleAmount           = (byte)samplesAmount;
            base.measurementConfig = (byte)measurementConfig;

            Initialize();
        }
Exemple #5
0
        public Qmc5883l(
            I2cDevice i2CDevice,
            Range range                     = Range.Range2,
            OutputRate outputRate           = OutputRate.Rate10,
            Oversampling oversampling       = Oversampling.Oversampling512,
            InterruptPin interruptPin       = InterruptPin.Disabled,
            PointerRollOver pointerRollOver = PointerRollOver.Disabled
            )
        {
            _i2cDevice       = i2CDevice;
            _range           = (byte)range;
            _outputRate      = (byte)outputRate;
            _oversampling    = (byte)oversampling;
            _interruptPin    = (byte)interruptPin;
            _pointerRollOver = (byte)pointerRollOver;

            Initialize();
        }
Exemple #6
0
        public Qmc5883(string i2cBus, byte address = 0x0D,
                       Gain gain = Gain.Gain1090,
                       MeasuringMode measuringMode = MeasuringMode.Continuous,
                       OutputRate outputRate       = OutputRate.Rate15,
                       SamplesAmount samplesAmount = SamplesAmount.One,
                       MeasurementConfiguration measurementConfig = MeasurementConfiguration.Normal)
        {
            var settings   = new I2cConnectionSettings(address, 100_000); //The slave's address and the bus speed.
            var controller = I2cController.FromName(i2cBus);

            i2cPeripheral = controller.GetDevice(settings);
            //i2cPeripheral = new I2cPeripheral(i2cBus, address);

            base.gain              = (byte)gain;
            base.measuringMode     = (byte)measuringMode;
            base.outputRate        = (byte)outputRate;
            sampleAmount           = (byte)samplesAmount;
            base.measurementConfig = (byte)measurementConfig;

            Initialize();
        }
Exemple #7
0
        /// <summary>
        /// Initialize a new HMC5883L device connected through I2C
        /// </summary>
        /// <param name="sensor">I2C Device, like UnixI2cDevice or Windows10I2cDevice</param>
        /// <param name="gain">Gain Setting</param>
        /// <param name="measuringMode">The Mode of Measuring</param>
        /// <param name="outputRate">Typical Data Output Rate (Hz)</param>
        public Hmc5883l(I2cDevice sensor, Gain gain = Gain.Gain1090, MeasuringMode measuringMode = MeasuringMode.Continuous, OutputRate outputRate = OutputRate.Rate15)
        {
            _sensor        = sensor;
            _gain          = (byte)gain;
            _measuringMode = (byte)measuringMode;
            _outputRate    = (byte)outputRate;

            Initialize();
        }