/*
 * G_COLORS.ino
 *
 *
 * tested on: https://wokwi.com/projects/
 *
 *
 *
*/



//
struct stct_COLORS_t {
  //                           0                 1              2                3              4                5                6                 7         // items
  const char *NAMES[46] = { "White",         "Black",       "Grey",          "Blue",         "Red",         "Green",          "Cyan",          "Magenta",     //  7
                            "Yellow",        "Teal",        "Orange",        "Pink",         "Purple",      "Lt Grey",        "Lt Blue",       "Lt Red",      // 15
                            "Lt Green",      "Lt Cyan",     "Lt Magenta",    "Lt Yellow",    "Lt Teal",     "Lt Orange",      "Lt Pink",       "Lt Purple",   // 23
                            "Medium Grey",   "Medium Blue", "Medium Red",    "Medium Green", "Medium Cyan", "Medium Magenta", "Medium Yellow", "Medium Teal", // 31
                            "Medium Orange", "Medium Pink", "Medium Purple", "Dk Grey",      "Dk Blue",     "Drk Red",        "Dk Green",      "Dk Cyan",     // 39
                            "Dk Magenta",    "Dk Yellow",   "Dk Teal",       "Dk Orange",    "Dk Pink",     "Dk Purple",                                      // 46
  }; // array size: 412Byte [412 is 103 times 4-Byte. NO padding]
  //                               0       1       2       3       4       5       6       7    // items
  const uint16_t VALUES[46] = { 0XFFFF, 0X0000, 0XC618, 0X001F, 0XF800, 0X07E0, 0X07FF, 0XF81F, //  7
                                0XFFE0, 0X0438, 0XFD20, 0XF81F, 0X801F, 0XE71C, 0X73DF, 0XFBAE, // 15
                                0X7FEE, 0X77BF, 0XFBB7, 0XF7EE, 0X77FE, 0XFDEE, 0XFBBA, 0XD3BF, // 23
                                0X7BCF, 0X1016, 0XB000, 0X0584, 0X04B6, 0XB010, 0XAD80, 0X0594, // 31
                                0XB340, 0XB00E, 0X8816, 0X4A49, 0X0812, 0X9000, 0X04A3, 0X0372, // 39
                                0X900B, 0X94A0, 0X0452, 0X92E0, 0X9009, 0X8012                  // 45
  }; // array size: 46*2=92Byte [92 is 23 times 4-Byte. NO padding]
  //
  // struct data size: 412+92=504 [504 is 126 times 4-Byte. NO padding]
} G_COLORS;
//


