// Laser.cpp
#include "Laser.h"

Laser::Laser(int pin, String name)
{
  laserPin   = pin;
  laserName = name;

  laserState = 0;
  previousLaserState = 0;

  hasHand = false;

  // initialize the sensor pin as an input:
  pinMode(laserPin, INPUT);

  digitalWrite(laserPin, HIGH);
}

void Laser::update()
{
  // read the state of the pushbutton value:
  laserState = digitalRead(laserPin);

  if (laserState && !previousLaserState) // No hand (unbroken laser)
  {
    // Serial.println("No Hand " + laserName);
    hasHand = false;
  }
  else if (!laserState && previousLaserState) // Hand entered (broken laser)
  {
    // Serial.println("Hand Entered " + laserName);
    Serial.println(laserName);
    hasHand = true;
  }

  previousLaserState = laserState;
}

bool Laser::getHasHand()
{
  return hasHand;
}

int Laser::getState()
{
  return laserState;
}

int Laser::getPreviousState()
{
  return previousLaserState;
}