Răsfoiți Sursa

新增错误码

nifangxu 1 lună în urmă
părinte
comite
a72fb661fa
5 a modificat fișierele cu 62 adăugiri și 56 ștergeri
  1. 9 9
      LAS.py
  2. 9 6
      common/sys_comm.py
  3. 25 25
      core/alarm_plan.py
  4. 4 2
      db/db_process.py
  5. 15 14
      run_LAS.py

+ 9 - 9
LAS.py

@@ -10,7 +10,7 @@ import json
 
 import common.sys_comm as sys_comm
 from common.sys_comm import (
-    LOGDBG, LOGINFO, LOGWARN, LOGERR,
+    LOGDBG, LOGINFO, LOGWARN, LOGERR, EC,
     get_utc_time_ms
 )
 
@@ -151,12 +151,12 @@ def sys_init():
         tb_info = traceback.extract_tb(e.__traceback__)
         for frame in tb_info:
             LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error:{e}, {e.doc}")
-        return -1
+        return EC.EC_FAILED
     except Exception as e:
         tb_info = traceback.extract_tb(e.__traceback__)
         for frame in tb_info:
             LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
-        return -1
+        return EC.EC_FAILED
 
 
 # 轮循执行一些任务
@@ -182,14 +182,14 @@ def query_events_expire_range():
 
     except Exception as e:
         LOGERR(f"query event_save_range failed: {e}, use default 90")
-        return -1
+        return EC.EC_FAILED
 
 
 # 创建事件过期计划
 def create_events_expire_plan():
     event_save_range = query_events_expire_range()
     if not event_save_range:
-        return -1
+        return EC.EC_FAILED
     g_las.g_alarm_plan_mgr.create_clean_expire_events_task(event_save_range)
     return 0
 
@@ -198,10 +198,10 @@ def create_events_expire_plan():
 def main_process():
     if not g_las.g_alarm_plan_mgr:
         LOGERR(f"error: g_alarm_plan_mgr not init")
-        return -1
+        return EC.EC_FAILED
     if not g_las.g_alarm_plan_disp:
         LOGERR(f"error: g_alarm_plan_disp not init")
