Exemple #1
0
        private void button4_Click_1(object sender, EventArgs e)
        {
            RobotAgent r   = RegistrationAgent.robotAgentRegisteredList.ElementAt(0).Value;
            String     msg = DataTranformation.jsoncheckinPutAwayCoordinations(0);

            r.sendPackageStringType(r.paramsRosSocket.publication_serverRobotGotToCheckInPutAwayArea, msg);
        }
 public String[] RequestPutAwayOrderLine(int area, string robotID)
 {
     RegistrationAgent.mainWindowPointer.LogConsole("In RequestPutAwayOrderLine", "logOrder");
     String[] data = null;
     try
     {
         string areaID             = area.ToString();
         string listLinePutAwayKey = RegistrationAgent.areaList[areaID].GetPutAwayLine();
         if (listLinePutAwayKey != "none")
         {
             int agentID = Int32.Parse(listLinePutAwayKey.Split('-')[0]);
             int lpospw  = Int32.Parse(listLinePutAwayKey.Split('-')[1]);
             if (RegistrationAgent.areaList[areaID].PUTAWAY_LINE_LIST.ContainsKey(listLinePutAwayKey))
             {
                 data    = new String[3];
                 data[0] = DataTranformation.jsonPutAwayLine(area, agentID, lpospw);
                 data[1] = agentID.ToString();
                 data[2] = lpospw.ToString();
                 RegistrationAgent.mainWindowPointer.LogConsole("PUT PUTAWAY:" + agentID + "-" + lpospw, "logOrder");
                 return(data);
             }
             RegistrationAgent.mainWindowPointer.LogConsole("No-listlineputaway-" + listLinePutAwayKey, "logOrder");
         }
         RegistrationAgent.mainWindowPointer.LogConsole("In RequestPutAwayOrderLine-no list line docking key-" + listLinePutAwayKey, "logOrder");
     }
     catch
     {
         RegistrationAgent.mainWindowPointer.LogConsole("Error when RequestPutAwayOrderLine: Area:" + area + "-Robot:" + robotID, "logOrder");
     }
     RegistrationAgent.mainWindowPointer.LogConsole("Last RequestPutAwayOrderLine", "logOrder");
     return(data);
 }
        public String RequestPutAwayOderItem(int area, string robotID)
        {
			String data = "";
			data = DataTranformation.jsonPutAwayCoordinations(0, 0, 0);
			try
			{
				int numberOfArea = RegistrationAgent.areaList.Count;
				string areaID = area.ToString();
				string listLinePutAwayKey = RegistrationAgent.areaList[areaID].FindWorkingLinePutAway();
				if (listLinePutAwayKey != "none")
				{
					int agentID = Int32.Parse(listLinePutAwayKey.Split('-')[0]);
					int lpospw = Int32.Parse(listLinePutAwayKey.Split('-')[1]);
					List<int> temp = new List<int>();
					if (RegistrationAgent.areaList[areaID].LIST_LINE_PUTAWAY.ContainsKey(listLinePutAwayKey) &&
						RegistrationAgent.areaList[areaID].LIST_LINE_PUTAWAY[listLinePutAwayKey].GetPallet(temp))
					{
						List<int> palletnumspw = temp;
						data = DataTranformation.jsonPutAwayCoordinations(agentID, lpospw, palletnumspw[0]);
						MessageBox.Show("PUTAWAY:" + agentID + "-" + lpospw + "-" + palletnumspw[0]);
						//requestToReadyArea(DataTranformation.jsonDockingCoordinations(agentID, lposdk, palletnumsdk));
						//Line sẽ tự set biến ordered = true sau khi gọi hàm GetPallet thành công lần đầu
						return data;
					}

				}
			}
			catch { }
            return data;
        }
 public String[] RequestDockingOrderPallet(int area, string robotID, string agentID, string line)
 {
     RegistrationAgent.mainWindowPointer.LogConsole("In RequestDockingOrderPallet", "logOrder");
     String[] data = null;
     try
     {
         string     areaID       = area.ToString();
         List <int> palletnumsdk = new List <int>();
         if (RegistrationAgent.areaList[areaID].DOCKING_LINE_LIST.ContainsKey(agentID + "-" + line) &&
             RegistrationAgent.areaList[areaID].DOCKING_LINE_LIST[agentID + "-" + line].GetPallet(palletnumsdk))
         {
             data    = new String[4];
             data[0] = DataTranformation.jsonDockingPallet(area, Int32.Parse(agentID), Int32.Parse(line), palletnumsdk.First());
             data[1] = agentID.ToString();
             data[2] = line.ToString();
             data[3] = palletnumsdk.First().ToString();
             RegistrationAgent.mainWindowPointer.LogConsole("DOCKING :" + data[1] + "-" + data[2] + "-" + data[3], "logOrder");
             return(data);
         }
         RegistrationAgent.mainWindowPointer.LogConsole("Error when RequestDockingOrderPallet1: Area:" + area + "-Robot:" + robotID + "-agentID:" + agentID + "-line:" + line, "logOrder");
     }
     catch
     {
         RegistrationAgent.mainWindowPointer.LogConsole("Error when RequestDockingOrderPallet2: Area:" + area + "-Robot:" + robotID + "-agentID:" + agentID + "-line:" + line, "logOrder");
     }
     return(data);
 }
