       strip.Show();
     }
 }
+/* REST service to set entire image colors=RRGGBB,RRGGBB,RRGGBB,RRGGBB,....,RRGGBB (64 colors passed */
+void handleMessageScrollRequest(String req ){
+    blink(1);
+
+    printDebug("Confirm handleMessageScrollRequest  received");
+    printDebug(req);
+    
+    size_t equals = req.indexOf("?");
+    if (equals != -1) {
+      String message=req.substring(equals+1);
+      printDebug("message : " + message);
+      
+      
+      strip.Show();
+    }
+}
+
+
 void handleDefault(WiFiClient client){
 blink(1);
 

      } 
      strip.Show();
    }
}

void handleHexaStringRequest(String req) {
  printDebug("req="+req);

  Color white = RgbColor(128,128,128);
  Color black = RgbColor(0,0,0);
  int off = 0;
  for (int curCol = 0; curCol < 8; ++curCol) {
    int colValue = hexaToInt(req.at(2*curCol)) << 8 + hexaToInt(req.at(2*curcol + 1));
    int checker;
    if (curCol % 2 == 0) {
      checker = 1;
    }
    else {
      checker = 128;
    }
    for (int curBit = 0; curBit < 8; curBit++) {
      if ((curCol & checker) == checker) {
        strip.SetPixelColor(pixelNumber++, white);      
      }
      else {
        strip.SetPixelColor(pixelNumber++, black);            
      }
      if (curCol % 2 == 0) {
        checker << 1;
      }
      else {
        checker >> 1;
      }      
    }
  }
  
  strip.Show();
}

/* REST service to set pixel by x.y=RRGGBB;x.y=RRGGBB;x.y=RRGGBB;.. */

 }

String getCharHexa(char value) {
  if (value >= 20 && value <= 0x7e) {
    return ansiCharsByCols[value - 20];
  }
  else {
    return "ffffffffffffffff";
  }
}
void handleHexaStringRequest(String req, int waitms) {
  printDebug("req="+req);

  RgbColor white = RgbColor(128,128,128);
  RgbColor black = RgbColor(0,0,0);
  int off = 0;
  int pixelNumber= 0;
  for (int curCol = 0; curCol < 8; ++curCol) {
    int colValue = hexaToInt(req.charAt(2*curCol)) << 8 + hexaToInt(req.charAt(2*curCol + 1));
    int checker;
    if (curCol % 2 == 0) {
      checker = 1;
    }
    else {
      checker = 128;
    }
    
    for (int curBit = 0; curBit < 8; curBit++) {
      if ((curCol & checker) == checker) {
        strip.SetPixelColor(pixelNumber++, white);      
      }
      else {
        strip.SetPixelColor(pixelNumber++, black);            
      }
      if (curCol % 2 == 0) {
        checker << 1;
      }
      else {
        checker >> 1;
      }      
    }
  }
  
  strip.Show();
  delay(waitms);       
}




void printScroll(String input, int waitms) {
  // Need to add a space at the beginning/ end of the string
  int curOffset_message = 0;
  while (true) {
    
    String Chars_2 =   getCharHexa(input.charAt(curOffset_message)) +  getCharHexa(input.charAt((curOffset_message + 1) % input.length()));
    
    for (int offsetLetter = 0; offsetLetter < 8; ++offsetLetter) {
      handleHexaStringRequest(Chars_2 , waitms);
      
    }
    curOffset_message = curOffset_message + 1;
    if (curOffset_message > input.length()) {
      curOffset_message = 0;
    }
  }