void setup() {
  //
  Serial.begin(115200);
  //
  String sOutNum, s_TelNUM = "AbCd01234eFg56789HiJ";
  sOutNum.reserve(20);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[0]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[0], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[7]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[7], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[15]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[15], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[23]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[23], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[31]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[31], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[39]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[39], HEX);
  //
  Serial.print(F("\nColor NAME  (0) = ")); Serial.println(G_COLORS.NAMES[45]);
  Serial.print(F("Color VALUE (0) = ")); Serial.println(G_COLORS.VALUES[45], HEX);
  //
  Serial.print(F("\nG_COLORS.NAMES  array size: ")); Serial.println(sizeof(G_COLORS.NAMES));//  / sizeof(G_COLORS.NAMES[0]));
  Serial.print(F("G_COLORS.VALUES array size: ")); Serial.println(sizeof(G_COLORS.VALUES));//  / sizeof(G_COLORS.VALUES[0]));
  //
  //                            0                 1              2                3              4                5                6                 7         // items
  const char *newNAMES[] = { "White",         "Black",       "Grey",          "Blue",         "Red",         "Green",          "Cyan",          "Magenta",     //  7
                             "Yellow",        "Teal",        "Orange",        "Pink",         "Purple",      "Lt Grey",        "Lt Blue",       "Lt Red",      // 15
                             "Lt Green",      "Lt Cyan",     "Lt Magenta",    "Lt Yellow",    "Lt Teal",     "Lt Orange",      "Lt Pink",       "Lt Purple",   // 23
                             "Medium Grey",   "Medium Blue", "Medium Red",    "Medium Green", "Medium Cyan", "Medium Magenta", "Medium Yellow", "Medium Teal", // 31
                             "Medium Orange", "Medium Pink", "Medium Purple", "Dk Grey",      "Dk Blue",     "Drk Red",        "Dk Green",      "Dk Cyan",     // 39
                             "Dk Magenta",    "Dk Yellow",   "Dk Teal",       "Dk Orange",    "Dk Pink",     "Dk Purple",                                      // 46
  }; // array size: 412Byte
  //
  uint8_t i = 0;
  uint16_t totByte = 0, cntr = 0;
  //
  String tmpStr;
  tmpStr.reserve(15);
  //
  for (i = 0; i < 46; i++) {
    //
    tmpStr = String(newNAMES[i]);
    cntr = tmpStr.length();
    totByte += cntr + 1; // --> +1 --> C-string ['\0']
    //
    Serial.print(F("newNAMES[")); Serial.print(i); Serial.print(F("] = "));
    Serial.print(cntr); Serial.print(F(" - ")); Serial.println(tmpStr);
    //
  } // for
  //
  Serial.print(F("Local newNAMES array size: ")); Serial.println(totByte);
  Serial.println("\n");
  //
  i = 0;
  totByte = 0, cntr = 0;
  for (i = 0; i < 46; i++) {
    //
    tmpStr = String(G_COLORS.NAMES[i]);
    cntr = tmpStr.length();
    totByte += cntr + 1; // --> +1 --> C-string ['\0']
    //
    Serial.print(F("G_COLORS.NAMES[")); Serial.print(i); Serial.print(F("] = "));
    Serial.print(cntr); Serial.print(F(" - ")); Serial.println(tmpStr);
    //
  } // for
  //
  Serial.print(F("G_COLORS.NAMES array size: ")); Serial.println(totByte);
  Serial.println("\n");
  //
  i = 0;
  totByte = 0, cntr = 0;
  for (i = 0; i < 46; i++) {
    //
    //tmpStr = String(G_COLORS.VALUES[i]);
    cntr = sizeof(G_COLORS.VALUES[i]);//tmpStr.length();
    totByte += cntr;// + 1; // --> +1 --> C-string ['\0']
    //
    Serial.print(F("G_COLORS.VALUES[")); Serial.print(i); Serial.print(F("] = "));
    Serial.print(cntr); Serial.print(F(" - ")); Serial.println(G_COLORS.VALUES[i], HEX);
    //
  } // for
  //
  Serial.print(F("G_COLORS.VALUES array size: ")); Serial.println(totByte);
  Serial.println();
  //
} // setup()

void loop() {
  //
  delay(50);
  //
} // loop()


