예제 #1
0
        private byte[] ToBytes(agvTask task, agvStation_Info destination)
        {
            byte[] messageRAW = Encoding.ASCII.GetBytes(task.Id + destination.Name + destination.Face);

            byte[] message = new byte[4];
            message[0] = messageRAW[0];
            message[1] = messageRAW[1];
            message[2] = messageRAW[2];
            message[3] = messageRAW[3];
            return(message);
        }
예제 #2
0
        public bool SendDequeueTaskCommand(agvTask task, agvStation_Info destination, int vcsPort = 26000)
        {
            try
            {
                byte[] message = ToBytes(task, destination);

                var messagetoSend = new Communication.Communication.IPandMessage(IP, message);

                Send(messagetoSend);
                return(true);
            }
            catch (Exception e)
            {
                e.WriteLog().SaveToDataBase();
            }
            return(false);
        }
예제 #3
0
        public agvTask CreateTask(Barcode barcode)
        {
            agvTask agvTask = null;

            if (barcode != null && barcode.HasData())
            {
                var model              = sqlComm.GetModel();
                var currentStation     = sqlComm.GetStation(barcode.Station);
                var destinationStation = sqlComm.GetStation(barcode.Destination);
                var result             = GetResult(destinationStation);

                if (model != null && currentStation != null && destinationStation != null && !string.IsNullOrEmpty(result))
                {
                    agvTask = sqlComm.CreateTask(model, currentStation, destinationStation, result);
                    return(agvTask);
                }
            }
            return(agvTask);
        }
예제 #4
0
        private static byte[] ToBytes(agvTask agvTask, Barcode barcode)
        {
            if (agvTask == null)
            {
                agvTask = new agvTask()
                {
                    Id = 0
                }
            }
            ;

            byte[] messageRAW = Encoding.ASCII.GetBytes(agvTask.Id + barcode.Comand + barcode.Destination);

            byte[] message = new byte[4];
            message[0] = messageRAW.Length > 0 ? messageRAW[0] : (byte)0;
            message[1] = messageRAW.Length > 1 ? messageRAW[1] : (byte)0;
            message[2] = messageRAW.Length > 2 ? messageRAW[2] : (byte)0;
            message[3] = messageRAW.Length > 3 ? messageRAW[3] : (byte)0;
            return(message);
        }
예제 #5
0
        public agvTask CreateTask(agvModel_Info model, agvStation_Info currentStation, agvStation_Info destinationStation, string result)
        {
            var agvTask = new agvTask
            {
                ModelCode       = model.Code,
                Current_Station = currentStation.Name,
                Dest_Station    = destinationStation.Name,
                Result          = result,
                StartTime       = DateTime.Now
            };

            dbContext.agvTask.Add(agvTask);


            if (SaveChanges() == 1)
            {
                dbContext.Entry(agvTask).Reload();
                return(agvTask);
            }

            return(agvTask);
        }