public ReportSinkPositionMessage(SinksAgentsRow reportSinkPosition) { counter = new NetworkOverheadCounter(); reportSinkPosition.RingAccessPointDestination = reportSinkPosition.AgentNode.getDestinationForRingAccess(); Packet ANPI = GeneratePacket(reportSinkPosition); SendPacket(reportSinkPosition.AgentNode, ANPI); }
/// <summary> /// find x in inlist /// </summary> /// <param name="x"></param> /// <param name="inlist"></param> /// <returns></returns> private bool Find(SinksAgentsRow x, List <SinksAgentsRow> inlist) { foreach (SinksAgentsRow rec in inlist) { if (rec.Sink.ID == x.Sink.ID) { return(true); } } return(false); }
public List <SinksAgentsRow> CopyFewSinks(Dictionary <int, SinksAgentsRow> list, List <int> SinkIDs) { List <SinksAgentsRow> re = new List <SinksAgentsRow>(); foreach (int id in SinkIDs) { SinksAgentsRow row = new SinksAgentsRow(); row.Sink = PublicParamerters.MainWindow.mySinks[id - 1]; row.AgentNode = row.Sink.MySinksAgentsRow.AgentNode; re.Add(row); } return(re); }
private Packet GeneragtePacket(Sensor firstRingNode, SinksAgentsRow reportSinkPositionRow) { PublicParamerters.NumberofGeneratedPackets += 1; Packet pck = new Packet(); pck.Source = firstRingNode; pck.ReportSinkPosition = reportSinkPositionRow; pck.Path = "" + firstRingNode.ID; pck.Destination = null; pck.PacketType = PacketType.ShareSinkPosition; pck.PID = PublicParamerters.NumberofGeneratedPackets; counter.DisplayRefreshAtGenertingPacket(firstRingNode, PacketType.ShareSinkPosition); return(pck); }
private Packet GeneragtePacket(Sensor sender, SinksAgentsRow row) { //Should not enter here if its an agent PublicParamerters.NumberofGeneratedPackets += 1; Packet pck = new Packet(); pck.Source = sender; pck.Path = "" + sender.ID; pck.Destination = row.AgentNode; pck.PacketType = PacketType.Data; pck.PID = PublicParamerters.NumberofGeneratedPackets; pck.TimeToLive = Convert.ToInt16((Operations.DistanceBetweenTwoPoints(sender.CenterLocation, pck.Destination.CenterLocation) / (PublicParamerters.CommunicationRangeRadius / 3))); pck.TimeToLive += PublicParamerters.HopsErrorRange; counter.DisplayRefreshAtGenertingPacket(sender, PacketType.Data); return(pck); }
private Packet GeneratePacket(SinksAgentsRow reportSinkPosition) { PublicParamerters.NumberofGeneratedPackets += 1; Packet pck = new Packet(); pck.Source = reportSinkPosition.AgentNode; pck.Path = "" + reportSinkPosition.AgentNode.ID; pck.Destination = null; // has no destination. pck.PacketType = PacketType.ReportSinkPosition; pck.DestinationPoint = reportSinkPosition.RingAccessPointDestination; pck.PID = PublicParamerters.NumberofGeneratedPackets; pck.ReportSinkPosition = reportSinkPosition; pck.TimeToLive = Convert.ToInt16((Operations.DistanceBetweenTwoPoints(reportSinkPosition.AgentNode.CenterLocation, reportSinkPosition.RingAccessPointDestination) / (PublicParamerters.CommunicationRangeRadius / 3))); pck.TimeToLive += PublicParamerters.HopsErrorRange; counter.DisplayRefreshAtGenertingPacket(reportSinkPosition.AgentNode, PacketType.ReportSinkPosition); return(pck); }
public ShareSinkPositionIntheHighTier(Sensor ringNodeGateway, SinksAgentsRow reportSinkPositionRow) { if (ringNodeGateway.IsHightierNode) { ringNodeGateway.AddSinkRecordInHighTierNode(reportSinkPositionRow); counter = new NetworkOverheadCounter(); Packet clock = GeneragtePacket(ringNodeGateway, reportSinkPositionRow); clock.PacketDirection = PacketDirection.Left; Packet anticlock = GeneragtePacket(ringNodeGateway, reportSinkPositionRow); anticlock.PacketDirection = PacketDirection.Right; SendPacket(ringNodeGateway, clock); SendPacket(ringNodeGateway, anticlock); //: SAVE Sink positions.// this is not agent record. becarful here } }