# func::SRLatch

    sys::Obj
      sys::Virtual
        sys::Component
          func::SRLatch

`public class SRLatch` `[niagaraIcon="module://icons/x16/control/control.png"]`

SRLatch Set Reset Latch object

if ^s out = true; if ^r out = false; If both inputs have rising edges, out becomes false

lastReset

  `public bool lastReset`

lastSet

  `public bool lastSet`

out

  `public property bool out [readonly]`

  output

r

  `public property bool r`

  On rising edge of r, out becomes false

s

  `public property bool s`

  On rising edge of s, out becomes true

execute

  `public virtual override void execute()`

  Execute is called once every scan.

  On rising edge of s, out becomes true On rising edge of r, out becomes false If both inputs have rising edges, out becomes false

start

  `public virtual override void start()`

  Callback when component is first started in an app.