View | Details | Raw Unified | Return to bug 1010
Collapse All | Expand All

(-)a/src/devices/uan/model/uan-net-device.cc (+6 lines)
 Lines 389-393    Link Here 
389
  m_mac->SetAddress (UanAddress::ConvertFrom (address));
389
  m_mac->SetAddress (UanAddress::ConvertFrom (address));
390
}
390
}
391
391
392
void
393
UanNetDevice::SetSleepMode (bool sleep)
394
{
395
  m_phy->SetSleepMode (sleep);
396
}
397
392
} // namespace ns3
398
} // namespace ns3
393
399
(-)a/src/devices/uan/model/uan-net-device.h (+2 lines)
 Lines 95-100    Link Here 
95
   */
95
   */
96
  void Clear (void);
96
  void Clear (void);
97
97
98
  void SetSleepMode (bool sleep);
99
98
  // Purely virtual functions from base class
100
  // Purely virtual functions from base class
99
  virtual void SetIfIndex (const uint32_t index);
101
  virtual void SetIfIndex (const uint32_t index);
100
  virtual uint32_t GetIfIndex (void) const;
102
  virtual uint32_t GetIfIndex (void) const;
(-)a/src/devices/uan/model/uan-phy-dual.h (+5 lines)
 Lines 247-252    Link Here 
247
   */
247
   */
248
  void SetSinrModelPhy2 (Ptr<UanPhyCalcSinr> calcSinr);
248
  void SetSinrModelPhy2 (Ptr<UanPhyCalcSinr> calcSinr);
249
249
250
  virtual void SetSleepMode (bool sleep)
251
  {
252
    //TODO This method has to be implemented
253
  }
254
250
  /**
255
  /**
251
   * \returns Packet currently being received on Phy1 (Null Ptr if none)
256
   * \returns Packet currently being received on Phy1 (Null Ptr if none)
252
   */
257
   */
(-)a/src/devices/uan/model/uan-phy-gen.cc (-1 / +39 lines)
 Lines 525-530    Link Here 
525
      NS_LOG_DEBUG ("PHY requested to TX while already Transmitting.  Dropping packet.");
525
      NS_LOG_DEBUG ("PHY requested to TX while already Transmitting.  Dropping packet.");
526
      return;
526
      return;
527
    }
527
    }
528
  else if (m_state == SLEEP)
529
    {
530
      NS_LOG_DEBUG ("PHY requested to TX while sleeping.  Dropping packet.");
531
      return;
532
    }
528
533
529
  UanTxMode txMode = GetMode (modeNum);
534
  UanTxMode txMode = GetMode (modeNum);
530
535
 Lines 547-552    Link Here 
547
void
552
void
548
UanPhyGen::TxEndEvent ()
553
UanPhyGen::TxEndEvent ()
549
{
554
{
555
  if (m_state == SLEEP || m_disabled == true)
556
    {
557
      NS_LOG_DEBUG ("Transmission ended but node sleeping or dead");
558
      return;
559
    }
560
550
  NS_ASSERT (m_state == TX);
561
  NS_ASSERT (m_state == TX);
551
  if (GetInterferenceDb ( (Ptr<Packet>) 0) > m_ccaThreshDb)
562
  if (GetInterferenceDb ( (Ptr<Packet>) 0) > m_ccaThreshDb)
552
    {
563
    {
 Lines 632-638    Link Here 
632
      }
643
      }
633
      break;
644
      break;
634
    case SLEEP:
645
    case SLEEP:
635
      NS_FATAL_ERROR ("SLEEP state handling not yet implemented!");
646
      NS_LOG_DEBUG ("Sleep mode. Dropping packet.");
636
      break;
647
      break;
637
    }
648
    }
638
649
 Lines 652-657    Link Here 
652
      return;
663
      return;
653
    }
664
    }
654
665
666
  if (m_disabled || m_state == SLEEP)
667
    {
668
      NS_LOG_DEBUG ("Sleep mode or dead. Dropping packet");
669
      m_pktRx = 0;
670
      return;
671
    }
672
655
  if (GetInterferenceDb ( (Ptr<Packet>) 0) > m_ccaThreshDb)
673
  if (GetInterferenceDb ( (Ptr<Packet>) 0) > m_ccaThreshDb)
656
    {
674
    {
657
      m_state = CCABUSY;
675
      m_state = CCABUSY;
 Lines 817-822    Link Here 
817
  m_transducer->AddPhy (this);
835
  m_transducer->AddPhy (this);
818
}
836
}
819
837
838
void
839
UanPhyGen::SetSleepMode (bool sleep)
840
{
841
  if (sleep)
842
    {
843
      m_state = SLEEP;
844
      if (!m_energyCallback.IsNull ())
845
        {
846
          m_energyCallback (SLEEP);
847
        }
848
    }
849
  else
850
    {
851
      m_state = IDLE;
852
      if (!m_energyCallback.IsNull ())
853
        {
854
          m_energyCallback (IDLE);
855
        }
856
    }
857
}
820
858
821
void
859
void
822
UanPhyGen::NotifyTransStartTx (Ptr<Packet> packet, double txPowerDb, UanTxMode txMode)
860
UanPhyGen::NotifyTransStartTx (Ptr<Packet> packet, double txPowerDb, UanTxMode txMode)
(-)a/src/devices/uan/model/uan-phy-gen.h (+2 lines)
 Lines 203-208    Link Here 
203
  virtual Ptr<Packet> GetPacketRx (void) const;
203
  virtual Ptr<Packet> GetPacketRx (void) const;
204
  virtual void Clear (void);
204
  virtual void Clear (void);
205
205
206
  virtual void SetSleepMode (bool sleep);
207
206
private:
208
private:
207
  typedef std::list<UanPhyListener *> ListenerList;
209
  typedef std::list<UanPhyListener *> ListenerList;
208
210
(-)a/src/devices/uan/model/uan-phy.h (+2 lines)
 Lines 373-378    Link Here 
373
   * Clears all pointer references
373
   * Clears all pointer references
374
   */
374
   */
375
  virtual void Clear (void) = 0;
375
  virtual void Clear (void) = 0;
376
377
  virtual void SetSleepMode (bool sleep) = 0;
376
};
378
};
377
379
378
}
380
}

Return to bug 1010