Exemple #5
0
        public void processFinishStates(int states)
        {
            // RegistrationAgent.mainWindowPointer.LogConsole("STATE " + states);
            switch (states)
            {
            case CommandSetsToRobotAgent.STATE_FINISH_PALLETUP:    // hoan thanh docking
            {
                // go to check in putaway
                RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_PALLETUP" + states, "logRobot");
                // go to check in docking or Front Ready Area
                String msg = DataTranformation.jsoncheckinPutAwayCoordinations(0);

                RegistrationAgent.mainWindowPointer.LogConsole(msg, "logRobot");
                sendPackageStringType(paramsRosSocket.publication_serverRobotGotToCheckInPutAwayArea, msg);
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_PALLETDOWN:
            {
                if (statusFlag.flagCharge)
                {
                    String msg = DataTranformation.jsonFrontReadyAreaCoordinations(0);
                    RegistrationAgent.mainWindowPointer.LogConsole("ROBOT NEED CHARGE !!", "logRobot");
                    sendPackageStringType(paramsRosSocket.publication_serverRobotGotToChargeArea, msg);
                    return;
                }
                // go to check in docking or Front Ready Area
                RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_PALLETDOWN" + states, "logRobot");
                bool checkOrder = RegistrationAgent.areaList[this.AreaID.ToString()].CheckPalletInDockingArea();
                RegistrationAgent.mainWindowPointer.LogConsole("Flag check order: " + checkOrder, "logRobot");
                if (checkOrder)
                {
                    String msg = DataTranformation.jsoncheckinDockingCoordinations(0);
                    RegistrationAgent.mainWindowPointer.LogConsole(msg, "logRobot");
                    sendPackageStringType(paramsRosSocket.publication_serverRobotGotToCheckInDockingArea, msg);
                }
                else
                {
                    String msg = DataTranformation.jsonFrontReadyAreaCoordinations(0);
                    RegistrationAgent.mainWindowPointer.LogConsole(msg, "logRobot");
                    sendPackageStringType(paramsRosSocket.publication_serverRobotGotToFrontReadyArea, msg);
                }
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_GOTOLINE_READYAREA:
            {
                statusFlag.flagProcess = false;

                /* RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_GOTOLINE_CHARGINGSTATION " + states);
                 * String msg = this.readyArea.requestRobotStandInSideReadyArea();
                 * RegistrationAgent.mainWindowPointer.LogConsole(msg);
                 * sendPackageStringType(paramsRosSocket.publication_responsedStandPosInsideReadyArea, msg);*/
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_GOTO_CHECKINDOCKING:
            {
                try
                {
                    RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_GOTO_CHECKINDOCKING " + states, "logRobot");
                    String[] cmddk = this.orderTask.RequestDockingOrderLine(this.AreaID, NameID);
                    if (cmddk == null)
                    {
                        timeOutRecallProcessing(CommandSetsToRobotAgent.STATE_FINISH_GOTO_CHECKINDOCKING, 3000);
                        return;
                    }

                    // orderInfo.finishCheckInDockingStore = cmddk;
                    orderInfo.stationNameID = cmddk[1];
                    orderInfo.lineIndex     = cmddk[2];
                    //orderInfo.palletIndex = cmddk[3];
                    RegistrationAgent.mainWindowPointer.LogConsole(cmddk[0], "logRobot");
                    if (cmddk[0].Length > 0)
                    {
                        sendPackageStringType(paramsRosSocket.publication_serverRobotGotToLineDockingArea, cmddk[0]);
                    }
                }
                catch
                {
                    Console.WriteLine("Jump Again!");
                }
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_GOTO_CHECKINPUTAWAY:
            {
                try
                {
                    RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_GOTO_CHECKINPUTAWAY " + states, "logRobot");
                    String[] cmdpw = this.orderTask.RequestPutAwayOrderLine(this.AreaID, NameID);
                    if (cmdpw == null)
                    {
                        timeOutRecallProcessing(CommandSetsToRobotAgent.STATE_FINISH_GOTO_CHECKINPUTAWAY, 3000);
                        return;
                    }
                    // orderInfo.finishCheckinPutAwayStore = cmdpw;
                    orderInfo.stationNameID = cmdpw[1];
                    orderInfo.lineIndex     = cmdpw[2];
                    //orderInfo.palletIndex = cmdpw[3];
                    RegistrationAgent.mainWindowPointer.LogConsole(cmdpw[0], "logRobot");
                    if (cmdpw[0].Length > 0)
                    {
                        sendPackageStringType(paramsRosSocket.publication_serverRobotGotToLinePutAwayArea, cmdpw[0]);
                    }
                }
                catch
                {
                    Console.WriteLine("Jump Again!");
                }
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_GOTO_LINEPUTAWAY:
            {
                try
                {
                    RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_GOTO_LINEPUTAWAY " + states, "logRobot");
                    String[] cmdpw = this.orderTask.RequestPutAwayOrderPallet(this.AreaID, NameID, orderInfo.stationNameID, orderInfo.lineIndex);
                    if (cmdpw == null)
                    {
                        timeOutRecallProcessing(CommandSetsToRobotAgent.STATE_FINISH_GOTO_LINEPUTAWAY, 3000);
                        return;
                    }
                    // orderInfo.finishLinePutAwayStore = cmdpw;
                    orderInfo.stationNameID = cmdpw[1];
                    orderInfo.lineIndex     = cmdpw[2];
                    orderInfo.palletIndex   = cmdpw[3];
                    RegistrationAgent.mainWindowPointer.LogConsole(cmdpw[0], "logRobot");
                    if (cmdpw[0].Length > 0)
                    {
                        sendPackageStringType(paramsRosSocket.publication_serverRobotGotToPalletPutAwayArea, cmdpw[0]);
                    }
                }
                catch
                {
                    Console.WriteLine("Jump Again!");
                }
            }
            break;

            case CommandSetsToRobotAgent.STATE_FINISH_GOTO_LINEDOCKING:
            {
                try
                {
                    RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_GOTO_LINEDOCKING " + states, "logRobot");
                    String[] cmddk = this.orderTask.RequestDockingOrderPallet(this.AreaID, NameID, orderInfo.stationNameID, orderInfo.lineIndex);
                    if (cmddk == null)
                    {
                        timeOutRecallProcessing(CommandSetsToRobotAgent.STATE_FINISH_GOTO_LINEDOCKING, 3000);
                        return;
                    }
                    //  orderInfo.finishLineDockingStore = cmddk;
                    orderInfo.stationNameID = cmddk[1];
                    orderInfo.lineIndex     = cmddk[2];
                    orderInfo.palletIndex   = cmddk[3];
                    RegistrationAgent.mainWindowPointer.LogConsole(cmddk[0], "logRobot");
                    if (cmddk[0].Length > 0)
                    {
                        sendPackageStringType(paramsRosSocket.publication_serverRobotGotToPalletDockingArea, cmddk[0]);
                    }
                }
                catch
                {
                    Console.WriteLine("Jump Again!");
                }
            }

            break;

            case CommandSetsToRobotAgent.STATE_FINISH_DETECTLINE_TO_READYAREA:
                // reset flagGoback
                RegistrationAgent.mainWindowPointer.LogConsole("STATE_FINISH_DETECTLINE_TO_CHARGINGSTATION" + states, "logRobot");
                break;

            case CommandSetsToRobotAgent.STATE_SELFDRIVING_WAIT_PALLETUP:
                // do pallet nhap nhay truoc vi tri pallet set
            {
                //bool stop = RegistrationAgent.areaList[this.AreaID.ToString()].robotStopDK(orderInfo.agentID, orderInfo.lineIndex, orderInfo.palletIndex);
                //if (stop)
                //{
                //    // RegistrationAgent.mainWindowPointer.LogConsole("Robot Stop");
                //}
            }
            break;

            case CommandSetsToRobotAgent.STATE_SELFDRIVING_WAIT_PALLETDOWN:
                // do pallet nhap nhay truoc vi tri pallet set
            {
                //bool stop = RegistrationAgent.areaList[this.AreaID.ToString()].robotStopPW(orderInfo.agentID, orderInfo.lineIndex, orderInfo.palletIndex);
                //if (stop)
                //{
                //    // RegistrationAgent.mainWindowPointer.LogConsole("Robot Stop");
                //}
            }
            break;

            case CommandSetsToRobotAgent.STATE_SELFDRIVING_REQUEST_CHARGEBATTERY:
                statusFlag.flagCharge = true;
                break;

            case CommandSetsToRobotAgent.STATE_SELFDRIVING_FINISH_BATTERYCHARGING:
                // finish charge

                /* {
                 *   bool checkOrder = RegistrationAgent.areaList[this.AreaID.ToString()].CheckPalletInDockingArea();
                 *   if (checkOrder)
                 *   {
                 *       String msg = DataTranformation.jsoncheckinDockingCoordinations(0);
                 *       RegistrationAgent.mainWindowPointer.LogConsole(msg);
                 *       sendPackageStringType(paramsRosSocket.publication_serverRobotGotToCheckInDockingArea, msg);
                 *
                 *   }
                 *   statusFlag.flagCharge = false;
                 * }*/
                statusFlag.flagCharge  = false;
                statusFlag.flagProcess = false;     // khi vị trí battery va ready cung vị trí
                break;
            }
        }