       Serial.print(F("SBC(58);DS16(126,63,'\xD7\xD4\xB6\xAF\xC4\xA3\xCA\xBD',0,0);")); //DS16(126,63,'自动模式',0,0);
     }
     if (noAuto) {
-      Serial.println(F("RTC\xC4\xA3\xBF\xE9\xB9\xCA\xD5\xCF")); //RTC模块故障
+      Serial.println(F("DS12(0,0,'RTC\xC4\xA3\xBF\xE9\xB9\xCA\xD5\xCF',1);")); //DS12(0,0,'RTC模块故障',1);
     } else {
       DateTime now = rtc.now();
       Serial.print(F("SBC(53);DS12(133,152,'"));

    }
  }
  if (atRTC) {
    DateTime now = rtc.now();
    Serial.print(F("SBC(0);CBOF(0,32,220,65,5,0);"));
    if (showTime) {
      Serial.print(F("DS32(56,32,'"));
      if (now.hour() < 10) { Serial.print(0); Serial.print(now.hour()); } else Serial.print(now.hour()); Serial.print(F("',1,0);DS32(90,32,'/',1,0);DS32(102,32,'"));
      if (now.minute() < 10) { Serial.print(0); Serial.print(now.minute()); } else Serial.print(now.minute()); Serial.print(F("',1,0);DS32(135,32,'/',1,0);DS32(146,32,'"));
      if (now.second() < 10) { Serial.print(0); Serial.print(now.second()); } else Serial.print(now.second()); Serial.println(F("',1,0);"));
    } else {
      Serial.print(F("DS32(30,32,'")); Serial.print(now.year()); Serial.print(F("',1,0);DS32(90,32,'/',1,0);DS32(102,32,'"));
      Serial.print(now.month()); Serial.print(F("',1,0);DS32(135,32,'/',1,0);DS32(146,32,'"));
      Serial.print(now.day()); Serial.println(F("',1,0);"));
    }
  }
  if (atCard) {

    delay(2);
  }
  if (ttl.length() > 0) {
    if (ttl != "OK" /*|| ttl != "\r\nOK" || ttl != "\r\nOK\r\n" || ttl != "OK\r\n" || ttl != "OKOK" */) {
      int bn = 0; 
      sscanf(ttl.c_str(), "[BN:%d]\r\n", &bn);
      //Serial.println(bn,DEC);
      if (bn == 32) atMain = true; else atMain = false;
      if (bn == 31 || bn == 1 || bn == 2 || bn == 3) {
        atCtrl = true; 
        if (bn == 1) {
          autoC = false; on();
        } else if (bn == 2) {
          autoC = false; off();
        } else if (bn == 3) {
          autoC = !autoC;
        }
      } else atCtrl = false;
      if (bn == 29) atCard = true; else atCard = false;
      if (bn == 25 || bn == 22 || bn == 21 || bn == 20 || bn == 19 || bn == 18 || bn == 17 || bn == 16) { 
        atRTC = true;
        DateTime now = rtc.now();
        DateTime adj;
        if (bn == 16) { // switch datetime, 16
          showTime = !showTime;
        } else {
          if (bn == 22) { // up1
            if (showTime) { // hh
              adj = DateTime(now + TimeSpan(3600));
            } else { // YYYY
              adj = DateTime(now + TimeSpan(365, 0, 0, 0));
            }
          } else if (bn == 21) { // down1
            if (showTime) { // hh
              adj = DateTime(now - TimeSpan(3600));
            } else { // YYYY
              adj = DateTime(now - TimeSpan(365, 0, 0, 0));
            }
          } else if (bn == 20) { // up2
            if (showTime) { // mm
              adj = DateTime(now + TimeSpan(60));
            } else { // MM
              adj = DateTime(now + TimeSpan(30, 0, 0, 0));
            }
          } else if (bn == 19) { // down2
            if (showTime) { // mm
              adj = DateTime(now - TimeSpan(60));
            } else { // MM
              adj = DateTime(now - TimeSpan(30, 0, 0, 0));
            }
          } else if (bn == 18) { // up3
            if (showTime) { // ss
              adj = DateTime(now + TimeSpan(1)); // +1s
            } else { // DD
              adj = DateTime(now + TimeSpan(1, 0, 0, 0));
            }
          } else if (bn == 17) { // down3
            if (showTime) { // ss
              adj = DateTime(now - TimeSpan(1));
            } else { // DD
              adj = DateTime(now - TimeSpan(1, 0, 0, 0));
            }
          }
          rtc.adjust(adj);
        }
      } else {
        if (atRTC) {
          if (bn != 0) atRTC = false;
        }
      }
       
      if (bn == 30) {
        if (noAuto) {
          Serial.println("DS12(0,0,'RTC\xC4\xA3\xBF\xE9\xB9\xCA\xD5\xCF',1);"); //DS12(0,0,'RTC模块故障',1);
        } else {
          atCount = true; countLoop = 59;
        }
