Esempio n. 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="address">Enumeration type of AddressSetting</param>
        /// <param name="mode">Enumeration type of MeasurementMode</param>
        /// <param name="transmittance">Enumeration type of LightTransmittance</param>
        public BH1750FVI(AddressSetting address, MeasurementMode mode, LightTransmittance transmittance)
        {
            sensorAddress = (byte)address;
            sensorMode    = (byte)mode;

            if (mode == MeasurementMode.ContinuouslyHighResolutionMode2 || mode == MeasurementMode.OneTimeHighResolutionMode2)
            {
                sensorResolution = 2;
            }

            switch (transmittance)
            {
            case LightTransmittance.Fifty:
            {
                registerHighVal     = 0x44;
                registerLowVal      = 0x6A;
                sensorTransmittance = 0.5;
            }
            break;

            case LightTransmittance.Eighty:
            {
                registerHighVal     = 0x42;
                registerLowVal      = 0x76;
                sensorTransmittance = 0.8;
            }
            break;

            case LightTransmittance.Hundred:
            {
                registerHighVal = 0x42;
                registerLowVal  = 0x65;
            }
            break;

            case LightTransmittance.Hundred_Twenty:
            {
                registerHighVal     = 0x41;
                registerLowVal      = 0x7A;
                sensorTransmittance = 1.2;
            }
            break;

            case LightTransmittance.Hundred_Fifty:
            {
                registerHighVal     = 0x41;
                registerLowVal      = 0x7E;
                sensorTransmittance = 1.5;
            }
            break;

            case LightTransmittance.Two_Hundred:
            {
                registerHighVal     = 0x41;
                registerLowVal      = 0x73;
                sensorTransmittance = 2;
            }
            break;
            }
        }
Esempio n. 2
0
        public Bh1750(string i2CControllerName,
                      PinConnection pinConnection     = PinConnection.PIN_LOW,
                      MeasurementMode measurementMode = MeasurementMode.ContinuouslyHighResolutionMode2)
        {
            _pinConnection     = pinConnection;
            _i2CControllerName = i2CControllerName;
            try
            {
                var settings = new I2cConnectionSettings((byte)_pinConnection);
                settings.BusSpeed    = I2cBusSpeed.StandardMode;
                settings.SharingMode = I2cSharingMode.Shared;
                string aqs = I2cDevice.GetDeviceSelector(_i2CControllerName);
                _device = I2cDevice.FromId(_i2CControllerName, settings);
                if (_device == null)
                {
                    Logger.Log("Device not found", Logger.LogLevel.Warning);
                }

                SetMode(measurementMode);
            }
            catch (Exception e)
            {
                Logger.Log("Exception: " + e.Message + "\n" + e.StackTrace, Logger.LogLevel.Error);
                throw;
            }
        }
Esempio n. 3
0
 public void Reset()
 {
     WriteRegister(Register.RSV, 0x01);
     _measurementMode = MeasurementMode.PowerDown;
     _outputBitMode   = OutputBitMode.Output14bit;
     _selfTest        = false;
     // When powering the AK893, doc says 50 ms needed
     Thread.Sleep(50);
 }
