aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Transceiver52M/Transceiver.cpp1
-rw-r--r--Transceiver52M/runTransceiver.cpp3
-rw-r--r--Transceiver52M/sigProcLib.cpp12
-rw-r--r--Transceiver52M/sigProcLib.h2
4 files changed, 15 insertions, 3 deletions
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index a7c629e..f09f036 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -501,7 +501,6 @@ void Transceiver::driveControl()
// Prepare for thread start
mPower = -20;
mRadioInterface->start();
- generateRACHSequence(mSPS);
// Start radio interface threads.
mFIFOServiceLoopThread->start((void * (*)(void*))FIFOServiceLoopAdapter,(void*) this);
diff --git a/Transceiver52M/runTransceiver.cpp b/Transceiver52M/runTransceiver.cpp
index dc2ebc6..f268752 100644
--- a/Transceiver52M/runTransceiver.cpp
+++ b/Transceiver52M/runTransceiver.cpp
@@ -160,6 +160,9 @@ int main(int argc, char *argv[])
Transceiver *trx = new Transceiver(trxPort, trxAddr.c_str(),
SAMPSPERSYM, GSM::Time(3,0), radio);
+ if (!trx->init()) {
+ LOG(ALERT) << "Failed to initialize transceiver";
+ }
trx->receiveFIFO(radio->receiveFIFO());
trx->start();
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index 9ad149f..2ccc714 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -244,11 +244,21 @@ void initGMSKRotationTables(int sps)
}
}
-void sigProcLibSetup(int sps)
+bool sigProcLibSetup(int sps)
{
+ if ((sps != 0) && (sps != 2) && (sps != 4))
+ return false;
+
initTrigTables();
initGMSKRotationTables(sps);
generateGSMPulse(sps, 2);
+
+ if (!generateRACHSequence(sps)) {
+ sigProcLibDestroy();
+ return false;
+ }
+
+ return true;
}
void GMSKRotate(signalVector &x) {
diff --git a/Transceiver52M/sigProcLib.h b/Transceiver52M/sigProcLib.h
index a9fabb0..ee152d5 100644
--- a/Transceiver52M/sigProcLib.h
+++ b/Transceiver52M/sigProcLib.h
@@ -100,7 +100,7 @@ float vectorNorm2(const signalVector &x);
float vectorPower(const signalVector &x);
/** Setup the signal processing library */
-void sigProcLibSetup(int sps);
+bool sigProcLibSetup(int sps);
/** Destroy the signal processing library */
void sigProcLibDestroy(void);