private void AllocateSlots(NetworkPackage networkPackage) { //TimeStamp.WriteLine("{0} >> Received L CON REQ from {1} {2}", "LRMs", networkPackage.sendingClientId, networkPackage.message); string[] splittedMessage = networkPackage.message.Split(':'); string[] MessageLRMs = splittedMessage[0].Split(' '); for (int i = 0; i < MessageLRMs.Length; i++) { //TimeStamp.WriteLine("{0} >> Received ALLOCATE SLOTS from {1}", "LRM_" + MessageLRMs[i], networkPackage.sendingClientId); LRM lrm = LRMs.Find(x => x.linkId == Int32.Parse(MessageLRMs[i])); if (lrm.AddCracks(splittedMessage[1])) { Console.WriteLine("{0} {1} :: slots from {2} to {3} allocated", TimeStamp.TAB, "LRM_" + MessageLRMs[i], splittedMessage[1].Split(' ')[0], splittedMessage[1].Split(' ')[1]); } lrm.contacts.Add(networkPackage.sendingClientId); } TimeStamp.WriteLine("{0} >> LINK CONNECTION RESPONSE sent to {1}", "LRMs", networkPackage.sendingClientId); if (splittedMessage.Length != 3) { NetworkPackage response = new NetworkPackage( "LRMs", networkPackage.sendingClientId, Command.Slots_Allocated ); Send(response); } }
public static List <LRM> ReadLinks() { List <LRM> result = new List <LRM>(); XmlDocument XmlDoc = new XmlDocument(); try { XmlDoc.Load("Links.xml"); Console.WriteLine("Links.xml załadowany!"); int count = XmlDoc.GetElementsByTagName("Link").Count; for (int i = 0; i < count; i++) { XmlAttributeCollection coll = XmlDoc.GetElementsByTagName("Link").Item(i).Attributes; LRM readLink = new LRM( Int32.Parse(XmlDoc.GetElementsByTagName("Link").Item(i).InnerText), // linkId Int32.Parse(coll.Item(4).InnerText) //length <-----trzeba dodac dlugosci do XML ! ); result.Add(readLink); } } catch (XmlException exc) { Console.WriteLine(exc.Message); } return(result); }
public void AlarmCC(int lrmID) { LRM lrm = LRMs.Find(x => x.linkId == lrmID); foreach (string contact in lrm.contacts) { TimeStamp.WriteLine("{0} >> LINK DOWN sent to {1}, link: {2}", "LRMs", contact, lrm.linkId); Send(new NetworkPackage( "LRMs", contact, Command.Link_Down, lrm.linkId.ToString() )); } }
private void DeallocateSlots(NetworkPackage networkPackage) { //TimeStamp.WriteLine("{0} >> Received RM L CON REQ from {1} {2}", "LRMs", networkPackage.sendingClientId, networkPackage.message); string[] splittedMessage = networkPackage.message.Split(':'); string[] MessageLRMs = splittedMessage[0].Split(' '); for (int i = 0; i < MessageLRMs.Length; i++) { //TimeStamp.WriteLine("{0} >> Received ALLOCATE SLOTS from {1}", "LRM_" + MessageLRMs[i], networkPackage.sendingClientId); LRM lrm = LRMs.Find(x => x.linkId == Int32.Parse(MessageLRMs[i])); Console.WriteLine("{0} {1} :: slots from {2} to {3} released", TimeStamp.TAB, "LRM_" + MessageLRMs[i], splittedMessage[1].Split(' ')[0], splittedMessage[1].Split(' ')[1]); lrm.ReleaseCracks(splittedMessage[1]); } TimeStamp.WriteLine("{0} >> REMOVE LINK CONNECTION RESPONSE sent to {1}", "LRMs", networkPackage.sendingClientId); NetworkPackage response = new NetworkPackage( "LRMs", networkPackage.sendingClientId, Command.Remove_Link_Connection_Response ); Send(response); }