Esempio n. 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="address">Enumeration type of AddressSetting</param>
        /// <param name="mode">Enumeration type of MeasurementMode</param>
        public BH1750FVI(AddressSetting address, MeasurementMode mode)
        {
            sensorAddress = (byte)address;
            sensorMode    = (byte)mode;

            if (mode == MeasurementMode.ContinuouslyHighResolutionMode2 || mode == MeasurementMode.OneTimeHighResolutionMode2)
            {
                sensorResolution = 2;
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Constructor specfying non-default configuration.
 /// </summary>
 /// <param name="enableHumidityMeasurement"></param>
 /// <param name="enableTemperatureMeasurement"></param>
 /// <param name="humidityMeasurementMode"></param>
 /// <param name="measurementMode"></param>
 /// <param name="lowPower"></param>
 /// <example>
 /// <code language = "C#">
 /// TempHum6Click.SensorConfiguration configuration = new TempHum6Click.SensorConfiguration();
 ///
 /// configuration.EnableHumidityMeasurement = true;
 /// configuration.EnableTemperatureMeasurement = true;
 /// configuration.HumidityMeasurementMode = TempHum6Click.MeasurementMode.OneShot;
 /// configuration.TemperatureMeasurementMode = TempHum6Click.MeasurementMode.OneShot;
 /// configuration.LowPower = true;
 ///
 /// _sensor.ConfigureSensor(configuration);
 /// </code>
 /// </example>
 public SensorConfiguration(Boolean enableHumidityMeasurement,
                            Boolean enableTemperatureMeasurement,
                            MeasurementMode humidityMeasurementMode,
                            MeasurementMode measurementMode,
                            Boolean lowPower)
 {
     EnableHumidityMeasurement    = enableHumidityMeasurement;
     EnableTemperatureMeasurement = enableTemperatureMeasurement;
     HumidityMeasurementMode      = humidityMeasurementMode;
     TemperatureMeasurementMode   = measurementMode;
     LowPower = lowPower;
 }
 public override void Read(PackFileDeserializer des, BinaryReaderEx br)
 {
     base.Read(des, br);
     m_isEnabled              = br.ReadByte();
     m_twistAxisInA           = br.ReadByte();
     m_refAxisInB             = br.ReadByte();
     m_angleMeasurementMode   = (MeasurementMode)br.ReadByte();
     m_memOffsetToAngleOffset = br.ReadByte();
     br.ReadByte();
     m_minAngle = br.ReadSingle();
     m_maxAngle = br.ReadSingle();
     m_angularLimitsTauFactor = br.ReadSingle();
     br.ReadUInt64();
     br.ReadUInt32();
 }
Esempio n. 7
0
        /// <summary>
        /// Constructor to use if AK8963 is behind another element and need a special I2C protocol like
        /// when used with the MPU9250
        /// </summary>
        /// <param name="i2cDevice">The I2C device</param>
        /// <param name="ak8963Interface">The specific interface to communicate with the AK8963</param>
        /// <param name="shouldDispose">True to dispose the I2C device when class is disposed</param>
        public Ak8963(I2cDevice i2cDevice, Ak8963I2cBase ak8963Interface, bool shouldDispose = true)
        {
            _i2cDevice       = i2cDevice ?? throw new ArgumentNullException(nameof(i2cDevice));
            _ak8963Interface = ak8963Interface;
            // Initialize the default modes
            _measurementMode = MeasurementMode.PowerDown;
            _outputBitMode   = OutputBitMode.Output14bit;
            _selfTest        = false;
            _shouldDispose   = shouldDispose;
            byte mode = (byte)((byte)_measurementMode | ((byte)_outputBitMode << 4));

            WriteRegister(Register.CNTL, mode);
            if (!IsVersionCorrect())
            {
                throw new IOException($"This device does not contain the correct signature 0x48 for a AK8963");
            }
        }
Esempio n. 8
0
        public HMC5883L(II2cBus i2CBus,
                        byte address = 0x1E,
                        SamplesToAverage samplesToAverage = SamplesToAverage.One,
                        DataOutputRate dataOutputRate     = DataOutputRate._15Hz,
                        MeasurementMode measurementMode   = MeasurementMode.Normal,

                        GainConfiguration gainConfiguration = GainConfiguration._1_30,

                        OperatingMode operatingMode = OperatingMode.SingleMeasurement
                        )
        {
            Mode = operatingMode;
            Gain = gainConfiguration;

            _device = new I2cPeripheral(i2CBus, address);

            // Config - Register A
            byte configRegisterAData = 0b0000_0000;

            configRegisterAData |= (byte)samplesToAverage;
            configRegisterAData |= (byte)dataOutputRate;
            configRegisterAData |= (byte)measurementMode;
            _device.WriteRegister(CRA, configRegisterAData);
            Console.WriteLine($"CRA: {Convert.ToString(configRegisterAData, 2).PadLeft(8, '0')}");

            // Config - Register A
            byte configRegisterBData = 0b0000_0000;

            configRegisterBData |= (byte)gainConfiguration;
            _device.WriteRegister(CRB, configRegisterBData);
            Console.WriteLine($"CRB: {Convert.ToString(configRegisterBData, 2).PadLeft(8, '0')}");

            // Select Mode
            byte modeRegisterData = 0b00000000;

            modeRegisterData |= (byte)operatingMode;
            _device.WriteRegister(MR, modeRegisterData);
            Console.WriteLine($"MR: {Convert.ToString(modeRegisterData, 2).PadLeft(8, '0')}");
        }
 /// <summary>
 /// Сгенерировать событие получения данных с мультиметра
 /// </summary>
 /// <param name="value">измеренное значение</param>
 /// <param name="delta">погрешность</param>
 /// <param name="mode">единицы измерения</param>
 protected virtual void OnDataReceived(double value, double delta, MeasurementMode mode)
 {
     var localHandler = DataReceived;
     if (localHandler != null)
     {
         localHandler(this, new DataReceivedEventArgs(value, delta, mode));
     }
 }
 public void SetMode(MeasurementMode measurementMode)
 {
     this.Slave.Write(new byte[] { (byte)measurementMode });
     Task.Delay(10).Wait();
 }
Esempio n. 11
0
 public DataReceivedEventArgs(double value, double delta, MeasurementMode mode)
 {
     this.Value = value;
     this.Delta = delta;
     this.Mode = mode;
 }
Esempio n. 12
0
 public ADT7410(MeasurementMode mode)
     : base(0x48, 100, 500)
 {
     this.mode = mode;
 }
Esempio n. 13
0
 public HMC5883L(MeasurementMode measurement)
 {
     this.measurement = (byte)measurement;
 }
Esempio n. 14
0
 public void SetMode(MeasurementMode measurementMode)
 {
     _device.Write(new byte[] { (byte)measurementMode });
     Thread.Sleep(10);
 }
        internal SHTTemperatureAndHumiditySensor(I2cDevice sensorDevice, SHTModel model, MeasurementMode measureMode)
        {
            _device = sensorDevice;
            _model  = model;

            switch (measureMode)
            {
            case MeasurementMode.HighRepeatClockStretch:
                _sensorCommand = MeasureHighClockStretch;
                break;

            case MeasurementMode.MediumRepeatClockStretch:
                _sensorCommand = MeasureMediumClockStretch;
                break;

            case MeasurementMode.LowRepeatClockStretch:
                _sensorCommand = MeasureLowClockStretch;
                break;

            case MeasurementMode.HighRepeat:
                _sensorCommand = MeasureHigh;
                break;

            case MeasurementMode.MediumRepeat:
                _sensorCommand = MeasureMedium;
                break;

            case MeasurementMode.LowRepeat:
                _sensorCommand = MeasureLow;
                break;

            default:
                _sensorCommand = MeasureHigh;
                break;
            }
        }
Esempio n. 16
0
 int StartMeasurement(MeasurementMode mode)
 {
     WriteByte(CMD_REG, (byte)mode);
     return (range / 256) * 65;
 }
Esempio n. 17
0
 /// <summary>
 /// Create a new measurement sequence with all parameters specified
 /// </summary>
 /// <param name="color">Color of line representation on NFOV image</param>
 /// <param name="name">Name identifying crack</param>
 /// <param name="size">Thickness of line on NFOV image</param>
 /// <param name="orientation">Angular orientation (degrees) of initial crack notch</param>
 /// <param name="mode">Crack length calculation method</param>
 /// <param name="camera">Camera used to image crack</param>
 public MeasurementSequence(Color color, string name, float size, float orientation, MeasurementMode mode, string camera)
 {
     this.points      = new List <Measurement>();
     this.Name        = name;
     this.Color       = Color.FromArgb(128, color); // 50% transparent
     this.LineSize    = size;
     this.Orientation = orientation;
     this.Mode        = mode;
     this.Camera      = camera;
     this.CreateTime  = string.Format("{0:yyyy-MM-dd_hh-mm-ss-fff}", DateTime.Now);
     MeasurementSequence.CrackCount++;
 }
Esempio n. 18
0
 private Measure(MeasurementMode mode, float size)
 {
     this.Mode = mode;
     this.Size = size;
 }