Esempio n. 1
0
 async Task IPortExpanderParent.OutputValueChanged(IPortExpanderPin portExpanderPin)
 {
     olat.Set(portExpanderPin.PinNumber, portExpanderPin.DigitalValue);
     if (AutoFlush)
     {
         await FlushAsync().ConfigureAwait(false);
     }
 }
Esempio n. 2
0
 /// <summary>
 ///     Called when the output value of any pin has changed and should be written to the port
 /// </summary>
 /// <param name="portExpanderPin">The pin whose value changed</param>
 protected override Task outputValueChanged(IPortExpanderPin portExpanderPin)
 {
     if (AutoFlush)
     {
         return(FlushAsync());
     }
     return(Task.CompletedTask);
 }
Esempio n. 3
0
 /// <summary>
 ///     Called when any pin's mode changes
 /// </summary>
 /// <param name="portExpanderPin">The pin whose mode has changed</param>
 protected override Task outputModeChanged(IPortExpanderPin portExpanderPin)
 {
     // we set the I/O mode by writing a 1 or 0 to the output port, so just
     // flush out the data
     if (AutoFlush)
     {
         return(FlushAsync());
     }
     return(Task.CompletedTask);
 }
Esempio n. 4
0
        async Task IPortExpanderParent.OutputModeChanged(IPortExpanderPin portExpanderPin)
        {
            var pinNumber = portExpanderPin.PinNumber;

            iodir.Set(pinNumber, portExpanderPin.Mode == PortExpanderPinMode.DigitalInput);
            await dev.WriteByteDataAsync((byte)Registers.IoDirection, iodir.GetBytes()[0]).ConfigureAwait(false);

            var pin = Pins[pinNumber];

            gppu.Set(pinNumber, pin.PullUpEnabled);
            await dev.WriteByteDataAsync((byte)Registers.GpPullUp, gppu.GetBytes()[0]).ConfigureAwait(false);
        }
Esempio n. 5
0
 /// <summary>
 ///     Called whenever the mode of a pin changes
 /// </summary>
 /// <param name="portExpanderPin">The pin who has a new mode</param>
 protected abstract Task outputModeChanged(IPortExpanderPin portExpanderPin);
Esempio n. 6
0
 Task IPortExpanderParent.OutputModeChanged(IPortExpanderPin portExpanderPin)
 {
     return(outputModeChanged(portExpanderPin));
 }