import motherboardSvg from "@/components/equipments/svg/motherboard.svg"; import buttonSvg from "@/components/equipments/svg/button.svg"; // 元器件配置接口 export interface ComponentConfig { type: string; name: string; previewSize?: number; } // 虚拟外设配置接口 export interface VirtualDeviceConfig { type: string; name: string; previewSize?: number; } // 模板配置接口 export interface TemplateConfig { name: string; id: string; description: string; path: string; thumbnailUrl: string; capsPage?: string; } // 预览尺寸配置 export const previewSizes: Record = { MechanicalButton: 0.4, Switch: 0.35, EC11RotaryEncoder: 0.4, Pin: 0.8, SMT_LED: 0.7, SevenSegmentDisplayUltimate: 0.4, HDMI: 0.5, DDR: 0.5, ETH: 0.5, SD: 0.6, SFP: 0.4, SMA: 0.7, MotherBoard: 0.13, PG2L100H_FBG676: 0.2, BaseBoard: 0.15, DDS: 0.3, }; // 可用元器件列表 export const availableComponents: ComponentConfig[] = [ { type: "MechanicalButton", name: "机械按钮" }, { type: "Switch", name: "开关" }, { type: "EC11RotaryEncoder", name: "EC11旋转编码器" }, { type: "Pin", name: "引脚" }, { type: "SMT_LED", name: "贴片LED" }, { type: "SevenSegmentDisplayUltimate", name: "数码管" }, { type: "HDMI", name: "HDMI接口" }, { type: "DDR", name: "DDR内存" }, { type: "ETH", name: "以太网接口" }, { type: "SD", name: "SD卡插槽" }, { type: "SFP", name: "SFP光纤模块" }, { type: "SMA", name: "SMA连接器" }, { type: "MotherBoard", name: "主板" }, { type: "PG2L100H_FBG676", name: "PG2L100H FBG676芯片" }, { type: "BaseBoard", name: "通用底板" }, ]; // 可用虚拟外设列表 export const availableVirtualDevices: VirtualDeviceConfig[] = [ { type: "DDS", name: "信号发生器" }, ]; // 可用模板列表 export const availableTemplates: TemplateConfig[] = [ { name: "PG2L100H 基础开发板", id: "PG2L100H_Pango100pro", description: "包含主板和两个LED的基本设置", path: "/EquipmentTemplates/PG2L100H_Pango100pro.json", thumbnailUrl: motherboardSvg, }, { name: "矩阵键盘", id: "MatrixKey", description: "包含4x4,共16个按键的矩阵键盘", path: "/EquipmentTemplates/MatrixKey.json", thumbnailUrl: buttonSvg, }, ]; // 获取组件预览尺寸的工具函数 export function getPreviewSize(componentType: string): number { return previewSizes[componentType] || 0.5; } // 获取所有组件类型(用于预加载) export function getAllComponentTypes(): string[] { const componentTypes = availableComponents.map((c) => c.type); const virtualDeviceTypes = availableVirtualDevices.map((d) => d.type); return [...componentTypes, ...virtualDeviceTypes]; } // 导出组件管理器服务 export { useProvideComponentManager, useComponentManager, } from "./composable/componentManager"; // 导出图表管理器 export type { DiagramData, DiagramPart } from "./composable/diagramManager"; // 导出连线管理器 export type { WireItem } from "./composable/wireManager";