Example #1
0
 static void Main(string[] args)
 {
     using (GpioController controller = new GpioController())
     {
         workingLed    = new LED(controller, pin1);
         breakLed      = new LED(controller, pin2);
         freeLed       = new LED(controller, pin3);
         workingTimer  = new Timer(new TimeSpan(0, 30, 0));
         breakTimer    = new Timer(new TimeSpan(0, 5, 0));
         freeTimer     = new Timer(new TimeSpan(0, 0, 0));
         workingButton = new HardwareButton(controller, button1, makeDelegate(workingTimer, workingLed));
         breakButton   = new HardwareButton(controller, button1, makeDelegate(breakTimer, breakLed));
         freeButton    = new HardwareButton(controller, button1, makeDelegate(freeTimer, freeLed));
         while (true)
         {
             if (workingTimer?.expired == true || breakTimer?.expired == true)
             {
                 SetAllLEDSState(LED.State.Blinking);
             }
             workingLed.DoAction();
             breakLed.DoAction();
             freeLed.DoAction();
             Thread.Sleep(250);
         }
     }
 }
Example #2
0
 public static HardwareButton.ButtonTrigger makeDelegate(Timer t, LED l)
 {
     return(delegate(bool lastCallState)
     {
         if (AreTimersRunning() && lastCallState)
         {
             MakeAllLEDSBlinkShort();
             return true;
         }
         t.Reset();
         SetAllLEDSState(LED.State.Off);
         l.myState = LED.State.On;
         return false;
     });
 }