+ digitalWrite(loadPin, 1);
+ delay(300);
+ if (strncmp_P(line, PSTR("msg"), strlen("msg")) == 0) {
+ for (int i=0; i<strlen(value); i++) {
+ if (int(toupper(value[i])) >= 48 && int(toupper(value[i])) <=57) {
+ tube[0] = digits[int(toupper(value[i]))-48];
+ } else if (int(toupper(value[i])) >= 65 && int(toupper(value[i])) <=90) {
+ tube[0] = digits[int(toupper(value[i]))-55];
+ } else if (int(toupper(value[i])) >= 32) {
+ tube[0] = digits[37];
+ } else {
+ tube[0] = digits[36];
+ }
+ digitalWrite(loadPin, 0);
+ for (int j=0; j<6; j++) {
+ shiftOut(dataPin, clockPin, LSBFIRST, tube[j]);
+ }
+ digitalWrite(loadPin, 1);
+ delay(200);
+ for (int j=5; j>0; j--) {
+ tube[j]=tube[j-1];
+ }
+ }
+ for (int i=0; i<6; i++) {
+ tube[0] = digits[37];
+ digitalWrite(loadPin, 0);
+ for (int j=0; j<6; j++) {
+ shiftOut(dataPin, clockPin, LSBFIRST, tube[j]);
+ }
+ digitalWrite(loadPin, 1);
+ delay(250);
+ for (int j=5; j>0; j--) {
+ tube[j]=tube[j-1];
+ }
+
+ }
+ } else {
+ utc=atoi(value);
+ utcOffsetInSeconds = 3600*utc;
+
+ //US DST CALC
+ if(month() == 11 && day() < 8 && day() < weekday()) {
+ dst=true;
+ }
+ if(month() == 11 && day() < 8 && weekday() == 1 && hour() < 1) {
+ dst=true;
+ }
+
+ if(month() < 11 && month() > 3) dst = true;