@kuriousdesign/machine-sdk 1.0.60 → 1.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom-types/Machine.d.ts +2 -1
- package/dist/custom-types/Machine.js +1 -0
- package/dist/custom-types/Recipe.d.ts +72 -0
- package/dist/custom-types/Recipe.js +117 -0
- package/dist/custom-types/index.d.ts +1 -1
- package/dist/custom-types/index.js +1 -1
- package/package.json +1 -1
- package/src/custom-types/Machine.ts +4 -2
- package/src/custom-types/Recipe.ts +155 -0
- package/src/custom-types/index.ts +1 -1
- package/src/custom-types/RecipeData.ts +0 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentAnimation, DebugLogData, DeviceRegistration, TaskQueue } from ".";
|
|
1
|
+
import { ComponentAnimation, DebugLogData, DeviceRegistration, RecipeStore, TaskQueue } from ".";
|
|
2
2
|
import { PartDataStatus } from "./Part";
|
|
3
3
|
export interface UserData {
|
|
4
4
|
activeUser: number;
|
|
@@ -43,6 +43,7 @@ export interface Machine {
|
|
|
43
43
|
heartbeatPlc: number;
|
|
44
44
|
heartbeatHmi: number;
|
|
45
45
|
machineLog: LogRecordData;
|
|
46
|
+
recipeStore: RecipeStore;
|
|
46
47
|
}
|
|
47
48
|
export interface LogRecordData {
|
|
48
49
|
list: DebugLogData[];
|
|
@@ -43,5 +43,6 @@ exports.initialMachine = ({
|
|
|
43
43
|
heartbeatPlc: 0,
|
|
44
44
|
heartbeatHmi: 0,
|
|
45
45
|
machineLog: { ...exports.initialLogRecordData },
|
|
46
|
+
recipeStore: { ..._1.initialRecipeStore },
|
|
46
47
|
//deviceLogs: Array(GCs.NUM_DEVICES).fill(null).map(() => ({ ...initialDeviceLogData })),
|
|
47
48
|
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export interface JobData {
|
|
2
|
+
ActiveRecipeIndex: number;
|
|
3
|
+
JobName: string;
|
|
4
|
+
LotQty: number;
|
|
5
|
+
GoodCnt: number;
|
|
6
|
+
ScrapCnt: number;
|
|
7
|
+
SetupStartTime: bigint;
|
|
8
|
+
SetupEndTime: bigint;
|
|
9
|
+
SetupCompleted: boolean;
|
|
10
|
+
JobStartTime: bigint;
|
|
11
|
+
JobEndTime: bigint;
|
|
12
|
+
JobComplete: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface RecipeData {
|
|
15
|
+
linerType: string;
|
|
16
|
+
tubeOuterDiameterMax: number;
|
|
17
|
+
tubePartNumber: string;
|
|
18
|
+
setpointSpeeds: number[];
|
|
19
|
+
setpointDiameters: number[];
|
|
20
|
+
setpointDistances: number[];
|
|
21
|
+
applicatorToolColorId: ApplicatorTools;
|
|
22
|
+
applicatorToolColorString: string;
|
|
23
|
+
weighingFingerId: WeighingFingers;
|
|
24
|
+
weighingFingerString: string;
|
|
25
|
+
numCameras: number;
|
|
26
|
+
cameraIds: number[];
|
|
27
|
+
falseBottomStaysOpen: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare enum CameraIds {
|
|
30
|
+
NONE = 0,
|
|
31
|
+
CAMERA_1 = 1,
|
|
32
|
+
CAMERA_2 = 2,
|
|
33
|
+
CAMERA_3 = 3
|
|
34
|
+
}
|
|
35
|
+
export declare function getCameraIdString(cameraId: CameraIds): string;
|
|
36
|
+
export declare enum TubeTypes {
|
|
37
|
+
NONE = 0,
|
|
38
|
+
TYPE_11726650 = 1,
|
|
39
|
+
TYPE_1809_370 = 2,
|
|
40
|
+
TYPE_1809_126 = 3,
|
|
41
|
+
TYPE_1340_38 = 4,
|
|
42
|
+
TYPE_3811302 = 5,
|
|
43
|
+
TYPE_1755_037 = 6,
|
|
44
|
+
TYPE_1517_038 = 7
|
|
45
|
+
}
|
|
46
|
+
export declare function getTubeTypeString(tubeType: TubeTypes): string;
|
|
47
|
+
export declare const LinerTypes: string[];
|
|
48
|
+
export declare enum ApplicatorTools {
|
|
49
|
+
NONE = 0,
|
|
50
|
+
RED_37_INCH = 1,
|
|
51
|
+
ORANGE_LARGE = 2,
|
|
52
|
+
YELLOW_MEDIUM = 3,
|
|
53
|
+
GREEN_SMALL = 4,
|
|
54
|
+
BLUE_F16 = 5
|
|
55
|
+
}
|
|
56
|
+
export declare enum WeighingFingers {
|
|
57
|
+
NONE = 0,
|
|
58
|
+
RED_MEDIUM = 1,
|
|
59
|
+
ORANGE_LARGE = 2,
|
|
60
|
+
ORANGE_LARGE_2 = 3,
|
|
61
|
+
BLUE_SMALL = 4,
|
|
62
|
+
BLUE_SMALL_2 = 5,
|
|
63
|
+
BLUE_SMALL_3 = 6,
|
|
64
|
+
BLUE_SMALL_4 = 7
|
|
65
|
+
}
|
|
66
|
+
export declare const exampleRecipe: RecipeData;
|
|
67
|
+
export declare const initialRecipe: RecipeData;
|
|
68
|
+
export interface RecipeStore {
|
|
69
|
+
numRecipes: number;
|
|
70
|
+
recipes: RecipeData[];
|
|
71
|
+
}
|
|
72
|
+
export declare const initialRecipeStore: RecipeStore;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initialRecipeStore = exports.initialRecipe = exports.exampleRecipe = exports.WeighingFingers = exports.ApplicatorTools = exports.LinerTypes = exports.TubeTypes = exports.CameraIds = void 0;
|
|
4
|
+
exports.getCameraIdString = getCameraIdString;
|
|
5
|
+
exports.getTubeTypeString = getTubeTypeString;
|
|
6
|
+
var CameraIds;
|
|
7
|
+
(function (CameraIds) {
|
|
8
|
+
CameraIds[CameraIds["NONE"] = 0] = "NONE";
|
|
9
|
+
CameraIds[CameraIds["CAMERA_1"] = 1] = "CAMERA_1";
|
|
10
|
+
CameraIds[CameraIds["CAMERA_2"] = 2] = "CAMERA_2";
|
|
11
|
+
CameraIds[CameraIds["CAMERA_3"] = 3] = "CAMERA_3";
|
|
12
|
+
})(CameraIds || (exports.CameraIds = CameraIds = {}));
|
|
13
|
+
function getCameraIdString(cameraId) {
|
|
14
|
+
switch (cameraId) {
|
|
15
|
+
case CameraIds.CAMERA_1:
|
|
16
|
+
return "Camera 1";
|
|
17
|
+
case CameraIds.CAMERA_2:
|
|
18
|
+
return "Camera 2";
|
|
19
|
+
case CameraIds.CAMERA_3:
|
|
20
|
+
return "Camera 3";
|
|
21
|
+
default:
|
|
22
|
+
return "None";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var TubeTypes;
|
|
26
|
+
(function (TubeTypes) {
|
|
27
|
+
TubeTypes[TubeTypes["NONE"] = 0] = "NONE";
|
|
28
|
+
TubeTypes[TubeTypes["TYPE_11726650"] = 1] = "TYPE_11726650";
|
|
29
|
+
TubeTypes[TubeTypes["TYPE_1809_370"] = 2] = "TYPE_1809_370";
|
|
30
|
+
TubeTypes[TubeTypes["TYPE_1809_126"] = 3] = "TYPE_1809_126";
|
|
31
|
+
TubeTypes[TubeTypes["TYPE_1340_38"] = 4] = "TYPE_1340_38";
|
|
32
|
+
TubeTypes[TubeTypes["TYPE_3811302"] = 5] = "TYPE_3811302";
|
|
33
|
+
TubeTypes[TubeTypes["TYPE_1755_037"] = 6] = "TYPE_1755_037";
|
|
34
|
+
TubeTypes[TubeTypes["TYPE_1517_038"] = 7] = "TYPE_1517_038";
|
|
35
|
+
})(TubeTypes || (exports.TubeTypes = TubeTypes = {}));
|
|
36
|
+
function getTubeTypeString(tubeType) {
|
|
37
|
+
switch (tubeType) {
|
|
38
|
+
case TubeTypes.TYPE_11726650:
|
|
39
|
+
return "11726650";
|
|
40
|
+
case TubeTypes.TYPE_1809_370:
|
|
41
|
+
return "1809-370";
|
|
42
|
+
case TubeTypes.TYPE_1809_126:
|
|
43
|
+
return "1809-126";
|
|
44
|
+
case TubeTypes.TYPE_1340_38:
|
|
45
|
+
return "1340-38";
|
|
46
|
+
case TubeTypes.TYPE_3811302:
|
|
47
|
+
return "3811302";
|
|
48
|
+
case TubeTypes.TYPE_1755_037:
|
|
49
|
+
return "1755-037";
|
|
50
|
+
case TubeTypes.TYPE_1517_038:
|
|
51
|
+
return "1517-038";
|
|
52
|
+
default:
|
|
53
|
+
return "None";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.LinerTypes = [
|
|
57
|
+
"CKU",
|
|
58
|
+
"Tribrid",
|
|
59
|
+
"1755",
|
|
60
|
+
];
|
|
61
|
+
var ApplicatorTools;
|
|
62
|
+
(function (ApplicatorTools) {
|
|
63
|
+
ApplicatorTools[ApplicatorTools["NONE"] = 0] = "NONE";
|
|
64
|
+
ApplicatorTools[ApplicatorTools["RED_37_INCH"] = 1] = "RED_37_INCH";
|
|
65
|
+
ApplicatorTools[ApplicatorTools["ORANGE_LARGE"] = 2] = "ORANGE_LARGE";
|
|
66
|
+
ApplicatorTools[ApplicatorTools["YELLOW_MEDIUM"] = 3] = "YELLOW_MEDIUM";
|
|
67
|
+
ApplicatorTools[ApplicatorTools["GREEN_SMALL"] = 4] = "GREEN_SMALL";
|
|
68
|
+
ApplicatorTools[ApplicatorTools["BLUE_F16"] = 5] = "BLUE_F16";
|
|
69
|
+
})(ApplicatorTools || (exports.ApplicatorTools = ApplicatorTools = {}));
|
|
70
|
+
var WeighingFingers;
|
|
71
|
+
(function (WeighingFingers) {
|
|
72
|
+
WeighingFingers[WeighingFingers["NONE"] = 0] = "NONE";
|
|
73
|
+
WeighingFingers[WeighingFingers["RED_MEDIUM"] = 1] = "RED_MEDIUM";
|
|
74
|
+
WeighingFingers[WeighingFingers["ORANGE_LARGE"] = 2] = "ORANGE_LARGE";
|
|
75
|
+
WeighingFingers[WeighingFingers["ORANGE_LARGE_2"] = 3] = "ORANGE_LARGE_2";
|
|
76
|
+
WeighingFingers[WeighingFingers["BLUE_SMALL"] = 4] = "BLUE_SMALL";
|
|
77
|
+
WeighingFingers[WeighingFingers["BLUE_SMALL_2"] = 5] = "BLUE_SMALL_2";
|
|
78
|
+
WeighingFingers[WeighingFingers["BLUE_SMALL_3"] = 6] = "BLUE_SMALL_3";
|
|
79
|
+
WeighingFingers[WeighingFingers["BLUE_SMALL_4"] = 7] = "BLUE_SMALL_4";
|
|
80
|
+
})(WeighingFingers || (exports.WeighingFingers = WeighingFingers = {}));
|
|
81
|
+
exports.exampleRecipe = {
|
|
82
|
+
linerType: "CKU",
|
|
83
|
+
tubeOuterDiameterMax: 38.1,
|
|
84
|
+
tubePartNumber: "11726650",
|
|
85
|
+
setpointSpeeds: [100, 150, 200],
|
|
86
|
+
setpointDiameters: [30.0, 28.5, 27.0],
|
|
87
|
+
setpointDistances: [100.0, 200.0, 300.0],
|
|
88
|
+
applicatorToolColorId: ApplicatorTools.RED_37_INCH,
|
|
89
|
+
applicatorToolColorString: "Red 3/7 Inch",
|
|
90
|
+
weighingFingerId: WeighingFingers.RED_MEDIUM,
|
|
91
|
+
weighingFingerString: "Red Medium",
|
|
92
|
+
numCameras: 2,
|
|
93
|
+
cameraIds: [CameraIds.CAMERA_1, CameraIds.CAMERA_2],
|
|
94
|
+
falseBottomStaysOpen: false,
|
|
95
|
+
};
|
|
96
|
+
const MAX_APPLICATOR_SETPOINTS = 10;
|
|
97
|
+
const MAX_CAMERAS = 3;
|
|
98
|
+
const MAX_NUM_RECIPES = 20;
|
|
99
|
+
exports.initialRecipe = {
|
|
100
|
+
linerType: "",
|
|
101
|
+
tubeOuterDiameterMax: 0.0,
|
|
102
|
+
tubePartNumber: "",
|
|
103
|
+
setpointSpeeds: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
104
|
+
setpointDiameters: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
105
|
+
setpointDistances: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
106
|
+
applicatorToolColorId: ApplicatorTools.NONE,
|
|
107
|
+
applicatorToolColorString: "",
|
|
108
|
+
weighingFingerId: WeighingFingers.NONE,
|
|
109
|
+
weighingFingerString: "",
|
|
110
|
+
numCameras: 0,
|
|
111
|
+
cameraIds: Array(MAX_CAMERAS).fill(CameraIds.NONE),
|
|
112
|
+
falseBottomStaysOpen: false,
|
|
113
|
+
};
|
|
114
|
+
exports.initialRecipeStore = {
|
|
115
|
+
numRecipes: 2,
|
|
116
|
+
recipes: Array(MAX_NUM_RECIPES).fill(exports.exampleRecipe),
|
|
117
|
+
};
|
|
@@ -5,7 +5,7 @@ export * from "./BaseDevice";
|
|
|
5
5
|
export * from "./Machine";
|
|
6
6
|
export * from "./RackData";
|
|
7
7
|
export * from "./GlobalConstants";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./Recipe";
|
|
9
9
|
export * from "./RecipeManagerFB";
|
|
10
10
|
export * from "./UserManagerFB";
|
|
11
11
|
export * from "./TaskQueue";
|
|
@@ -21,7 +21,7 @@ __exportStar(require("./BaseDevice"), exports);
|
|
|
21
21
|
__exportStar(require("./Machine"), exports);
|
|
22
22
|
__exportStar(require("./RackData"), exports);
|
|
23
23
|
__exportStar(require("./GlobalConstants"), exports);
|
|
24
|
-
__exportStar(require("./
|
|
24
|
+
__exportStar(require("./Recipe"), exports);
|
|
25
25
|
__exportStar(require("./RecipeManagerFB"), exports);
|
|
26
26
|
__exportStar(require("./UserManagerFB"), exports);
|
|
27
27
|
__exportStar(require("./TaskQueue"), exports);
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComponentAnimation, DebugLogData, DeviceConstants,
|
|
2
|
-
import { initialPartDataStatus,
|
|
1
|
+
import { ComponentAnimation, DebugLogData, DeviceConstants, DeviceRegistration, initialDebugLogData, initialRecipeStore, initialTaskQueue, RecipeStore, TaskQueue } from ".";
|
|
2
|
+
import { initialPartDataStatus, PartDataStatus } from "./Part";
|
|
3
3
|
import { GCs } from "./GlobalConstants";
|
|
4
4
|
|
|
5
5
|
|
|
@@ -86,6 +86,7 @@ export interface Machine {
|
|
|
86
86
|
heartbeatPlc: number;
|
|
87
87
|
heartbeatHmi: number;
|
|
88
88
|
machineLog: LogRecordData;
|
|
89
|
+
recipeStore: RecipeStore;
|
|
89
90
|
//deviceLogs: DeviceLogData[]; //ARRAY[0..(GCs.NUM_DEVICES-1)] OF DeviceLogData;
|
|
90
91
|
}
|
|
91
92
|
|
|
@@ -124,5 +125,6 @@ export const initialMachine: Machine = ({
|
|
|
124
125
|
heartbeatPlc: 0,
|
|
125
126
|
heartbeatHmi: 0,
|
|
126
127
|
machineLog: { ...initialLogRecordData },
|
|
128
|
+
recipeStore: { ...initialRecipeStore },
|
|
127
129
|
//deviceLogs: Array(GCs.NUM_DEVICES).fill(null).map(() => ({ ...initialDeviceLogData })),
|
|
128
130
|
});
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export interface JobData {
|
|
2
|
+
ActiveRecipeIndex: number; // used with Machine.RecipeStore.Recipes array
|
|
3
|
+
JobName: string; // this is the identifier for the specific job
|
|
4
|
+
LotQty: number; // how many parts you are supposed to make per the job request
|
|
5
|
+
GoodCnt: number; // how many good parts you've completed since starting the job
|
|
6
|
+
ScrapCnt: number; // how many parts you've scrapped since starting the job
|
|
7
|
+
SetupStartTime: bigint; // timestamp
|
|
8
|
+
SetupEndTime: bigint; // timestamp
|
|
9
|
+
SetupCompleted: boolean; // status
|
|
10
|
+
JobStartTime: bigint; // timestamp
|
|
11
|
+
JobEndTime: bigint; // timestamp
|
|
12
|
+
JobComplete: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface RecipeData {
|
|
16
|
+
linerType: string; // display purposes only
|
|
17
|
+
tubeOuterDiameterMax: number; // mm, used for robot offsets in fixture
|
|
18
|
+
tubePartNumber: string; // display purposes only
|
|
19
|
+
setpointSpeeds: number[]; // speed robot uses while applying liner
|
|
20
|
+
setpointDiameters: number[]; // mm of Inner Diameters
|
|
21
|
+
setpointDistances: number[]; // mm of Distances relative to false bottom
|
|
22
|
+
applicatorToolColorId: ApplicatorTools;
|
|
23
|
+
applicatorToolColorString: string;
|
|
24
|
+
weighingFingerId: WeighingFingers;
|
|
25
|
+
weighingFingerString: string;
|
|
26
|
+
numCameras: number; // number of cameras needed to take photos of a tube
|
|
27
|
+
cameraIds: number[]; // used with NumCameras to determine how photos are taken
|
|
28
|
+
falseBottomStaysOpen: boolean; // this also determines if only the tall fixture is used or not
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export enum CameraIds {
|
|
32
|
+
NONE = 0,
|
|
33
|
+
CAMERA_1 = 1,
|
|
34
|
+
CAMERA_2 = 2,
|
|
35
|
+
CAMERA_3 = 3,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function getCameraIdString(cameraId: CameraIds): string {
|
|
39
|
+
switch (cameraId) {
|
|
40
|
+
case CameraIds.CAMERA_1:
|
|
41
|
+
return "Camera 1";
|
|
42
|
+
case CameraIds.CAMERA_2:
|
|
43
|
+
return "Camera 2";
|
|
44
|
+
case CameraIds.CAMERA_3:
|
|
45
|
+
return "Camera 3";
|
|
46
|
+
default:
|
|
47
|
+
return "None";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export enum TubeTypes {
|
|
52
|
+
NONE = 0,
|
|
53
|
+
TYPE_11726650 = 1,
|
|
54
|
+
TYPE_1809_370 = 2,
|
|
55
|
+
TYPE_1809_126 = 3,
|
|
56
|
+
TYPE_1340_38 = 4,
|
|
57
|
+
TYPE_3811302 = 5,
|
|
58
|
+
TYPE_1755_037 = 6,
|
|
59
|
+
TYPE_1517_038 = 7
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function getTubeTypeString(tubeType: TubeTypes): string {
|
|
63
|
+
switch (tubeType) {
|
|
64
|
+
case TubeTypes.TYPE_11726650:
|
|
65
|
+
return "11726650";
|
|
66
|
+
case TubeTypes.TYPE_1809_370:
|
|
67
|
+
return "1809-370";
|
|
68
|
+
case TubeTypes.TYPE_1809_126:
|
|
69
|
+
return "1809-126";
|
|
70
|
+
case TubeTypes.TYPE_1340_38:
|
|
71
|
+
return "1340-38";
|
|
72
|
+
case TubeTypes.TYPE_3811302:
|
|
73
|
+
return "3811302";
|
|
74
|
+
case TubeTypes.TYPE_1755_037:
|
|
75
|
+
return "1755-037";
|
|
76
|
+
case TubeTypes.TYPE_1517_038:
|
|
77
|
+
return "1517-038";
|
|
78
|
+
default:
|
|
79
|
+
return "None";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const LinerTypes: string[] = [
|
|
84
|
+
"CKU",
|
|
85
|
+
"Tribrid",
|
|
86
|
+
"1755",
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
export enum ApplicatorTools {
|
|
90
|
+
NONE = 0,
|
|
91
|
+
RED_37_INCH = 1,
|
|
92
|
+
ORANGE_LARGE = 2,
|
|
93
|
+
YELLOW_MEDIUM = 3,
|
|
94
|
+
GREEN_SMALL = 4,
|
|
95
|
+
BLUE_F16 = 5
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
export enum WeighingFingers {
|
|
100
|
+
NONE = 0,
|
|
101
|
+
RED_MEDIUM = 1,
|
|
102
|
+
ORANGE_LARGE = 2,
|
|
103
|
+
ORANGE_LARGE_2 = 3,
|
|
104
|
+
BLUE_SMALL = 4,
|
|
105
|
+
BLUE_SMALL_2 = 5,
|
|
106
|
+
BLUE_SMALL_3 = 6,
|
|
107
|
+
BLUE_SMALL_4 = 7
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
export const exampleRecipe: RecipeData = {
|
|
112
|
+
linerType: "CKU",
|
|
113
|
+
tubeOuterDiameterMax: 38.1,
|
|
114
|
+
tubePartNumber: "11726650",
|
|
115
|
+
setpointSpeeds: [100, 150, 200],
|
|
116
|
+
setpointDiameters: [30.0, 28.5, 27.0],
|
|
117
|
+
setpointDistances: [100.0, 200.0, 300.0],
|
|
118
|
+
applicatorToolColorId: ApplicatorTools.RED_37_INCH,
|
|
119
|
+
applicatorToolColorString: "Red 3/7 Inch",
|
|
120
|
+
weighingFingerId: WeighingFingers.RED_MEDIUM,
|
|
121
|
+
weighingFingerString: "Red Medium",
|
|
122
|
+
numCameras: 2,
|
|
123
|
+
cameraIds: [CameraIds.CAMERA_1, CameraIds.CAMERA_2],
|
|
124
|
+
falseBottomStaysOpen: false,
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const MAX_APPLICATOR_SETPOINTS = 10;
|
|
128
|
+
const MAX_CAMERAS = 3;
|
|
129
|
+
const MAX_NUM_RECIPES = 20;
|
|
130
|
+
|
|
131
|
+
export const initialRecipe: RecipeData = {
|
|
132
|
+
linerType: "",
|
|
133
|
+
tubeOuterDiameterMax: 0.0,
|
|
134
|
+
tubePartNumber: "",
|
|
135
|
+
setpointSpeeds: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
136
|
+
setpointDiameters: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
137
|
+
setpointDistances: Array(MAX_APPLICATOR_SETPOINTS).fill(0),
|
|
138
|
+
applicatorToolColorId: ApplicatorTools.NONE,
|
|
139
|
+
applicatorToolColorString: "",
|
|
140
|
+
weighingFingerId: WeighingFingers.NONE,
|
|
141
|
+
weighingFingerString: "",
|
|
142
|
+
numCameras: 0,
|
|
143
|
+
cameraIds: Array(MAX_CAMERAS).fill(CameraIds.NONE),
|
|
144
|
+
falseBottomStaysOpen: false,
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export interface RecipeStore {
|
|
148
|
+
numRecipes: number;
|
|
149
|
+
recipes: RecipeData[];
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export const initialRecipeStore: RecipeStore = {
|
|
153
|
+
numRecipes: 2,
|
|
154
|
+
recipes: Array(MAX_NUM_RECIPES).fill(exampleRecipe),
|
|
155
|
+
};
|
|
@@ -5,7 +5,7 @@ export * from "./BaseDevice";
|
|
|
5
5
|
export * from "./Machine";
|
|
6
6
|
export * from "./RackData";
|
|
7
7
|
export * from "./GlobalConstants";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./Recipe";
|
|
9
9
|
export * from "./RecipeManagerFB";
|
|
10
10
|
export * from "./UserManagerFB";
|
|
11
11
|
export * from "./TaskQueue";
|