From: drowe67 Date: Wed, 17 Jun 2015 21:27:00 +0000 (+0000) Subject: bug fix to txt messages, still occasional seg fault X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=52109304020da21443fc7c8686135eb92e377d42;p=freetel-svn-tracking.git bug fix to txt messages, still occasional seg fault git-svn-id: https://svn.code.sf.net/p/freetel/code@2204 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/fdmdv2-dev/README.txt b/fdmdv2-dev/README.txt index 2a452f5a..5261705c 100644 --- a/fdmdv2-dev/README.txt +++ b/fdmdv2-dev/README.txt @@ -161,7 +161,7 @@ TODO [X] rx from file works [X] cohpsk snr est [X] tx works in full duplex - [ ] clipper a check box, so we can see difference in spectrum + [X] clipper a check box, so we can see difference in spectrum + adjustable at run time [ ] analog mode + complicated by sample rate change diff --git a/fdmdv2-dev/src/fdmdv2_main.cpp b/fdmdv2-dev/src/fdmdv2_main.cpp index cf3b3be3..304d11c8 100644 --- a/fdmdv2-dev/src/fdmdv2_main.cpp +++ b/fdmdv2-dev/src/fdmdv2_main.cpp @@ -951,6 +951,8 @@ void MainFrame::OnTimer(wxTimerEvent &evt) if ((unsigned)fifo_used(g_txDataInFifo) < strlen(callsign)) { unsigned int i; + printf("callsign: %s\n", callsign); + /* optionally append checksum */ if (wxGetApp().m_enable_checksum) { @@ -962,10 +964,13 @@ void MainFrame::OnTimer(wxTimerEvent &evt) checksum += callsign[i]; sprintf(callsign_checksum_cr, "%s%2x", callsign, checksum); callsign_checksum_cr[strlen(callsign)+2] = 13; + callsign_checksum_cr[strlen(callsign)+3] = 0; strcpy(callsign, callsign_checksum_cr); } - else + else { callsign[strlen(callsign)] = 13; + callsign[strlen(callsign)+1] = 0; + } // write chars to tx data fifo @@ -1023,13 +1028,13 @@ void MainFrame::OnTimer(wxTimerEvent &evt) } } - //fprintf(stderr,"resetting callsign %s %d\n", m_callsign, m_pcallsign-m_callsign); + fprintf(stderr,"resetting callsign %s %d\n", m_callsign, m_pcallsign-m_callsign); // reset ptr to start of string m_pcallsign = m_callsign; } else { - //printf("new char %d %c\n", ashort, (char)ashort); + printf("new char %d %c\n", ashort, (char)ashort); *m_pcallsign++ = (char)ashort; m_txtCtrlCallSign->SetValue(m_callsign); } @@ -1049,7 +1054,6 @@ void MainFrame::OnTimer(wxTimerEvent &evt) // Run time update of FreeDV 700 tx clipper g_pfreedv->clip = (int)wxGetApp().m_FreeDV700txClip; - //fprintf(stderr, "g_pfreedv->clip: %d\n", g_pfreedv->clip); // Test Frame Bit Error Updates ------------------------------------ @@ -2003,6 +2007,11 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) m_pcallsign = m_callsign; memset(m_callsign, 0, sizeof(m_callsign)); m_checksumGood = m_checksumBad = 0; + wxString s; + s.Printf("%d", m_checksumGood); + m_txtChecksumGood->SetLabel(s); + s.Printf("%d", m_checksumBad); + m_txtChecksumBad->SetLabel(s); m_maxLevel = 0; m_textLevel->SetLabel(wxT(""));