LISHUZUOXUN_yangjiang/LSZXPagesLibrary/consensus.py

205 lines
7.5 KiB
Python
Raw Normal View History

2024-09-23 14:54:15 +08:00
# coding: gb2312
"""**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>"""
from PyQt5.QtWidgets import QLabel
HOME_PAGE = "home_page"
PICK_UP_PAGE = "pick_up_page"
PREPARE_PAGE = "prepare_page"
EXERCISE_PAGE = "exercise_page"
RUNNING_PAGE = "running_page"
BASE_STATION_PAGE = "base_station_page"
RUNNING_PICK_UP = "running_pick_up"
RUNNING_TEST_PAGE = "running_test_page"
RUNNING_CONFIG = "running_config"
RUNNING_SCORE = "running_score"
"""**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>"""
ALL = "all"
FINISHED = "finished"
UNFINISHED = "unfinished"
PICK_UP_TYPE_TABLE = {
ALL: "ȫ<EFBFBD><EFBFBD>",
FINISHED: "<EFBFBD>ѿ<EFBFBD>",
UNFINISHED: "δ<EFBFBD><EFBFBD>"
}
PICK_UP_TYPE_LIST = [ALL, FINISHED, UNFINISHED]
# <20><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><E5B7BD>
def _person_select_func(person_list):
return {
person_mes[ID]: {
**person_mes,
IS_CHOOSE: False
}
for person_mes in person_list
}
PERSON_SELECT_FUNC = _person_select_func
# <20><>Աɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
PICK_UP_TYPE_FILTER = {
ALL: lambda person_list: list(filter(
lambda person_mes: True,
person_list
)),
# <20><>ÿ<EFBFBD><C3BF><EFBFBD>ˣ<EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD>ɼ<EFBFBD><C9BC>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ա
FINISHED: lambda person_list: list(filter(
lambda person_mes:
person_mes[SCORE] is not None and person_mes[COUNT] is not None,
person_list
)),
# <20><>ÿ<EFBFBD><C3BF><EFBFBD>ˣ<EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ա
UNFINISHED: lambda person_list: list(filter(
lambda person_mes:
person_mes[SCORE] is None or person_mes[COUNT] is None,
person_list
))
}
def _set_person_widget_style(label_widget, person_mes):
if not person_mes[IS_CHOOSE]:
# <20><><EFBFBD><EFBFBD>δ<EFBFBD>μӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
if not person_mes[SCORE]:
label_widget.setText(
"""
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #409eff;'>
<img src='assets/blue_avatar.png' width='22' />{}</div>
<table style='border: 1px solid #409eff; border-collapse: collapse;margin-left:15px;
margin-top:5px;border-radius:4px'>
<tr><td style='font: 18px \"Microsoft YaHei UI\";
background-color: #ecf5ff;border: 1px solid #409eff;padding:4 40 4 50;
border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
""".format(person_mes[NAME], person_mes[ID])
)
label_widget.setStyleSheet(
"border:1px solid #409eff;"
"margin:6px;"
"border-radius:4px;"
"padding:15 0 15 0;"
)
# <20><><EFBFBD><EFBFBD><EFBFBD>Ѳμӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
else:
label_widget.setText(
"""
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #f56c6c;'>
<img src='assets/pink_avatar.png' width='22' />{}</div>
<table style='border: 1px solid #f56c6c;
border-collapse: collapse;margin-left:15px;margin-top:5px;border-radius:4px'>
<tr><td style='font: 18px \"Microsoft YaHei UI\";
background-color: #fef0f0;border: 1px solid #f56c6c;
padding:4 40 4 50;border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;
margin-top: 5px;'>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span>
<span style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;'>
&nbsp;&nbsp;&nbsp;&nbsp;<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span></span></div>
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
)
label_widget.setStyleSheet(
"border:1px solid #f56c6c;"
"margin:6px;"
"border-radius:4px;"
"padding:15 0 15 0;"
)
else:
# <20><><EFBFBD><EFBFBD>δ<EFBFBD>μӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
if not person_mes[SCORE]:
label_widget.setText(
"""
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
<img src='assets/white_avatar.png' width='22' />{}</div>
<table style='border: 1px solid #409eff; border-collapse: collapse;
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
<td style='font: 18px \"Microsoft YaHei UI\";background-color: #409eff;
border: 1px solid #ffffff;padding:4 40 4 50;border-radius:4px;color:#ffffff;'>
<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
""".format(person_mes[NAME], person_mes[ID])
)
label_widget.setStyleSheet(
"background-color:#409eff;"
"margin:6px;"
"border-radius:4px;"
"padding:15 0 15 0;"
)
# <20><><EFBFBD><EFBFBD><EFBFBD>Ѳμӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
else:
label_widget.setText(
"""
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
<img src='assets/white_avatar.png' width='22' />{}</div>
<table style='border: 1px solid #f56c6c; border-collapse: collapse;
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
<td style='border: 1px solid #ffffff;background-color:#409eff;
color:#ffffff;font: 18px \"Microsoft YaHei UI\";padding:4 40 4 50;
border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;
color: #ffffff;margin-top: 5px;'><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span>
<span style='font: 16px \"Microsoft YaHei UI\";
text-align:center;color: #ffffff;'>&nbsp;&nbsp;&nbsp;&nbsp;<3B>ɼ<EFBFBD><C9BC><EFBFBD>
<span style='font: 600 17px;'>{}</span></span></div>
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
)
label_widget.setStyleSheet(
"background-color:#409eff;"
"margin:6px;"
"border-radius:4px;"
"padding:15 0 15 0;"
)
return label_widget
SET_PERSON_WIDGET_STYLE = _set_person_widget_style
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
def _get_person_widget_text(person_mes):
label_widget = QLabel()
return SET_PERSON_WIDGET_STYLE(label_widget, person_mes)
GET_PERSON_WIDGET_TEXT = _get_person_widget_text
"""**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>"""
PERSON_LIST = "person_list"
NAME = "name"
ID = "id"
SCORE = "score"
COUNT = "count"
IS_CHOOSE = "is_choose"
CLASS = "class"
BAND_ID = "band_id"
PERCENTAGE = "percentage"
STATE = "state"
FINISH_MES = 'finish'
HR = "hr"
BO = "bo"
RANK = "rank"
ROUND = "round"
TOTAL_TIME = 'total_time'
ROUND_LIST = "round_list"
"""**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>"""
EXERCISE_TYPE = "exercise_type"
SIT_UP = "sit_up"
PULL_UP = "pull_up"
HANGING = "hanging"
PUSH_UP = "push_up"
RUNAROUND = "runaround"
RUNNING = "running"
EXERCISE_TYPE_TABLE = {
SIT_UP: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
PULL_UP: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
HANGING: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
PUSH_UP: "<EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD>",
RUNAROUND: "30*2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
RUNNING: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
}
PERSON_MES = "person_mes"
FRAME_GENERATOR = "frame_generator"
ANCHORS_DATA = "anchors_data"
MASTER = "master"
SLAVER = "slaver"