KNEO-Academy/src/config.py

79 lines
2.4 KiB
Python

from enum import Enum
import os
APPDATA_PATH = os.environ.get("LOCALAPPDATA")
# 取得專案根目錄的絕對路徑並設定 UXUI_ASSETS 為絕對路徑
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
UXUI_ASSETS = os.path.join(PROJECT_ROOT, "uxui", "")
# 新版路徑結構 (不需要獨立的 models 和 scripts 資料夾)
UTILS_DIR = os.path.join(APPDATA_PATH, "Kneron_Academy", "utils")
SCRIPT_CONFIG = os.path.join(UTILS_DIR, "config.json")
UPLOAD_DIR = os.path.join(APPDATA_PATH, "Kneron_Academy", "uploads")
FW_DIR = os.path.join(APPDATA_PATH, "Kneron_Academy", "firmware")
# Global Constants
APP_NAME = "Innovedus AI Playground"
WINDOW_SIZE = (1200, 900)
BACKGROUND_COLOR = "#143058"
SECONDARY_COLOR = "#005ED7"
MASK_STYLE = f"background-color: rgba(0, 0, 0, 128);"
DEVICE_BOX_STYLE = f"background-color: {BACKGROUND_COLOR}; padding: 20px; border-radius: 20px; padding: 10px 20px;"
BUTTON_STYLE = """
QPushButton {
background: transparent;
color: white;
border: 2px solid white;
border-radius: 15px;
padding: 5px 10px;
}
QPushButton:hover {
background-color: rgba(255, 255, 255, 50);
}
QPushButton:pressed {
background-color: rgba(255, 255, 255, 100);
}
"""
SQUARE_BUTTON_STYLE = "background: transparent; color: white; border: 1px transparent; border-radius: 10px; "
POPUP_SIZE_RATIO = 0.67
NO_DEVICE_GIF = UXUI_ASSETS + "no_device_temp.gif"
# Firmware Path Relatives
FIRMWARE_PATHS = {
"scpu": "../../res/firmware/fw_scpu.bin",
"ncpu": "../../res/firmware/fw_ncpu.bin",
}
# MODEL_BUTTON = [
# ('Face Detection', self.run_face_detection),
# ('Gender/Age Detection', self.run_gender_age_detection),
# ('Object Detection', self.run_object_detection),
# ('Mask Detection', self.run_mask_detection),
# ('Image Project', self.start_image_project),
# ('Upload Model', self.upload_model)
# ]
# Model Inference Parameter
MODEL_TIMEOUT = 5000
# TODO: Mapping of the values
class DeviceType(Enum):
KL520 = 256
# KL720 = 720
KL720 = 1824
KL720_L = 512
KL530 = 530
KL832 = 832
KL730 = 732
KL630 = 630
KL540 = 540
DongleModelMap = {
"0x100": "KL520", # product_id "0x100" 對應到 520 系列
"0x720": "KL720", # product_id "0x720" 對應到 720 系列
}
DongleIconMap = {
"0x100": "ic_dongle_520.png",
"0x720": "ic_dongle_720.png"
}