Files
protocol_convert_software_BD3/main.py

69 lines
2.3 KiB
Python

import time
from core.link_manager import LinkManager
from utils.logger import logger
#from global_vars import *
# def check_battery_safe_mode():
# """
# 整星电池电压监测 + 安全模式切换
# 每收到一帧遥测 调用一次
# """
# global g_vbat_check_cnt, g_vbat_fail_flag
# global g_M050YS055, g_M050YS056, g_M050YS057, g_M050YG073
# # ====================== 1. 计算三路电池电压 ======================
# Vbat1 = g_M002YV020 # 整组电池1
# Vbat2 = g_M010YV012 # 整组电池2
# Vbat3 = (g_M004YV002 + g_M004YV004 +
# g_M004YV006 + g_M004YV008 +
# g_M004YV010 + g_M004YV012 +
# g_M004YV014 + g_M004YV016 + g_M004YV018) # 单体总和
# Vth1 = g_M050YV001
# Vth2 = g_M050YV002
# Vth3 = g_M050YV003
# # ====================== 2. 单次判断:是否低于阈值 ======================
# fail1 = 1 if (Vbat1 < Vth1) else 0
# fail2 = 1 if (Vbat2 < Vth2) else 0
# fail3 = 1 if (Vbat3 < Vth3) else 0
# # ====================== 3. 连续3次判断 ======================
# total_fail = fail1 + fail2 + fail3
# if total_fail >= 2:
# g_vbat_check_cnt += 1
# g_vbat_fail_flag = [fail1, fail2, fail3]
# else:
# g_vbat_check_cnt = 0
# g_vbat_fail_flag = [0, 0, 0]
# # 超限3次锁定报警
# if g_vbat_check_cnt >= 3:
# g_M050YS055 = g_vbat_fail_flag[0]
# g_M050YS056 = g_vbat_fail_flag[1]
# g_M050YS057 = g_vbat_fail_flag[2]
# else:
# g_M050YS055 = 0
# g_M050YS056 = 0
# g_M050YS057 = 0
# # ====================== 4. 整星安全模式触发条件 ======================
# if g_M002YV020 < g_M050YV002: # 小于阈值2(默认29V)
# g_M050YS056 = 1
# g_M050YG073 = 1 # 进入安全模式
# else:
# g_M050YG073 = 0 # 退出安全模式
if __name__ == "__main__":
lm = LinkManager()
lm.register_all()
lm.start()
logger.info("M16卫星协议转发软件")
logger.info("copyright 2026 中国科学院微小卫星创新研究院软件评测中心 All rights reserved.")
logger.info("协议转发服务启动完成")
while True:
time.sleep(1)
# 执行安全模式判断
# check_battery_safe_mode()