| | |
| | | import Box from '../components/box'; |
| | | import tunnelData from '../assets/data/tunnel'; |
| | | import Tunnel from '../components/tunnel'; |
| | | import agvRealDataList from '@/assets/data/agv' |
| | | import agvRealDataList from '@/assets/data/agv'; |
| | | import { INTERVAL_TIME } from '@/config/setting' |
| | | |
| | | let index = 0; |
| | | |
| | |
| | | const [agvData, setAgvData] = useState([ |
| | | {} |
| | | ]); |
| | | |
| | | const [boxData, setBoxData] = useState([ |
| | | {} |
| | | ]) |
| | | |
| | | useEffect(() => { |
| | | |
| | | setInterval(() => { |
| | | const timer = setInterval(() => { |
| | | const agvRealData = agvRealDataList[index]; |
| | | if (agvRealData) { |
| | | setAgvData(agvRealData); |
| | | } |
| | | index++; |
| | | }, 2000) |
| | | }, INTERVAL_TIME * 1.1); |
| | | |
| | | return () => { |
| | | clearInterval(timer); |
| | | } |
| | | }, []) |
| | | |
| | | const tunnelEl = useMemo(() => { |
| | | return tunnelData.map((tunnel, index) => <Tunnel key={index} {...tunnel} />) |
| | | }, []); |
| | | |
| | | const agvEl = agvData.map((data, idx) => <Agv key={idx} {...data} />) |
| | | const agvEl = useMemo(() => { |
| | | return agvData.map((data, idx) => <Agv key={idx} {...data} />) |
| | | }, [agvData]); |
| | | |
| | | const boxEl = boxData.map((data, idx) => <Box key={idx} {...data} />) |
| | | const boxEl = useMemo(() => { |
| | | return boxData.map((data, idx) => <Box key={idx} {...data} />) |
| | | }, [boxData]); |
| | | |
| | | useFrame((state, delta) => { |
| | | |