@kuriousdesign/machine-sdk 1.0.65 → 1.0.69
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/.github/workflows/publish.yml +28 -0
- package/README.md +28 -51
- package/dist/custom-types/BaseDevice/Device.d.ts +1 -1
- package/dist/custom-types/BaseDevice/Device.js +1 -1
- package/dist/custom-types/BaseDevice/index.d.ts +1 -0
- package/dist/custom-types/BaseDevice/index.js +1 -0
- package/dist/custom-types/Devices/index.d.ts +0 -2
- package/dist/custom-types/Devices/index.js +0 -2
- package/dist/custom-types/Recipe.d.ts +1 -0
- package/dist/custom-types/Recipe.js +2 -0
- package/package.json +1 -1
- package/src/abb/enums/GCs.mod +44 -44
- package/src/abb/enums/PartLocationIds.mod +13 -13
- package/src/abb/enums/RobTasks.mod +18 -18
- package/src/abb/enums/States.mod +20 -20
- package/src/abb/procs/MainModule.mod +188 -188
- package/src/abb/records/DeviceDataTypes.mod +35 -35
- package/src/custom-types/AppState.ts +115 -115
- package/src/custom-types/BaseDevice/Actions.ts +45 -45
- package/src/custom-types/BaseDevice/ApiOpcua.ts +71 -71
- package/src/custom-types/BaseDevice/Device.ts +224 -224
- package/src/custom-types/BaseDevice/DeviceCmds.ts +45 -45
- package/src/custom-types/BaseDevice/DeviceConstants.ts +9 -9
- package/src/custom-types/{Devices → BaseDevice}/DeviceTypes.ts +60 -60
- package/src/custom-types/BaseDevice/Processes.ts +38 -38
- package/src/custom-types/BaseDevice/index.ts +7 -6
- package/src/custom-types/Bridge.ts +8 -8
- package/src/custom-types/Com.ts +19 -19
- package/src/custom-types/Devices/Axis.ts +222 -222
- package/src/custom-types/Devices/Conductor.ts +14 -14
- package/src/custom-types/Devices/Pot.ts +24 -24
- package/src/custom-types/Devices/Robot.ts +208 -208
- package/src/custom-types/Devices/index.ts +3 -4
- package/src/custom-types/GlobalConstants.ts +98 -98
- package/src/custom-types/HMI.ts +52 -52
- package/src/custom-types/Machine.ts +130 -130
- package/src/custom-types/Part.ts +238 -238
- package/src/custom-types/RackData.ts +22 -22
- package/src/custom-types/Recipe.ts +250 -247
- package/src/custom-types/RecipeManagerFB.ts +10 -10
- package/src/custom-types/TaskQueue.ts +86 -86
- package/src/custom-types/UserManagerFB.ts +7 -7
- package/src/custom-types/index.ts +14 -14
- package/src/enums/Colors.ts +79 -79
- package/src/enums/DeviceId.ts +116 -116
- package/src/enums/ExtrusionType.ts +5 -5
- package/src/enums/OpcuaDatatype.ts +27 -27
- package/src/enums/Pages.ts +21 -21
- package/src/enums/States.ts +173 -173
- package/src/enums/TaskId.ts +37 -37
- package/src/enums/index.ts +9 -9
- package/src/functions/colorMapping.ts +43 -43
- package/src/functions/index.ts +2 -2
- package/src/functions/mqtt-helpers.ts +20 -20
- package/src/functions/topicMapping.ts +6 -6
- package/src/index.ts +3 -3
- package/src/plc-tags/index.ts +38 -38
- package/src/plc-tags/mqtt.ts +9 -9
- package/src/plc-tags/opcua.ts +3 -3
- package/src/styles/animations.css +15 -15
- package/tsconfig.json +13 -13
- package/dist/custom-types/Devices/Device.d.ts +0 -111
- package/dist/custom-types/Devices/Device.js +0 -108
- package/dist/custom-types/PartData.d.ts +0 -11
- package/dist/custom-types/PartData.js +0 -2
- package/dist/custom-types/RecipeData.d.ts +0 -7
- package/dist/custom-types/RecipeData.js +0 -2
- package/dist/enums/Errors.d.ts +0 -6
- package/dist/enums/Errors.js +0 -28
- package/dist/enums/Priorities.d.ts +0 -18
- package/dist/enums/Priorities.js +0 -24
- package/dist/enums/RobPositions.d.ts +0 -12
- package/dist/enums/RobPositions.js +0 -16
- package/dist/enums/Warnings.d.ts +0 -6
- package/dist/enums/Warnings.js +0 -18
- /package/dist/custom-types/{Devices → BaseDevice}/DeviceTypes.d.ts +0 -0
- /package/dist/custom-types/{Devices → BaseDevice}/DeviceTypes.js +0 -0
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
import { PartStateDeprecated, Page } from "../enums";
|
|
2
|
-
import { ButtonBar, StatusBar } from "./HMI";
|
|
3
|
-
import { PartDataDeprecated } from "./Part";
|
|
4
|
-
import { Device } from "./BaseDevice/Device";
|
|
5
|
-
import { GlobalConstants } from "./GlobalConstants";
|
|
6
|
-
import {
|
|
7
|
-
RackData,
|
|
8
|
-
RackHmiPbs,
|
|
9
|
-
RecipeData,
|
|
10
|
-
RecipeManagerPbs,
|
|
11
|
-
SystemFaultData,
|
|
12
|
-
TaskQueue,
|
|
13
|
-
UserData,
|
|
14
|
-
UserManagerFB,
|
|
15
|
-
} from ".";
|
|
16
|
-
import { RobDataDEPRECATED } from "./Devices/Robot";
|
|
17
|
-
|
|
18
|
-
export enum NodeId {
|
|
19
|
-
// new node ids
|
|
20
|
-
ButtonBar = "Main.HMI.ButtonBar",
|
|
21
|
-
StatusBar = "Main.HMI.StatusBar",
|
|
22
|
-
RackPbs = "Main.HMI.RackPbs",
|
|
23
|
-
ROB = "Main.ROB",
|
|
24
|
-
CNC = "Main.CNC",
|
|
25
|
-
DBRR = "Main.DBRR",
|
|
26
|
-
WASH = "Main.WASH",
|
|
27
|
-
PartData = "Main.PartData",
|
|
28
|
-
TaskQueue = "Main.TaskQueue",
|
|
29
|
-
GlobalConstants = "GlobalConstants", // TODO: add this to monitored items
|
|
30
|
-
MachineUser = "Machine.User",
|
|
31
|
-
MachineErrors = "Machine.Errors",
|
|
32
|
-
MachineWarnings = "Machine.Warnings",
|
|
33
|
-
RackData = "Main.RackData",
|
|
34
|
-
RecipeData = "Main.RecipeData",
|
|
35
|
-
ActiveJobRecipe = "Main.Job.ActiveRecipe",
|
|
36
|
-
RecipeManagerState = "Main.RecipeManagerFB.State",
|
|
37
|
-
RecipeManagerPbs = "Main.RecipeManagerFB.Pbs",
|
|
38
|
-
RemoteControlPage = "Main.HMI.RemoteControlPage",
|
|
39
|
-
RobData = "Main.RobData",
|
|
40
|
-
|
|
41
|
-
// TODO: add following to montored items, correctly
|
|
42
|
-
UserManagerFB = "Main.UserManagerFB",
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface AppState {
|
|
46
|
-
[NodeId.StatusBar]: StatusBar;
|
|
47
|
-
[NodeId.ButtonBar]: ButtonBar;
|
|
48
|
-
[NodeId.RackPbs]: RackHmiPbs;
|
|
49
|
-
[NodeId.ROB]: Device;
|
|
50
|
-
[NodeId.CNC]: Device;
|
|
51
|
-
[NodeId.DBRR]: Device;
|
|
52
|
-
[NodeId.WASH]: Device;
|
|
53
|
-
[NodeId.PartData]: PartDataDeprecated;
|
|
54
|
-
[NodeId.TaskQueue]: TaskQueue;
|
|
55
|
-
[NodeId.GlobalConstants]: GlobalConstants;
|
|
56
|
-
[NodeId.MachineUser]: UserData;
|
|
57
|
-
[NodeId.MachineErrors]: SystemFaultData;
|
|
58
|
-
[NodeId.MachineWarnings]: SystemFaultData;
|
|
59
|
-
[NodeId.RackData]: RackData;
|
|
60
|
-
[NodeId.RecipeData]: RecipeData[];
|
|
61
|
-
[NodeId.ActiveJobRecipe]: RecipeData;
|
|
62
|
-
[NodeId.RecipeManagerState]: number;
|
|
63
|
-
[NodeId.RecipeManagerPbs]: RecipeManagerPbs;
|
|
64
|
-
[NodeId.UserManagerFB]: UserManagerFB;
|
|
65
|
-
[NodeId.RemoteControlPage]: Page;
|
|
66
|
-
[NodeId.RobData]: RobDataDEPRECATED;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export enum InputNodeId {
|
|
70
|
-
ButtonBarStopBtnClick = "Main.HMI.ButtonBar.StopBtn.wasClicked",
|
|
71
|
-
ButtonBarUnloadbtnClick = "Main.HMI.ButtonBar.UnloadBtn.wasClicked",
|
|
72
|
-
ButtonBarUnlockbtnClick = "Main.HMI.ButtonBar.UnlockBtn.wasClicked",
|
|
73
|
-
ButtonBarEnergizebtnClick = "Main.HMI.ButtonBar.EnergizeBtn.wasClicked",
|
|
74
|
-
ButtonBarStartbtnClick = "Main.HMI.ButtonBar.StartBtn.wasClicked",
|
|
75
|
-
ButtonBarLockbtnClick = "Main.HMI.ButtonBar.LockBtn.wasClicked",
|
|
76
|
-
ButtonBarResetbtnClick = "Main.HMI.ButtonBar.ResetBtn.wasClicked",
|
|
77
|
-
ButtonBarJobchangeBtnClick = "Main.HMI.ButtonBar.JobChangeBtn.wasClicked",
|
|
78
|
-
ButtonBarClearFaultsBtnClick = "Main.HMI.ButtonBar.ClearFaultsBtn.wasClicked",
|
|
79
|
-
|
|
80
|
-
PartDataDoneShelf = "Main.PartData.DoneShelf",
|
|
81
|
-
PartDataRawShelf = "Main.PartData.RawShelf",
|
|
82
|
-
|
|
83
|
-
Username = "Machine.User.Username",
|
|
84
|
-
Password = "Machine.User.Password",
|
|
85
|
-
LoginBtnBlick = "Machine.User.HmiLoginBtn.wasClicked",
|
|
86
|
-
LogoutBtnBlick = "Machine.User.HmiLogoutBtn.wasClicked",
|
|
87
|
-
|
|
88
|
-
EditRawShelfBtnClick = "Main.HMI.RackPbs.EditRawShelfBtn.wasClicked",
|
|
89
|
-
EditDoneShelfBtnClick = "Main.HMI.RackPbs.EditDoneShelfBtn.wasClicked",
|
|
90
|
-
ShelfCancelBtnClick = "Main.HMI.RackPbs.CancelBtn.wasClicked",
|
|
91
|
-
ShelfSaveBtnClick = "Main.HMI.RackPbs.SaveBtn.wasClicked",
|
|
92
|
-
|
|
93
|
-
RecipeManagerEditBtnClick = "Main.recipeManagerFB.pbs.EditBtn.wasClicked",
|
|
94
|
-
RecipeManagerChangeBtnClick = "Main.recipeManagerFB.pbs.ChangeBtn.wasClicked",
|
|
95
|
-
RecipeManagerJobSetupBtnClick = "Main.recipeManagerFB.pbs.JobSetupBtn.wasClicked",
|
|
96
|
-
RecipeManagerActivateBtnClick = "Main.recipeManagerFB.pbs.ActivateBtn",
|
|
97
|
-
RecipeManagerCancelBtnClick = "Main.recipeManagerFB.pbs.CancelBtn",
|
|
98
|
-
RecipeManagerStartSetupBtnClick = "Main.recipeManagerFB.pbs.StartSetupBtn",
|
|
99
|
-
RecipeManagerFinishSetupBtnClick = "Main.recipeManagerFB.pbs.FinishSetupBtn",
|
|
100
|
-
|
|
101
|
-
RecipeData = "Main.RecipeData",
|
|
102
|
-
ActiveJobRecipe = "Machine.Job.ActiveRecipe",
|
|
103
|
-
JobBatchQuantity = "Machine.Job.BatchQty",
|
|
104
|
-
|
|
105
|
-
ActivePage = "Main.HMI.ActivePage",
|
|
106
|
-
|
|
107
|
-
CncPart1 = "Main.PartData.Cnc[0]",
|
|
108
|
-
CncPart2 = "Main.PartData.Cnc[1]",
|
|
109
|
-
PreOpPart1 = "Main.PartData.CncPreOp[0]",
|
|
110
|
-
PreOpPart2 = "Main.PartData.CncPreOp[1]",
|
|
111
|
-
PostOpPart1 = "Main.PartData.CncPostOp[0]",
|
|
112
|
-
PostOpPart2 = "Main.PartData.CncPostOp[1]",
|
|
113
|
-
RobotPart1 = "Main.PartData.Robot[0]",
|
|
114
|
-
RobotPart2 = "Main.PartData.Robot[1]",
|
|
115
|
-
}
|
|
1
|
+
import { PartStateDeprecated, Page } from "../enums";
|
|
2
|
+
import { ButtonBar, StatusBar } from "./HMI";
|
|
3
|
+
import { PartDataDeprecated } from "./Part";
|
|
4
|
+
import { Device } from "./BaseDevice/Device";
|
|
5
|
+
import { GlobalConstants } from "./GlobalConstants";
|
|
6
|
+
import {
|
|
7
|
+
RackData,
|
|
8
|
+
RackHmiPbs,
|
|
9
|
+
RecipeData,
|
|
10
|
+
RecipeManagerPbs,
|
|
11
|
+
SystemFaultData,
|
|
12
|
+
TaskQueue,
|
|
13
|
+
UserData,
|
|
14
|
+
UserManagerFB,
|
|
15
|
+
} from ".";
|
|
16
|
+
import { RobDataDEPRECATED } from "./Devices/Robot";
|
|
17
|
+
|
|
18
|
+
export enum NodeId {
|
|
19
|
+
// new node ids
|
|
20
|
+
ButtonBar = "Main.HMI.ButtonBar",
|
|
21
|
+
StatusBar = "Main.HMI.StatusBar",
|
|
22
|
+
RackPbs = "Main.HMI.RackPbs",
|
|
23
|
+
ROB = "Main.ROB",
|
|
24
|
+
CNC = "Main.CNC",
|
|
25
|
+
DBRR = "Main.DBRR",
|
|
26
|
+
WASH = "Main.WASH",
|
|
27
|
+
PartData = "Main.PartData",
|
|
28
|
+
TaskQueue = "Main.TaskQueue",
|
|
29
|
+
GlobalConstants = "GlobalConstants", // TODO: add this to monitored items
|
|
30
|
+
MachineUser = "Machine.User",
|
|
31
|
+
MachineErrors = "Machine.Errors",
|
|
32
|
+
MachineWarnings = "Machine.Warnings",
|
|
33
|
+
RackData = "Main.RackData",
|
|
34
|
+
RecipeData = "Main.RecipeData",
|
|
35
|
+
ActiveJobRecipe = "Main.Job.ActiveRecipe",
|
|
36
|
+
RecipeManagerState = "Main.RecipeManagerFB.State",
|
|
37
|
+
RecipeManagerPbs = "Main.RecipeManagerFB.Pbs",
|
|
38
|
+
RemoteControlPage = "Main.HMI.RemoteControlPage",
|
|
39
|
+
RobData = "Main.RobData",
|
|
40
|
+
|
|
41
|
+
// TODO: add following to montored items, correctly
|
|
42
|
+
UserManagerFB = "Main.UserManagerFB",
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface AppState {
|
|
46
|
+
[NodeId.StatusBar]: StatusBar;
|
|
47
|
+
[NodeId.ButtonBar]: ButtonBar;
|
|
48
|
+
[NodeId.RackPbs]: RackHmiPbs;
|
|
49
|
+
[NodeId.ROB]: Device;
|
|
50
|
+
[NodeId.CNC]: Device;
|
|
51
|
+
[NodeId.DBRR]: Device;
|
|
52
|
+
[NodeId.WASH]: Device;
|
|
53
|
+
[NodeId.PartData]: PartDataDeprecated;
|
|
54
|
+
[NodeId.TaskQueue]: TaskQueue;
|
|
55
|
+
[NodeId.GlobalConstants]: GlobalConstants;
|
|
56
|
+
[NodeId.MachineUser]: UserData;
|
|
57
|
+
[NodeId.MachineErrors]: SystemFaultData;
|
|
58
|
+
[NodeId.MachineWarnings]: SystemFaultData;
|
|
59
|
+
[NodeId.RackData]: RackData;
|
|
60
|
+
[NodeId.RecipeData]: RecipeData[];
|
|
61
|
+
[NodeId.ActiveJobRecipe]: RecipeData;
|
|
62
|
+
[NodeId.RecipeManagerState]: number;
|
|
63
|
+
[NodeId.RecipeManagerPbs]: RecipeManagerPbs;
|
|
64
|
+
[NodeId.UserManagerFB]: UserManagerFB;
|
|
65
|
+
[NodeId.RemoteControlPage]: Page;
|
|
66
|
+
[NodeId.RobData]: RobDataDEPRECATED;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export enum InputNodeId {
|
|
70
|
+
ButtonBarStopBtnClick = "Main.HMI.ButtonBar.StopBtn.wasClicked",
|
|
71
|
+
ButtonBarUnloadbtnClick = "Main.HMI.ButtonBar.UnloadBtn.wasClicked",
|
|
72
|
+
ButtonBarUnlockbtnClick = "Main.HMI.ButtonBar.UnlockBtn.wasClicked",
|
|
73
|
+
ButtonBarEnergizebtnClick = "Main.HMI.ButtonBar.EnergizeBtn.wasClicked",
|
|
74
|
+
ButtonBarStartbtnClick = "Main.HMI.ButtonBar.StartBtn.wasClicked",
|
|
75
|
+
ButtonBarLockbtnClick = "Main.HMI.ButtonBar.LockBtn.wasClicked",
|
|
76
|
+
ButtonBarResetbtnClick = "Main.HMI.ButtonBar.ResetBtn.wasClicked",
|
|
77
|
+
ButtonBarJobchangeBtnClick = "Main.HMI.ButtonBar.JobChangeBtn.wasClicked",
|
|
78
|
+
ButtonBarClearFaultsBtnClick = "Main.HMI.ButtonBar.ClearFaultsBtn.wasClicked",
|
|
79
|
+
|
|
80
|
+
PartDataDoneShelf = "Main.PartData.DoneShelf",
|
|
81
|
+
PartDataRawShelf = "Main.PartData.RawShelf",
|
|
82
|
+
|
|
83
|
+
Username = "Machine.User.Username",
|
|
84
|
+
Password = "Machine.User.Password",
|
|
85
|
+
LoginBtnBlick = "Machine.User.HmiLoginBtn.wasClicked",
|
|
86
|
+
LogoutBtnBlick = "Machine.User.HmiLogoutBtn.wasClicked",
|
|
87
|
+
|
|
88
|
+
EditRawShelfBtnClick = "Main.HMI.RackPbs.EditRawShelfBtn.wasClicked",
|
|
89
|
+
EditDoneShelfBtnClick = "Main.HMI.RackPbs.EditDoneShelfBtn.wasClicked",
|
|
90
|
+
ShelfCancelBtnClick = "Main.HMI.RackPbs.CancelBtn.wasClicked",
|
|
91
|
+
ShelfSaveBtnClick = "Main.HMI.RackPbs.SaveBtn.wasClicked",
|
|
92
|
+
|
|
93
|
+
RecipeManagerEditBtnClick = "Main.recipeManagerFB.pbs.EditBtn.wasClicked",
|
|
94
|
+
RecipeManagerChangeBtnClick = "Main.recipeManagerFB.pbs.ChangeBtn.wasClicked",
|
|
95
|
+
RecipeManagerJobSetupBtnClick = "Main.recipeManagerFB.pbs.JobSetupBtn.wasClicked",
|
|
96
|
+
RecipeManagerActivateBtnClick = "Main.recipeManagerFB.pbs.ActivateBtn",
|
|
97
|
+
RecipeManagerCancelBtnClick = "Main.recipeManagerFB.pbs.CancelBtn",
|
|
98
|
+
RecipeManagerStartSetupBtnClick = "Main.recipeManagerFB.pbs.StartSetupBtn",
|
|
99
|
+
RecipeManagerFinishSetupBtnClick = "Main.recipeManagerFB.pbs.FinishSetupBtn",
|
|
100
|
+
|
|
101
|
+
RecipeData = "Main.RecipeData",
|
|
102
|
+
ActiveJobRecipe = "Machine.Job.ActiveRecipe",
|
|
103
|
+
JobBatchQuantity = "Machine.Job.BatchQty",
|
|
104
|
+
|
|
105
|
+
ActivePage = "Main.HMI.ActivePage",
|
|
106
|
+
|
|
107
|
+
CncPart1 = "Main.PartData.Cnc[0]",
|
|
108
|
+
CncPart2 = "Main.PartData.Cnc[1]",
|
|
109
|
+
PreOpPart1 = "Main.PartData.CncPreOp[0]",
|
|
110
|
+
PreOpPart2 = "Main.PartData.CncPreOp[1]",
|
|
111
|
+
PostOpPart1 = "Main.PartData.CncPostOp[0]",
|
|
112
|
+
PostOpPart2 = "Main.PartData.CncPostOp[1]",
|
|
113
|
+
RobotPart1 = "Main.PartData.Robot[0]",
|
|
114
|
+
RobotPart2 = "Main.PartData.Robot[1]",
|
|
115
|
+
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { DeviceConstants } from "./DeviceConstants";
|
|
2
|
-
|
|
3
|
-
export enum ActionTypes {
|
|
4
|
-
MISSION = 0,
|
|
5
|
-
CMD = 1,
|
|
6
|
-
TASK = 2,
|
|
7
|
-
PROCESS = 3,
|
|
8
|
-
EXEC_METHOD = 4,
|
|
9
|
-
SCRIPT = 5,
|
|
10
|
-
COUNT = 6 // Update this value to match the number of action types
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function actionTypeToString(actionType: ActionTypes): string {
|
|
14
|
-
switch (actionType) {
|
|
15
|
-
case ActionTypes.MISSION:
|
|
16
|
-
return "MISSION";
|
|
17
|
-
case ActionTypes.CMD:
|
|
18
|
-
return "CMD";
|
|
19
|
-
case ActionTypes.TASK:
|
|
20
|
-
return "TASK";
|
|
21
|
-
case ActionTypes.PROCESS:
|
|
22
|
-
return "PROCESS";
|
|
23
|
-
case ActionTypes.EXEC_METHOD:
|
|
24
|
-
return "EXEC_METHOD";
|
|
25
|
-
case ActionTypes.SCRIPT:
|
|
26
|
-
return "SCRIPT";
|
|
27
|
-
default:
|
|
28
|
-
return "UNKNOWN";
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface DeviceActionRequestData {
|
|
33
|
-
UniqueActionRequestId: number; // Unique identifier for each action request
|
|
34
|
-
SenderId: number;
|
|
35
|
-
ActionType: ActionTypes; // ActionTypes enum
|
|
36
|
-
ActionId: number; // could be cmd, task or processId
|
|
37
|
-
ParamArray: number[]; // Array of LREAL values
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export const initialDeviceActionRequestData: DeviceActionRequestData = {
|
|
41
|
-
UniqueActionRequestId: 0,
|
|
42
|
-
SenderId: 0,
|
|
43
|
-
ActionType: 0,
|
|
44
|
-
ActionId: 0,
|
|
45
|
-
ParamArray: new Array(DeviceConstants.MAX_NUM_PARAMS).fill(0)
|
|
1
|
+
import { DeviceConstants } from "./DeviceConstants";
|
|
2
|
+
|
|
3
|
+
export enum ActionTypes {
|
|
4
|
+
MISSION = 0,
|
|
5
|
+
CMD = 1,
|
|
6
|
+
TASK = 2,
|
|
7
|
+
PROCESS = 3,
|
|
8
|
+
EXEC_METHOD = 4,
|
|
9
|
+
SCRIPT = 5,
|
|
10
|
+
COUNT = 6 // Update this value to match the number of action types
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function actionTypeToString(actionType: ActionTypes): string {
|
|
14
|
+
switch (actionType) {
|
|
15
|
+
case ActionTypes.MISSION:
|
|
16
|
+
return "MISSION";
|
|
17
|
+
case ActionTypes.CMD:
|
|
18
|
+
return "CMD";
|
|
19
|
+
case ActionTypes.TASK:
|
|
20
|
+
return "TASK";
|
|
21
|
+
case ActionTypes.PROCESS:
|
|
22
|
+
return "PROCESS";
|
|
23
|
+
case ActionTypes.EXEC_METHOD:
|
|
24
|
+
return "EXEC_METHOD";
|
|
25
|
+
case ActionTypes.SCRIPT:
|
|
26
|
+
return "SCRIPT";
|
|
27
|
+
default:
|
|
28
|
+
return "UNKNOWN";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface DeviceActionRequestData {
|
|
33
|
+
UniqueActionRequestId: number; // Unique identifier for each action request
|
|
34
|
+
SenderId: number;
|
|
35
|
+
ActionType: ActionTypes; // ActionTypes enum
|
|
36
|
+
ActionId: number; // could be cmd, task or processId
|
|
37
|
+
ParamArray: number[]; // Array of LREAL values
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const initialDeviceActionRequestData: DeviceActionRequestData = {
|
|
41
|
+
UniqueActionRequestId: 0,
|
|
42
|
+
SenderId: 0,
|
|
43
|
+
ActionType: 0,
|
|
44
|
+
ActionId: 0,
|
|
45
|
+
ParamArray: new Array(DeviceConstants.MAX_NUM_PARAMS).fill(0)
|
|
46
46
|
};
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import { DeviceActionRequestData, initialDeviceActionRequestData } from "./Actions";
|
|
2
|
-
|
|
3
|
-
export interface ApiOpcuaReqData {
|
|
4
|
-
id: number; // likely use timestamp ms after epoch
|
|
5
|
-
checkSum: number;
|
|
6
|
-
actionRequestData: DeviceActionRequestData;
|
|
7
|
-
sts: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const initialApiOpcuaReqData: ApiOpcuaReqData = {
|
|
11
|
-
id: 0,
|
|
12
|
-
checkSum: 0,
|
|
13
|
-
actionRequestData: initialDeviceActionRequestData,
|
|
14
|
-
sts: 0
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export interface ApiOpcuaData {
|
|
18
|
-
hmiReq: ApiOpcuaReqData; // read by PLC
|
|
19
|
-
hmiResp: ApiOpcuaReqData; // written by PLC
|
|
20
|
-
orchReq: ApiOpcuaReqData; // read by PLC
|
|
21
|
-
orchResp: ApiOpcuaReqData; // written by PLC
|
|
22
|
-
req: ApiOpcuaReqData; // written by mtac, read by plc
|
|
23
|
-
resp: ApiOpcuaReqData; // written by plc, read by testand
|
|
24
|
-
internalReq: ApiOpcuaReqData; // used internally by mtac
|
|
25
|
-
internalResp: ApiOpcuaReqData; // used internally by mtac
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export const initialApiOpcuaData: ApiOpcuaData = {
|
|
29
|
-
hmiReq: {} as ApiOpcuaReqData,
|
|
30
|
-
hmiResp: {} as ApiOpcuaReqData,
|
|
31
|
-
orchReq: {} as ApiOpcuaReqData,
|
|
32
|
-
orchResp: {} as ApiOpcuaReqData,
|
|
33
|
-
req: {} as ApiOpcuaReqData,
|
|
34
|
-
resp: {} as ApiOpcuaReqData,
|
|
35
|
-
internalReq: {} as ApiOpcuaReqData,
|
|
36
|
-
internalResp: {} as ApiOpcuaReqData
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export enum ApiReqRespStates {
|
|
41
|
-
INACTIVE = 0,
|
|
42
|
-
WRITING = 10,
|
|
43
|
-
REQUEST_READY = 20,
|
|
44
|
-
REJECTED_INVALID_CHECKSUM = 30,
|
|
45
|
-
REJECTED_ACTION_NOT_ACCEPTED = 40,
|
|
46
|
-
REJECTED_INVALID_SENDERID = 50,
|
|
47
|
-
ACCEPTED = 1000,
|
|
48
|
-
// ERROR = 911,
|
|
49
|
-
// DONE = 1000
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function apiReqRespStateToString(state: ApiReqRespStates): string {
|
|
53
|
-
switch (state) {
|
|
54
|
-
case ApiReqRespStates.INACTIVE:
|
|
55
|
-
return "INACTIVE";
|
|
56
|
-
case ApiReqRespStates.WRITING:
|
|
57
|
-
return "WRITING";
|
|
58
|
-
case ApiReqRespStates.REQUEST_READY:
|
|
59
|
-
return "REQUEST_READY";
|
|
60
|
-
case ApiReqRespStates.REJECTED_INVALID_CHECKSUM:
|
|
61
|
-
return "REJECTED_INVALID_CHECKSUM";
|
|
62
|
-
case ApiReqRespStates.REJECTED_ACTION_NOT_ACCEPTED:
|
|
63
|
-
return "REJECTED_ACTION_NOT_ACCEPTED";
|
|
64
|
-
case ApiReqRespStates.REJECTED_INVALID_SENDERID:
|
|
65
|
-
return "REJECTED_INVALID_SENDERID";
|
|
66
|
-
case ApiReqRespStates.ACCEPTED:
|
|
67
|
-
return "ACCEPTED";
|
|
68
|
-
default:
|
|
69
|
-
return "UNKNOWN";
|
|
70
|
-
}
|
|
71
|
-
}
|
|
1
|
+
import { DeviceActionRequestData, initialDeviceActionRequestData } from "./Actions";
|
|
2
|
+
|
|
3
|
+
export interface ApiOpcuaReqData {
|
|
4
|
+
id: number; // likely use timestamp ms after epoch
|
|
5
|
+
checkSum: number;
|
|
6
|
+
actionRequestData: DeviceActionRequestData;
|
|
7
|
+
sts: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const initialApiOpcuaReqData: ApiOpcuaReqData = {
|
|
11
|
+
id: 0,
|
|
12
|
+
checkSum: 0,
|
|
13
|
+
actionRequestData: initialDeviceActionRequestData,
|
|
14
|
+
sts: 0
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export interface ApiOpcuaData {
|
|
18
|
+
hmiReq: ApiOpcuaReqData; // read by PLC
|
|
19
|
+
hmiResp: ApiOpcuaReqData; // written by PLC
|
|
20
|
+
orchReq: ApiOpcuaReqData; // read by PLC
|
|
21
|
+
orchResp: ApiOpcuaReqData; // written by PLC
|
|
22
|
+
req: ApiOpcuaReqData; // written by mtac, read by plc
|
|
23
|
+
resp: ApiOpcuaReqData; // written by plc, read by testand
|
|
24
|
+
internalReq: ApiOpcuaReqData; // used internally by mtac
|
|
25
|
+
internalResp: ApiOpcuaReqData; // used internally by mtac
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const initialApiOpcuaData: ApiOpcuaData = {
|
|
29
|
+
hmiReq: {} as ApiOpcuaReqData,
|
|
30
|
+
hmiResp: {} as ApiOpcuaReqData,
|
|
31
|
+
orchReq: {} as ApiOpcuaReqData,
|
|
32
|
+
orchResp: {} as ApiOpcuaReqData,
|
|
33
|
+
req: {} as ApiOpcuaReqData,
|
|
34
|
+
resp: {} as ApiOpcuaReqData,
|
|
35
|
+
internalReq: {} as ApiOpcuaReqData,
|
|
36
|
+
internalResp: {} as ApiOpcuaReqData
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
export enum ApiReqRespStates {
|
|
41
|
+
INACTIVE = 0,
|
|
42
|
+
WRITING = 10,
|
|
43
|
+
REQUEST_READY = 20,
|
|
44
|
+
REJECTED_INVALID_CHECKSUM = 30,
|
|
45
|
+
REJECTED_ACTION_NOT_ACCEPTED = 40,
|
|
46
|
+
REJECTED_INVALID_SENDERID = 50,
|
|
47
|
+
ACCEPTED = 1000,
|
|
48
|
+
// ERROR = 911,
|
|
49
|
+
// DONE = 1000
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function apiReqRespStateToString(state: ApiReqRespStates): string {
|
|
53
|
+
switch (state) {
|
|
54
|
+
case ApiReqRespStates.INACTIVE:
|
|
55
|
+
return "INACTIVE";
|
|
56
|
+
case ApiReqRespStates.WRITING:
|
|
57
|
+
return "WRITING";
|
|
58
|
+
case ApiReqRespStates.REQUEST_READY:
|
|
59
|
+
return "REQUEST_READY";
|
|
60
|
+
case ApiReqRespStates.REJECTED_INVALID_CHECKSUM:
|
|
61
|
+
return "REJECTED_INVALID_CHECKSUM";
|
|
62
|
+
case ApiReqRespStates.REJECTED_ACTION_NOT_ACCEPTED:
|
|
63
|
+
return "REJECTED_ACTION_NOT_ACCEPTED";
|
|
64
|
+
case ApiReqRespStates.REJECTED_INVALID_SENDERID:
|
|
65
|
+
return "REJECTED_INVALID_SENDERID";
|
|
66
|
+
case ApiReqRespStates.ACCEPTED:
|
|
67
|
+
return "ACCEPTED";
|
|
68
|
+
default:
|
|
69
|
+
return "UNKNOWN";
|
|
70
|
+
}
|
|
71
|
+
}
|