public void Initialize()
        {
            robotManagementService = new RobotManagementService(this.mainWindow.map);
            doorManagementService  = new DoorManagementService();
            DataReceive status = new DataReceive();

            // Test door
            ///   doorManagementService.DoorMezzamineUpNew.LampSetStateOn(DoorType.DOOR_FRONT);
            //while (true)
            //{
            //    doorManagementService.DoorMezzamineUpNew.LampOn(DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.LampOff(DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.OpenPress(DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.GetStatus(ref status, DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.ClosePress(DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.GetStatus(ref status, DoorType.DOOR_FRONT);
            //    doorManagementService.DoorMezzamineUpNew.OpenPress(DoorType.DOOR_BACK);
            //    doorManagementService.DoorMezzamineUpNew.GetStatus(ref status, DoorType.DOOR_BACK);
            //    doorManagementService.DoorMezzamineUpNew.ClosePress(DoorType.DOOR_BACK);
            //    doorManagementService.DoorMezzamineUpNew.GetStatus(ref status, DoorType.DOOR_BACK);

            //}
            // End

            procedureManagementService = new ProcedureManagementService();
            chargerService             = new ChargerManagementService();
            trafficService             = new TrafficManagementService();
            deviceRegistrationService  = new DeviceRegistrationService(12000);
            Global_Object.doorManagementServiceCtrl = doorManagementService;
            assigmentTaskService = new AssigmentTaskService();
            assigmentTaskService.RegistryService(robotManagementService);
            assigmentTaskService.RegistryService(procedureManagementService);
            assigmentTaskService.RegistryService(deviceRegistrationService.GetDeviceItemList());
            assigmentTaskService.RegistryService(trafficService);
            procedureManagementService.RegistryService(trafficService);
            procedureManagementService.RegistryService(robotManagementService);
            procedureManagementService.RegistryService(doorManagementService);
            procedureManagementService.RegistryService(chargerService);
            procedureManagementService.RegistryService(deviceRegistrationService);
            procedureManagementService.RegistryService(assigmentTaskService);


            robotManagementService.Registry(trafficService);
            // robotManagementService.TestRobotProceure();
            robotManagementService.Initialize();
            //robotManagementService.robot2test();

            deviceRegistrationService.listen();
            deviceRegistrationService.RegistryMainWindow(this.mainWindow);

            //assigmentTaskService.Start();
            MessageBox.Show("Bấm Start Để Bắt Đầu !");
            RobotMoving robotMoving = new RobotMoving(robotManagementService.RobotUnityRegistedList);

            robotMoving.Show();

            //assigmentTaskService.Start();
        }
        public ForkLiftToMachineInfo GetPriorityTaskForkLiftToMachine(int productDetailId)
        {
            ForkLiftToMachineInfo forkLiftToMachineInfo = null;

            try
            {
                bool onHasOrder = false;
                foreach (DeviceItem deviceItem in deviceService.GetDeviceItemList())
                {
                    foreach (OrderItem _order in deviceItem.PendingOrderList)
                    {
                        if (_order.typeReq == TyeRequest.TYPEREQUEST_BUFFER_TO_MACHINE)
                        {
                            if (_order.productDetailId == productDetailId)
                            {
                                forkLiftToMachineInfo = new ForkLiftToMachineInfo();
                                forkLiftToMachineInfo.frontLinePose = _order.palletAtMachine.linePos;
                                JInfoPallet infoPallet = new JInfoPallet();

                                infoPallet.pallet     = PistonPalletCtrl.PISTON_PALLET_DOWN; /* dropdown */
                                infoPallet.bay        = _order.palletAtMachine.bay;
                                infoPallet.hasSubLine = "no";                                /* no */
                                infoPallet.dir_main   = (TrafficRobotUnity.BrDirection)_order.palletAtMachine.directMain;
                                infoPallet.dir_sub    = (TrafficRobotUnity.BrDirection)_order.palletAtMachine.directSub;
                                infoPallet.dir_out    = (TrafficRobotUnity.BrDirection)_order.palletAtMachine.directOut;
                                infoPallet.line_ord   = _order.palletAtMachine.line_ord;
                                infoPallet.row        = _order.palletAtMachine.row;

                                forkLiftToMachineInfo.infoPallet = JsonConvert.SerializeObject(infoPallet);
                                forkLiftToMachineInfo.palletId   = _order.palletId_H;
                                forkLiftToMachineInfo.planId     = _order.planId;
                                _order.status = StatusOrderResponseCode.CHANGED_FORKLIFT;
                                onHasOrder    = true;
                                deviceItem.PendingOrderList.Remove(_order);
                                break;
                            }
                        }
                    }
                    if (onHasOrder)
                    {
                        break;
                    }
                }
            }
            catch
            {
                Console.WriteLine("Error in GetPriorityTaskForkLiftToMachine");
            }
            return(forkLiftToMachineInfo);
        }