   if (cmd == "unlock") {
     unlock();
   } else if (cmd == "report") {
-    g_need_report = true;
+    g_report_lock = true;
+    g_report_other = true;
   } else if (cmd == "buzzer") {
     buzzer(1000);
   }

static LGPRSClient g_net_client;
static MQTTClient g_mqtt_client;

static bool g_need_report = true;

static gpsSentenceInfoStruct g_gps_info;
static unsigned long g_last_report_ms = 0;

      } else {
        if (g_lock_unlock_step == 1) {
          stop_motor();
          g_report_lock = true;
          g_lock_status = LOCK_LOCKED;
          buzzer(400);
          Serial.println("locked");
