111 #include <sys/time.h> 112 #include <sys/resource.h> 143 lfile.open(lock_file_name.c_str());
144 lfile <<
"If this file exists, there is likely an active SoDaServer process somewhere on this machine.\n";
150 remove(lock_file_name.c_str());
167 SoDa::DatMBox rx_stream, tx_stream, if_stream, cw_env_stream;
185 std::cerr <<
"lib UHD support not included in this build.\n^C to exit.\n";
190 std::cerr << boost::format(
"Radio type [%s] is not yet supported\nHit ^C to exit.\n") % params.
getRadioType();
209 SoDa::CWTX cwtx(¶ms, &cwtxt_stream, &cw_env_stream, &cmd_stream);
212 SoDa::UI ui(¶ms, &cwtxt_stream, &rx_stream, &if_stream, &cmd_stream, &gps_stream);
218 d.debugMsg(
"Created units.");
223 d.debugMsg(
"Starting UI");
226 d.debugMsg(
"Starting radio units");
237 d.debugMsg(
"Starting gps");
246 int watchdog_count = 0;
251 if(watchdog_count > 10) {
282 int main(
int argc,
char * argv[])
298 std::cerr <<
"Exception caught at SoDa main: " << std::endl;
299 std::cerr <<
"\t" << exc->
toString() << std::endl;
bool isRadioType(const std::string &rtype)
The Baseclass for all SoDa objects, and useful commonly used classes.
The Thread baseclass for all SoDa thread objects.
std::string getLockFileName() const
Though libuhd is designed to be re-entrant, there are some indications that all control functions (se...
double getAudioSampleRate() const
bool reportMemInfo() const
This class handles command line parameters and built-ins.
The SoDa Exception class.
void start()
Execute the threads run loop.
std::string toString()
Create a string that explains this exception.
void join()
more properly "Wait for this thread to exit its run loop".
The CW text-to-envelope converter run loop.
unsigned int getDebugLevel() const
int main(int argc, char *argv[])
main entrypoint
unsigned int getAFBufferSize() const
std::string getAudioPortName() const
bool waitForJoin(unsigned int m)
wait for the thread to stop running, or the specified time to pass.
A simple base class to provide debug messaging from any derived class.
ALSA audio interface class.
static void setDefaultLevel(unsigned int v)
int doWork(SoDa::Params ¶ms)
do the work of creating the SoDa threads
void createLockFile(const std::string &lock_file_name)
std::string getRadioType() const
BaseBandRX – this is the audio processing chain for the recieve path.
Thread class that owns the USRP control channel and functions.
std::string getReportFileName() const
A simple base class to provide debug messaging from any derived class.
void reportInfo(bool only_if_changed=false)
void deleteLockFile(const std::string &lock_file_name)