# coding: gb2312 import traceback from DeviceDefine.consensus import * from Exercise3.sit_up_new import SitUp_New from Exercise3.sit_up_old_1 import SitUp_Old_1 from Exercise3.sit_up_old_2 import SitUp_Old_2 from Exercise3.sit_up_old_3 import SitUp_Old_3 from LogRecord.log_recorder import GLOBAL_LOG from PureBackend.base_driver import MODEL_MEDIAPIPE from PureBackend.exam_driver import ExamDriver from PureBackend.general import * class SitupBackend(ExamDriver): def __init__(self, master_mode=True, positioning=True, camera=True, model=MODEL_MEDIAPIPE, speaker=True, multi_positioning_mode=True, device_type=UNKNOWN, pure_mode=False): super().__init__(master_mode, positioning, camera, model, speaker, multi_positioning_mode, device_type, pure_mode) if model == MODEL_MEDIAPIPE: from Exercise3.sit_up_new import SitUp_New from Exercise3.sit_up_old_1 import SitUp_Old_1 from Exercise3.sit_up_old_2 import SitUp_Old_2 from Exercise3.sit_up_old_3 import SitUp_Old_3 else: from Exercise_mn.sit_up_new import SitUp_New from Exercise_mn.sit_up_old_1 import SitUp_Old_1 from Exercise_mn.sit_up_old_2 import SitUp_Old_2 from Exercise_mn.sit_up_old_3 import SitUp_Old_3 self.situp_new = SitUp_New self.situp_old_1 = SitUp_Old_1 self.situp_old_2 = SitUp_Old_2 self.situp_old_3 = SitUp_Old_3 # 准备进行仰卧起坐 def active_sit_up(self, person_id, band_id): if self.project: self.project.kill() if person_id: info = self.manager.select_a_person(person_id)[0] else: if band_id: raw_info = self.manager.select_a_person_from_band(band_id) if not raw_info: GLOBAL_LOG.write(f"准备进行蛇形跑发生错误: 该手环没有匹配的人员", need_print=True) return False info = raw_info[0] else: GLOBAL_LOG.write(f"准备进行蛇形跑发生错误: 参数缺失", need_print=True) return False try: train_info = self.get_train_info() difficulty = train_info[DIFFICULTY] standards = train_info[STANDARDS] if standards == STANDARDS_NEW: self.project = self.situp_new(info, camera=self.camera) elif standards == STANDARDS_OLD and difficulty == DIFFICULT_HARD: self.project = self.situp_old_1(info, camera=self.camera) elif standards == STANDARDS_OLD and difficulty == DIFFICULT_EASY: self.project = self.situp_old_2(info, camera=self.camera) elif standards == STANDARDS_OLD and difficulty == COMMON_EASY: self.project = self.situp_old_3(info, camera=self.camera) self.exercise_tag = SITUP return True except Exception as e: GLOBAL_LOG.write(f"准备进行仰卧起坐发生错误,{str(e)},错误来源:{traceback.format_exc()}") return False