예제 #1
0
 private async void Drdy_DigitalValueChanged(object sender, DigitalInValueChangedEventArgs e)
 {
     if (e.NewValue) // only convert on rising edge, plz
     {
         AdcValue = await PerformConversionAsync().ConfigureAwait(false);
     }
 }
예제 #2
0
        private async void IrqPin_DigitalValueChanged(object sender, DigitalInValueChangedEventArgs e)
        {
            if (e.NewValue == true)
            {
                return;
            }

            var data  = new byte[] { (byte)((byte)Registers.Status | 0x20), 0b01110000 };
            var bytes = await dev.SendReceiveAsync(data);

            if (((bytes[0] >> 6) & 0x01) == 0x01) // RX_DR
            {
                var rxIndex = (bytes[0] >> 1) & 0b111;

                var numBytesToRead = (await dev.SendReceiveAsync(new byte[] { 0b01100000, 0xff }))[1];
예제 #3
0
 private void Input_DigitalValueChanged(object sender, DigitalInValueChangedEventArgs e)
 {
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Pressed"));
     if (e.NewValue ^ activeLow)
     {
         OnPressed?.Invoke(this, new ButtonPressedEventArgs {
             ButtonPressed = true
         });
     }
     else
     {
         OnReleased?.Invoke(this, new ButtonReleasedEventArgs {
             ButtonReleased = true
         });
     }
 }
예제 #4
0
 private void B_DigitalValueChanged(object sender, DigitalInValueChangedEventArgs e)
 {
     if (b.DigitalValue && a.DigitalValue)
     {
         position--;
     }
     else if (b.DigitalValue && !a.DigitalValue)
     {
         position++;
     }
     else if (!b.DigitalValue && a.DigitalValue)
     {
         position++;
     }
     else if (!b.DigitalValue && !a.DigitalValue)
     {
         position--;
     }
     updatePosition();
 }
예제 #5
0
 private void Pin_DigitalValueChanged(object sender, DigitalInValueChangedEventArgs e)
 {
     DigitalInputValue = e.NewValue;
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("DigitalInputValue"));
 }