/* * * * *
 * conditional-obstacle.c
 *
 * This program uses the IR sensors at the front of a Scribbler 2 robot
 * to determine if something is in front or to one side of the robot.
 *
 * Author: Henry M. Walker
 *
 * Date: 2 February 2015
 */

#include "MyroC.h"
#include <stdio.h>

int main()
{
  rConnect("/dev/rfcomm0");

/*
 The return value of rGetIRTxt ranges is
    1 if an obstacle is detected
    0 if NO obstacle is detected	
*/

/* process on the basis of one initial reading
 */

  printf ("high beep for obstacke; low pitch for no obstacle\n");

  printf ("Scribbler forward\n");
  rSetForwardness("scribbler-forward");

  /* check forwardness */
  rForward (0.1, 0.1);
  printf ("left IR sensor\n");
  if (rGetIRTxt("left", 3) == 1)
    {
      printf ("    obstacle detected\n");
      rBeep (0.5, 1200);
    }
  else
    {
      printf ("    NO obstacle detected\n");
      rBeep (0.5, 600);
    }

  printf ("\nright IR sensor\n");
  if (rGetIRTxt("right", 3) == 1)
    {
      printf ("    obstacle detected\n");
      rBeep (0.5, 1200);
    }
  else
    {
      printf ("    NO obstacle detected\n");
      rBeep (0.5, 600);
    }

  printf ("Fluke forward\n");
  rSetForwardness("fluke-forward");

  /* check forwardness */
  rForward (0.1, 0.1);
  printf ("left IR sensor\n");
  if (rGetIRTxt("left", 3) == 1)
    {
      printf ("    obstacle detected\n");
      rBeep (0.5, 1200);
    }
  else
    {
      printf ("    NO obstacle detected\n");
      rBeep (0.5, 600);
    }

  printf ("\nright IR sensor\n");
  if (rGetIRTxt("right", 3) == 1)
    {
      printf ("    obstacle detected\n");
      rBeep (0.5, 1200);
    }
  else
    {
      printf ("    NO obstacle detected\n");
      rBeep (0.5, 600);
    }

  
  rDisconnect();

  return 0;
} //main
