From 009b118ec6e2e5f779c735701f8795fb9dfd95af Mon Sep 17 00:00:00 2001 From: David Freese Date: Fri, 2 Aug 2013 08:05:01 -0500 Subject: [PATCH] pskmail events * changed INFO event reporting to be like DEBUG level report * added event reports to provide additional program flow --- src/dialogs/fl_digi.cxx | 20 +++++++++++++++++--- src/include/debug.h | 2 ++ src/misc/arq_io.cxx | 22 +++++++++++++++++++--- src/misc/debug.cxx | 2 +- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/dialogs/fl_digi.cxx b/src/dialogs/fl_digi.cxx index ccbd2300..df18c4c5 100644 --- a/src/dialogs/fl_digi.cxx +++ b/src/dialogs/fl_digi.cxx @@ -1131,6 +1131,8 @@ void init_modem(trx_mode mode, int freq) { ENSURE_THREAD(FLMAIN_TID); +LOG_INFO("mode: %d, freq: %d", (int)mode, freq); + #if !BENCHMARK_MODE quick_change = 0; modem_config_tab = tabsModems->child(0); @@ -1379,10 +1381,22 @@ void init_modem_sync(trx_mode m, int f) { ENSURE_THREAD(FLMAIN_TID); - if (trx_state != STATE_RX) - TRX_WAIT(STATE_RX, abort_tx()); + if (trx_state != STATE_RX) { + LOG_INFO("%s", "Waiting for STATE_RX"); + abort_tx(); + while (trx_state != STATE_RX) + trx_wait_state(); + } + + LOG_INFO("Call init_modem %d, %d", m, f); + init_modem(m, f); + + if (trx_state != STATE_RX) { + LOG_INFO("%s","Waiting for state RX"); + while (trx_state != STATE_RX) + trx_wait_state(); + } - TRX_WAIT(STATE_RX, init_modem(m, f)); REQ_FLUSH(TRX_TID); } diff --git a/src/include/debug.h b/src/include/debug.h index 33211a07..a3b33efb 100644 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -23,6 +23,8 @@ #ifndef _DEBUG_H_ #define _DEBUG_H_ +#define DEBUG_PSKMAIL 0 + #include "util.h" class debug diff --git a/src/misc/arq_io.cxx b/src/misc/arq_io.cxx index 29047958..64055686 100644 --- a/src/misc/arq_io.cxx +++ b/src/misc/arq_io.cxx @@ -125,10 +125,13 @@ string noctrl(string src) static string retstr; retstr.clear(); char hexstr[10]; + int c; for (size_t i = 0; i < src.length(); i++) { - if ( src[i] < 128) retstr.append(asc[(int)src[i]]); + c = src[i]; + if ( c > 0 && c < 128) + retstr.append(asc[c]); else { - snprintf(hexstr, sizeof(hexstr), "<%0X>", src[i]); + snprintf(hexstr, sizeof(hexstr), "<%0X>", c & 0xFF); retstr.append(hexstr); } } @@ -228,6 +231,9 @@ static string strSubCmd; if (toparse.empty()) return; +if (DEBUG_PSKMAIL) + LOG_INFO("Arq text: %s", noctrl(toparse).c_str()); +else LOG_VERBOSE("Arq text: %s", noctrl(toparse).c_str()); idxCmd = toparse.find(""); @@ -627,6 +633,12 @@ void WriteARQsocket(unsigned char* data, size_t len) arqclient.erase(p); } } + + string outs = ""; + for (unsigned int i = 0; i < len; i++) + outs += asc[data[i] & 0x7F]; + LOG_INFO("%s", outs.c_str()); + if (arqclient.empty()) arq_reset(); } @@ -722,8 +734,12 @@ bool Socket_arqRx() active_modem->set_freq(progdefaults.PSKsweetspot); start_tx(); } else { - arqtext.append(txstring); //assign(txstring); + arqtext.append(txstring); LOG_INFO("Appended tx text: %s", noctrl(txstring).c_str()); + if (trx_state != STATE_TX) { + LOG_INFO("%s","Restarting TX"); + start_tx(); + } } txstring.clear(); diff --git a/src/misc/debug.cxx b/src/misc/debug.cxx index bed1b9ad..06b9287e 100644 --- a/src/misc/debug.cxx +++ b/src/misc/debug.cxx @@ -169,7 +169,7 @@ void debug::log(level_e level, const char* func, const char* srcf, int line, con if (!inst) return; - if (unlikely(debug::level == DEBUG_LEVEL)) { + if (unlikely(debug::level == DEBUG_LEVEL) || DEBUG_PSKMAIL) { time_t t = time(NULL); struct tm stm; (void)localtime_r(&t, &stm);