-        return -1
+        return EC.EC_FAILED
 
     # 查询所有设备信息
     db_req_que.put(DBRequest_Async(sql=sqls.sql_query_all_dev_info,
@@ -225,7 +225,7 @@ def main():
 
     # 初始化
     if (0 != sys_init()):
-        sys.exit(-1)
+        sys.exit(EC.EC_FAILED)
 
     # 初始化 dev_mng
     init_dev_mng()
@@ -250,6 +250,6 @@ def main():
     # 主线程
     if not main_process():
         LOGERR(f"main_process error, process termination")
-        sys.exit(-1)
+        sys.exit(EC.EC_FAILED)
 
 main()

+ 9 - 6
common/sys_comm.py

@@ -49,6 +49,15 @@ g_log_conf = {
 # 日志文件锁
 g_log_file_mtx = threading.Lock()
 
+
+# 错误码定义
+class EC(Enum):
+    EC_SUCCESS      = 0     # 成功
+    EC_FAILED       = -1    # 一般错误
+
+
+
+
 # 获取当前utc时间(毫秒)
 def get_utc_time_ms():
     now = datetime.now()
@@ -179,12 +188,6 @@ def LOGERR(text=''):
 
 
 
-# 模型
-class MODEL_E(Enum):
-    MODEL_LIBO = 0  # 李博
-    MODEL_ANDA = 1  # 安大
-e_model = MODEL_E.MODEL_LIBO
-
 # 姿态分类
 class POSE_CLASS_E(Enum):
     POSE_CLASS_3 = 3  # 3类

+ 25 - 25
core/alarm_plan.py

@@ -9,7 +9,7 @@ from datetime import datetime, timezone, timedelta
 
 import common.sys_comm as sys_comm
 from common.sys_comm import (
-    LOGDBG, LOGINFO, LOGWARN, LOGERR,
+    LOGDBG, LOGINFO, LOGWARN, LOGERR, EC,
     get_utc_time_ms, get_utc_time_s, get_bj_time_ms, get_bj_time_s,
     utc_to_bj_ms, bj_to_utc_ms, utc_to_bj_s, bj_to_utc_s
 )
@@ -350,11 +350,11 @@ class AlarmPlan:
                     self.event_attr_.leave_ts_ = timestamp
 
             if self.event_attr_.enter_ts_ == -1 or self.event_attr_.leave_ts_ == -1:
-                return -1
+                return EC.EC_FAILED
 
             # 归并时间内,不认为事件结束
             if now - self.event_attr_.leave_ts_  < self.merge_time_:
-                return -1
+                return EC.EC_FAILED
             self.event_attr_.stay_time_ = self.event_attr_.leave_ts_ - self.event_attr_.enter_ts_
 
         return self.event_attr_.stay_time_
@@ -367,7 +367,7 @@ class AlarmPlan:
             if stay_time < self.threshold_time_ :
                 self.event_attr_.reset()
                 LOGINFO(f"less than threshold_time, alarm_plan: {self.plan_uuid_}, event_type: {self.event_type_}")
-                return -1
+                return EC.EC_FAILED
             LOGINFO(f"detected target leave, plan_uuid: {self.plan_uuid_}")
             return 0
 
@@ -378,7 +378,7 @@ class AlarmPlan:
         # 查找最新的落在检测区域的目标
         rtd_unit = self.find_latest_rtd_in_region(device, self.rect_, now, 3)
         if rtd_unit:
-            return -1
+            return EC.EC_FAILED
         with self.lock_:
             if self.event_attr_.leave_ts_ == -1:
                 self.event_attr_.leave_ts_ = now
@@ -387,11 +387,11 @@ class AlarmPlan:
                 self.event_attr_.enter_ts_ = now
 
             if self.event_attr_.enter_ts_ == -1 or self.event_attr_.leave_ts_ == -1:
-                return -1
+                return EC.EC_FAILED
 
             # 归并时间内,不认为事件结束
             if now - self.event_attr_.enter_ts_  < self.merge_time_:
-                return -1
+                return EC.EC_FAILED
 
             self.event_attr_.absence_time_ = self.event_attr_.enter_ts_ - self.event_attr_.leave_ts_
             return self.event_attr_.absence_time_
@@ -404,7 +404,7 @@ class AlarmPlan:
             if absence_time < self.event_attr_.time_threshold_:
                 self.event_attr_.reset()
                 LOGINFO(f"less than threshold_time, alarm_plan: {self.plan_uuid_}, event_type: {self.event_type_}")
-                return -1
+                return EC.EC_FAILED
             LOGINFO(f"detected target enter, plan_uuid: {self.plan_uuid_}")
             return 0
 
@@ -419,11 +419,11 @@ class AlarmPlan:
 
             # 获取停留时间
             stay_time = self.get_stay_time(device)
-            if stay_time == -1:
+            if stay_time == EC.EC_FAILED:
                 return
 
             # 检查停留时间
-            if self.check_stay_time(stay_time) == -1:
+            if self.check_stay_time(stay_time) == EC.EC_FAILED:
                 return
 
             # 构造事件
@@ -454,7 +454,7 @@ class AlarmPlan:
                 "linkage_push_wechat_service": self.linkage_action_.wechat_service_
             }
             mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
-            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
+            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}, dev: {dev_id}, plan: {self.plan_uuid_}")
 
             self.event_attr_.reset()
 
@@ -478,11 +478,11 @@ class AlarmPlan:
 
             # 获取停留时间
             stay_time = self.get_stay_time(device)
-            if stay_time == -1:
+            if stay_time == EC.EC_FAILED:
                 return
 
             # 检查停留时间
-            if self.check_stay_time(stay_time) == -1:
+            if self.check_stay_time(stay_time) == EC.EC_FAILED:
                 return
 
             # 构造事件
@@ -513,7 +513,7 @@ class AlarmPlan:
                 "linkage_push_wechat_service": self.linkage_action_.wechat_service_
             }
             mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
