From 659b7a62afe6d2cc4a40371449212145f74855bf Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 06 五月 2024 16:45:10 +0800
Subject: [PATCH] #
---
src/pages/fiber.jsx | 10 ++--
src/core/warehouse.jsx | 12 ++++--
src/components/agv.jsx | 40 ++++++++++---------
3 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/src/components/agv.jsx b/src/components/agv.jsx
index 8de561a..c3fb231 100644
--- a/src/components/agv.jsx
+++ b/src/components/agv.jsx
@@ -14,13 +14,16 @@
} from '../config/setting'
const Agv = (props) => {
- const { agvNo, position, theta, height, loaderTheta, forkLength, trayList, hasBox } = props;
+ const { agvNo, position, theta, loaderTheta, trayList, hasBox } = props;
+ const height = props.height * 0.06;
+ const forkLength = props.forkLength * 0.1;
const [groupPos, setGroupPos] = useState({ x: 0, y: 0, z: 0 });
const [groupTheta, setGroupTheta] = useState(0);
const [loaderHeight, setLoaderHeight] = useState(0);
const [integrateTheta, setIntegrateTheta] = useState(0);
const [forkDis, setForkDis] = useState(0);
+ const [realTrayList, setRealTrayList] = useState([]);
useEffect(() => {
if (!props || Object.keys(props).length === 0) {
@@ -28,17 +31,12 @@
}
// group position
- // const pos = {
- // x: position?.[0],
- // y: position?.[1],
- // z: position?.[2],
- // }
const pos = {
- x: position?.[0] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_X,
+ x: position?.[2] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_X,
y: position?.[1] * REAL_COMPARE_MAP_SCALE,
- z: position?.[2] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_Z,
+ z: position?.[0] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_Z,
}
- if (!Common.deepEqual(groupPos, pos)) {
+ if (!Common.deepEqual(groupPos, pos) && props.position) {
new TWEEN.Tween(groupPos)
.to(pos, INTERVAL_TIME)
.easing(TWEEN.Easing.Linear.None)
@@ -51,7 +49,7 @@
}
// group theta
- if (groupTheta !== theta) {
+ if (groupTheta !== theta && props.theta) {
const minTheta = Common.minDiffTheta(groupTheta, theta);
new TWEEN.Tween({ value: groupTheta })
.to({ value: minTheta }, INTERVAL_TIME)
@@ -65,7 +63,7 @@
}
// loader height
- if (loaderHeight !== height) {
+ if (loaderHeight !== height && props.height) {
new TWEEN.Tween({ value: loaderHeight })
.to({ value: height }, INTERVAL_TIME)
.easing(TWEEN.Easing.Linear.None)
@@ -79,7 +77,7 @@
// loader theta
const loaderAbsoluteAngle = (theta + loaderTheta) % 360;
- if (integrateTheta !== loaderAbsoluteAngle) {
+ if (integrateTheta !== loaderAbsoluteAngle && props.loaderTheta) {
const minTheta = Common.minDiffTheta(integrateTheta, loaderAbsoluteAngle);
new TWEEN.Tween({ value: integrateTheta })
.to({ value: minTheta }, INTERVAL_TIME)
@@ -93,7 +91,7 @@
}
// fork lenght
- if (forkDis !== forkLength) {
+ if (forkDis !== forkLength && props.forkLength) {
new TWEEN.Tween({ value: forkDis })
.to({ value: forkLength }, INTERVAL_TIME)
.easing(TWEEN.Easing.Linear.None)
@@ -103,6 +101,10 @@
.onComplete((e) => {
setForkDis(e.value)
}).start();
+ }
+
+ if (trayList) {
+ setRealTrayList(trayList);
}
}, [props]);
@@ -156,12 +158,12 @@
</group>
</group>
<group>
- {trayList?.[0]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 25, 0]} />}
- {trayList?.[1]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 48, 0]} />}
- {trayList?.[2]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 71, 0]} />}
- {trayList?.[3]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 94, 0]} />}
- {trayList?.[4]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 117, 0]} />}
- {trayList?.[5]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 140, 0]} />}
+ {realTrayList?.[0]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 25, 0]} />}
+ {realTrayList?.[1]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 48, 0]} />}
+ {realTrayList?.[2]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 71, 0]} />}
+ {realTrayList?.[3]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 94, 0]} />}
+ {realTrayList?.[4]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 117, 0]} />}
+ {realTrayList?.[5]?.hasBox && <Box rotationY={Math.PI / 2} position={[-43, 140, 0]} />}
</group>
</group>
</>
diff --git a/src/core/warehouse.jsx b/src/core/warehouse.jsx
index 3989ebf..b25b63c 100644
--- a/src/core/warehouse.jsx
+++ b/src/core/warehouse.jsx
@@ -26,23 +26,27 @@
useEffect(() => {
const timer = setInterval(() => {
+ console.log('do');
getBoxData().then(res => {
setBoxData(res);
})
getAgvData().then(res => {
- // setAgvData(res);
+ console.log(JSON.stringify(res))
+ if (res && res.length > 0) {
+ setAgvData(res);
+ }
})
const agvRealData = agvRealDataList[index];
if (agvRealData) {
- setAgvData(agvRealData);
+ // setAgvData(agvRealData);
}
index++;
}, INTERVAL_TIME * 1.1);
return () => {
- clearInterval(timer);
+ // clearInterval(timer);
}
}, [])
@@ -65,7 +69,7 @@
const boxEl = useMemo(() => {
return boxData.map((data, idx) => <Box key={idx} {...data} />)
}, [boxData]);
-
+
const agvEl = useMemo(() => {
return agvData.map((data, idx) => <Agv key={idx} {...data} />)
}, [agvData]);
diff --git a/src/pages/fiber.jsx b/src/pages/fiber.jsx
index 4c38fbf..f205f13 100644
--- a/src/pages/fiber.jsx
+++ b/src/pages/fiber.jsx
@@ -25,16 +25,16 @@
<Lights />
<Camera />
<Sky distance={450000} sunPosition={[0, 1, 0]} inclination={0} azimuth={0.25} />
- <Buildings />
- <TreeGroup />
- <House />
+ {/* <Buildings /> */}
+ {/* <TreeGroup /> */}
+ {/* <House /> */}
<Warehouse />
<OrbitControls />
<Environment background preset="night" />
<Help />
</Canvas>
- <Left />
- <Right />
+ {/* <Left /> */}
+ {/* <Right /> */}
</div>
)
--
Gitblit v1.9.1