diff --git a/uhd_cpp/uhd_the_ark.cpp b/uhd_cpp/uhd_the_ark.cpp index 9902421c75b54ba06daac84c1dc634a9124abf2c..551fbecb8f49dde83b16339f8f59daf58399c687 100644 --- a/uhd_cpp/uhd_the_ark.cpp +++ b/uhd_cpp/uhd_the_ark.cpp @@ -17,14 +17,16 @@ #include static bool stop_signal_called = false; +static char error_string[1024]; +static char err_msg[1024]; #define UHD_DO(X) \ {\ uhd_error e = (X);\ - char buf_errs[1024];\ - if (e) { snprintf(buf_errs,sizeof(buf_errs),"Error in line %d, NO %d.",__LINE__,e);\ + if (e) { \ + uhd_error er = uhd_get_last_error(error_string,sizeof(error_string));\ + snprintf(err_msg,sizeof(err_msg),", line %d, Err %d.%d :",__LINE__,e,er);\ std::string ev = __FILE__;\ - ev += ":";\ - ev += buf_errs;\ + ev += err_msg;ev += error_string;\ return_code = 1;\ throw ev;\ }\ @@ -49,7 +51,6 @@ const double sprate = 200000 ; int main(int /*argc*/, char* /*argv*/[]) { - char error_string[512]; const char dev_args[] = ""; //接收频率 double rx_freq = 200e6; @@ -81,6 +82,9 @@ int main(int /*argc*/, char* /*argv*/[]) uhd_rx_metadata_handle rx_meta = 0; uhd_tx_streamer_handle tx_streamer = 0; uhd_tx_metadata_handle tx_meta = 0; + + + try{ fprintf(stderr, "Creating USRP with args \"%s\"...\n", dev_args); UHD_DO(uhd_usrp_make(&usrp, dev_args));