aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Transceiver52M/radioInterfaceResamp.cpp6
-rw-r--r--Transceiver52M/runTransceiver.cpp55
2 files changed, 34 insertions, 27 deletions
diff --git a/Transceiver52M/radioInterfaceResamp.cpp b/Transceiver52M/radioInterfaceResamp.cpp
index c3b4396..6c3839a 100644
--- a/Transceiver52M/radioInterfaceResamp.cpp
+++ b/Transceiver52M/radioInterfaceResamp.cpp
@@ -75,8 +75,6 @@ RadioInterfaceResamp::~RadioInterfaceResamp()
void RadioInterfaceResamp::close()
{
- RadioInterface::close();
-
delete innerSendBuffer;
delete outerSendBuffer;
delete innerRecvBuffer;
@@ -89,9 +87,13 @@ void RadioInterfaceResamp::close()
outerSendBuffer = NULL;
innerRecvBuffer = NULL;
outerRecvBuffer = NULL;
+ sendBuffer = NULL;
+ recvBuffer = NULL;
upsampler = NULL;
dnsampler = NULL;
+
+ RadioInterface::close();
}
/* Initialize I/O specific objects */
diff --git a/Transceiver52M/runTransceiver.cpp b/Transceiver52M/runTransceiver.cpp
index 9a20ee6..775424a 100644
--- a/Transceiver52M/runTransceiver.cpp
+++ b/Transceiver52M/runTransceiver.cpp
@@ -47,16 +47,14 @@
*/
#define SPS 4
-using namespace std;
-
ConfigurationTable gConfig(CONFIGDB);
volatile bool gbShutdown = false;
static void ctrlCHandler(int signo)
{
- cout << "Received shutdown signal" << endl;;
- gbShutdown = true;
+ std::cout << "Received shutdown signal" << std::endl;
+ gbShutdown = true;
}
/*
@@ -110,28 +108,25 @@ int testConfig(const char *filename)
int main(int argc, char *argv[])
{
- int trxPort;
+ int trxPort, fail = 0;
std::string deviceArgs, logLevel, trxAddr;
+ RadioDevice *usrp = NULL;
+ RadioInterface *radio = NULL;
+ Transceiver *trx = NULL;
if (argc == 3)
- {
deviceArgs = std::string(argv[2]);
- }
else
- {
deviceArgs = "";
- }
- if ( signal( SIGINT, ctrlCHandler ) == SIG_ERR )
- {
- cerr << "Couldn't install signal handler for SIGINT" << endl;
- exit(1);
+ if (signal(SIGINT, ctrlCHandler) == SIG_ERR) {
+ std::cerr << "Couldn't install signal handler for SIGINT" << std::endl;
+ return EXIT_FAILURE;
}
- if ( signal( SIGTERM, ctrlCHandler ) == SIG_ERR )
- {
- cerr << "Couldn't install signal handler for SIGTERM" << endl;
- exit(1);
+ if (signal(SIGTERM, ctrlCHandler) == SIG_ERR) {
+ std::cerr << "Couldn't install signal handler for SIGTERM" << std::endl;
+ return EXIT_FAILURE;
}
// Configure logger.
@@ -147,14 +142,13 @@ int main(int argc, char *argv[])
srandom(time(NULL));
- RadioDevice *usrp = RadioDevice::make(SPS);
+ usrp = RadioDevice::make(SPS);
int radioType = usrp->open(deviceArgs);
if (radioType < 0) {
LOG(ALERT) << "Transceiver exiting..." << std::endl;
return EXIT_FAILURE;
}
- RadioInterface* radio;
switch (radioType) {
case RadioDevice::NORMAL:
radio = new RadioInterface(usrp, 3, SPS, false);
@@ -165,25 +159,36 @@ int main(int argc, char *argv[])
break;
default:
LOG(ALERT) << "Unsupported configuration";
- return EXIT_FAILURE;
+ fail = 1;
+ goto shutdown;
}
if (!radio->init(radioType)) {
LOG(ALERT) << "Failed to initialize radio interface";
+ fail = 1;
+ goto shutdown;
}
- Transceiver *trx = new Transceiver(trxPort, trxAddr.c_str(),
- SPS, GSM::Time(3,0), radio);
+ trx = new Transceiver(trxPort, trxAddr.c_str(), SPS, GSM::Time(3,0), radio);
if (!trx->init()) {
LOG(ALERT) << "Failed to initialize transceiver";
+ fail = 1;
+ goto shutdown;
}
trx->receiveFIFO(radio->receiveFIFO());
trx->start();
- while (!gbShutdown) {
+ while (!gbShutdown)
sleep(1);
- }
- cout << "Shutting down transceiver..." << endl;
+shutdown:
+ std::cout << "Shutting down transceiver..." << std::endl;
delete trx;
+ delete radio;
+ delete usrp;
+
+ if (fail)
+ return EXIT_FAILURE;
+
+ return 0;
}