Kaynağa Gözat

Protection against errorly requests

jediemil 5 yıl önce
ebeveyn
işleme
bf123e9d48
1 değiştirilmiş dosya ile 10 ekleme ve 10 silme
  1. 10 10
      LedThing.ino/LedThing.ino.ino

+ 10 - 10
LedThing.ino/LedThing.ino.ino

@@ -127,9 +127,9 @@ void process_HTTP() {
     boolean foundHashtag = false;
     int leds1 = 0;
     int leds2 = 0;
-    int newR = 0;
-    int newG = 0;
-    int newB = 0;
+    uint8_t newR = 0;
+    uint8_t newG = 0;
+    uint8_t newB = 0;
     int doFade = 0; //Between 0 and 1
     int cycles = 20;
     int cycleLength = 100;
@@ -149,21 +149,21 @@ void process_HTTP() {
             break;
           } else if (c == ':') {
             if (currentLoop == 0) {
-              leds1 = fullArguments.toInt();
+              leds1 = max(fullArguments.toInt(), 0);
             } else if (currentLoop == 1) {
-              leds2 = fullArguments.toInt();
+              leds2 = min(fullArguments.toInt(), NUM_LEDS - 1);
             } else if (currentLoop == 2) {
-              newR = fullArguments.toInt();
+              newR = min(max(fullArguments.toInt(), 0), 255);
             } else if (currentLoop == 3) {
-              newG = fullArguments.toInt();
+              newG = min(max(fullArguments.toInt(), 0), 255);
             } else if (currentLoop == 4) {
-              newB = fullArguments.toInt();
+              newB = min(max(fullArguments.toInt(), 0), 255);
             } else if (currentLoop == 5) {
               doFade = fullArguments.toInt() % 2;
             } else if (currentLoop == 6) {
               cycles = fullArguments.toInt();
             } else if (currentLoop == 7) {
-              cycleLength = fullArguments.toInt();
+              cycleLength = min(fullArguments.toInt(), 40);
             }
             fullArguments = "";
             currentLoop++;
@@ -482,7 +482,7 @@ void setup_chosen(int lamps1, int lamps2, CRGB newColor, boolean doFade = false,
     animation_table_1[0][7] = leds[lamps1].g;
     animation_table_1[1][0] = leds[lamps1].b;
   } else {
-    for (int i = lamps1; i < lamps2; i++) {
+    for (int i = lamps1; i <= lamps2; i++) {
       leds[i] = newColor;
     }
     FastLED.show();