LISHUZUOXUN_yangjiang/PureBackend/sit_up_backend.py

67 lines
3.0 KiB
Python

# 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