diff options
-rw-r--r-- | Transceiver52M/DriveLoop.cpp | 9 | ||||
-rw-r--r-- | Transceiver52M/DriveLoop.h | 3 | ||||
-rw-r--r-- | Transceiver52M/Transceiver.cpp | 6 |
3 files changed, 11 insertions, 7 deletions
diff --git a/Transceiver52M/DriveLoop.cpp b/Transceiver52M/DriveLoop.cpp index cbd2993..c925d20 100644 --- a/Transceiver52M/DriveLoop.cpp +++ b/Transceiver52M/DriveLoop.cpp @@ -33,12 +33,13 @@ DriveLoop::DriveLoop(int wSamplesPerSymbol, mSamplesPerSymbol = wSamplesPerSymbol; mRadioInterface = wRadioInterface; - GSM::Time startTime(random() % gHyperframe, 0); - mTransmitDeadlineClock = startTime; - mLatencyUpdateTime = startTime; + mStartTime = (random() % gHyperframe, 0); + + mTransmitDeadlineClock = mStartTime; + mLatencyUpdateTime = mStartTime; mTransmitLatency = wTransmitLatency; - mRadioInterface->getClock()->set(startTime); + mRadioInterface->getClock()->set(mStartTime); // generate pulse and setup up signal processing library gsmPulse = generateGSMPulse(2, mSamplesPerSymbol); diff --git a/Transceiver52M/DriveLoop.h b/Transceiver52M/DriveLoop.h index df54ef7..593ef58 100644 --- a/Transceiver52M/DriveLoop.h +++ b/Transceiver52M/DriveLoop.h @@ -58,6 +58,7 @@ private: Thread *mRadioDriveLoopThread; ///< thread to push/pull bursts into transmit/receive FIFO GSM::Time mTransmitDeadlineClock; ///< deadline for pushing bursts into transmit FIFO + GSM::Time mStartTime; ///< random start time of the radio clock RadioInterface *mRadioInterface; ///< associated radioInterface object double txFullScale; ///< full scale input to radio @@ -149,6 +150,8 @@ public: mChanType[m][timeslot] = comb; } + GSM::Time getStartTime() { return mStartTime; } + private: ChannelCombination mChanType[CHAN_M][8]; ///< channel types for all timeslots diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index ff8c12e..0d7776f 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -66,7 +66,7 @@ Transceiver::Transceiver(int wBasePort, mSamplesPerSymbol = wSamplesPerSymbol; mRadioInterface = wRadioInterface; - mLastClockUpdateTime = GSM::Time(0, 0); + mLastClockUpdateTime = mDriveLoop->getStartTime(); mMaxExpectedDelay = 0; mTransmitDeadlineClock = wDriveLoop->deadlineClock(); @@ -83,7 +83,7 @@ Transceiver::Transceiver(int wBasePort, channelResponse[i] = NULL; DFEForward[i] = NULL; DFEFeedback[i] = NULL; - channelEstimateTime[i] = GSM::Time(0, 0); + channelEstimateTime[i] = mDriveLoop->getStartTime(); } mOn = false; @@ -92,7 +92,7 @@ Transceiver::Transceiver(int wBasePort, mRxFreq = 0.0; mPower = -10; mEnergyThreshold = INIT_ENERGY_THRSHD; - prevFalseDetectionTime = GSM::Time(0, 0); + prevFalseDetectionTime = mDriveLoop->getStartTime(); mRadioLocked = mRadioInterface->started(); } |