/*
  Read the 18 channels of spectral light over I2C using the Spectral Triad
  By: Nathan Seidle
  SparkFun Electronics
  Date: October 25th, 2018
  License: MIT. See license file for more information but you can
  basically do whatever you want with this code.

  This example takes all 18 readings and blinks the illumination LEDs 
  as it goes. We recommend you point the Triad away from your eyes, the LEDs are *bright*.
  
  Feel like supporting open source hardware?
  Buy a board from SparkFun! https://www.sparkfun.com/products/15050

  Hardware Connections:
  Plug a Qwiic cable into the Spectral Triad and a BlackBoard
  If you don't have a platform with a Qwiic connection use the SparkFun Qwiic Breadboard Jumper (https://www.sparkfun.com/products/14425)
  Open the serial monitor at 9600 baud to see the output
*/

#include "SparkFun_AS7265X.h"  //Click here to get the library: http://librarymanager/All#SparkFun_AS7265X
AS7265X sensor;

#include <Wire.h>

void setup() {
  Serial.begin(9600);
  Serial.println("AS7265x Spectral Triad Measuring test");

  Serial.println("Press a key to start");
  while (Serial.available() == false) {}  //Do nothing while we wait for user to press a key
  Serial.read();                          //Throw away the user's button

  
  // Serial.println("AS7265x Spectral Triad Example");
  while (sensor.begin() == false)
  {
    Serial.println("Sensor does not appear to be connected. Please check wiring. Freezing...");
    delay(500);
  }
  //sensor.disableBulb(0);
  // sensor.disableBulb(1);
  // sensor.disableBulb(2);
  // sensor.enableBulb(0);
  // sensor.enableBulb(1);
  // sensor.enableBulb(2);
  sensor.disableIndicator();  //Turn off the blue status LED

  // delay(1000);
  // sensor.disableBulb(0);
  // sensor.disableBulb(1);
  // sensor.disableBulb(2);
  // Serial.println("program ends");
  // Serial.println("A,B,C,D,E,F,G,H,R,I,S,J,T,U,V,W,K,L");
  // int run_time = 0;
  // //delay(1000);
  for (int i = 0; i < 100; i++) {
    sensor.takeMeasurementsWithBulb();  //This is a hard wait while all 18 channels are measured

    Serial.print(sensor.getCalibratedA());
    Serial.print(",");
    Serial.print(sensor.getCalibratedB());
    Serial.print(",");
    Serial.print(sensor.getCalibratedC());
    Serial.print(",");
    Serial.print(sensor.getCalibratedD());
    Serial.print(",");
    Serial.print(sensor.getCalibratedE());
    Serial.print(",");
    Serial.print(sensor.getCalibratedF());
    Serial.print(",");
    Serial.print(sensor.getCalibratedG());
    Serial.print(",");
    Serial.print(sensor.getCalibratedH());
    Serial.print(",");
    Serial.print(sensor.getCalibratedR());
    Serial.print(",");
    Serial.print(sensor.getCalibratedI());
    Serial.print(",");
    Serial.print(sensor.getCalibratedS());
    Serial.print(",");
    Serial.print(sensor.getCalibratedJ());
    Serial.print(",");
    Serial.print(sensor.getCalibratedT());
    Serial.print(",");
    Serial.print(sensor.getCalibratedU());
    Serial.print(",");
    Serial.print(sensor.getCalibratedV());
    Serial.print(",");
    Serial.print(sensor.getCalibratedW());
    Serial.print(",");
    Serial.print(sensor.getCalibratedK());
    Serial.print(",");
    Serial.print(sensor.getCalibratedL());
    Serial.print(",");


    Serial.println();
  }
  // sensor.disableBulb(0);
  // sensor.disableBulb(1);
  // sensor.disableBulb(2);
  // sensor.disableBulb(0);
  // sensor.disableBulb(1);
  // sensor.disableBulb(2);
  // sensor.softReset();
}

void loop() 
{
}
