/* program to take several readings of the Scribbler 2 light sensors */

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

int
main (void)
{
  /* preliminaries */
  printf ("reporting readings of the Scribbler 2 light sensors\n");
  rConnect ("/dev/rfcomm0");
  
  /* part 1:  take readings and report */
  int light_reading_1 = rGetLightTxt ("left", 1);    /* take readings */
  int light_reading_2 = rGetLightTxt ("left", 1);
  int light_reading_3 = rGetLightTxt ("left", 1);
  int light_reading_avg = (light_reading_1 + light_reading_2 +
                           light_reading_3)/3;
  /* report results */
  printf ("reading 1 for left sensor: %d\n", light_reading_1);
  printf ("reading 2 for left sensor: %d\n", light_reading_2);
  printf ("reading 3 for left sensor: %d\n", light_reading_3);

  printf ("average of first three readings:  %d\n", light_reading_avg);
  printf ("separate average of three readings:  %d\n",
          rGetLightTxt ("left", 3));

  /* part 2:  report if reading is bright */
  if (light_reading_avg < 10000) {          /* illustrate simple if statement */
    printf ("light in area is bright\n");
  }

  if (light_reading_avg < 5000) {           /* illustrate if else statement */
    printf ("light in area is very bright\n");
  }
  else {
    printf ("sunglasses are not needed for this light\n");
  }

  /* part 3:  categorize amount of light in area */
  int ten_thousands = light_reading_avg / 10000;
  switch (ten_thousands)                    /* illustrate switch sequence */
  {
    case 0:  printf ("light is quite bright\n");
             break;
    case 1:  printf ("light is moderately bright\n");
             break;
    case 2:  printf ("light is somewhat bright\n");
             break;
    case 3:  printf ("light is somewhat dim\n");
             break;
    default: printf ("light is quite dim\n");
             break;
  }

  /* finish up */
  rDisconnect ();
  return 0;
} // main
