/* / \ * // | \\ * / | \ * | */ public void Initialize() { Notify(GenerateStaticReport()); // For Visualization // Set initial hello timer to random value PEQTimerHello timer = new PEQTimerHello(_randomValue.NextDouble() * _TIMER_HELLO, this); _eventManager.AddEvent(timer); if (_isSink) { // Send build tree (at future time...) PEQMessageBuildTree msgBT = new PEQMessageBuildTree(new VarID(_NUM_ID_BYTES), _id, _sequenceNumber++, _id, 0x00); double time = _randomValue.NextDouble() * _TIMER_BUILDTREE; msgBT._nextHopCheat = _location; PEQTimerMessage outputTimer = new PEQTimerMessage(msgBT, time, this); _eventManager.AddEvent(outputTimer); // Add to BT to subscription table (this is early........) PEQTableEntrySubscription sub = new PEQTableEntrySubscription(); sub._SinkID = _id; sub._nextHopCheat = _location; sub._HopCount = 0; sub._DestinationID = _id; sub._CriteriaType = 0x0000; sub._Valid = true; _tableSubscription.Add(sub); // Send subscription (at future time...) PEQMessageSubscribe msgSub = new PEQMessageSubscribe(new VarID(_NUM_ID_BYTES), _id, _sequenceNumber++, _id, 0x00, new PEQSubscriptionInfo(0x0001, new PEQSubscriptionCriteria())); time = time + _TIMER_SUBSCRIBE; msgSub._nextHopCheat = _location; outputTimer = new PEQTimerMessage(msgSub, time, this); _eventManager.AddEvent(outputTimer); // Add subscription to subscription table (this is very early........) sub = new PEQTableEntrySubscription(); sub._SinkID = _id; sub._nextHopCheat = _location; sub._HopCount = 0; sub._DestinationID = _id; sub._CriteriaType = 0x0001; sub._Valid = true; _tableSubscription.Add(sub); updateRoutingTable(); } }
private void processHelloTimer(PEQTimerHello timer) { PEQMessageHello msg = new PEQMessageHello(_id); msg._nextHopCheat = _location; PEQTimerMessage timerEvent = new PEQTimerMessage(msg, _eventManager.CurrentClock + _TIMER_WAIT_SEND, this); _eventManager.AddEvent(timerEvent); resetHelloTimer(); }
private void resetHelloTimer() { PEQTimerHello timer = new PEQTimerHello(_eventManager.CurrentClock + _TIMER_HELLO, this); _eventManager.AddEvent(timer); }