Files
WebUITest-RealProjecT/FrontEnd/types.ts
arDTDev 6219c4c60e feat: Implement vision menu, processed data panel, and UI improvements
- Add VisionMenu component with Camera (QRCode) and Barcode (Keyence) submenus
- Remove old CameraPanel component and replace with dropdown menu structure
- Add ProcessedDataPanel to display processed data in bottom dock (5 rows visible)
- Create SystemStatusPanel component with horizontal button layout (START/STOP/RESET)
- Create EventLogPanel component for better code organization
- Add device initialization feature with 7-axis progress tracking
- Add GetProcessedData and GetInitializeStatus backend methods
- Update Header menu layout to vertical (icon on top, text below) for more space
- Update HomePage layout with bottom-docked ProcessedDataPanel
- Refactor HomePage to use new modular components

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 22:18:55 +09:00

110 lines
2.5 KiB
TypeScript

export enum SystemState {
IDLE = 'IDLE',
RUNNING = 'RUNNING',
ERROR = 'ERROR',
PAUSED = 'PAUSED',
}
export interface AxisPosition {
id: string;
name: string;
axis: 'X' | 'Y' | 'Z';
value: number;
speed: number;
acc: number;
dec: number;
}
export interface Recipe {
id: string;
name: string;
lastModified: string;
Motion?: string;
BCD_1D?: boolean;
BCD_QR?: boolean;
BCD_DM?: boolean;
DisableCamera?: boolean;
DisablePrinter?: boolean;
AutoOutConveyor?: number;
[key: string]: any;
}
export interface IOPoint {
id: number;
name: string;
type: 'input' | 'output';
state: boolean;
}
export interface LogEntry {
id: number;
timestamp: string;
message: string;
type: 'info' | 'warning' | 'error';
}
export interface RobotTarget {
x: number;
y: number;
z: number;
}
// WebView2 Native Bridge Types
export interface ConfigItem {
Key: string;
Value: string;
Group: string;
Type: 'String' | 'Number' | 'Boolean';
Description: string;
}
export interface ProcessedDataRow {
target: string;
JTYPE: string;
STIME: string;
BATCH: string;
SID: string;
RID: string;
VNAME: string;
LOC: string;
QTY: number;
qtymax: number;
MFGDATE: string;
VLOT: string;
PARTNO: string;
MCN: string;
REMARK: string;
PRNATTACH: boolean;
PRNVALID: boolean;
}
declare global {
interface Window {
chrome?: {
webview?: {
hostObjects: {
machine: {
MoveAxis(axis: string, value: number): Promise<void>;
SetIO(id: number, isInput: boolean, state: boolean): Promise<void>;
SystemControl(command: string): Promise<void>;
SelectRecipe(recipeId: string): Promise<string>;
CopyRecipe(recipeId: string, newName: string): Promise<string>;
DeleteRecipe(recipeId: string): Promise<string>;
GetConfig(): Promise<string>;
GetIOList(): Promise<string>;
GetRecipeList(): Promise<string>;
GetRecipe(recipeTitle: string): Promise<string>;
SaveRecipe(recipeTitle: string, recipeData: string): Promise<string>;
SaveConfig(configJson: string): Promise<void>;
InitializeDevice(): Promise<string>;
GetInitializeStatus(): Promise<string>;
GetProcessedData(): Promise<string>;
}
};
addEventListener(type: string, listener: (event: any) => void): void;
removeEventListener(type: string, listener: (event: any) => void): void;
postMessage(message: any): void;
}
}
}
}