/// <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; } }
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; } }
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); }
/// <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; } }
/// <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(); }
/// <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"); } }
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(); }
public DataReceivedEventArgs(double value, double delta, MeasurementMode mode) { this.Value = value; this.Delta = delta; this.Mode = mode; }
public ADT7410(MeasurementMode mode) : base(0x48, 100, 500) { this.mode = mode; }
public HMC5883L(MeasurementMode measurement) { this.measurement = (byte)measurement; }
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; } }
int StartMeasurement(MeasurementMode mode) { WriteByte(CMD_REG, (byte)mode); return (range / 256) * 65; }
/// <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++; }
private Measure(MeasurementMode mode, float size) { this.Mode = mode; this.Size = size; }