-            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
+            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}, dev: {dev_id}, plan: {self.plan_uuid_}")
 
             self.event_attr_.reset()
 
@@ -537,11 +537,11 @@ class AlarmPlan:
 
             # 获取停留时间
             stay_time = self.get_stay_time(device)
-            if stay_time == -1:
+            if stay_time == EC.EC_FAILED:
                 return
 
             # 检查停留时间
-            if self.check_stay_time(stay_time) == -1:
+            if self.check_stay_time(stay_time) == EC.EC_FAILED:
                 return
 
             # 构造事件
@@ -572,7 +572,7 @@ class AlarmPlan:
                 "linkage_push_wechat_service": self.linkage_action_.wechat_service_
             }
             mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
-            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
+            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}, dev: {dev_id}, plan: {self.plan_uuid_}")
 
             self.event_attr_.reset()
 
@@ -771,11 +771,11 @@ class AlarmPlan:
 
             # 获取消失时间
             absence_time = self.get_absence_time(device)
-            if absence_time == -1:
+            if absence_time == EC.EC_FAILED:
                 return
 
             # 检查消失时间
-            if self.check_absence_time(absence_time) == -1:
+            if self.check_absence_time(absence_time) == EC.EC_FAILED:
                 return
 
             # 构造事件
@@ -806,7 +806,7 @@ class AlarmPlan:
                 "linkage_push_wechat_service": self.linkage_action_.wechat_service_
             }
             mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
-            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, absence_time: {absence_time}")
+            LOGDBG(f"new event: {event_desc_map[self.event_type_]}, absence_time: {absence_time}, dev: {dev_id}, plan: {self.plan_uuid_}")
 
             self.event_attr_.reset()
 
@@ -892,7 +892,7 @@ class AlarmPlan:
                 }
                 mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
 
-                LOGINFO(f"cb_toileting_frequency succeed")
+                LOGINFO(f"new event: {event_desc_map[self.event_type_]}")
             else:
                 LOGDBG("cb_toileting_frequency, empty result")
 
@@ -959,7 +959,7 @@ class AlarmPlan:
                 }
                 mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
 
-                LOGINFO(f"cb_night_toileting_frequency succeed")
+                LOGINFO(f"new event: {event_desc_map[self.event_type_]}")
             else:
                 LOGDBG("cb_night_toileting_frequency, empty result")
 
@@ -1029,7 +1029,7 @@ class AlarmPlan:
                 }
                 mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, linkage_action, "events")
 
-                LOGINFO(f"cb_toileting_frequency_abnormal succeed")
+                LOGINFO(f"new event: {event_desc_map[self.event_type_]}")
             else:
                 LOGDBG("cb_toileting_frequency_abnormal, empty result")
 
@@ -1099,7 +1099,7 @@ class AlarmPlan:
                 }
                 mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, linkage_action, "events")
 
-                LOGINFO(f"cb_night_toileting_frequency_abnormal succeed")
+                LOGINFO(f"new event: {event_desc_map[self.event_type_]}")
             else:
                 LOGDBG("cb_night_toileting_frequency_abnormal, empty result")
 
@@ -1166,7 +1166,7 @@ class AlarmPlan:
                 }
                 mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
 
-                LOGINFO(f"cb_bathroom_stay_frequency+- succeed")
+                LOGINFO(f"new event: {event_desc_map[self.event_type_]}")
             else:
                 LOGDBG("cb_bathroom_stay_frequency, empty result")
 

+ 4 - 2
db/db_process.py

@@ -14,7 +14,9 @@ import json
 import shutil
 
 import common.sys_comm as sys_comm
-from common.sys_comm import LOGDBG, LOGINFO, LOGWARN, LOGERR
+from common.sys_comm import (
+    LOGDBG, LOGINFO, LOGWARN, LOGERR, EC
+)
 from common.sys_comm import get_bj_time_ms
 
 
