67 lines
3.0 KiB
Python
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
|
|||
|
|
|||
|
# <><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD>ֻ<EFBFBD>û<EFBFBD><C3BB>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա", need_print=True)
|
|||
|
return False
|
|||
|
info = raw_info[0]
|
|||
|
else:
|
|||
|
GLOBAL_LOG.write(f"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>ȱʧ", 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"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{str(e)}<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>{traceback.format_exc()}")
|
|||
|
return False
|