Esempio n. 1
0
 private void HandleCarMessage(CarMessage message)
 {
     Console.WriteLine("CLIENT: received car Message");
     CurrentCar = message.Car;
     Console.WriteLine("Currentcar: " + CurrentCar);
     Form1.GetInstance().UpdateTextBox(CurrentCar.ToString());
 }
Esempio n. 2
0
 private void ProcessCarMessage(string str)
 {
     CarMessage msg = CarMessage.Create(str);
     if (msg.Type == MessageType.Request)
     {
         requestQueue.Add(msg);
         CarMessage reply = GenerateMessage(MessageType.Reply);
         
         if (!onTheBridge) // check not in CS
         {
             SendMessage(reply, msg.Id);
         }
         else
         {
             deferedRequests.Add(new DifferedMessage(reply, msg.Id));
         }
     }
     else if (msg.Type == MessageType.Reply)
     {
         repliesNo++;
     }
     else if (msg.Type == MessageType.Release)
     {
         CarMessage m = requestQueue.Find(t => t.Id == msg.Id);
         if(m!= null)
             requestQueue.Remove(m);
     }
 }
Esempio n. 3
0
 public void SendMessage(CarMessage message, int serverPort)
 {
     try
     {
         Client client = GetClientOf(serverPort);
         if (client != null)
             client.SendData(message.ToString());
     }
     catch
     {
         //WriteMessage(String.Format("Exception sending {0} msg from {1} to {2}", type, id, serverPort));
     }
 }
Esempio n. 4
0
        public void Move()
        {
            if (InRoad != null)
            {
                if (InRoad.IsBridge)
                {
                    WantPermissionToCS();
                    while (true)
                    {
                        if (repliesNo == RequestSet.Count && requestQueue.Count > 0 && requestQueue[0].Id == this.Id)
                        {
                            repliesNo = 0;
                            onTheBridge = true;
                            break;
                        }
                    }
                }
                while (moving)
                {
                    AdjustSpeed();
                    Move1();
                }
                if (InRoad.IsBridge)
                {
                    if (InRoad.ChangedDirection)
                    {
                        InRoad.ChangeDirection();
                        InRoad.ChangedDirection = false;
                    }
                    onTheBridge = false;
                    foreach (DifferedMessage msg in deferedRequests)
                    {
                        SendMessage(msg.Message, msg.Receiver);
                    }
                    deferedRequests.Clear();

                    AnnounceRelease();
                    
                    CarMessage ownRequest = requestQueue.Find(m => m.Id == this.Id);
                    if (ownRequest != null)
                        requestQueue.Remove(ownRequest);
                }
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> Post([FromBody] CarMessage value)
        {
            using (_db)
            {
                _logger.LogDebug("Inserting car:{1} for user:{0}", User, value.LicencePlate);

                var car = new Car
                {
                    LicencePlate = value.LicencePlate,
                    OwnerId      = value.OwnerId,
                    Type         = value.Type
                };

                await _db.Cars.AddAsync(car);

                await _db.SaveChangesAsync();

                await _db.Entry(car).Reference(c => c.Owner).LoadAsync();

                return(Ok(car));
            }
        }
 private void HandleCarMessage(CarMessage message)
 {
     Console.WriteLine("USER: Received CarMessage");
     Car CurrentCar = message.Car;
 }
Esempio n. 7
0
 private static CarMessage DecodeCarMessage(dynamic json)
 {
     return(CarMessage.ToClass(json));
 }
Esempio n. 8
0
 public DifferedMessage(CarMessage m, int s)
 {
     this.Message = m;
     this.Receiver = s;
 }
Esempio n. 9
0
 private void AnnounceRelease()
 {
     CarMessage releaseMsg = GenerateMessage(MessageType.Release);
     foreach (int carId in RequestSet)
         SendMessage(releaseMsg, carId);
 }