198 lines
8.3 KiB
TypeScript
198 lines
8.3 KiB
TypeScript
import { useEffect } from "react";
|
|
import RoboticArmInstances from "./instances/roboticArmInstances";
|
|
import { useArmBotStore } from "../../../store/simulation/useArmBotStore";
|
|
import { useFloorItems } from "../../../store/store";
|
|
import { useSelectedEventData, useSelectedEventSphere, useSelectedProduct } from "../../../store/simulation/useSimulationStore";
|
|
import { useProductStore } from "../../../store/simulation/useProductStore";
|
|
import { usePlayButtonStore } from "../../../store/usePlayButtonStore";
|
|
import ArmBotUI from "../ui/arm/armBotUI";
|
|
|
|
function RoboticArm() {
|
|
const { armBots, addArmBot, removeArmBot } = useArmBotStore();
|
|
const { getProductById } = useProductStore();
|
|
const { selectedProduct } = useSelectedProduct();
|
|
const { selectedEventSphere } = useSelectedEventSphere();
|
|
const { selectedEventData } = useSelectedEventData();
|
|
const { isPlaying } = usePlayButtonStore();
|
|
const { floorItems } = useFloorItems();
|
|
|
|
const armBotStatusSample: RoboticArmEventSchema[] = [
|
|
{
|
|
state: "idle",
|
|
modelUuid: "8790b4d5-fb6e-49e0-8161-04945fe3fdc4",
|
|
modelName: "ArmBot-X200",
|
|
position: [4.317833205016363, 0, -3.2829924989068715],
|
|
rotation: [-1.3768690876192207e-15, 1.4883085074751308, 1.5407776675834467e-15],
|
|
type: "roboticArm",
|
|
speed: 1.5,
|
|
point: {
|
|
uuid: "point-123",
|
|
position: [0, 2.6, 0],
|
|
rotation: [0, 0, 0],
|
|
actions: [
|
|
{
|
|
actionUuid: "action-003",
|
|
actionName: "Pick Component",
|
|
actionType: "pickAndPlace",
|
|
process: {
|
|
startPoint: [-1, 2, 1],
|
|
endPoint: [-2, 1, -1],
|
|
// startPoint: [-2, 1, -1],
|
|
// endPoint: [-1, 2, 1],
|
|
},
|
|
triggers: [
|
|
{
|
|
triggerUuid: "trigger-001",
|
|
triggerName: "Start Trigger",
|
|
triggerType: "onStart",
|
|
delay: 0,
|
|
triggeredAsset: {
|
|
triggeredModel: {
|
|
modelName: "Conveyor A1",
|
|
modelUuid: "conveyor-01",
|
|
},
|
|
triggeredPoint: {
|
|
pointName: "Start Point",
|
|
pointUuid: "conveyor-01-point-001",
|
|
},
|
|
triggeredAction: {
|
|
actionName: "Move Forward",
|
|
actionUuid: "conveyor-action-01",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
triggerUuid: "trigger-002",
|
|
triggerName: "Complete Trigger",
|
|
triggerType: "onComplete",
|
|
delay: 0,
|
|
triggeredAsset: {
|
|
triggeredModel: {
|
|
modelName: "StaticMachine B2",
|
|
modelUuid: "machine-02",
|
|
},
|
|
triggeredPoint: {
|
|
pointName: "Receive Point",
|
|
pointUuid: "machine-02-point-001",
|
|
},
|
|
triggeredAction: {
|
|
actionName: "Process Part",
|
|
actionUuid: "machine-action-01",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
state: "idle",
|
|
modelUuid: "armbot-xyz-002",
|
|
modelName: "ArmBot-X200",
|
|
position: [95.94347308985614, 0, 6.742905194869091],
|
|
rotation: [0, 0, 0],
|
|
type: "roboticArm",
|
|
speed: 0.1,
|
|
point: {
|
|
uuid: "point-123",
|
|
position: [0, 1.5, 0],
|
|
rotation: [0, 0, 0],
|
|
actions: [
|
|
{
|
|
actionUuid: "action-001",
|
|
actionName: "Pick Component",
|
|
actionType: "pickAndPlace",
|
|
process: {
|
|
// startPoint: [2.52543010919071, 0, 8.433681161200905],
|
|
// endPoint: [95.3438373267953, 0, 9.0279187421610025],
|
|
startPoint: null,
|
|
endPoint: null,
|
|
},
|
|
triggers: [
|
|
{
|
|
triggerUuid: "trigger-001",
|
|
triggerName: "Start Trigger",
|
|
triggerType: "onStart",
|
|
delay: 0,
|
|
triggeredAsset: {
|
|
triggeredModel: {
|
|
modelName: "Conveyor A1",
|
|
modelUuid: "conveyor-01",
|
|
},
|
|
triggeredPoint: {
|
|
pointName: "Start Point",
|
|
pointUuid: "conveyor-01-point-001",
|
|
},
|
|
triggeredAction: {
|
|
actionName: "Move Forward",
|
|
actionUuid: "conveyor-action-01",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
triggerUuid: "trigger-002",
|
|
triggerName: "Complete Trigger",
|
|
triggerType: "onComplete",
|
|
delay: 0,
|
|
triggeredAsset: {
|
|
triggeredModel: {
|
|
modelName: "StaticMachine B2",
|
|
modelUuid: "machine-02",
|
|
},
|
|
triggeredPoint: {
|
|
pointName: "Receive Point",
|
|
pointUuid: "machine-02-point-001",
|
|
},
|
|
triggeredAction: {
|
|
actionName: "Process Part",
|
|
actionUuid: "machine-action-01",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
];
|
|
|
|
useEffect(() => {
|
|
if (selectedProduct.productId) {
|
|
const product = getProductById(selectedProduct.productId);
|
|
if (product) {
|
|
product.eventDatas.forEach(events => {
|
|
if (events.type === 'roboticArm') {
|
|
removeArmBot(events.modelUuid);
|
|
addArmBot(selectedProduct.productId, events);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}, [selectedProduct]);
|
|
|
|
// useEffect(()=>{
|
|
// // removeArmBot("123", armBotStatusSample[0]);
|
|
// addArmBot("123", armBotStatusSample[0]);
|
|
// },[])
|
|
|
|
useEffect(() => {
|
|
|
|
}, [armBots])
|
|
|
|
useEffect(() => {
|
|
|
|
}, [selectedEventData, selectedEventSphere, isPlaying]);
|
|
|
|
return (
|
|
<>
|
|
<RoboticArmInstances />
|
|
{selectedEventSphere && selectedEventData?.data.type === "roboticArm" &&
|
|
< ArmBotUI />
|
|
}
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default RoboticArm;
|