| 
														
															@@ -57,34 +57,37 @@ func (sl *StabLift) Exec(address string, c transportorder.Command) error { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	liftAddr := util.StringToIntSlice(lf.Addr) 
														 | 
														
														 | 
														
															 	liftAddr := util.StringToIntSlice(lf.Addr) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	source := &data.Nodes[0] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	dist := &data.Nodes[1] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	for !source.Equals(dist) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	source := data.Nodes[0] //起始位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	dist := &data.Nodes[1]  //托盘位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	moveAddr := source      //载货时托盘位置,不载货时提升机的位置,此位置从起点移动到终点,任务结束 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	for !moveAddr.Equals(dist) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		//如果起点不在提升机内部,说明有输送线,先由输送线将托盘移动到提升机内部 
														 | 
														
														 | 
														
															 		//如果起点不在提升机内部,说明有输送线,先由输送线将托盘移动到提升机内部 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if !source.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
														
														 | 
														
															 		if !source.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if int(source.X) != liftAddr[0] { 
														 | 
														
														 | 
														
															 			if int(source.X) != liftAddr[0] { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				for i := 0; i < util.Abs(liftAddr[0]-int(source.X)); i++ { 
														 | 
														
														 | 
														
															 				for i := 0; i < util.Abs(liftAddr[0]-int(source.X)); i++ { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.Load = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					if liftAddr[0] > int(source.X) { 
														 | 
														
														 | 
														
															 					if liftAddr[0] > int(source.X) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.X++ //托盘由起点向提升机移动 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} else { 
														 | 
														
														 | 
														
															 					} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.X-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.X-- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.Load = 0 //货物在提升机外部时,提升机时不载货状态 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					if data.Mode == "shuttle" { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						lf.PalletAddr = moveAddr.AddrStringRCF() //更新托盘位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} 
														 | 
														
														 | 
														
															 					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} 
														 | 
														
														 | 
														
															 				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			} 
														 | 
														
														 | 
														
															 			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if int(source.Y) != liftAddr[1] { 
														 | 
														
														 | 
														
															 			if int(source.Y) != liftAddr[1] { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				for i := 0; i < util.Abs(int(source.Y)-liftAddr[1]); i++ { 
														 | 
														
														 | 
														
															 				for i := 0; i < util.Abs(int(source.Y)-liftAddr[1]); i++ { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.Load = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					if liftAddr[1] > int(source.Y) { 
														 | 
														
														 | 
														
															 					if liftAddr[1] > int(source.Y) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.Y++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.Y++ //托盘由起点向提升机移动 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} else { 
														 | 
														
														 | 
														
															 					} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.Y-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.Y-- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.Load = 0                 //货物在提升机外部时,提升机时不载货状态 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					if data.Mode == "shuttle" { //如果是载货模式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						lf.PalletAddr = moveAddr.AddrStringRCF() //更新托盘位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} 
														 | 
														
														 | 
														
															 					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} 
														 | 
														
														 | 
														
															 				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			} 
														 | 
														
														 | 
														
															 			} 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -93,53 +96,54 @@ func (sl *StabLift) Exec(address string, c transportorder.Command) error { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if source.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
														
														 | 
														
															 		if source.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			for i := 0; i < util.Abs(int(source.Z)-int(dist.Z)); i++ { 
														 | 
														
														 | 
														
															 			for i := 0; i < util.Abs(int(source.Z)-int(dist.Z)); i++ { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 				time.Sleep(time.Second) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				if data.Mode == "shuttle" { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.Load = 1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				if source.Z > dist.Z { 
														 | 
														
														 | 
														
															 				if source.Z > dist.Z { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					source.Z-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					moveAddr.Z-- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					lf.Floor-- 
														 | 
														
														 | 
														
															 					lf.Floor-- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} else { 
														 | 
														
														 | 
														
															 				} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					source.Z++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					moveAddr.Z++ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					lf.Floor++ 
														 | 
														
														 | 
														
															 					lf.Floor++ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				if data.Mode == "shuttle" { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.Load = 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.PalletAddr = moveAddr.AddrStringRCF() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} 
														 | 
														
														 | 
														
															 				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			} 
														 | 
														
														 | 
														
															 			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		//如果终点点不在提升机内部,说明有输送线,由输送线将托盘移动到目标位置 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		//如果终点不在提升机内部,说明有输送线,由输送线将托盘移动到目标位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if !dist.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
														
														 | 
														
															 		if !dist.InNode(liftAddr[0], liftAddr[1]) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			//此时source已来到了提升机的目标层 
														 | 
														
														 | 
														
															 			//此时source已来到了提升机的目标层 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if int(dist.X) != liftAddr[0] { 
														 | 
														
														 | 
														
															 			if int(dist.X) != liftAddr[0] { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				for i := 0; i < util.Abs(liftAddr[0]-int(dist.X)); i++ { 
														 | 
														
														 | 
														
															 				for i := 0; i < util.Abs(liftAddr[0]-int(dist.X)); i++ { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.Load = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					if liftAddr[0] > int(dist.X) { 
														 | 
														
														 | 
														
															 					if liftAddr[0] > int(dist.X) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.X-- //向目标移动 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.X-- //向终点移动 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} else { 
														 | 
														
														 | 
														
															 					} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.X++ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.Load = 0                 //出了提升机,提升机已不载货 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					if data.Mode == "shuttle" { //如果是载货模式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						lf.PalletAddr = moveAddr.AddrStringRCF() //更新托盘位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} 
														 | 
														
														 | 
														
															 					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} 
														 | 
														
														 | 
														
															 				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			} 
														 | 
														
														 | 
														
															 			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if int(dist.Y) != liftAddr[1] { 
														 | 
														
														 | 
														
															 			if int(dist.Y) != liftAddr[1] { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				for i := 0; i < util.Abs(int(dist.Y)-liftAddr[1]); i++ { 
														 | 
														
														 | 
														
															 				for i := 0; i < util.Abs(int(dist.Y)-liftAddr[1]); i++ { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 					time.Sleep(time.Second) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					lf.Load = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					if liftAddr[1] > int(source.Y) { 
														 | 
														
														 | 
														
															 					if liftAddr[1] > int(source.Y) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.Y-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.Y-- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} else { 
														 | 
														
														 | 
														
															 					} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						source.Y++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						lf.PalletAddr = source.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						moveAddr.Y++ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					lf.Load = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					if data.Mode == "shuttle" { //如果是载货模式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						lf.PalletAddr = moveAddr.AddrStringRCF() //更新托盘位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					} 
														 | 
														
														 | 
														
															 					} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} 
														 | 
														
														 | 
														
															 				} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			} 
														 | 
														
														 | 
														
															 			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	lf.Status = warehouse.Ready 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	lf.Status = warehouse.Ready //任务完成,提升机恢复ready状态 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	log.Printf("当前提升机层:%d,状态: %d,载货状态:%d,载货位置%s", lf.Floor, lf.Status, lf.Load, lf.PalletAddr) 
														 | 
														
														 | 
														
															 	log.Printf("当前提升机层:%d,状态: %d,载货状态:%d,载货位置%s", lf.Floor, lf.Status, lf.Load, lf.PalletAddr) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return nil 
														 | 
														
														 | 
														
															 	return nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -169,73 +173,3 @@ func UnLoad(addr string) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// 载货模式提升机待定 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-func monitor() { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//提升机位置 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//liftAddr := util.StringToIntSlice(lf.Addr) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//start := nodes[0] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//end := nodes[1] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	////起点不在提升机内部,说明是有输送线 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//if int(start.X) != liftAddr[0] { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	for i := 0; i < util.Abs(liftAddr[0]-int(start.X)); i++ { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		if liftAddr[0] > int(start.X) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//if int(start.Y) != liftAddr[1] { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	for i := 0; i < util.Abs(int(start.Y)-liftAddr[1]); i++ { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		if liftAddr[1] > int(start.Y) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//if int(start.X) == liftAddr[0] && int(start.Y) != liftAddr[1] { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	for i := 0; i < int(end.Z-start.Z); i++ { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		start.Z++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//if int(end.X) != liftAddr[0] { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	for i := 0; i < util.Abs(liftAddr[0]-int(end.X)); i++ { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		if liftAddr[0] > int(end.X) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//if int(end.Y) != liftAddr[1] { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	for i := 0; i < util.Abs(int(end.Y)-liftAddr[1]); i++ { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		time.Sleep(time.Second) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		if liftAddr[1] > int(start.Y) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			start.X++ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//			lf.PalletAddr = start.AddrStringRCF() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//		} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//lf.Status = warehouse.Ready 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	//return nil 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 |