| | |
| | | import Shelf from '../components/shelf'; |
| | | import Box from '../components/box'; |
| | | import Agv from '../components/agv'; |
| | | import Path from '../components/path' |
| | | |
| | | import tunnelData from '@/assets/data/tunnel'; |
| | | import areaData from '@/assets/data/area'; |
| | |
| | | const [agv1Data, setAgv1Data] = useState({}); |
| | | const [agv2Data, setAgv2Data] = useState({}); |
| | | const [boxData, setBoxData] = useState([]); |
| | | const [pathData, setPathData] = useState([]); |
| | | |
| | | useEffect(() => { |
| | | const websocket = new WebSocketClient('/ws/digitalTwin/websocket'); |
| | |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | if (data.type === 'path') { |
| | | setPathData(data.obj); |
| | | } |
| | | } |
| | | |
| | |
| | | return <Agv key={2} {...agv2Data} /> |
| | | }, [agv2Data]); |
| | | |
| | | const pathEl = useMemo(() => { |
| | | return pathData.map((data, idx) => <Path key={idx} list={data} />) |
| | | }, [pathData]) |
| | | |
| | | useFrame((state, delta) => { |
| | | |
| | |
| | | {agv1El} |
| | | {agv2El} |
| | | {boxEl} |
| | | {pathEl} |
| | | </group> |
| | | </> |
| | | ) |