@@ -190,7 +192,7 @@ def db_execute_sync(sql: str, params=None, callback=None, userdata=None, timeout
     """
     if not db_worker_running:
         LOGERR("DB worker is not running, cannot execute sync request")
-        return -1
+        return EC.EC_FAILED
     req = DBRequest_Sync(sql=sql, params=params, callback=callback, userdata=userdata)
     db_req_que.put(req)
     return req.wait(timeout=timeout)

+ 15 - 14
run_LAS.py

@@ -6,10 +6,11 @@ import subprocess
 import sys
 
 # 配置
-GIT_URL = "http://43.137.10.199:3000/HFLN/LAS.git"
-LOCAL_PATH = "/platform/LAS/"
-GIT_USER = "nifangxu"
-GIT_PASS = "123456"
+MODULE      = "LAS"
+GIT_URL     = "http://43.137.10.199:3000/HFLN/LAS.git"
+GIT_USER    = "nifangxu"
+GIT_PASS    = "123456"
+LOCAL_PATH  = f"/platform/{MODULE}/"
 
 
 def run_cmd(cmd, cwd=None):
@@ -29,16 +30,16 @@ def run_cmd(cmd, cwd=None):
 def update_repo():
     """拉取或更新代码"""
     if not os.path.exists(LOCAL_PATH):
-        print("本地仓库不存在,开始克隆...")
+        print("local codes does not exist, do clone...")
         auth_url = GIT_URL.replace("http://", f"http://{GIT_USER}:{GIT_PASS}@")
         run_cmd(f"git clone {auth_url} {LOCAL_PATH}")
     else:
-        print("本地仓库已存在,开始更新...")
+        print("local codes already exist, do update...")
         run_cmd("git reset --hard", cwd=LOCAL_PATH)
         run_cmd("git pull", cwd=LOCAL_PATH)
 
     # 设置权限
-    print("设置文件权限...")
+    print("get files permission")
     run_cmd("dos2unix *", cwd=LOCAL_PATH)
     run_cmd("chmod +x *.py", cwd=LOCAL_PATH)
 
@@ -46,38 +47,38 @@ def update_repo():
 def check_repo():
     """检查仓库目录是否存在"""
     if not os.path.exists(LOCAL_PATH):
-        print("❌ 本地代码目录不存在,请先执行: python3 LAS-deploy.py update")
+        print(f"[error] local codes does not exist, run the following cmd first: python3.9 {MODULE}-deploy.py update")
         sys.exit(1)
 
 
 def start_service():
     check_repo()
-    print("启动 LAS 服务...")
+    print(f"starting {MODULE} ...")
     run_cmd("./start.py", cwd=LOCAL_PATH)
 
 
 def stop_service():
     check_repo()
-    print("停止 LAS 服务...")
+    print(f"stopping {MODULE}...")
     run_cmd("./stop.py", cwd=LOCAL_PATH)
 
 
 def restart_service():
     check_repo()
-    print("重启 LAS 服务...")
+    print(f"restart {MODULE}...")
     run_cmd("./stop.py || true", cwd=LOCAL_PATH)
     run_cmd("./start.py", cwd=LOCAL_PATH)
 
 
 def status_service():
     check_repo()
-    print("查看 LAS 服务状态...")
+    print(f"check {MODULE} status...")
     run_cmd("./status.py", cwd=LOCAL_PATH)
 
 
 def main():
     if len(sys.argv) < 2:
-        print("用法: python3 LAS-deploy.py [update|start|stop|restart|status]")
+        print(f"usage: python3.9 {MODULE}-deploy.py [update|start|stop|restart|status]")
         sys.exit(1)
 
     action = sys.argv[1].lower()
@@ -97,7 +98,7 @@ def main():
         print("可用参数: update | start | stop | restart | status")
         sys.exit(1)
 
-    print(f"✅ 操作完成: {action}")
+    print(f"[ok] completed: {action}")
 
 
 if __name__ == "__main__":