Files
Dwinzo_dev/app/src/modules/simulation/roboticArm/roboticArm.tsx

184 lines
7.9 KiB
TypeScript
Raw Normal View History

2025-04-24 17:51:52 +05:30
import { useEffect } from "react";
import RoboticArmInstances from "./instances/roboticArmInstances";
import { useArmBotStore } from "../../../store/simulation/useArmBotStore";
2025-04-25 19:40:15 +05:30
import { useFloorItems } from "../../../store/store";
2025-04-30 16:50:31 +05:30
import { useSelectedEventData, useSelectedEventSphere } from "../../../store/simulation/useSimulationStore";
import { useEventsStore } from "../../../store/simulation/useEventsStore";
import { usePlayButtonStore } from "../../../store/usePlayButtonStore";
import ArmBotUI from "../ui/arm/armBotUI";
function RoboticArm() {
2025-04-25 19:40:15 +05:30
const { armBots, addArmBot, removeArmBot } = useArmBotStore();
2025-04-30 16:50:31 +05:30
const { addEvent } = useEventsStore();
const { selectedEventSphere } = useSelectedEventSphere();
const { selectedEventData } = useSelectedEventData();
const { isPlaying } = usePlayButtonStore();
2025-04-25 19:40:15 +05:30
const { floorItems } = useFloorItems();
const armBotStatusSample: RoboticArmEventSchema[] = [
{
state: "idle",
2025-04-28 17:54:55 +05:30
modelUuid: "3abf5d46-b59e-4e6b-9c02-a4634b64b82d",
modelName: "ArmBot-X200",
2025-04-28 13:35:13 +05:30
position: [0.20849215906958463, 0, 0.32079278127773675],
rotation: [-1.3768690876192207e-15, 1.4883085074751308, 1.5407776675834467e-15],
2025-04-25 19:40:15 +05:30
type: "roboticArm",
speed: 1.5,
point: {
uuid: "point-123",
2025-04-28 17:54:55 +05:30
position: [0, 2.6, 0],
2025-04-25 19:40:15 +05:30
rotation: [0, 0, 0],
actions: [
{
actionUuid: "action-003",
actionName: "Pick Component",
actionType: "pickAndPlace",
process: {
2025-04-28 12:08:57 +05:30
startPoint: [-1, 2, 1],
endPoint: [-2, 1, -1],
2025-04-30 15:27:02 +05:30
// startPoint: [-2, 1, -1],
// endPoint: [-1, 2, 1],
2025-04-25 19:40:15 +05:30
},
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: {
2025-04-30 15:27:02 +05:30
// 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(() => {
2025-04-28 12:08:57 +05:30
2025-04-25 19:40:15 +05:30
removeArmBot(armBotStatusSample[0].modelUuid);
addArmBot('123', armBotStatusSample[0]);
2025-04-25 19:40:15 +05:30
// addArmBot('123', armBotStatusSample[1]);
// addCurrentAction('armbot-xyz-001', 'action-001');
}, []);
2025-04-24 17:51:52 +05:30
useEffect(() => {
2025-04-30 16:50:31 +05:30
console.log('isPlaying: ', isPlaying);
console.log('selectedEventData: ', selectedEventData);
console.log('selectedEventSphere: ', selectedEventSphere);
}, [selectedEventData, selectedEventSphere, isPlaying]);
return (
<>
<RoboticArmInstances />
2025-04-30 16:50:31 +05:30
{selectedEventSphere && selectedEventData?.data.type === "roboticArm" && !isPlaying &&
< ArmBotUI />
}
</>
);
}
export default RoboticArm;