UNPKG

@kuriousdesign/machine-sdk

Version:

Shared data types and helpers for machine-related repositories

87 lines (80 loc) 2.56 kB
import { DeviceConstants } from "./BaseDevice"; // TYPE Priorities : // ( // NONE := 0, //do not remove or change this // RECOVER_ROBOT :=1, // LOAD_PARTS:=2, // START_POT_PRESSURIZATION:=10, //param0: explain what the parameters do here, param1: continue to explain each of them // PRE_WEIGH_TUBES:=20, //no params: // APPLY_LINER :=30, // PHOTOGRAPH_TUBES :=40, // POST_WEIGH_TUBES:=50, // START_POT_DEPRESSURIZATION:=60, // WAIT_IMAGE_INSPECTION:=70, // UNLOAD_PARTS:=80 // ); // END_TYPE export enum Priorities { NONE = 0, // do not remove or change this LOAD_PARTS = 2, START_POT_PRESSURIZATION = 10, PRE_WEIGH_TUBES = 20, APPLY_LINER = 30, PHOTOGRAPH_TUBES = 40, POST_WEIGH_TUBES = 50, START_POT_DEPRESSURIZATION = 60, WAIT_IMAGE_INSPECTION = 70, UNLOAD_PARTS = 80 } export function priorityToString(priority: Priorities): string { switch (priority) { case Priorities.NONE: return "None"; case Priorities.LOAD_PARTS: return "Load Parts"; case Priorities.START_POT_PRESSURIZATION: return "Start Pot Pressurization"; case Priorities.PRE_WEIGH_TUBES: return "Pre Weigh Tubes"; case Priorities.APPLY_LINER: return "Apply Liner"; case Priorities.PHOTOGRAPH_TUBES: return "Photograph Tubes"; case Priorities.POST_WEIGH_TUBES: return "Post Weigh Tubes"; case Priorities.START_POT_DEPRESSURIZATION: return "Start Pot Depressurization"; case Priorities.WAIT_IMAGE_INSPECTION: return "Wait Image Inspection"; case Priorities.UNLOAD_PARTS: return "Unload Parts"; default: return "Unknown"; } } export interface TaskData { description:string; targetId: number; taskId: number; // specific to the targetId paramArray: number[]; // ARRAY[0..DeviceConstants.MAX_NUM_PARAMS-1] OF LREAL; state: number; // DeviceStates: 0 (NONE), IDLE, RUNNING, PAUSED, ERROR, DONE } export const initialTaskData: TaskData = { description: "", targetId: 0, taskId: 0, paramArray: Array(DeviceConstants.MAX_NUM_PARAMS).fill(0), state: 0 }; export interface TaskQueue { topPriority: Priorities; taskList: TaskData[]; taskCnt: number; activeTaskIndex: number; } export const initialTaskQueue: TaskQueue = { topPriority: Priorities.NONE, taskList: Array(DeviceConstants.MAX_NUM_PARAMS).fill(null).map(() => ({ ...initialTaskData })), taskCnt: 0, activeTaskIndex: -1 };