// **********************************************************************************************************************
// *** Serial OUTPUT:
//
// ets Jul 29 2019 12:21:46
//
// rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
// configsip: 0, SPIWP:0xee
// clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
// mode:DIO, clock div:2
// load:0x3fff0030,len:1156
// load:0x40078000,len:11456
// ho 0 tail 12 room 4
// load:0x40080400,len:2972
// entry 0x400805dc
//
//
// Color NAME  (0) = White
// Color VALUE (0) = FFFF
//
// Color NAME  (0) = Magenta
// Color VALUE (0) = F81F
//
// Color NAME  (0) = Lt Red
// Color VALUE (0) = FBAE
//
// Color NAME  (0) = Lt Purple
// Color VALUE (0) = D3BF
//
// Color NAME  (0) = Medium Teal
// Color VALUE (0) = 594
//
// Color NAME  (0) = Dk Cyan
// Color VALUE (0) = 372
//
// Color NAME  (0) = Dk Purple
// Color VALUE (0) = 8012
//
// G_COLORS.NAMES  array size: 188
// G_COLORS.VALUES array size: 92
//
// ewNAMES[0] = 5 - White
// newNAMES[1] = 5 - Black
// newNAMES[2] = 4 - Grey
// newNAMES[3] = 4 - Blue
// newNAMES[4] = 3 - Red
// newNAMES[5] = 5 - Green
// newNAMES[6] = 4 - Cyan
// newNAMES[7] = 7 - Magenta
// newNAMES[8] = 6 - Yellow
// newNAMES[9] = 4 - Teal
// newNAMES[10] = 6 - Orange
// newNAMES[11] = 4 - Pink
// newNAMES[12] = 6 - Purple
// newNAMES[13] = 7 - Lt Grey
// newNAMES[14] = 7 - Lt Blue
// newNAMES[15] = 6 - Lt Red
// newNAMES[16] = 8 - Lt Green
// newNAMES[17] = 7 - Lt Cyan
// newNAMES[18] = 10 - Lt Magenta
// newNAMES[19] = 9 - Lt Yellow
// newNAMES[20] = 7 - Lt Teal
// newNAMES[21] = 9 - Lt Orange
// newNAMES[22] = 7 - Lt Pink
// newNAMES[23] = 9 - Lt Purple
// newNAMES[24] = 11 - Medium Grey
// newNAMES[25] = 11 - Medium Blue
// newNAMES[26] = 10 - Medium Red
// newNAMES[27] = 12 - Medium Green
// newNAMES[28] = 11 - Medium Cyan
// newNAMES[29] = 14 - Medium Magenta
// newNAMES[30] = 13 - Medium Yellow
// newNAMES[31] = 11 - Medium Teal
// newNAMES[32] = 13 - Medium Orange
// newNAMES[33] = 11 - Medium Pink
// newNAMES[34] = 13 - Medium Purple
// newNAMES[35] = 7 - Dk Grey
// newNAMES[36] = 7 - Dk Blue
// newNAMES[37] = 6 - Dk Red
// newNAMES[38] = 8 - Dk Green
// newNAMES[39] = 7 - Dk Cyan
// newNAMES[40] = 10 - Dk Magenta
// newNAMES[41] = 9 - Dk Yellow
// newNAMES[42] = 7 - Dk Teal
// newNAMES[43] = 9 - Dk Orange
// newNAMES[44] = 7 - Dk Pink
// newNAMES[45] = 9 - Dk Purple
// Local newNAMES array size: 414
//
//
// G_COLORS.NAMES[0] = 5 - White
// G_COLORS.NAMES[1] = 5 - Black
// G_COLORS.NAMES[2] = 4 - Grey
// G_COLORS.NAMES[3] = 4 - Blue
// G_COLORS.NAMES[4] = 3 - Red
// G_COLORS.NAMES[5] = 5 - Green
// G_COLORS.NAMES[6] = 4 - Cyan
// G_COLORS.NAMES[7] = 7 - Magenta
// G_COLORS.NAMES[8] = 6 - Yellow
// G_COLORS.NAMES[9] = 4 - Teal
// G_COLORS.NAMES[10] = 6 - Orange
// G_COLORS.NAMES[11] = 4 - Pink
// G_COLORS.NAMES[12] = 6 - Purple
// G_COLORS.NAMES[13] = 7 - Lt Grey
// G_COLORS.NAMES[14] = 7 - Lt Blue
// G_COLORS.NAMES[15] = 6 - Lt Red
// G_COLORS.NAMES[16] = 8 - Lt Green
// G_COLORS.NAMES[17] = 7 - Lt Cyan
// G_COLORS.NAMES[18] = 10 - Lt Magenta
// G_COLORS.NAMES[19] = 9 - Lt Yellow
// G_COLORS.NAMES[20] = 7 - Lt Teal
// G_COLORS.NAMES[21] = 9 - Lt Orange
// G_COLORS.NAMES[22] = 7 - Lt Pink
// G_COLORS.NAMES[23] = 9 - Lt Purple
// G_COLORS.NAMES[24] = 11 - Medium Grey
// G_COLORS.NAMES[25] = 11 - Medium Blue
// G_COLORS.NAMES[26] = 10 - Medium Red
// G_COLORS.NAMES[27] = 12 - Medium Green
// G_COLORS.NAMES[28] = 11 - Medium Cyan
// G_COLORS.NAMES[29] = 14 - Medium Magenta
// G_COLORS.NAMES[30] = 13 - Medium Yellow
// G_COLORS.NAMES[31] = 11 - Medium Teal
// G_COLORS.NAMES[32] = 13 - Medium Orange
// G_COLORS.NAMES[33] = 11 - Medium Pink
// G_COLORS.NAMES[34] = 13 - Medium Purple
// G_COLORS.NAMES[35] = 7 - Dk Grey
// G_COLORS.NAMES[36] = 7 - Dk Blue
// G_COLORS.NAMES[37] = 6 - Dk Red
// G_COLORS.NAMES[38] = 8 - Dk Green
// G_COLORS.NAMES[39] = 7 - Dk Cyan
// G_COLORS.NAMES[40] = 10 - Dk Magenta
// G_COLORS.NAMES[41] = 9 - Dk Yellow
// G_COLORS.NAMES[42] = 7 - Dk Teal
// G_COLORS.NAMES[43] = 9 - Dk Orange
// G_COLORS.NAMES[44] = 7 - Dk Pink
// G_COLORS.NAMES[45] = 9 - Dk Purple
// G_COLORS.NAMES array size: 414
//
//
// G_COLORS.VALUES[0] = 2 - FFFF
// G_COLORS.VALUES[1] = 2 - 0
// G_COLORS.VALUES[2] = 2 - C618
// G_COLORS.VALUES[3] = 2 - 1F
// G_COLORS.VALUES[4] = 2 - F800
// G_COLORS.VALUES[5] = 2 - 7E0
// G_COLORS.VALUES[6] = 2 - 7FF
// G_COLORS.VALUES[7] = 2 - F81F
// G_COLORS.VALUES[8] = 2 - FFE0
// G_COLORS.VALUES[9] = 2 - 438
// G_COLORS.VALUES[10] = 2 - FD20
// G_COLORS.VALUES[11] = 2 - F81F
// G_COLORS.VALUES[12] = 2 - 801F
// G_COLORS.VALUES[13] = 2 - E71C
// G_COLORS.VALUES[14] = 2 - 73DF
// G_COLORS.VALUES[15] = 2 - FBAE
// G_COLORS.VALUES[16] = 2 - 7FEE
// G_COLORS.VALUES[17] = 2 - 77BF
// G_COLORS.VALUES[18] = 2 - FBB7
// G_COLORS.VALUES[19] = 2 - F7EE
// G_COLORS.VALUES[20] = 2 - 77FE
// G_COLORS.VALUES[21] = 2 - FDEE
// G_COLORS.VALUES[22] = 2 - FBBA
// G_COLORS.VALUES[23] = 2 - D3BF
// G_COLORS.VALUES[24] = 2 - 7BCF
// G_COLORS.VALUES[25] = 2 - 1016
// G_COLORS.VALUES[26] = 2 - B000
// G_COLORS.VALUES[27] = 2 - 584
// G_COLORS.VALUES[28] = 2 - 4B6
// G_COLORS.VALUES[29] = 2 - B010
// G_COLORS.VALUES[30] = 2 - AD80
// G_COLORS.VALUES[31] = 2 - 594
// G_COLORS.VALUES[32] = 2 - B340
// G_COLORS.VALUES[33] = 2 - B00E
// G_COLORS.VALUES[34] = 2 - 8816
// G_COLORS.VALUES[35] = 2 - 4A49
// G_COLORS.VALUES[36] = 2 - 812
// G_COLORS.VALUES[37] = 2 - 9000
// G_COLORS.VALUES[38] = 2 - 4A3
// G_COLORS.VALUES[39] = 2 - 372
// G_COLORS.VALUES[40] = 2 - 900B
// G_COLORS.VALUES[41] = 2 - 94A0
// G_COLORS.VALUES[42] = 2 - 452
// G_COLORS.VALUES[43] = 2 - 92E0
// G_COLORS.VALUES[44] = 2 - 9009
// G_COLORS.VALUES[45] = 2 - 8012
// G_COLORS.VALUES array size: 92
//
// **********************************************************************************************************************