/*
    Description: Use Pbhub to read the analog input value of the slave device, or drive multiple sets of RGB LEDs.
*/

#include <M5Stack.h>
#include <Wire.h>
#include "porthub.h"

#define X_OFFSET 10
#define Y_OFFSET 18

PortHub porthub;
uint8_t HUB_ADDR[6]={HUB1_ADDR,HUB2_ADDR,HUB3_ADDR,HUB4_ADDR,HUB5_ADDR,HUB6_ADDR};

void setup() {
    M5.begin(true, false, true);
  	M5.Power.begin();
    porthub.begin();
    M5.Lcd.clear(BLACK);
    M5.Lcd.setTextColor(WHITE);
    M5.Lcd.setTextSize(4);
}

void loop() {

    M5.Lcd.clear(BLACK);
    for(int i = 0; i < 6; i++){
      M5.Lcd.setCursor(8*X_OFFSET,(i*2)*Y_OFFSET);
      M5.Lcd.printf("%d:%d",i+1,porthub.hub_a_read_value(HUB_ADDR[i]));
    }
    
    for(int i = 0; i < 6; i++){
      porthub.hub_wire_setBrightness(HUB_ADDR[i],1);
      porthub.hub_wire_fill_color(HUB_ADDR[i],0,15,250,250,250);
    } 
    delay(1000);
}